UML實(shí)踐 UML活動(dòng)圖和用例圖解析
本節(jié)就和大家一起學(xué)習(xí)一下UML實(shí)踐中UML用例圖和活動(dòng)圖。在使用UML的過(guò)程中,經(jīng)常會(huì)用到UML圖的問(wèn)題,所以有必要對(duì)UML圖進(jìn)行深入的學(xué)習(xí)。下面是關(guān)于UML實(shí)踐中UML圖的詳細(xì)介紹。
UML實(shí)踐--UML用例圖和活動(dòng)圖
面向?qū)ο蟮膯?wèn)題的處理的關(guān)鍵是建模問(wèn)題。建??梢园言趶?fù)雜世界的許多重要的細(xì)節(jié)給抽象出。許多建模工具封裝了UML(也就是UnifiedModelingLanguage™),這篇課程的目的是展示出UML的精彩之處。
UML中有九種建模的圖標(biāo),即:
用例圖
類圖
對(duì)象圖
順序圖
協(xié)作圖
狀態(tài)圖
活動(dòng)圖
組件圖
配置圖
本課程中的某些部分包含了這些圖的細(xì)節(jié)信息的頁(yè)面鏈接。而且每個(gè)部分都有一個(gè)小問(wèn)題,測(cè)試一下你對(duì)這個(gè)部分的理解。
為什么UML很重要?
為了回答這個(gè)問(wèn)題,我們看看建筑行業(yè)。設(shè)計(jì)師設(shè)計(jì)出房子。施工人員使用這個(gè)設(shè)計(jì)來(lái)建造房子。建筑越復(fù)雜,設(shè)計(jì)師和施工人員之間的交流就越重要。藍(lán)圖就成為了這個(gè)行業(yè)中的設(shè)計(jì)師和施工人員的必修課。寫(xiě)軟件就好像建造建筑物一樣。系統(tǒng)越復(fù)雜,參與編寫(xiě)與配置軟件的人員之間的交流也就越重要。在過(guò)去十年里UML就成為分析師,設(shè)計(jì)師和程序員之間的“建筑藍(lán)圖”?,F(xiàn)在它已經(jīng)成為了軟件行業(yè)的一部分了。UML提供了分析師,設(shè)計(jì)師和程序員之間在軟件設(shè)計(jì)時(shí)的通用語(yǔ)言。
UML實(shí)踐被應(yīng)用到面向?qū)ο蟮膯?wèn)題的解決上。想要學(xué)習(xí)UML必須熟悉面向?qū)ο蠼鉀Q問(wèn)題的根本原則――都是從模型的建造開(kāi)始的。一個(gè)模型model就是根本問(wèn)題的抽象。域domain就是問(wèn)題所處的真實(shí)世界。
模型是由對(duì)象objects組成的,它們之間通過(guò)相互發(fā)送消息messages來(lái)相互作用的。記住把一個(gè)對(duì)象想象成“活著的”。對(duì)象有他們知道的事(屬性attributes)和他們可以做的事(行為或操作behaviorsoroperations)。對(duì)象的屬性的值決定了它的狀態(tài)state。
類Classes是對(duì)象的“藍(lán)圖”。一個(gè)類在一個(gè)單獨(dú)的實(shí)體中封裝了屬性(數(shù)據(jù))和行為(方法或函數(shù))。對(duì)象是類的實(shí)例instances。
用例圖
UML實(shí)踐中用例圖Usecasediagrams描述了作為一個(gè)外部的觀察者的視角對(duì)系統(tǒng)的印象。強(qiáng)調(diào)這個(gè)系統(tǒng)是什么而不是這個(gè)系統(tǒng)怎么工作。
用例圖與情節(jié)緊緊相關(guān)的。情節(jié)scenario是指當(dāng)某個(gè)人與系統(tǒng)進(jìn)行互動(dòng)時(shí)發(fā)生的情況。下面是一個(gè)醫(yī)院門(mén)診部的情節(jié)。
“一個(gè)病人打電話給門(mén)診部預(yù)約一年一次的身體檢查。接待員找出在預(yù)約記錄本上找出最近的沒(méi)有預(yù)約過(guò)的時(shí)間,并記上那個(gè)時(shí)間的預(yù)約記錄。”
用例Usecase是為了完成一個(gè)工作或者達(dá)到一個(gè)目的的一系列情節(jié)的總和。角色actor是發(fā)動(dòng)與這個(gè)工作有關(guān)的事件的人或者事情。角色簡(jiǎn)單的扮演著人或者對(duì)象的作用。下面的圖是一個(gè)門(mén)診部MakeAppointment用例。角色是病人。角色與用例的聯(lián)系是通訊聯(lián)系communicationassociation(或簡(jiǎn)稱通訊communication)
角色是人狀的圖標(biāo),用例是一個(gè)橢圓,通訊是連接角色和用例的線。
一個(gè)用例圖是角色,用例,和它們之間的聯(lián)系的集合。我們已經(jīng)把MakeAppointment作為一個(gè)含有四個(gè)角色和四個(gè)用例的圖的一部分。注意一個(gè)單獨(dú)的用例可以有多個(gè)角色。
UML實(shí)踐中用例圖在三個(gè)領(lǐng)域很有作用。
決定特征(需求)。當(dāng)系統(tǒng)已經(jīng)分析好并且設(shè)計(jì)成型時(shí),新的用例產(chǎn)生新的需求
客戶通訊。使用用例圖很容易表示開(kāi)發(fā)者與客戶之間的聯(lián)系。
產(chǎn)生測(cè)試用例。一個(gè)用例的情節(jié)可能產(chǎn)生這些情節(jié)的一批測(cè)試用例。
活動(dòng)圖
UML實(shí)踐中活動(dòng)圖activitydiagram是一個(gè)很特別的流程圖。活動(dòng)圖和狀態(tài)圖之間是有關(guān)系的。狀態(tài)圖把焦點(diǎn)集中在過(guò)程中的對(duì)象身上,而活動(dòng)圖則集中在一個(gè)單獨(dú)過(guò)程動(dòng)作流程?;顒?dòng)圖告訴了我們活動(dòng)之間的依賴關(guān)系。
對(duì)我們的例子來(lái)說(shuō),我們使用如下的過(guò)程。“通過(guò)ATM來(lái)取錢(qián)。”
這個(gè)活動(dòng)有三個(gè)類Customer,ATM和Bank。整個(gè)過(guò)程從黑色圓圈開(kāi)始到黑白的同心圓結(jié)束?;顒?dòng)用圓角矩形表示。
活動(dòng)圖可以被分解成許多對(duì)象泳道swimlanes,可以決定哪些對(duì)象負(fù)責(zé)那些活動(dòng)。每個(gè)活動(dòng)都有一個(gè)單獨(dú)的轉(zhuǎn)移transition連接這其他的活動(dòng)。
轉(zhuǎn)移可能分支branch成兩個(gè)以上的互斥的轉(zhuǎn)移。保護(hù)表達(dá)式(在[]中)表示轉(zhuǎn)移是從一個(gè)分支中引出的。分支以及分支結(jié)束時(shí)的合并merge在圖中用菱形表示。
轉(zhuǎn)移也可以分解fork成兩個(gè)以上的并行活動(dòng)。分解以及分解結(jié)束時(shí)的線程結(jié)合join在圖中用粗黑線表示
【編輯推薦】