寫在前面之前在學(xué)校比較系統(tǒng)的學(xué)習(xí)過統(tǒng)一建模語言UML,但長時(shí)間沒使用遺忘了許多,最近因工作需要,所以對UML重新學(xué)習(xí)和梳理一下。UML可幫助我們做軟件需求分析和軟件設(shè)計(jì)的工作,會(huì)讓你的需求分析或者軟件設(shè)計(jì)工作更上一層樓。 UML的分類主要分為兩類:結(jié)構(gòu)型的UML和行為型的UML
僅作參考,不同應(yīng)用環(huán)境可能略有不同 其中基本不使用和很少會(huì)使用的我們不必深究,主要看實(shí)際應(yīng)用較多的其他幾種。 靜態(tài)視圖1、 類元 類元是模型中的離散概念,擁有身份、狀態(tài)、行為和關(guān)系。有幾種類元包括類、接口和數(shù)據(jù)類型。其他幾種類元是行為概念、環(huán)境事物、執(zhí)行結(jié)構(gòu)的具體化。這些類元中包括用例、參與者、構(gòu)件、節(jié)點(diǎn)和子系統(tǒng)。圖列出了幾種類元和它們的功能。元模型術(shù)語類元中包括了所有這些概念。
2、類元之間關(guān)系 類元之間的關(guān)系有關(guān)聯(lián)、泛化、各種形式的依賴關(guān)系,包括實(shí)現(xiàn)關(guān)系和使用關(guān)系。 關(guān)聯(lián):對象通常要和其他對象發(fā)生關(guān)聯(lián),關(guān)聯(lián)可以具有多層形式。多重性問題(一對一、一對多)。在UML中關(guān)聯(lián)用一條直線來表示。 泛化:一個(gè)類繼承了其他類的屬性和操作。在UML中泛化用“從之類畫一條帶空心三角形箭頭的連線指向父類”來表示。 依賴:一個(gè)類使用了另一個(gè)類。在UML中依賴用“從依賴類到被依賴的帶箭頭的虛線”表示。 聚集是關(guān)聯(lián)的一種,聚集對象由部分對象組成。也就是整體與部分關(guān)聯(lián)。在UML中用“整體和部分之間用帶空心菱形箭頭的連線連接”來表示。 組合是一種特殊的聚集,在一個(gè)組合對象中,部分對象只能作為組合對象的一部分與組合對象同時(shí)存在。在UML中用“整體和部分之間用帶實(shí)心菱形箭頭的連線連接”來表示。 實(shí)現(xiàn):類和接口之間的關(guān)系被稱為實(shí)現(xiàn)。在UML中實(shí)現(xiàn)關(guān)系用一個(gè)帶空心三角形箭頭加虛線來表示,箭頭指向接口。 關(guān)系的種類
圖舉例: 1.關(guān)聯(lián)
2.依賴
3.限定關(guān)聯(lián)
聚集和組成
5.泛化
6.實(shí)現(xiàn)關(guān)系
結(jié)構(gòu)型的UML(1)類圖請看下面這個(gè)類圖:
某模具系統(tǒng)類圖 此圖截取自某模具管理系統(tǒng)的業(yè)務(wù)概念分析圖,圖中一個(gè)一個(gè)的矩形就是類,這些類之間有各種線條連接,這些線條表示類之間的關(guān)系。類圖是分析業(yè)務(wù)概念的首選,類圖可能是使用率最高的UML圖。 再看下面這個(gè)Person類圖,這時(shí)軟件設(shè)計(jì)時(shí)用到的一個(gè)圖:
Person類圖 該P(yáng)erson類有以下屬性(Attribute):Name(姓名),Sex(性別),Department(部門)等,有以下操作(Operation):Work(工作)等。類有屬性和操作,但用類圖分析業(yè)務(wù)模型時(shí),往往不需要使用操作,如圖1.1中的類就只有屬性。 Attribute有特性、特征等譯法,Operation也稱作方法,但本書遵循UML中文術(shù)語標(biāo)準(zhǔn),即Attribute為屬性,Operation為操作。 關(guān)于類圖的詳細(xì)講解,請戳這里 (2)構(gòu)建圖構(gòu)件圖也叫組件圖,兩個(gè)名字均符合UML中文術(shù)語標(biāo)準(zhǔn)。 一輛汽車由輪子、發(fā)動(dòng)機(jī)等物理部件組成,一個(gè)軟件往往也是由很多“物理部件”(如:控件、重用構(gòu)件等)組成的,構(gòu)件圖就是用來描述軟件內(nèi)部物理組成的一種圖。下圖是某權(quán)限構(gòu)件設(shè)計(jì)圖:
圖右上方有這樣標(biāo)志 的矩形表示一個(gè)構(gòu)件,構(gòu)件可以再包含構(gòu)件。 軟件需求分析工作中,需要用到構(gòu)件圖的情況不是很多,以下情況除外:
待開發(fā)的系統(tǒng)需要與第三方的系統(tǒng)、原有系統(tǒng)、某些老系統(tǒng)等交互,這時(shí)可用構(gòu)件圖描述交互要求。 客戶對軟件設(shè)計(jì)有某些特殊要求,這時(shí)可用構(gòu)件圖來描述要求。 構(gòu)件圖有時(shí)不會(huì)單獨(dú)使用,還會(huì)和部署圖一起結(jié)合使用。
關(guān)于構(gòu)建圖的詳細(xì)講解,請戳這里 (3)部署圖部署圖是用來描述系統(tǒng)如何部署、本系統(tǒng)與其他系統(tǒng)是怎樣的關(guān)系的一種圖,如下圖:
某24小時(shí)便利店的管理系統(tǒng)部署圖 圖中一個(gè)個(gè)立體的矩形是部署圖的“節(jié)點(diǎn)”,一個(gè)節(jié)點(diǎn)表示一個(gè)物理的設(shè)備,節(jié)點(diǎn)之間的線條表示節(jié)點(diǎn)間的物理連接關(guān)系。 大部分客戶都會(huì)具備一定的IT基礎(chǔ)環(huán)境(如具備局域網(wǎng)、一些服務(wù)器、某些軟件平臺(tái)等),軟件系統(tǒng)需要基于當(dāng)前的IT基礎(chǔ)環(huán)境來規(guī)劃,這時(shí)我們可以使用部署圖來做這個(gè)規(guī)劃。 分析系統(tǒng)的需求,不能忽略系統(tǒng)架構(gòu)、部署、IT架構(gòu)等方面的要求,我們要基于客戶當(dāng)前的IT基礎(chǔ)環(huán)境,做一個(gè)最符合客戶利益的規(guī)劃。 要活用構(gòu)件圖、部署圖來分析需求,需要具備一定的IT基礎(chǔ)架構(gòu)知識(shí)和軟件設(shè)計(jì)知識(shí),如果你還不具備相關(guān)知識(shí),那么可以考慮抓緊補(bǔ)充相關(guān)知識(shí)。不過需求分析工作更多的還是分析業(yè)務(wù),提煉功能性需求,這部分工作能做好是相當(dāng)不容易的事情。對于技術(shù)方面的非功能性需求分析,可交由有技術(shù)背景的專業(yè)人士負(fù)責(zé)。 關(guān)于部署圖的詳細(xì)講解,請戳這里 行為型的UML(1)活動(dòng)圖我們將起床到出門上班這個(gè)過程畫成活動(dòng)圖,可能是這樣的:
起床到出門上班的活動(dòng)圖 活動(dòng)圖中的一個(gè)圓邊框框表示一個(gè)“活動(dòng)”,多個(gè)活動(dòng)之間的帶箭頭線條表示活動(dòng)的先后順序,該圖只是表達(dá)了一個(gè)順序流程,活動(dòng)圖還可以表達(dá)分支結(jié)構(gòu)。如果你以前曾學(xué)過流程圖的話,你會(huì)發(fā)現(xiàn)活動(dòng)圖和流程圖很相似?;顒?dòng)圖可能是三種能表示流程的UML圖中最接近我們思維習(xí)慣的一種,下面來學(xué)習(xí)另外兩種能表達(dá)流程的圖。 關(guān)于活動(dòng)圖的詳細(xì)講解,請戳這里 (2)狀態(tài)圖狀態(tài)機(jī)圖又叫狀態(tài)圖,但狀態(tài)圖這個(gè)譯名并沒有譯出Machine的意思。 狀態(tài)機(jī)圖從某個(gè)物品的狀態(tài)是如何變化的角度來展示流程,下圖某請假條審批流程:
請假處理流程 整個(gè)請假審批流程是圍繞“請假條”這個(gè)物體進(jìn)行的,隨著不同的審批階段,請假條具備不同的狀態(tài)。我們分析業(yè)務(wù)流程時(shí)會(huì)發(fā)現(xiàn)很多流程其實(shí)是圍繞某個(gè)物品進(jìn)行的,這時(shí)可考慮使用狀態(tài)機(jī)圖。
關(guān)于狀態(tài)圖的詳細(xì)講解,請戳這里 (3)順序圖你去餐廳吃飯,向服務(wù)員點(diǎn)餐到服務(wù)員送菜上來,這個(gè)過程用順序圖可表示如下:
點(diǎn)菜的順序圖 該圖有三個(gè)“小人”,每個(gè)“小人”下面的文字說明(如:顧客)表示其代表的角色。角色與角色之間有一些線條鏈接,表示角色之間是如何交互的。該圖表示的意思是:顧客向服務(wù)員點(diǎn)菜后,服務(wù)員將點(diǎn)菜信息傳遞給廚師,然后廚師做菜,最后再由服務(wù)員送菜給你。 點(diǎn)菜過程涉及幾個(gè)環(huán)節(jié),每個(gè)環(huán)節(jié)均由不同的角色來負(fù)責(zé),如果遇到類似的情況,你可以考慮使用順序圖來分析。用順序圖來分析的好處是能清晰表達(dá)整個(gè)過程所參與的角色,角色與角色之間的關(guān)系,各角色是如何被卷入這個(gè)過程當(dāng)中的。 關(guān)于順序圖的詳細(xì)講解,請戳這里 (4)用例圖下圖是用例圖的示意圖:
用例圖表達(dá)的是什么角色通過軟件系統(tǒng)能做什么事情,我們可以使用用例圖系統(tǒng)地表達(dá)軟件系統(tǒng)的絕大部分需求。
關(guān)于用例圖的詳細(xì)講解,請戳這里 寫在最后以上一些基本不使用或很少使用的uml圖沒整理出來,通過本篇,可以大概熟悉UML各種圖的用途了。 想了解更多關(guān)于uml的,可以參考下面這些: http://www.cnblogs.com/SanMaoSpace/p/5102529.html http://www./oobject/201309023.asp 著作權(quán)歸作者所有
本文轉(zhuǎn)自:簡書
|