【UML 建模】UML建模语言入门-视图,事物,关系,通用机制
.
作者?:萬境絕塵?
轉(zhuǎn)載請(qǐng)注明出處?:?http://blog.csdn.net/shulianghan/article/details/18964835
.
一. UML視圖
1. Rational Rose瀏覽器中的四個(gè)視圖
用例視圖(Use Case View) :?用例視圖中包括 參與者, 用例, 用例圖, 時(shí)序圖 和 協(xié)作圖, 用例視圖與代碼實(shí)現(xiàn)無關(guān), 該視圖關(guān)注系統(tǒng)的高層, 不關(guān)注如何具體實(shí)現(xiàn).
邏輯視圖(Logical View) :?邏輯視圖中包括需要的特定類, 類圖 和 狀態(tài)圖;?邏輯視圖關(guān)注如何實(shí)現(xiàn)用例視圖中的具體功能, 將組件之間的關(guān)聯(lián), 系統(tǒng)如何運(yùn)作的詳細(xì)圖形畫出來.
組件視圖(Component View) :?組件視圖包括模型代碼庫(kù), 可執(zhí)行文件, 運(yùn)行庫(kù)等組件信息; 組件是代碼的實(shí)際模塊, 組件 和 組件圖在組件視圖中顯示, 組件視圖顯示代碼模塊之間的關(guān)系.
配置視圖(Deployment View) :?配置視圖 相當(dāng)于 系統(tǒng)的實(shí)際配置, 與邏輯結(jié)構(gòu)有所不同, 系統(tǒng)結(jié)構(gòu)是三層的, 但是對(duì)應(yīng)的配置視圖可能是兩層的.
2. RUP 4+1 視圖
四種視圖之間的關(guān)系 :用例視圖(Use Case View)是系統(tǒng)的核心, 其它的四個(gè)視圖都要基于Use Case View展開;邏輯視圖(Logical View)中包括靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,實(shí)現(xiàn)視圖(Implementation View)依賴邏輯視圖的靜態(tài)結(jié)構(gòu),進(jìn)程視圖(Process View)依賴邏輯視圖的動(dòng)態(tài)行為;配置視圖依賴進(jìn)程視圖 與 實(shí)現(xiàn)視圖;
(1) 邏輯視圖(Logical View)
使用者 : 設(shè)計(jì)人員, 開發(fā)人員.
實(shí)現(xiàn)需求 : 系統(tǒng)功能.
作用 : 揭示系統(tǒng)的內(nèi)部設(shè)計(jì)和協(xié)作情況, 邏輯視圖實(shí)現(xiàn)系統(tǒng)功能角度 : 靜態(tài)結(jié)構(gòu) , 動(dòng)態(tài)行為.
靜態(tài)結(jié)構(gòu) : 描述 類, 對(duì)象, 關(guān)系.
動(dòng)態(tài)行為 : 描述對(duì)象之間發(fā)動(dòng)消息產(chǎn)生的動(dòng)態(tài)協(xié)作, 一致性, 并發(fā).
UML對(duì)等視圖: 邏輯視圖(Logical View).
(2) 實(shí)現(xiàn)視圖(Implementation View)
使用者 : 碼農(nóng)
實(shí)現(xiàn)需求 : 系統(tǒng)的可擴(kuò)展性, 可移植性, 可重用性, 易用性, 易測(cè)試性.
作用 : 描述軟件的靜態(tài)結(jié)構(gòu), 顯示代碼之間的組織方式, 通過系統(tǒng)輸入輸出關(guān)系的模型圖 和 子系統(tǒng)圖, 來描述實(shí)現(xiàn)模塊之間的依賴關(guān)系.?
內(nèi)部需求 : 開發(fā)難易程序, 重用可能性, 通用性, 局限性等; 層次越低的組件通用性越好.
UML對(duì)等視圖 : 組件視圖(Component View).?
(3) 進(jìn)程視圖(Process View)
使用者 : 系統(tǒng)集成.
實(shí)現(xiàn)需求 : 穩(wěn)定性, 安全性, 伸縮性, 魯棒性.
作用 : 顯示系統(tǒng)并發(fā)性, 解決在并發(fā)系統(tǒng)中存在的通信和同步問題, 該視圖顯示進(jìn)程, 線程, 對(duì)象等運(yùn)行時(shí)狀態(tài), 以及相關(guān)同步, 并發(fā), 通信等問題.
進(jìn)程視圖與實(shí)現(xiàn)視圖關(guān)系 : 實(shí)現(xiàn)視圖顯示的是編譯時(shí)的靜態(tài)關(guān)系, 進(jìn)程視圖顯示的是編譯完之后運(yùn)行時(shí)的對(duì)象, 線程, 進(jìn)程之間的交互問題.
UML對(duì)等視圖 : 并發(fā)視圖(Concurrency View).
(4) 配置視圖(Deployment View)
使用者 : 運(yùn)維
實(shí)現(xiàn)需求 : 拓?fù)浣Y(jié)構(gòu), 系統(tǒng)安裝, 通信.
作用 : 軟件到硬件的映射, 目標(biāo)程序及其依賴的運(yùn)行庫(kù)和系統(tǒng)軟件部署到物理機(jī)器上去, 以及部署機(jī)器和網(wǎng)絡(luò)配合軟件系統(tǒng)的可靠性,可伸縮性等要求. 配置視圖綜合考慮軟件系統(tǒng)和整個(gè)IT系統(tǒng)相互影響的架構(gòu)視圖.
配置視圖與進(jìn)程視圖關(guān)系 : 進(jìn)程視圖關(guān)注程序的動(dòng)態(tài)執(zhí)行情況, 配置視圖關(guān)注程序的靜態(tài)位置.
UML對(duì)等視圖 : 配置視圖(Deployment View).
(5) 用例視圖(Use Case View)
使用者 : 全部人員
作用 : 描述用戶需要的系統(tǒng)功能. 用例是客戶要求的系統(tǒng)中的一個(gè)功能單元, 相當(dāng)于參與者與系統(tǒng)之間的一次交互. 用例模型列出系統(tǒng)中的用例和參與者, 顯示哪個(gè)參與者執(zhí)行哪個(gè)用例.
核心 : 用例視圖是其它四種視圖的核心, 其作用是驅(qū)動(dòng)其它視圖開發(fā).
二. UML中的事務(wù)
UML中事務(wù)是模型中首要成分的抽象,關(guān)系把事務(wù)結(jié)合在一起,圖聚集了相關(guān)事務(wù).
事務(wù)是UML中面向?qū)ο蟮幕灸K, UML中事務(wù)包括 結(jié)構(gòu)事務(wù),行為事務(wù),組織事務(wù),輔助事務(wù). 事務(wù)在模型中屬于靜態(tài)部分, 代表物理上或概念上的元素.
1. 結(jié)構(gòu)事物(Structure Things)
? ? ??
結(jié)構(gòu)事務(wù)是模型中的 靜態(tài)事務(wù), 主要包括7種, 類 接口 用例 協(xié)作 活動(dòng)類 組件 節(jié)點(diǎn).
(1) 類 (Class)
類具有相同屬性, 方法, 語(yǔ)義, 關(guān)系的集合; 一個(gè)類可以實(shí)現(xiàn)一個(gè)或者多個(gè)接口, UML中, 類包括類名, 屬性名, 方法;
(2) 接口 (Interface)
接口是類或組件提供的可以完成特定功能的操作集合, 接口描述了類或者組件對(duì)外的可見的操作. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口.
(3) 用例 (Use Case)
用例定義了系統(tǒng)的一組操作, 特定的用戶可以執(zhí)行該操作.
(4) 協(xié)作 (Collaboration)
協(xié)作是交互的操作, 角色和其它元素一起工作, 提供一些合作的動(dòng)作 . 類可能是協(xié)作的組成部門, 協(xié)作代表構(gòu)成的系統(tǒng)的實(shí)現(xiàn).
(5) 活動(dòng)類 (Active Class)
類對(duì)象有一個(gè)或多個(gè)進(jìn)程或線程的類是活動(dòng)類, 活動(dòng)類與類相似, 活動(dòng)類對(duì)象代表的元素的行為與其它的元素同時(shí)存在.
(6) 組件(Component)
組件是物理上可替換的, 實(shí)現(xiàn)一個(gè)或多個(gè)接口的系統(tǒng)元素.?
(7) 節(jié)點(diǎn)(Node)
節(jié)點(diǎn)是物理元素, 運(yùn)行時(shí)存在, 代表一個(gè)可計(jì)算的資源, 例如服務(wù)器, 進(jìn)程等.?
2. 行為事物(Behavior Things)
行為事務(wù)又叫動(dòng)作事務(wù), 與結(jié)構(gòu)事務(wù)不同, 是UML模型中的動(dòng)態(tài)部分, 代表時(shí)間和空間上的動(dòng)作, 結(jié)構(gòu)事務(wù)是UML模型中的靜態(tài)部分.
行為事務(wù)有兩種 : 交互 ,狀態(tài)機(jī). 它們是UML模型中最基本的兩個(gè)動(dòng)態(tài)事務(wù)元素,?
(1) 交互(Interaction)
交互是在特定上下文中的一組對(duì)象, 這一組對(duì)象為共同完成一定的任務(wù)進(jìn)行一系列消息交換所組成的動(dòng)作就是交互. 交互包括消息,動(dòng)作序列(消息產(chǎn)生的動(dòng)作),對(duì)象之間的連接組成. 交互中的消息通常畫成帶箭頭的直線.
(2) 狀態(tài)機(jī)(State Machine)
狀態(tài)機(jī)是對(duì)象一個(gè)或多個(gè)狀態(tài)的集合.
3. 組織事物 (Grouping Things)
組織事物又叫分組事物, 只有一種, 就是 包(Package).
組織事物是UML模型中組織部分, 相當(dāng)于一個(gè)盒子, 每個(gè)盒子中的對(duì)象關(guān)系比較復(fù)雜;盒子與盒子之間的關(guān)系相對(duì)簡(jiǎn)單.
包是一種將一系列元素分組的機(jī)制;組件也是元素分組的機(jī)制;?
包與組件區(qū)別 : 包是一種概念上的東西, 僅存在與開發(fā)階段, 組件是一種物理元素,存在于運(yùn)行時(shí).
4. 輔助事務(wù)(Annotation Things)
輔助事務(wù)就是注釋.
三. UML中的關(guān)系(Relationship)
UML中的關(guān)系主要有5種 : 關(guān)聯(lián)關(guān)系, 聚合關(guān)系, 依賴關(guān)系, 泛化關(guān)系, 實(shí)現(xiàn)關(guān)系.
(1) 關(guān)聯(lián)關(guān)系(Association)
關(guān)聯(lián)關(guān)系是結(jié)構(gòu)化關(guān)系, 指一種對(duì)象和另一種對(duì)象有關(guān)聯(lián). 兩個(gè)對(duì)象有關(guān)聯(lián)就是從一個(gè)對(duì)象中可以訪問到另一個(gè)對(duì)象, 即就是在類中將另一個(gè)類的對(duì)象聲明為成員變量.?
雙向關(guān)聯(lián) : 如果兩個(gè)類互相聲明對(duì)方對(duì)象為成員變量, 那么這個(gè)關(guān)聯(lián)就是雙向關(guān)聯(lián);?
單向關(guān)聯(lián) : 如果兩個(gè)類中只有一個(gè)類聲明另一個(gè)類對(duì)象為成員變量, 那這個(gè)關(guān)聯(lián)成為單向關(guān)聯(lián).
關(guān)聯(lián)關(guān)系表示 : 關(guān)聯(lián)關(guān)系用一條實(shí)線表示.
(2) 聚合關(guān)系
聚合概念 : 類之間的關(guān)系是整體與部分之間的關(guān)系, 一個(gè)表示整體的模型元素可能由多個(gè)表示部分的模型元素聚合而成, 如汽車由發(fā)動(dòng)機(jī), 輪胎聚合而成.
共享聚合 : 如果聚合中表示部分的模型還參與其它整體對(duì)象的聚合, 那么該聚合是共享聚合;
復(fù)合聚合 : 如果聚合中表示部分的模型只隸屬于整體類, 那么該聚合就是復(fù)合聚合.
復(fù)合聚合表示 : 聚合關(guān)系用一端帶空心菱形的直線表示, 菱形端連接表示整體事物的模型元素.
組合關(guān)系 : 組合關(guān)系是比聚合關(guān)系更緊密的耦合關(guān)系, 部分類需要整體類才能存在, 整體類被銷毀, 部分類也要隨之銷毀.
組合關(guān)系表示 : 一端帶有實(shí)心的小菱形直線表示, 小菱形端連接表示整體事物的模型元素.
(3) 依賴關(guān)系 (Dependency)
依賴關(guān)系描述兩個(gè)模型元素之間的語(yǔ)義關(guān)系 : 一個(gè)模型元素是獨(dú)立的, 另一個(gè)不是獨(dú)立的, 非獨(dú)立的模型元素依賴于獨(dú)立模型元素, 獨(dú)立模型改變將影響依賴于其的非獨(dú)立模型.?
關(guān)聯(lián)關(guān)系與依賴關(guān)系區(qū)別 : 依賴關(guān)系的對(duì)象間表現(xiàn)非固定關(guān)系, 如手機(jī)與充電器, 手機(jī)不是時(shí)刻都需要充電器的, 但是沒有充電器, 手機(jī)就玩不轉(zhuǎn).
4. 泛化關(guān)系 (Generalization)
泛化關(guān)系定義了一般元素和特殊元素之間的分類關(guān)系, 泛化類似于繼承關(guān)系. 可以分為普通泛化 和受限泛化.
普通泛化 : 沒有給泛化添加約束, 普通泛化用一條帶空心箭頭的實(shí)線表示.
受限泛化 : 給泛化附加約束條件, 說明泛化關(guān)系的使用方法和擴(kuò)充方法. 預(yù)定義的約束有4種 : 多重, 不相交, 完全, 不完全.
5. 實(shí)現(xiàn)關(guān)系 (Realization)
將一種模型元素(類)與另一種模型元素(接口)連接起來, 接口只是行為的說明, 不是結(jié)構(gòu)或者實(shí)現(xiàn).
兩種實(shí)現(xiàn)關(guān)系 :接口與實(shí)現(xiàn)它的類之間的關(guān)系,用例和實(shí)現(xiàn)它的協(xié)作之間的關(guān)系.
實(shí)現(xiàn)關(guān)系表示 : 實(shí)現(xiàn)關(guān)系用一條帶空心的虛線箭頭表示.
四. UML 中的圖
UML中的圖分為兩類, 結(jié)構(gòu)行為圖 和動(dòng)態(tài)行為圖.?
結(jié)構(gòu)行為圖 :類圖 ,對(duì)象圖 ,用例圖 ,組件圖 ,配置圖 .
動(dòng)態(tài)行為圖 :狀態(tài)圖 ,活動(dòng)圖 ,時(shí)序圖 ,協(xié)作圖 .
每個(gè)圖中的概念?
類圖 : 類 , 關(guān)聯(lián) , 泛化 , 依賴關(guān)系 , 實(shí)現(xiàn) , 接口 .
用例圖 : 用例 , 參與者 , 關(guān)聯(lián) , 擴(kuò)展 , 包括 , 用例泛化 .
組件圖 : 組件 , 接口 , 依賴關(guān)系 , 實(shí)現(xiàn) .
配置圖 :?
狀態(tài)圖 :?
活動(dòng)圖 :?
時(shí)序圖 :?
協(xié)作圖 :?
1. 用例圖 (Use Case Diagram)
用例圖展現(xiàn)了一組 用例 ?參與者 它們之間的關(guān)系. 可以描述系統(tǒng)的靜態(tài)使用情況.?
下面的用例圖中 : 用戶 和 ATM機(jī) 是參與者, 插入卡 輸入密碼是用例.
2. 類圖 (Class Diagram)
類圖展示了 類 ?接口 ?協(xié)作 之間的關(guān)系, 一個(gè)系統(tǒng)有多個(gè)類圖, 高層建模給出類的主要職責(zé), 底層建模給出類的屬性和操作.?
下圖中 人民幣賬戶 美元賬戶 從賬戶類繼承, 它們是泛化關(guān)系. 賬戶與ATM機(jī) , 用戶與兩種賬戶是關(guān)聯(lián)關(guān)系.
3. 對(duì)象圖 (Object Diagram)
對(duì)象圖 是 類圖的變體, 對(duì)象圖使用與類圖相似的符號(hào)描述.?
對(duì)象圖與類圖的區(qū)別 :?
表示的概念 : 對(duì)象圖顯示的是類的多個(gè)對(duì)象, 而非實(shí)際的類. 對(duì)象圖是類的一個(gè)例子, 顯示系統(tǒng)執(zhí)行時(shí)的一個(gè)快照, 即在某一個(gè)時(shí)間點(diǎn)上系統(tǒng)可能呈現(xiàn)的樣子.?
表示不同 : 對(duì)象圖使用帶下劃線的對(duì)象名稱來表示對(duì)象, 顯示一個(gè)關(guān)系中的所有實(shí)例.
4. 組件圖
組件圖 由 組件接口 組件之間的關(guān)系組成. 組件 可以是?源碼 二進(jìn)制碼 可執(zhí)行程序. 組件圖表示系統(tǒng)不同的物理部件及其關(guān)系.
下圖中, 組件1 和 組件3 都依賴于 組件2.
5. 配置圖 (Deployment Diagram)
定義 : 配置圖展現(xiàn)運(yùn)行時(shí)處理節(jié)點(diǎn)(服務(wù)器,主機(jī)) 以及 其中組件的配置(打印機(jī),掃描儀). 配置圖可以說明系統(tǒng)結(jié)構(gòu)的靜態(tài)配置圖, 即 分布 交付 安裝 的物理系統(tǒng).?
描述硬件 : 配置圖描述系統(tǒng)硬件的物理拓?fù)浣Y(jié)構(gòu), 即網(wǎng)絡(luò)布局和組件在網(wǎng)絡(luò)中的位置;?
描述軟件 : 描述在設(shè)備上執(zhí)行的軟件, 即運(yùn)行時(shí)軟件在節(jié)點(diǎn)中的分布情況.?
6. 時(shí)序圖 (Sequence Diagram)
時(shí)序圖含義 :?
a. 動(dòng)態(tài)協(xié)作 : 時(shí)序圖顯示多個(gè)對(duì)象間的動(dòng)態(tài)協(xié)作, 主要是顯示對(duì)象之間發(fā)送消息的時(shí)間順序.?
b. 時(shí)間點(diǎn)預(yù)測(cè) : 時(shí)序圖也顯示對(duì)象之間的交互, 即在系統(tǒng)執(zhí)行的時(shí)候,某個(gè)時(shí)間點(diǎn)將會(huì)發(fā)生的事情.?
時(shí)序圖用途 :表示用例中的行為順序, 當(dāng)執(zhí)行一個(gè)用例行為的時(shí), 時(shí)序圖中每一條消息對(duì)應(yīng)了一個(gè)類操作, 或狀態(tài)機(jī)中引起裝換的觸發(fā)事件.
7. 協(xié)作圖 (Collaboration Diagram)
組織結(jié)構(gòu)建模 : 協(xié)作圖對(duì)交互中有意義的對(duì)象和對(duì)象之間的連接建模, 強(qiáng)調(diào)收發(fā)消息對(duì)象的組織結(jié)構(gòu), 按照組織結(jié)構(gòu)對(duì)控制流建模.
顯示關(guān)系 : 除了顯示消息的交互之外, 協(xié)作圖還顯示對(duì)象 及對(duì)象之間的關(guān)系.
8. 狀態(tài)圖 (Statechart Diagram)
狀態(tài)圖定義 : 狀態(tài)圖顯示一個(gè)對(duì)象所有可能的狀態(tài) , 以及各種事件發(fā)生而引起的狀態(tài)轉(zhuǎn)移.
狀態(tài)圖的作用 : 狀態(tài)圖描述了一個(gè)狀態(tài)機(jī), 用狀態(tài)圖說明系統(tǒng)的動(dòng)態(tài)視圖.?
狀態(tài)圖建模 : 狀態(tài)圖對(duì)接口,類, 協(xié)作的行為建模很重視, 可以用來描述實(shí)例的生命周期.
開始結(jié)束分別用實(shí)心圈和帶環(huán)的圈表示.
9. 活動(dòng)圖 (Activity Diagram)
活動(dòng)圖是狀態(tài)圖的變體, 顯示系統(tǒng)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的流程, 活動(dòng)圖顯示了一些活動(dòng), 強(qiáng)調(diào)是對(duì)象之間的流程控制.?
五. 通用機(jī)制
UML中的通用機(jī)制, 使UML變得簡(jiǎn)單, 易于使用. 使用通用機(jī)制可以為模型元素提供額外的注釋,信息或語(yǔ)義.?
1. 修飾
修飾表示 : UML建模時(shí), 可以將圖形修飾附加到UML圖形的模型元素上. 通常修飾寫在相關(guān)元素旁邊, 所有對(duì)修飾的描述與它們所影響的元素的描述放在一起.
修飾作用 : 為圖形中的元素增加語(yǔ)義.?
修飾例子 : 當(dāng)一個(gè)元素代表一個(gè)類型的時(shí)候, 名稱可以用粗體來表示; 當(dāng)一個(gè)元素代表一個(gè)類型的實(shí)例的時(shí)候, 名稱可以用下劃線表示; 當(dāng)一個(gè)元素代表接口的時(shí)候, 那么其名稱用斜體表示. 表示類的方法的時(shí)候 : "-"表示私有, "+"表示公有, "#"表示保護(hù)類型.
2. 注釋
注釋用一條虛線連接到其解釋的元素上, 注釋可以使模型更加清晰.
注釋使用技巧 :?
a. 依賴 : 將注釋放在需要注釋的元素旁邊, 使用依賴關(guān)系連接, 注釋依賴于元素.
b. 隱藏 : 注釋平時(shí)可以隱藏;
c. 嵌入 : 如果注釋很長(zhǎng), 可以放到外部文本中, 然后嵌入到模型中.
3. 規(guī)格說明
模型元素具有許多用于維護(hù)該元素的數(shù)據(jù)值特性, 特性用名稱和被稱為標(biāo)記值的值定義.
標(biāo)記值 : 標(biāo)記值是一種特定的類型, 如整型, 字符串.
名稱 : UML中特性是預(yù)定義的, 如文檔(Documentation), 職責(zé)(Responsibility), 永久性(Persistence), 并發(fā)性(Concurrency).
4. 通用劃分 (General Division)
(1) 型-實(shí)例
定義 : 型-實(shí)例(Type-Instance)描述了一個(gè)通用描述符與單個(gè)元素之間的對(duì)應(yīng)關(guān)系. 通用描述符成為型元素, 它相當(dāng)于類, 單個(gè)元素是實(shí)例元素, 相當(dāng)于類的實(shí)例; 一個(gè)型元素可以對(duì)應(yīng)多個(gè)實(shí)例元素.
表示 : 實(shí)例元素使用與通用描述符相同的表示圖形, 但是名稱的表示不同. 實(shí)例元素名稱帶有下劃線, 并且實(shí)例元素名稱后面還要加上冒號(hào)和通用描述符.
舉例 : 類 與 對(duì)象 相當(dāng)于一種 型-實(shí)例劃分, 數(shù)據(jù)類型 與 數(shù)據(jù)值 .
(2) 接口-實(shí)現(xiàn)
接口生命了一個(gè)規(guī)定了服務(wù)的約定, 實(shí)現(xiàn)負(fù)責(zé)執(zhí)行接口的全部語(yǔ)義, 并實(shí)現(xiàn)該項(xiàng)服務(wù).
5. 擴(kuò)展機(jī)制
UML擴(kuò)展機(jī)制允許UML使用人員根據(jù)需要自定義一些構(gòu)造型語(yǔ)言, 擴(kuò)展機(jī)制既可以擴(kuò)展UML功能, 還可以使語(yǔ)言用戶化.
.
作者?:萬境絕塵?
轉(zhuǎn)載請(qǐng)注明出處?:?http://blog.csdn.net/shulianghan/article/details/18964835
.
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的【UML 建模】UML建模语言入门-视图,事物,关系,通用机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Androi
- 下一篇: 【UML 建模】UML建模语言入门 --