UML學習

bzhxuexi發表於2013-12-03

一. UML檢視


1. Rational Rose瀏覽器中的四個檢視




用例檢視(Use Case View) : 用例檢視中包括 參與者, 用例, 用例圖, 時序圖 和 協作圖, 用例檢視與程式碼實現無關, 該檢視關注系統的高層, 不關注如何具體實現.

邏輯檢視(Logical View) : 邏輯檢視中包括需要的特定類, 類圖 和 狀態圖; 邏輯檢視關注如何實現用例檢視中的具體功能, 將元件之間的關聯, 系統如何運作的詳細圖形畫出來.

元件檢視(Component View) : 元件檢視包括模型程式碼庫, 可執行檔案, 執行庫等元件資訊; 元件是程式碼的實際模組, 元件 和 元件圖在元件檢視中顯示, 元件檢視顯示程式碼模組之間的關係.

配置檢視(Deployment View) : 配置檢視 相當於 系統的實際配置, 與邏輯結構有所不同, 系統結構是三層的, 但是對應的配置檢視可能是兩層的.


2. RUP 4+1 檢視

四種檢視之間的關係 :用例檢視(Use Case View)是系統的核心, 其它的四個檢視都要基於Use Case View展開;邏輯檢視(Logical View)中包括靜態結構和動態行為,實現檢視(Implementation View)依賴邏輯檢視的靜態結構,程式檢視(Process View)依賴邏輯檢視的動態行為;配置檢視依賴程式檢視 與 實現檢視;




(1) 邏輯檢視(Logical View)


使用者 : 設計人員, 開發人員.

實現需求 : 系統功能.

作用 : 揭示系統的內部設計和協作情況, 邏輯檢視實現系統功能角度 : 靜態結構 , 動態行為.

靜態結構 : 描述 類, 物件, 關係.

動態行為 : 描述物件之間發動訊息產生的動態協作, 一致性, 併發.

UML對等檢視: 邏輯檢視(Logical View).


(2) 實現檢視(Implementation View)


使用者 : 碼農

實現需求 : 系統的可擴充套件性, 可移植性, 可重用性, 易用性, 易測試性.

作用 : 描述軟體的靜態結構, 顯示程式碼之間的組織方式, 通過系統輸入輸出關係的模型圖 和 子系統圖, 來描述實現模組之間的依賴關係. 

內部需求 : 開發難易程式, 重用可能性, 通用性, 侷限性等; 層次越低的元件通用性越好.

UML對等檢視 : 元件檢視(Component View). 


(3) 程式檢視(Process View)


使用者 : 系統整合.

實現需求 : 穩定性, 安全性, 伸縮性, 魯棒性.

作用 : 顯示系統併發性, 解決在併發系統中存在的通訊和同步問題, 該檢視顯示程式, 執行緒, 物件等執行時狀態, 以及相關同步, 併發, 通訊等問題.

程式檢視與實現檢視關係 : 實現檢視顯示的是編譯時的靜態關係, 程式檢視顯示的是編譯完之後執行時的物件, 執行緒, 程式之間的互動問題.

UML對等檢視 : 併發檢視(Concurrency View).


(4) 配置檢視(Deployment View)


使用者 : 運維

實現需求 : 拓撲結構, 系統安裝, 通訊.

作用 : 軟體到硬體的對映, 目標程式及其依賴的執行庫和系統軟體部署到物理機器上去, 以及部署機器和網路配合軟體系統的可靠性,可伸縮性等要求. 配置檢視綜合考慮軟體系統和整個IT系統相互影響的架構檢視.

配置檢視與程式檢視關係 : 程式檢視關注程式的動態執行情況, 配置檢視關注程式的靜態位置.

UML對等檢視 : 配置檢視(Deployment View).


(5) 用例檢視(Use Case View)


使用者 : 全部人員

作用 : 描述使用者需要的系統功能. 用例是客戶要求的系統中的一個功能單元, 相當於參與者與系統之間的一次互動. 用例模型列出系統中的用例和參與者, 顯示哪個參與者執行哪個用例.

核心 : 用例檢視是其它四種檢視的核心, 其作用是驅動其它檢視開發.



二. UML中的事務


UML中事務模型中首要成分的抽象,關係事務結合在一起,聚集了相關事務.

事務是UML中物件導向的基本模組, UML中事務包括 結構事務,行為事務,組織事務,輔助事務. 事務在模型中屬於靜態部分, 代表物理上或概念上的元素.


1. 結構事物(Structure Things)



      


結構事務是模型中的 靜態事務, 主要包括7種, 類 介面 用例 協作 活動類 元件 節點.


(1) 類 (Class)


類具有相同屬性, 方法, 語義, 關係的集合; 一個類可以實現一個或者多個介面, UML中, 類包括類名, 屬性名, 方法;


(2) 介面 (Interface)


介面是類或元件提供的可以完成特定功能的操作集合, 介面描述了類或者元件對外的可見的操作. 一個類可以實現多個介面.


(3) 用例 (Use Case)


用例定義了系統的一組操作, 特定的使用者可以執行該操作.


(4) 協作 (Collaboration)


協作是互動的操作, 角色和其它元素一起工作, 提供一些合作的動作 . 類可能是協作的組成部門, 協作代表構成的系統的實現.


(5) 活動類 (Active Class)


類物件有一個或多個程式或執行緒的類是活動類, 活動類與類相似, 活動類物件代表的元素的行為與其它的元素同時存在.


(6) 元件(Component)


元件是物理上可替換的, 實現一個或多個介面的系統元素. 


(7) 節點(Node)


節點是物理元素, 執行時存在, 代表一個可計算的資源, 例如伺服器, 程式等. 


2. 行為事物(Behavior Things)


行為事務又叫動作事務, 與結構事務不同, 是UML模型中的動態部分, 代表時間和空間上的動作, 結構事務是UML模型中的靜態部分.

行為事務有兩種 : 互動 ,狀態機. 它們是UML模型中最基本的兩個動態事務元素, 


(1) 互動(Interaction)


互動是在特定上下文中的一組物件, 這一組物件為共同完成一定的任務進行一系列訊息交換所組成的動作就是互動. 互動包括訊息,動作序列(訊息產生的動作),物件之間的連線組成. 互動中的訊息通常畫成帶箭頭的直線.


(2) 狀態機(State Machine)


狀態機是物件一個或多個狀態的集合.




3. 組織事物 (Grouping Things)


組織事物又叫分組事物, 只有一種, 就是 (Package).

組織事物是UML模型中組織部分, 相當於一個盒子, 每個盒子中的物件關係比較複雜;盒子與盒子之間的關係相對簡單.

包是一種將一系列元素分組的機制;元件也是元素分組的機制; 

包與元件區別 : 包是一種概念上的東西, 僅存在與開發階段, 元件是一種物理元素,存在於執行時.




4. 輔助事務(Annotation Things)


輔助事務就是註釋.





三. UML中的關係(Relationship)


UML中的關係主要有5種 : 關聯關係, 聚合關係, 依賴關係, 泛化關係, 實現關係.


(1) 關聯關係(Association)


關聯關係是結構化關係, 指一種物件和另一種物件有關聯. 兩個物件有關聯就是從一個物件中可以訪問到另一個物件, 即就是在類中將另一個類的物件宣告為成員變數

雙向關聯 : 如果兩個類互相宣告對方物件為成員變數, 那麼這個關聯就是雙向關聯; 

單向關聯 : 如果兩個類中只有一個類宣告另一個類物件為成員變數, 那這個關聯成為單向關聯.

關聯關係表示 : 關聯關係用一條實線表示.




(2) 聚合關係


聚合概念 : 類之間的關係是整體與部分之間的關係, 一個表示整體的模型元素可能由多個表示部分的模型元素聚合而成, 如汽車由發動機, 輪胎聚合而成.


共享聚合 : 如果聚合中表示部分的模型還參與其它整體物件的聚合, 那麼該聚合是共享聚合;

複合聚合 : 如果聚合中表示部分的模型只隸屬於整體類, 那麼該聚合就是複合聚合.


複合聚合表示 : 聚合關係用一端帶空心菱形的直線表示, 菱形端連線表示整體事物的模型元素.




組合關係 : 組合關係是比聚合關係更緊密的耦合關係, 部分類需要整體類才能存在, 整體類被銷燬, 部分類也要隨之銷燬.

組合關係表示 : 一端帶有實心的小菱形直線表示, 小菱形端連線表示整體事物的模型元素.


(3) 依賴關係 (Dependency)


依賴關係描述兩個模型元素之間的語義關係 : 一個模型元素是獨立的, 另一個不是獨立的, 非獨立的模型元素依賴於獨立模型元素, 獨立模型改變將影響依賴於其的非獨立模型. 

關聯關係與依賴關係區別 : 依賴關係的物件間表現非固定關係, 如手機與充電器, 手機不是時刻都需要充電器的, 但是沒有充電器, 手機就玩不轉.




4. 泛化關係 (Generalization)


泛化關係定義了一般元素特殊元素之間的分類關係, 泛化類似於繼承關係. 可以分為普通泛化受限泛化.

普通泛化 : 沒有給泛化新增約束, 普通泛化用一條帶空心箭頭的實線表示.

受限泛化 : 給泛化附加約束條件, 說明泛化關係的使用方法和擴充方法. 預定義的約束有4種 : 多重, 不相交, 完全, 不完全.




5. 實現關係 (Realization)


將一種模型元素(類)與另一種模型元素(介面)連線起來, 介面只是行為的說明, 不是結構或者實現.

兩種實現關係 :介面與實現它的類之間的關係,用例和實現它的協作之間的關係.

實現關係表示 : 實現關係用一條帶空心的虛線箭頭表示.




四. UML 中的圖


UML中的圖分為兩類, 結構行為圖動態行為圖


結構行為圖 :類圖 ,物件圖 ,用例圖 ,元件圖 ,配置圖 .

動態行為圖 :狀態圖 ,活動圖 ,時序圖 ,協作圖 .


每個圖中的概念 

類圖 : 類 , 關聯 , 泛化 , 依賴關係 , 實現 , 介面 .

用例圖 : 用例 , 參與者 , 關聯 , 擴充套件 , 包括 , 用例泛化 .

元件圖 : 元件 , 介面 , 依賴關係 , 實現 .

配置圖 : 


狀態圖 : 

活動圖 : 

時序圖 : 

協作圖 : 


1. 用例圖 (Use Case Diagram)


用例圖展現了一組 用例  參與者 它們之間的關係. 可以描述系統的靜態使用情況. 

下面的用例圖中 : 使用者 和 ATM機 是參與者, 插入卡 輸入密碼是用例.




2. 類圖 (Class Diagram)


類圖展示了 類  介面  協作 之間的關係, 一個系統有多個類圖, 高層建模給出類的主要職責, 底層建模給出類的屬性和操作. 

下圖中 人民幣賬戶 美元賬戶 從賬戶類繼承, 它們是泛化關係. 賬戶與ATM機 , 使用者與兩種賬戶是關聯關係.




3. 物件圖 (Object Diagram)


物件圖 是 類圖的變體, 物件圖使用與類圖相似的符號描述. 

物件圖與類圖的區別

表示的概念 : 物件圖顯示的是類的多個物件, 而非實際的類. 物件圖是類的一個例子, 顯示系統執行時的一個快照, 即在某一個時間點上系統可能呈現的樣子. 

表示不同 : 物件圖使用帶下劃線的物件名稱來表示物件, 顯示一個關係中的所有例項.


4. 元件圖


元件圖 由 元件介面 元件之間的關係組成. 元件 可以是 原始碼 二進位制碼 可執行程式. 元件圖表示系統不同的物理部件及其關係.

下圖中, 元件1 和 元件3 都依賴於 元件2.




5. 配置圖 (Deployment Diagram)


定義 : 配置圖展現執行時處理節點(伺服器,主機) 以及 其中元件的配置(印表機,掃描器). 配置圖可以說明系統結構的靜態配置圖, 即 分佈 交付 安裝 的物理系統. 

描述硬體 : 配置圖描述系統硬體的物理拓撲結構, 即網路佈局和元件在網路中的位置; 

描述軟體 : 描述在裝置上執行的軟體, 即執行時軟體在節點中的分佈情況. 




6. 時序圖 (Sequence Diagram)


時序圖含義

a. 動態協作 : 時序圖顯示多個物件間的動態協作, 主要是顯示物件之間傳送訊息的時間順序. 

b. 時間點預測 : 時序圖也顯示物件之間的互動, 即在系統執行的時候,某個時間點將會發生的事情

時序圖用途 :表示用例中的行為順序, 當執行一個用例行為的時, 時序圖中每一條訊息對應了一個類操作, 或狀態機中引起裝換的觸發事件.




7. 協作圖 (Collaboration Diagram)


組織結構建模 : 協作圖對互動中有意義的物件物件之間的連線建模, 強調收發訊息物件的組織結構, 按照組織結構對控制流建模.

顯示關係 : 除了顯示訊息的互動之外, 協作圖還顯示物件物件之間的關係.




8. 狀態圖 (Statechart Diagram)


狀態圖定義 : 狀態圖顯示一個物件所有可能的狀態 , 以及各種事件發生而引起的狀態轉移.

狀態圖的作用 : 狀態圖描述了一個狀態機, 用狀態圖說明系統的動態檢視

狀態圖建模 : 狀態圖對介面,, 協作的行為建模很重視, 可以用來描述例項的生命週期.


開始結束分別用實心圈和帶環的圈表示.




9. 活動圖 (Activity Diagram)


活動圖是狀態圖的變體, 顯示系統從一個活動到另一個活動的流程, 活動圖顯示了一些活動, 強調是物件之間的流程控制





五. 通用機制


UML中的通用機制, 使UML變得簡單, 易於使用. 使用通用機制可以為模型元素提供額外的註釋,資訊語義


1. 修飾


修飾表示 : UML建模時, 可以將圖形修飾附加到UML圖形的模型元素上. 通常修飾寫在相關元素旁邊, 所有對修飾的描述與它們所影響的元素的描述放在一起.

修飾作用 : 為圖形中的元素增加語義. 

修飾例子 : 當一個元素代表一個型別的時候, 名稱可以用粗體來表示; 當一個元素代表一個型別的例項的時候, 名稱可以用下劃線表示; 當一個元素代表介面的時候, 那麼其名稱用斜體表示. 表示類的方法的時候 : "-"表示私有, "+"表示公有, "#"表示保護型別.


2. 註釋


註釋用一條虛線連線到其解釋的元素上, 註釋可以使模型更加清晰.

註釋使用技巧

a. 依賴 : 將註釋放在需要註釋的元素旁邊, 使用依賴關係連線, 註釋依賴於元素.

b. 隱藏 : 註釋平時可以隱藏;

c. 嵌入 : 如果註釋很長, 可以放到外部文字中, 然後嵌入到模型中.


3. 規格說明


模型元素具有許多用於維護該元素的資料值特性, 特性用名稱和被稱為標記值的值定義.

標記值 : 標記值是一種特定的型別, 如整型, 字串.

名稱 : UML中特性是預定義的, 如文件(Documentation), 職責(Responsibility), 永久性(Persistence), 併發性(Concurrency).


4. 通用劃分 (General Division)


(1) 型-例項


定義 : 型-例項(Type-Instance)描述了一個通用描述符與單個元素之間的對應關係. 通用描述符成為型元素, 它相當於類, 單個元素是例項元素, 相當於類的例項; 一個型元素可以對應多個例項元素.

表示 : 例項元素使用與通用描述符相同的表示圖形, 但是名稱的表示不同. 例項元素名稱帶有下劃線, 並且例項元素名稱後面還要加上冒號和通用描述符.

舉例 : 類 與 物件 相當於一種 型-例項劃分, 資料型別 與 資料值 .



(2) 介面-實現


介面生命了一個規定了服務的約定, 實現負責執行介面的全部語義, 並實現該項服務.


5. 擴充套件機制


UML擴充套件機制允許UML使用人員根據需要自定義一些構造型語言, 擴充套件機制既可以擴充套件UML功能, 還可以使語言使用者化.

相關文章