UML概述
- 面向?qū)ο筌浖_發(fā)的過程:
(1)OOA(面向?qū)ο蠓治?:建立分析模型并文檔化。
(2)OOD(面向?qū)ο笤O(shè)計(jì)):用面向?qū)ο笏枷雽OA的結(jié)果進(jìn)行細(xì)化,得出設(shè)計(jì)模型。
(3)OOP(面向?qū)ο缶幊?
UML就是將OOA和OOD的結(jié)果用統(tǒng)一的符號來描述和記錄。
UML已經(jīng)是可視化建模事實(shí)上的工業(yè)標(biāo)準(zhǔn)。
不要把UML當(dāng)成一種負(fù)擔(dān),而是當(dāng)成工具。
UML有13種圖形,最常用的有:用例圖、類圖、組件圖、部署圖、順序圖、活動(dòng)圖、狀態(tài)機(jī)圖。
用例圖
用例圖的概念
用例圖用于描述系統(tǒng)的系列功能,一個(gè)用例圖代表系統(tǒng)的一個(gè)功能模塊,由“用例+角色”組成,主要在需求分析階段使用。
用例:用橢圓表示。
角色:用一個(gè)人形符號表示。
用例之間的依賴關(guān)系:用虛線箭頭表示
一個(gè)BBS系統(tǒng)的用例圖:
類圖
- 類圖用一個(gè)三層的矩形框表示,第一層寫類名,第二層包含類的屬性,第三層包含類的方法。如下圖示例:
類之間的三種關(guān)系:關(guān)聯(lián)(包括聚合和組合)、泛化(和繼承是同一概念)、依賴。
關(guān)聯(lián):
(1)關(guān)聯(lián)和屬性很像,兩者的區(qū)別:類里的某個(gè)屬性引用到另外一個(gè)實(shí)體時(shí),就變成了關(guān)聯(lián)。
(2)關(guān)聯(lián)用一條實(shí)線來表示,帶箭頭的實(shí)線表示單向關(guān)聯(lián)。
(3)關(guān)聯(lián)包含兩種特例:聚合和組合。兩者區(qū)別:
①聚合:當(dāng)某個(gè)實(shí)體A聚合成另一個(gè)實(shí)體B時(shí),A還可以同時(shí)是另外一個(gè)實(shí)體的一部分。比如學(xué)生既可以是網(wǎng)球俱樂部的成員,也可以是羽毛球俱樂部的成員。
聚合使用帶空心菱形框的實(shí)線表示。
②組合:當(dāng)某個(gè)實(shí)體A組合成另一個(gè)實(shí)體B時(shí),A不能同時(shí)是另外一個(gè)實(shí)體的一部分。比如手是人這個(gè)實(shí)體的一部分,手組合成為一個(gè)人的一部分后,不能同時(shí)是另外一個(gè)人的一部分。
組合使用帶實(shí)心菱形框的實(shí)線表示。
關(guān)聯(lián)關(guān)系示例圖如下:
- 泛化關(guān)系:即繼承關(guān)系,用帶空心三角形的實(shí)線表示。對接口的實(shí)現(xiàn)也可以看成是一種特殊的繼承,
實(shí)現(xiàn)接口的關(guān)系用帶空心三角形的虛線表示。示例圖如下:
- 依賴關(guān)系:如果一個(gè)類的改動(dòng)會導(dǎo)致另一個(gè)類的改動(dòng),則兩者之間存在依賴關(guān)系。依賴的常見原因:
(1)改動(dòng)的類將消息發(fā)送給另一個(gè)類;
(2)改動(dòng)的類以另一個(gè)類作為數(shù)據(jù)部分;
(3)改動(dòng)的類以另一個(gè)類作為操作參數(shù)。
依賴用帶箭頭的虛線表示,箭頭在被依賴的類一側(cè),依賴關(guān)系示例圖如下:
組件圖
- 對于一個(gè)大型應(yīng)用程序而言,通常由多個(gè)可部署的組件組成。
(1)Java:可復(fù)用的組件通常打包成JAR、WAR等文件。
(2)C/C++:可復(fù)用的組件通常是一個(gè)函數(shù)庫,或者DLL(動(dòng)態(tài)鏈接庫)文件。
- 組件圖的用途是顯示系統(tǒng)中的軟件對其他軟件組件(如庫函數(shù))的依賴關(guān)系。組件圖通常包含組件、接口、Port等元素,UML
符號的矩形表示組件,用圓圈代表接口,用位于組件邊界上的小矩形代表Port。
組件接口表示它能對外提供的服務(wù)規(guī)范,有兩種表示形式:
(1)用一條實(shí)線連接到組件邊界的圓圈表示;
(2)使用位于組件內(nèi)部的圓圈表示。
組件依賴于某個(gè)接口用一條帶半圓弧的實(shí)線來表示。
- 組件圖示例如下:
部署圖
部署圖顯示系統(tǒng)不同組件在何處物理運(yùn)行,以及它們之間如何通信。
部署圖示例:
順序圖
順序圖描述對象之間的交互,注重描述消息及其時(shí)間順序。
順序圖示例:
活動(dòng)圖
活動(dòng)圖 = 傳統(tǒng)流程圖 + 并行。
用于描述用例內(nèi)部的活動(dòng)或方法的流程,用于描述過程原理、業(yè)務(wù)邏輯、工作流。
活動(dòng)圖和狀態(tài)機(jī)圖都屬于演化圖,演化圖五要素:狀態(tài)、事件、動(dòng)作、活動(dòng)、條件。
活動(dòng)圖用圓角矩形表示活動(dòng),用帶箭頭的實(shí)線表示事件。
活動(dòng)圖示例:
狀態(tài)機(jī)圖
狀態(tài)機(jī)圖表示某個(gè)對象所處的不同狀態(tài)和狀態(tài)之間的轉(zhuǎn)換信息,當(dāng)對象的狀態(tài)大于等于3個(gè)時(shí)才需要考慮使用狀態(tài)機(jī)圖。
狀態(tài)機(jī)圖5個(gè)基本元素:
(1)初始狀態(tài):用實(shí)心圓來表示。
(2)狀態(tài)之間的轉(zhuǎn)換:用帶箭頭的實(shí)線表示。
(3)狀態(tài):用圓角矩形來表示。
(4)判斷點(diǎn):使用空心圓來表示。
(5)終止點(diǎn):有一個(gè)或多個(gè)終止點(diǎn),使用內(nèi)部包含實(shí)心圓的空心圓表示。
- 狀態(tài)機(jī)圖示例: