天天看點

6.軟體工程學面向對象方法之UML統一模組化工具理論知識

UML(Unified Modeling Language)是一種用于軟體系統設計和開發的标準模組化語言。

UML統一模組化工具是一種軟體工具,它能夠幫助開發人員在UML标準下進行軟體系統的模組化和設計。這些工具提供了各種圖形化界面和工具,用于建立類、對象、用例、活動和時序圖等UML圖形,以及對它們進行編輯和管理。

這些工具通常包含以下主要功能:

  1. 繪制和編輯UML圖形,包括類圖、對象圖、用例圖、活動圖和時序圖等。
  2. 提供各種工具和符号,用于表示UML元素,如類、接口、屬性、方法、關聯、繼承、泛化等。
  3. 支援自動生成UML圖形,例如通過代碼轉換或文本輸入自動生成UML圖形。
  4. 支援導入和導出UML圖形,以便與其他UML工具進行協作。
  5. 支援團隊協作,例如多使用者同時編輯同一UML圖形,以及版本控制和變更管理等。

一、UML術語表

1.UML術語表總述

為了支援抽象分析和設計中的事物,UML給出了八個基本術語,即類、接口、協作、用況、主動類、構件、制品、節點。每個術語都展現着一定的軟體設計原理,例如,類展現了資料抽象、過程抽象、局部化以及資訊隐蔽等原理;用況展現了問題分離、功能抽象等原理;接口展現了功能抽象等。

2.類、接口、用況、協作等概念

(1)類。類是一組具有相同屬性、操作、關系和語義的對象的描述。類主要用于抽象客觀世界中的事物。

6.軟體工程學面向對象方法之UML統一模組化工具理論知識

(2)接口。每個操作描述了類、構件或子系統的一個服務,接口就是操作的一個集合。接口是對系統/産品的“接縫”予以模型化,表明了一個類、構件、子系統所需要得到的、且與實作無關的行為。

(3)用況。用況是對一組動作序列的描述,系統執行這些動作應産生對特定參與者有值的、可觀察的結果。

(4)協作。協作是一個互動,涉及互動的三要素:互動各方、互動方式以及互動内容。

以下是一些常見的UML術語及其定義:

  1. 類圖(Class diagram):表示類和它們之間的關系的圖形表示方式。
  2. 對象圖(Object diagram):表示對象及其之間的關系的圖形表示方式。
  3. 時序圖(Sequence diagram):表示對象之間的動态互動關系的圖形表示方式。
  4. 用例圖(Use case diagram):表示系統用例的圖形表示方式。
  5. 活動圖(Activity diagram):表示業務流程或系統行為的圖形表示方式。
  6. 元件圖(Component diagram):表示系統的實體元件和它們之間的關系的圖形表示方式。
  7. 部署圖(Deployment diagram):表示系統部署的實體架構和它們之間的關系的圖形表示方式。
  8. 泛化(Generalization):表示一種類是另一種類的特殊形式的關系。
  9. 關聯(Association):表示兩個類之間的關系,例如一個類的執行個體包含另一個類的執行個體。
  10. 依賴(Dependency):表示一個類使用另一個類的執行個體。
  11. 接口(Interface):表示一組方法的集合,可以被其他類實作。
  12. 實作(Realization):表示一個類實作了一個接口。
  13. 構件(Component):表示系統的實體組成部分。
  14. 節點(Node):表示計算機或其他實體裝置。

3.UML的4個術語

為了表達各類事物之間的互相依賴和作用,UML給出了4個術語,即關聯、泛化、細化和依賴。

(1)關聯。關聯是對一組有相同結構、相同鍊的描述,是類目之間的一種結構關系。關聯可以用一條連接配接兩個類目的線段表示,并可對其命名,其結構可以具有方向性,用一個實心三角形來訓示關聯的方向。

(2)泛化。泛化是一般性類目和它的較為特殊類目之間的一種關系。子類可以繼承父類的屬性和操作,同時,也可以替換父類的聲明。

(3)細化。細化是類目之間的語義關系,其中一個類目規約了保證另一個類目執行的契約。

(4)依賴。依賴用于描述一個類目使用另一個類目的資訊和服務,是一種使用關系。

4.表達組合資訊的術語

為了控制資訊組織的複雜性,UML提供了組織資訊的一種通用機制-包,支援形成一些可管理的部分。換言之,包可以作為“子產品化”和“構件化”的一種機制。為了模型化包之間的關系,UML給出了兩種依賴,即通路和引入,用于描述一個包可以通路和引入其他包。

5.UML術語的作用

(1)類用于抽象客觀事物。

(2)接口用于抽象事物之間的縫隙。

(3)協作用于抽象協作性行為。

(4)用況用于抽象功能。

(5)主動類用于抽象并發行為。

(6)構件用于抽象軟體解中可辨別的成分。

(7)制品用于抽象工作産品。

(8)節點用于抽象計算單元。

(9)關聯用于抽象結構關系。

(10)泛化用于抽象“一般/特殊”關系。

(11)實作用于抽象精化關系。

(12)依賴用于抽象使用關系。

6.類在模組化中的主要用途

(1)模型化問題域中的概念。

(2)建立系統的職責分布模型。

(3)模型化模組化中使用的基本類型。

7.使用接口應注意的問題

在建立系統模型中,若使用接口對系統中那些“接縫”進行模型化時,應注意以下問題。

(1)接口隻可以被其他類目使用,而其本身不能通路其他類目。

(2)接口描述類的外部可見操作,通常是該類的一個特定有限行為。這些操作可以使用可見性、并發性、衍型、标記值和限制來修飾。

(3)接口不描述其中操作的實作,也沒有屬性和狀态。據此可見,接口在形式上等價于一個沒有屬性、沒有方法而隻有抽象操作的抽象類。

(4)接口之間沒有關聯、泛化、實作和依賴,但可以參與泛化、實作和依賴。

二、UML的模型表達式

1.結構圖和行為圖

UML的圖形化工具分為兩類:一類是結構圖,用于表達系統或系統成分的靜态結構模型,給出系統或系統成分的一些說明性資訊;另一類是行為圖,用于表達系統或系統成分的

動态結構模型,給出系統或系統成分的一些行為資訊。

2.類圖、用況圖、順序圖及狀态圖

(1)類圖是可視化地表達系統靜态結構功能模型的工具,使用類圖所表達的系統靜态結構模型,給出的是一些關于系統的說明性資訊。

(2)用況圖是一種表達系統功能模型的圖形化工具,它包含六個模型元素,分别是主題、用況、參與者、關聯、泛化、依賴。

(3)順序圖由一組對象以及按時序組織的對象之間的關系組成,是一種互動圖,包含對象之間傳遞的資訊。

為了控制互動行為描述的複雜性,以便更好地表達順序圖的複雜控制,UML定義了四種常見的控制操作:選擇執行操作、條件操作、并發疊代操作和疊代執行操作。

(4)狀态圖強調了從一個狀态到另一個狀态的控制流,是顯示一個狀态機的圖。狀态圖由狀态、事件和狀态轉移構成。使用狀态圖的作用有兩個:一是建立一個系統的動态模型;二是建立一個場景的模型。

3.建立一個系統的類圖的步驟!

(1)模型化待建系統中的概念,形成類圖中的基本元素。

使用UML中的術語“類”,來抽象系統中的各個組成部分,包括系統環境。繼而确定每一類的職責,最終形成類圖中的模型元素。

(2)模型化待建系統中的各種關系,形成該系統的初始類圖。

使用UML中表達關系的術語,例如關聯、泛化等,來抽象系統中各成分之間的關系,形成該系統的初始類圖。

(3)模型化系統中的協作,給出該系統的最終類圖。

在研究系統中以類表達的某一事物語義的基礎上,使用類和UML中表達關系的術語,模型化一些類之間的協作,并使用有關增強語義的術語,給出該模型的較長的描述。

(4)模型化邏輯資料庫模式。

對要在資料庫中存儲的資訊,以類作為工具,模型化系統所需要的資料庫模式,建立資料庫概念模型。

4.信号事件、調用事件、時間事件和變化事件

在UML中,可以把信号、調用、時間、變化模型化為事件,分别稱為信号事件、調用事件、時間事件和變化事件。

(1)信号事件是一種異步事件,信号通常由狀态機處理。如果沒有定義對該事件的響應,那麼事件均可能丢失。事件的丢失,就有可能引發接收者-狀态機的一個錯誤的狀态轉移。

(2)調用事件往往是一個同步事件,即發送者和接收者多處在該操作執行期間的一個

彙合點上,發送者的控制流一直被挂起,直到該操作執行完成。但可以把調用規約為異步

調用。

(3)時間事件是表示推移一段時間的事件。時間事件是通過時間表達式來規約的。

(4)變化事件表示狀态的一個變化,或表示某一條件得到滿足。

5.狀态轉換所涉及的内容

描述一個狀态轉換,一般涉及五個部分。

(1)源狀态:發生狀态轉移的那個狀态。

(2)轉移觸發器:在源狀态中由對象識别的事件,并且一旦滿足其監護條件,則使狀态發生轉移。

(3)監護條件:一個布爾表達式,當某個事件觸發器接收一個事件時,如果該表達式有值為真,則觸發一個轉移;若有值為假,則不發生狀态轉移。

(4)效應:一種可執行的行為。

(5)目标狀态:轉移完成後所處的狀态。

6.最常用的控制操作子

(1)選擇執行操作子。該操作子由兩部分組成:一是監護條件,二是控制體。

(2)條件執行操作子。控制體通過水準線将其分為一些部分,每一部分表示一個條件分支,每一分支有一個監護條件。

(3)并發執行操作子。該控制操作子的體通過水準線将其分為多個部分,每一部分表示一個并行計算。該控制操作子表明,當進入該控制操作子時,所有部分并發執行。

(4)疊代執行操作子。該控制操作子表明,隻要在每一次疊代之前該監護條件為真,那麼該控制體就反複執行;當該控制體上面的監護條件為假時,控制繞過該控制操作子。

7.子狀态機、簡單狀态群組合狀态的概念

(1)子狀态機:為了有效地組織狀态、控制對象狀态的複雜性,UML提供了組合狀态,在一個狀态機中引入了另一個狀态機,被引入的狀态機就稱為子狀态機。

(2)簡單狀态:子狀态是被嵌套到另一狀态中的狀态。相對地,把沒有子狀态的狀态稱為簡單狀态。

(3)組合狀态:把含子狀态的狀态稱為組合狀态,組合狀态可包含兩種類型的子狀态機,即非正交(順序)子狀态機和正交(并發)子狀态機。

知識總結

1、自20世紀80年代中期到90年代,提出了一些面向對象的開發方法和設計技術,其中具有代表性的工作有【面向對象開發方法】、【面向對象分析(OOA)和面向對象設計(OOD)】、【面向對象軟體生存周期的“噴泉”模型以及面向對象系統開發架構等】。

2、在面向對象技術的發展中,一個重要的裡程碑是【UML】。

3、UML是一種【可視化語言】,可用于【規約系統的制品】、【構造系統的制品】、【建立系統制品的文檔】。

4、類是一組具有【相同屬性】、【操作】、【關系】和【語義】的對象的描述。

5、接口表示通常有兩種形式:

(1)【采用具有分欄和關鍵字《interface》的矩形符号來表示】。

(2)【采用小圓圈和半圓圈來表示】。

6、協作是一個互動,涉及互動的三要素:【互動各方】、【互動方式】以及【互動内容】。P87

7、為了表達各類事物之間的關系,UML給出了4個術語,它們是【關聯】、【泛化】、【細化】、【依賴】。P89

8、為了表達關聯的含義,UML采用了【關聯名、導航、角色、可見性、多重性、限定符、聚合、組合、關聯類、限制】。P90-94

(1)【聚合】是關聯的一種特殊形式,表達的是一種【“整體/部分”】關系。

(2)【組合】又是【聚合】的一種特殊形式。

9、在UML中,把泛化表示成從子類(特殊類)到父類(一般類)的一條【帶空心三角形的線段】,其中空心三角形在【父類端】。P94

10、【包】可以作為【“子產品化”】和【“構件化”】的一種機制。P99

11、UML的圖形化工具分為兩類,一類是【結構圖】,用于表達系統或系統成分的靜态結構模型,給出系統或系統成分的一些說明性資訊;一類是【行為圖】,用于表達系統或系統成分的動态結構模型,給出系統或系統成分的一些行為資訊。P101

12、軟體開發中常用的4種模組化工具包括【類圖】、【use case圖】、【狀态圖】和【順序圖】。P101

13、【USE CASE圖】支援系統功能的模組化,【互動圖】支援系統互動的模組化,【狀态圖】支援系統生存周期的模組化。P103

14、在一個用況圖中,用況之間可以具有3種關系,即【泛化、擴充和包含】。P105

15、狀态圖是顯示一個【狀态機】的圖,其中強調了從一個狀态到另一個狀态的【控制流】。P107

16、UML把狀态分為3類,即【初态】、【終态】和【通常狀态】。

(1)【初态】表達狀态機預設的開始位置,用【實心圓】表示;

(2)【終态】表達狀态機的執行已經完成,用【内含一個實心圓的圓】來表示。P109

17、描述一個狀态轉換,一般涉及【源狀态】、【轉移觸發器】、【監護】、【效應】、【目标狀态】5個部分。P111-112

18、為了規約行為的生存周期,UML主要引入了3個術語,即【狀态】、【事件】和【狀态轉移】,并給出了一種表達行為生存周期模型的工具----狀态圖。P112

19、【順序圖】中所包含的内容,确定了一個特定的抽象層,該抽象層決定了系統(或系統成分)模型的形态。P113

20、【聚焦控制】用于表達一個對象執行一個動作的時間段。聚焦控制表示為細高矩形。根據需要,可以使用嵌套的聚焦控制。P11

6.軟體工程學面向對象方法之UML統一模組化工具理論知識

參考教材:《軟體工程》,機械工業出版社,王立福主編,2011年版。