自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析常用UML圖中用例圖,類(lèi)圖,序列圖

開(kāi)發(fā) 架構(gòu)
UML圖你是否熟悉,本文就向大家簡(jiǎn)單介紹一下幾個(gè)最常用的UML圖,主要包括包括:用例圖、類(lèi)圖、序列圖、狀態(tài)圖、活動(dòng)圖、組件圖和部署圖。

本文和大家重點(diǎn)討論一下常用UML圖,最常用的UML圖包括:用例圖、類(lèi)圖、序列圖、狀態(tài)圖、活動(dòng)圖、組件圖和部署圖,這里向大家介紹一下用例圖,類(lèi)圖和序列圖。

常用UML圖

1.用例圖

用例圖描述了系統(tǒng)提供的一個(gè)功能單元。常用UML圖中用例圖的主要目的是幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求,包括基于基本流程的"角色"(actors,也就是與系統(tǒng)交互的其他實(shí)體)關(guān)系,以及系統(tǒng)內(nèi)用例之間的關(guān)系。用例圖一般表示出用例的組織關(guān)系--要么是整個(gè)系統(tǒng)的全部用例,要么是完成具有功能(例如,所有安全管理相關(guān)的用例)的一組用例。要在用例圖上顯示某個(gè)用例,可繪制一個(gè)橢圓,然后將用例的名稱(chēng)放在橢圓的中心或橢圓下面的中間位置。要在用例圖上繪制一個(gè)角色(表示一個(gè)系統(tǒng)用戶(hù)),可繪制一個(gè)人形符號(hào)。角色和用例之間的關(guān)系使用簡(jiǎn)單的線段來(lái)描述,如圖1所示。

圖1:示例用例圖

圖字(從上到下):CD銷(xiāo)售系統(tǒng);查看樂(lè)隊(duì)CD的銷(xiāo)售統(tǒng)計(jì);樂(lè)隊(duì)經(jīng)理;查看Billboard200排行榜報(bào)告;唱片經(jīng)理;查看特定CD的銷(xiāo)售統(tǒng)計(jì);檢索最新的Billboard200排行榜報(bào)告;排行榜報(bào)告服務(wù)
用例圖通常用于表達(dá)系統(tǒng)或者系統(tǒng)范疇的高級(jí)功能。如圖1所示,可以很容易看出該系統(tǒng)所提供的功能。這個(gè)系統(tǒng)允許樂(lè)隊(duì)經(jīng)理查看樂(lè)隊(duì)CD的銷(xiāo)售統(tǒng)計(jì)報(bào)告以及Billboard200排行榜報(bào)告。它也允許唱片經(jīng)理查看特定CD的銷(xiāo)售統(tǒng)計(jì)報(bào)告和這些CD在Billboard200排行榜的報(bào)告。這個(gè)圖還告訴我們,系統(tǒng)將通過(guò)一個(gè)名為"排行榜報(bào)告服務(wù)"的外部系統(tǒng)提供Billboard排行榜報(bào)告。

此外,在用例圖中,沒(méi)有列出的用例表明了該系統(tǒng)不能完成的功能。例如,它不能提供給樂(lè)隊(duì)經(jīng)理收聽(tīng)Billboard200上不同專(zhuān)輯中的歌曲的途徑--也就是說(shuō),系統(tǒng)沒(méi)有引用一個(gè)叫做"收聽(tīng)Billboard200上的歌曲"的用例。這種缺少不是一件小事。在用例圖中提供清楚的、簡(jiǎn)要的用例描述,項(xiàng)目贊助商就很容易看出系統(tǒng)是否提供了必須的功能。

2.類(lèi)圖

類(lèi)圖表示不同的實(shí)體(人、事物和數(shù)據(jù))如何彼此相關(guān);換句話說(shuō),它顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu)。常用UML圖中類(lèi)圖可用于表示邏輯類(lèi),邏輯類(lèi)通常就是業(yè)務(wù)人員所談及的事物種類(lèi)--搖滾樂(lè)隊(duì)、CD、廣播??;或者貸款、住房抵押、汽車(chē)信貸以及利率。類(lèi)圖還可用于表示實(shí)現(xiàn)類(lèi),實(shí)現(xiàn)類(lèi)就是程序員處理的實(shí)體。實(shí)現(xiàn)類(lèi)圖或許會(huì)與邏輯類(lèi)圖顯示一些相同的類(lèi)。然而,實(shí)現(xiàn)類(lèi)圖不會(huì)使用相同的屬性來(lái)描述,因?yàn)樗芸赡芫哂袑?duì)諸如Vector和HashMap這種事物的引用。
類(lèi)在類(lèi)圖上使用包含三個(gè)部分的矩形來(lái)描述,如圖2所示。最上面的部分顯示類(lèi)的名稱(chēng),中間部分包含類(lèi)的屬性,最下面的部分包含類(lèi)的操作(或者說(shuō)"方法")。

 
圖2:類(lèi)圖中的示例類(lèi)對(duì)象

根據(jù)我的經(jīng)驗(yàn),幾乎每個(gè)開(kāi)發(fā)人員都知道這個(gè)類(lèi)圖是什么,但是我發(fā)現(xiàn)大多數(shù)程序員都不能正確地描述類(lèi)的關(guān)系。對(duì)于像圖3這樣的類(lèi)圖,您應(yīng)該使用帶有頂點(diǎn)指向父類(lèi)的箭頭的線段來(lái)繪制繼承關(guān)系1,并且箭頭應(yīng)該是一個(gè)完全的三角形。如果兩個(gè)類(lèi)都彼此知道對(duì)方,則應(yīng)該使用實(shí)線來(lái)表示關(guān)聯(lián)關(guān)系;如果只有其中一個(gè)類(lèi)知道該關(guān)聯(lián)關(guān)系,則使用開(kāi)箭頭表示。

 
圖3:一個(gè)完整的類(lèi)圖,包括了圖2所示的類(lèi)對(duì)象
在圖3中,我們同時(shí)看到了繼承關(guān)系和兩個(gè)關(guān)聯(lián)關(guān)系。CDSalesReport類(lèi)繼承自Report類(lèi)。一個(gè)CDSalesReport類(lèi)與一個(gè)CD類(lèi)關(guān)聯(lián),但是CD類(lèi)并不知道關(guān)于CDSalesReport類(lèi)的任何信息。CD類(lèi)和Band類(lèi)都彼此知道對(duì)方,兩個(gè)類(lèi)彼此都可以與一個(gè)或者多個(gè)對(duì)方類(lèi)相關(guān)聯(lián)。

3.序列圖

常用UML圖中序列圖顯示具體用例(或者是用例的一部分)的詳細(xì)流程。它幾乎是自描述的,并且顯示了流程中中不同對(duì)象之間的調(diào)用關(guān)系,同時(shí)還可以很詳細(xì)地顯示對(duì)不同對(duì)象的不同調(diào)用。
序列圖有兩個(gè)維度:垂直維度以發(fā)生的時(shí)間順序顯示消息/調(diào)用的序列;水平維度顯示消息被發(fā)送到的對(duì)象實(shí)例。

序列圖的繪制非常簡(jiǎn)單。橫跨圖的頂部,每個(gè)框(參見(jiàn)圖4)表示每個(gè)類(lèi)的實(shí)例(對(duì)象)。在框中,類(lèi)實(shí)例名稱(chēng)和類(lèi)名稱(chēng)之間用空格/冒號(hào)/空格來(lái)分隔,例如,myReportGenerator:ReportGenerator。如果某個(gè)類(lèi)實(shí)例向另一個(gè)類(lèi)實(shí)例發(fā)送一條消息,則繪制一條具有指向接收類(lèi)實(shí)例的開(kāi)箭頭的連線,并把消息/方法的名稱(chēng)放在連線上面。對(duì)于某些特別重要的消息,您可以繪制一條具有指向發(fā)起類(lèi)實(shí)例的開(kāi)箭頭的虛線,將返回值標(biāo)注在虛線上。就我而言,我總喜歡繪制出包括返回值的虛線,這些額外的信息可以使得序列圖更易于閱讀。

閱讀序列圖也非常簡(jiǎn)單。從左上角啟動(dòng)序列的"驅(qū)動(dòng)"類(lèi)實(shí)例開(kāi)始,然后順著每條消息往下閱讀。記?。弘m然圖4所示的例子序列圖顯示了每條被發(fā)送消息的返回消息,但這只是可選的。

圖4:一個(gè)示例序列圖

通過(guò)閱讀圖4中的示例序列圖,您可以明白如何創(chuàng)建一個(gè)CD銷(xiāo)售報(bào)告(CDSalesReport)。其中的aServlet對(duì)象表示驅(qū)動(dòng)類(lèi)實(shí)例。aServlet向名為gen的ReportGenerator類(lèi)實(shí)例發(fā)送一條消息。該消息被標(biāo)為generateCDSalesReport,表示ReportGenerator對(duì)象實(shí)現(xiàn)了這個(gè)消息處理程序。進(jìn)一步理解可發(fā)現(xiàn),generateCDSalesReport消息標(biāo)簽在括號(hào)中包括了一個(gè)cdId,表明aServlet隨該消息傳遞一個(gè)名為cdId的參數(shù)。當(dāng)gen實(shí)例接收到一條generateCDSalesReport消息時(shí),它會(huì)接著調(diào)用CDSalesReport類(lèi),并返回一個(gè)aCDReport的實(shí)例。然后gen實(shí)例對(duì)返回的aCDReport實(shí)例進(jìn)行調(diào)用,在每次消息調(diào)用時(shí)向它傳遞參數(shù)。在該序列的結(jié)尾,gen實(shí)例向它的調(diào)用者aServlet返回一個(gè)aCDReport。

請(qǐng)注意:圖4中的序列圖相對(duì)于典型的序列圖來(lái)說(shuō)太詳細(xì)了。然而,我認(rèn)為它才是足夠易于理解的,并且它顯示了如何表示嵌套的調(diào)用。對(duì)于初級(jí)開(kāi)發(fā)人員來(lái)說(shuō),有時(shí)把一個(gè)序列分解到這種詳細(xì)程度是很有必要的,這有助于他們理解相關(guān)的內(nèi)容。

【編輯推薦】

  1. 面向?qū)ο笾邪男︰ML圖及每件圖的作用
  2. 全面認(rèn)識(shí)九種基本的UML模型圖
  3. 繪制UML圖時(shí)應(yīng)避免的六大問(wèn)題
  4. UML部署圖繪制及應(yīng)用說(shuō)明
  5. 九步實(shí)現(xiàn)UML包圖創(chuàng)建
責(zé)任編輯:佚名 來(lái)源: pspx360.com
相關(guān)推薦

2010-06-08 09:30:20

UML圖

2010-07-06 16:11:52

UML序列圖

2010-07-01 16:38:28

UML序列圖

2010-07-07 14:33:11

UML序列圖

2010-06-13 11:28:39

UML序列圖

2010-06-18 14:56:15

UML綜合實(shí)例

2010-07-06 15:57:58

UML圖形

2010-07-09 09:00:22

UML建模

2010-07-12 09:37:26

UML建模

2010-07-12 10:25:44

UML類(lèi)圖

2010-07-05 12:21:36

UML行為圖

2010-07-05 09:01:29

UML靜態(tài)模型圖

2010-07-05 14:48:25

UML靜態(tài)結(jié)構(gòu)圖

2010-06-13 14:37:04

UML實(shí)踐

2009-04-23 14:21:29

UML序列圖繪制

2010-07-06 12:54:17

UML序列圖

2010-07-02 08:57:45

UML用例圖

2010-06-11 18:09:26

UML對(duì)象圖

2010-07-12 12:32:35

UML用例圖

2010-06-10 10:20:21

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)