6.2 核心視圖
前面我們介紹了 UML 的核心元素,這些元素分別應(yīng)用于面對(duì)對(duì)象分析設(shè)計(jì)的各個(gè)階段,正是它們之間的相互組合,才形成了 UML 里的各種視圖,最終指導(dǎo)軟件設(shè)計(jì)。
接下來(lái)講講核心視圖里的結(jié)構(gòu)視圖和行為視圖,下圖是大綱。
6.2.1 結(jié)構(gòu)視圖
結(jié)構(gòu)視圖也稱為靜態(tài)視圖。靜態(tài)視圖就是表達(dá)靜態(tài)事物的。它只描述事物的靜態(tài)結(jié)構(gòu),而不描述其動(dòng)態(tài)行為。這里簡(jiǎn)要介紹的靜態(tài)視圖包括用例圖,對(duì)象圖,類圖,組件圖,包圖和部署圖。
6.2.1.1 用例圖
用例圖包含參與者、用例和關(guān)系這三種核心元素,不同的視角可以得到不同的用例視圖,它展現(xiàn)了系統(tǒng)的功能性需求。
所謂不同的視角,可以對(duì)應(yīng)面向?qū)ο蠓治鲈O(shè)計(jì)的三階段。
- 建立業(yè)務(wù)模型階段,產(chǎn)出業(yè)務(wù)用例視圖。
- 建立概念模型階段,產(chǎn)出概念用例視圖。
- 建立設(shè)計(jì)模型階段,產(chǎn)出系統(tǒng)用例視圖。
就借閱圖書(shū)的用例而言,業(yè)務(wù)用例視圖如下,它是完全從業(yè)務(wù)角度出發(fā),和計(jì)算機(jī)系統(tǒng)無(wú)關(guān)。
而我們?cè)跇I(yè)務(wù)用例分析的過(guò)程中,可以分解出一些關(guān)鍵的概念用例,并建立它們之間的關(guān)系,如下圖(bu 表示業(yè)務(wù)用例,cu 表示概念用例)。
我們對(duì)業(yè)務(wù)用例進(jìn)行分析以后,就可以繪制系統(tǒng)用例視圖。但不是所有的業(yè)務(wù)用例都有系統(tǒng)用例對(duì)應(yīng),比如檢查借閱證可能是手工工作,就不需要納入系統(tǒng)建設(shè)范圍。
下圖是借閱圖書(shū)的系統(tǒng)用例視圖。
6.2.1.2 類圖
類圖用于展示系統(tǒng)中的類及其相互之間的關(guān)系。
類圖建模常用的方式是從概念層,到說(shuō)明層,最后到實(shí)現(xiàn)層這么一個(gè)抽象層次逐步降低和細(xì)化的過(guò)程。
概念層類圖位于業(yè)務(wù)建模階段,這個(gè)階段采用業(yè)務(wù)實(shí)體這個(gè)核心元素來(lái)表示。
下圖是網(wǎng)上購(gòu)物的業(yè)務(wù)實(shí)體圖。
網(wǎng)上購(gòu)物主要由商品、訂單、支付賬戶這幾個(gè)關(guān)鍵類構(gòu)成,這幾個(gè)類的交互能夠完成網(wǎng)上購(gòu)物這個(gè)業(yè)務(wù)目標(biāo)。
說(shuō)明層類圖位于概念建模階段,這個(gè)階段采用分析類這個(gè)核心元素來(lái)表示。
下圖展示了網(wǎng)上購(gòu)物的說(shuō)明層類圖,這個(gè)類圖表達(dá)了從計(jì)算機(jī)的視角來(lái)說(shuō),網(wǎng)上購(gòu)物這個(gè)業(yè)務(wù)目標(biāo)是由哪些類來(lái)完成的,這些類的接口保證了這個(gè)業(yè)務(wù)目標(biāo)的達(dá)成。
實(shí)現(xiàn)層類圖位于設(shè)計(jì)建模階段,這個(gè)階段采用設(shè)計(jì)類這個(gè)核心元素來(lái)表示。
到了這一層,類圖可視作偽代碼,因此,在這個(gè)層次上,類必須明確采用哪種實(shí)現(xiàn)語(yǔ)言、什么設(shè)計(jì)模式、什么通信標(biāo)準(zhǔn)、遵循什么規(guī)范等。
下圖展示了查詢商品功能的類圖。可以看到,到了實(shí)現(xiàn)層類圖,類描述和類關(guān)系已經(jīng)是偽代碼級(jí)別了。
由此可見(jiàn),在軟件生命周期的不同階段,類圖也有三種不同的表達(dá),他們分別是概念層類圖,說(shuō)明層類圖和實(shí)現(xiàn)層類圖。
很多朋友在建模的時(shí)候只會(huì)用到實(shí)現(xiàn)層類圖,并非他們對(duì)問(wèn)題領(lǐng)域足夠了解,而是不清楚類圖也分了這么三層。
6.2.1.3 對(duì)象圖
對(duì)象圖是類圖的實(shí)例,標(biāo)識(shí)和類圖基本相同。由于對(duì)象存在生命周期,對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在,因此對(duì)象圖可以被想象成正在運(yùn)行的系統(tǒng)在某一時(shí)刻的快照。
比如一個(gè)正在運(yùn)行的列車,如果用對(duì)象圖來(lái)描述,某個(gè)時(shí)間點(diǎn)你會(huì)發(fā)現(xiàn)以下靜態(tài)圖片:
- 當(dāng)前的運(yùn)行狀態(tài)(運(yùn)行中或停車中)
- 當(dāng)前的乘客數(shù)量。(如果捕捉在不同的時(shí)間,該值會(huì)變化)
6.2.1.4 包圖
在實(shí)際的項(xiàng)目中,建模過(guò)程獲得的元素可能是非常多的,如果將這些元素的關(guān)系都繪制出來(lái),看上去就會(huì)特別亂,特別復(fù)雜,也難以識(shí)別。
那為了更好的理解和管理這些建模元素,我們就需要有規(guī)律的對(duì)元素進(jìn)行組織。包圖就起到了這么一個(gè)作用,通過(guò)包這個(gè)容器,可以從大到小、從粗到細(xì)地將建模元素組織起來(lái),便于我們的分析,交流和細(xì)化。
下圖是網(wǎng)上購(gòu)物的領(lǐng)域包圖,它表達(dá)了關(guān)鍵業(yè)務(wù)領(lǐng)域及其依賴關(guān)系。
下圖展示了查詢商品功能的類層次,它表達(dá)了實(shí)現(xiàn)類位于哪個(gè)層次的軟件架構(gòu)的觀點(diǎn)。
6.2.1.5 組件圖
當(dāng)有些包能夠被多個(gè)場(chǎng)景重復(fù)使用,那這個(gè)包就可以認(rèn)為有著特定的功能,能夠完成特定的目標(biāo)。
這種情況下,包就可以定義為組件,組件是一種特殊的包,既起到了普通包組織和容納的作用,又能完成特定的功能。
比如模塊(登錄模塊),類庫(kù)(Java Guava 包)。
下圖可以表達(dá)組件實(shí)現(xiàn)的過(guò)程,通過(guò)第三方軟件或者面向?qū)ο蠓治鲈O(shè)計(jì)過(guò)程中產(chǎn)生的各種包,可以定義組件。
組件可以按功能分為以下幾類:模塊、子系統(tǒng)、庫(kù)、可執(zhí)行文件和程序包等等。
6.2.1.6 部署圖
部署圖描述了物理上系統(tǒng)運(yùn)行時(shí)的結(jié)構(gòu),包括系統(tǒng)中硬件的分布以及軟件部署到硬件上的具體方式。
部署圖用于設(shè)計(jì)建模階段,采用節(jié)點(diǎn)和關(guān)系兩種核心元素來(lái)繪制。常用于分布式應(yīng)用環(huán)境和多設(shè)備應(yīng)用環(huán)境。
上圖是一個(gè)簡(jiǎn)單的部署圖,表達(dá)了客戶端比如瀏覽器這個(gè)節(jié)點(diǎn),會(huì)請(qǐng)求到 Web 服務(wù)器節(jié)點(diǎn),最后通過(guò)數(shù)據(jù)庫(kù)服務(wù)器節(jié)點(diǎn)返回?cái)?shù)據(jù)。如果涉及分布式環(huán)境,就要考慮多個(gè) Web Server,多個(gè) Database Server,甚至考慮多機(jī)房,異地等物理層面的部署方式。
6.2.2 行為視圖
結(jié)構(gòu)視圖介紹完,我們講講行為視圖。
行為視圖也稱為動(dòng)態(tài)視圖。動(dòng)態(tài)視圖就是描述事物動(dòng)態(tài)行為的。動(dòng)態(tài)視圖不能獨(dú)立存在,它必須基于一個(gè)靜態(tài)視圖或者 UML 元素,說(shuō)明在靜態(tài)視圖規(guī)定的事物結(jié)構(gòu)下它們的動(dòng)態(tài)行為。
這里簡(jiǎn)要介紹的動(dòng)態(tài)視圖包括狀態(tài)圖、活動(dòng)圖、時(shí)序圖和協(xié)作圖。
6.2.2.1 狀態(tài)圖
狀態(tài)圖也稱狀態(tài)機(jī),它描述了一個(gè)對(duì)象的生命周期,你可以把它理解成一臺(tái)運(yùn)行中的機(jī)器,這臺(tái)機(jī)器負(fù)責(zé)這個(gè)對(duì)象在固定幾個(gè)狀態(tài)間的流轉(zhuǎn)。
這個(gè)對(duì)象可以是業(yè)務(wù)實(shí)體對(duì)象,也可以是分析類對(duì)象,還可以是設(shè)計(jì)類對(duì)象。也就是說(shuō),在面向?qū)ο蠓治鲈O(shè)計(jì)的三個(gè)階段(業(yè)務(wù)建模,概念建模,設(shè)計(jì)建模),都可以用狀態(tài)圖來(lái)表達(dá)。
下圖是一個(gè)產(chǎn)品的生命周期狀態(tài)圖。綠色部分是狀態(tài)圖相關(guān)的元素,紅色部分是元素的解釋。
從圖中,我們可以看到,狀態(tài)圖有以下關(guān)鍵元素:
- 初始狀態(tài):它是狀態(tài)機(jī)的起始位置,不需要事件的觸發(fā)。用實(shí)心圓圈表示。
- 狀態(tài):狀態(tài)是對(duì)象執(zhí)行某項(xiàng)活動(dòng)或者等待某個(gè)事件時(shí)的條件。比如要想執(zhí)行產(chǎn)品入庫(kù)動(dòng)作,產(chǎn)品得是未入庫(kù)的狀態(tài),如果想銷售某個(gè)產(chǎn)品,產(chǎn)品得是入庫(kù)的狀態(tài)。
- 轉(zhuǎn)移:轉(zhuǎn)移是兩個(gè)狀態(tài)之間的關(guān)系,它表示當(dāng)發(fā)生指定事件并且滿足指定條件時(shí),第一個(gè)狀態(tài)中的對(duì)象將執(zhí)行某些操作并進(jìn)入第二個(gè)狀態(tài)。比如產(chǎn)品入庫(kù)這個(gè)動(dòng)作,就將產(chǎn)品的狀態(tài)從未入庫(kù)轉(zhuǎn)移到了已入庫(kù)。
- 事件:事件是一個(gè)特定的動(dòng)作或行為,有時(shí)候也包括系統(tǒng)時(shí)鐘之類的定時(shí)器。如果條件滿足,事件的發(fā)生將觸發(fā)一個(gè)轉(zhuǎn)移。比如產(chǎn)品銷售這個(gè)動(dòng)作,出發(fā)產(chǎn)品從已入庫(kù)狀態(tài)轉(zhuǎn)移至已銷售狀態(tài)。
- 條件:條件是一個(gè)布爾表達(dá)式,當(dāng)事件發(fā)生時(shí)將檢查這個(gè)表達(dá)式的值。條件求值結(jié)果可能決定轉(zhuǎn)移的分支,或者拒絕轉(zhuǎn)移。條件有可能引用當(dāng)前狀態(tài)。比如產(chǎn)品合不合格這個(gè)布爾判斷,決定了產(chǎn)品是可被銷售,還是不可被銷售。
- 最終狀態(tài):最終狀態(tài)表示狀態(tài)機(jī)執(zhí)行結(jié)束,或者對(duì)象生命周期結(jié)束。用帶環(huán)的實(shí)心圓圈表示。
6.2.2.2 活動(dòng)圖
活動(dòng)圖描述了為了完成某一個(gè)目標(biāo)需要做的活動(dòng)以及這些活動(dòng)的執(zhí)行順序。
UML 中有兩個(gè)層面的活動(dòng)圖,一種是用例活動(dòng)圖,它用于描述用例場(chǎng)景,常用于業(yè)務(wù)建模階段,另一種是對(duì)象活動(dòng)圖,用于描述對(duì)象交互,常用于設(shè)計(jì)建模階段。
下圖是一個(gè)登機(jī)手續(xù)辦理的用例活動(dòng)圖。綠色部分是活動(dòng)圖相關(guān)的元素,紅色部分是元素的解釋。
從圖中,我們可以看到,活動(dòng)圖有以下幾個(gè)關(guān)鍵元素:
- 起始點(diǎn):起始點(diǎn)標(biāo)記業(yè)務(wù)流程的開(kāi)始。一個(gè)活動(dòng)圖僅有一個(gè)。用實(shí)心圓圈表示。
- 活動(dòng):活動(dòng)是業(yè)務(wù)流程中的一個(gè)執(zhí)行單元。比如辦理登機(jī)手續(xù)需要出示機(jī)票和身份證這樣的動(dòng)作。
- 判斷:判斷根據(jù)某個(gè)條件進(jìn)行決策,執(zhí)行不同的流程分支。比如身份核對(duì)決定了你能否繼續(xù)辦理登機(jī)手續(xù)。
- 基本流:基本流表示最主要、最頻繁使用的、默認(rèn)的業(yè)務(wù)流程分支。比如身份核對(duì)的正常分支。
- 支流:支流是進(jìn)行判斷后走進(jìn)的業(yè)務(wù)流程分支。比如圖中無(wú)行李分支。
- 異常流:異常流表示非正常的、不是業(yè)務(wù)目標(biāo)期待的、容錯(cuò)性的、處理意外情況的業(yè)務(wù)流程分支。比如身份證核對(duì)錯(cuò)誤。
- 同步:同步分為同步起始和同步匯合。
- 同步起始表示從它開(kāi)始多個(gè)支流并行執(zhí)行。比如托運(yùn)行李的處理和登機(jī)牌的打印操作,可以并行。
- 同步匯合表示多個(gè)支流同時(shí)到達(dá)后再執(zhí)行后續(xù)活動(dòng)。
- 結(jié)束點(diǎn):結(jié)束點(diǎn)表示業(yè)務(wù)流程的終止。一個(gè)或多個(gè)。
用例活動(dòng)圖常常是從業(yè)務(wù)的角度上,分析要完成某個(gè)目標(biāo),要執(zhí)行哪些活動(dòng)。如果在系統(tǒng)設(shè)計(jì)的角度上,要表達(dá)完成目標(biāo)需要的活動(dòng),就需要用到對(duì)象活動(dòng)圖。
比如根據(jù)查詢商品的對(duì)象交互過(guò)程,就能繪制出以下的對(duì)象活動(dòng)圖。
雖然 UML 允許用活動(dòng)圖繪制對(duì)象交互,但實(shí)際工作中,我從來(lái)沒(méi)用過(guò)。因?yàn)?UML 有其他更好的工具來(lái)繪制對(duì)象交互圖,比如接下來(lái)要講的時(shí)序圖。
6.2.2.3 時(shí)序圖
時(shí)序圖用于描述按時(shí)間順序排列的對(duì)象之間的交互模式。
前面類圖那一節(jié)有提過(guò)類有三個(gè)層次的觀點(diǎn):概念層、說(shuō)明層和實(shí)現(xiàn)層,分別對(duì)應(yīng)于面向?qū)ο蠓治鲈O(shè)計(jì)的業(yè)務(wù)建模階段、概念建模階段和設(shè)計(jì)建模階段,相應(yīng)的,也可以在這三個(gè)層次上分別對(duì)業(yè)務(wù)實(shí)體對(duì)象、分析類對(duì)象和設(shè)計(jì)類對(duì)象繪制業(yè)務(wù)模型時(shí)序圖、概念模型時(shí)序圖和設(shè)計(jì)模型時(shí)序圖。
接下來(lái)介紹三種時(shí)序圖。
業(yè)務(wù)模型時(shí)序圖用于為領(lǐng)域模型中的業(yè)務(wù)實(shí)體交互建模,目標(biāo)是實(shí)現(xiàn)業(yè)務(wù)用例。
上一節(jié)提到的活動(dòng)圖,可以幫助我們發(fā)現(xiàn)業(yè)務(wù)實(shí)體,活動(dòng)圖也可以很輕易的轉(zhuǎn)換成時(shí)序圖,下圖是網(wǎng)上購(gòu)買商品的業(yè)務(wù)模型時(shí)序圖。
時(shí)序圖中會(huì)涉及一些 UML 元素,這里列舉常用的幾個(gè):
- 對(duì)象:表示參與交互的對(duì)象。每個(gè)對(duì)象都有一條生命周期線,對(duì)象被激活時(shí),生命周期線上會(huì)出現(xiàn)一個(gè)長(zhǎng)條(會(huì)話),表示對(duì)象的存在。
- 生命周期線:表示對(duì)象的存在。當(dāng)對(duì)象被激活時(shí),生命周期線上出現(xiàn)會(huì)話,表示對(duì)象參與了這個(gè)會(huì)話。
- 消息:表示對(duì)象間交互所發(fā)生的動(dòng)作。由一個(gè)對(duì)象的生命周期線指向另一個(gè)對(duì)象的生命周期線。常見(jiàn)的消息類型有以下幾種:
- 簡(jiǎn)單消息:向右的實(shí)線箭頭,這種最為常用。
- 返回消息:源消息的返回體,并非新消息。用向左的單向虛線箭頭表示。一般不需要為每個(gè)源消息都繪制返回消息,一方面源消息默認(rèn)情況下都有返回消息,另一方面過(guò)多的返回消息會(huì)讓圖變得更復(fù)雜。
- 同步消息:表示發(fā)出消息的對(duì)象將停止所有后續(xù)動(dòng)作,一直等到接收消息方響應(yīng)。用向右?guī)А恋膯蜗驅(qū)嵕€箭頭表示。同步消息將阻塞源消息所有行為。通常程序之間的方法調(diào)用都是同步消息。
- 異步消息:表示源消息發(fā)出消息后不等待響應(yīng),而可以繼續(xù)執(zhí)行其他操作。用向右的單向上箭頭表示。異步消息一般需要消息中間件的支持,如 MQ 等。
- 會(huì)話:表示一次交互,在會(huì)話過(guò)程中所有對(duì)象共享一個(gè)上下文環(huán)境。例如操作上下文。
- 銷毀:表示生命周期的終止。繪制在生命周期線的末端,一般沒(méi)有必要強(qiáng)調(diào)。
業(yè)務(wù)模型時(shí)序圖是業(yè)務(wù)建模階段的產(chǎn)物,它展現(xiàn)了業(yè)務(wù)的實(shí)際需求,因此使用的描述語(yǔ)言應(yīng)當(dāng)采用業(yè)務(wù)術(shù)語(yǔ)。
進(jìn)入概念建模階段,可以采用分析類繪制概念模型時(shí)序圖。和業(yè)務(wù)模型時(shí)序圖相比,同樣是展現(xiàn)業(yè)務(wù)需求,不同點(diǎn)在于分析類代表了系統(tǒng)原型,所以這個(gè)階段的時(shí)序圖已經(jīng)帶有了計(jì)算機(jī)層面的理解。
因此,概念模型時(shí)序圖既保留了實(shí)際業(yè)務(wù)需求,又得到了計(jì)算機(jī)實(shí)現(xiàn)的基本理念。如下圖所示。
可以看到,在概念模型時(shí)序圖里,相對(duì)于業(yè)務(wù)模型時(shí)序圖,我們的表達(dá)增加了安全認(rèn)證和商品目錄。這是因?yàn)槲覀儗?shí)際在做登錄這個(gè)功能時(shí),我們的軟件系統(tǒng)需要關(guān)心身份核驗(yàn)。我們?cè)讷@取商品時(shí),為了避免雜亂需要對(duì)其進(jìn)行分類。
另外,我們的業(yè)務(wù)實(shí)體轉(zhuǎn)為分析類進(jìn)行表達(dá),網(wǎng)站作為邊界類,用于隔離用戶操作和系統(tǒng)行為。安全認(rèn)證作為控制類,用于決定是否能成功登錄網(wǎng)站。商品目錄和商品作為實(shí)體類,用于表達(dá)用戶實(shí)際想看到或者操作的實(shí)體信息。
分析類展示出來(lái)的已經(jīng)是系統(tǒng)實(shí)現(xiàn)的原型,進(jìn)入設(shè)計(jì)建模階段,我們做的工作就是要選擇合適的實(shí)現(xiàn)方式來(lái)實(shí)現(xiàn)這個(gè)原型。
設(shè)計(jì)建模階段,我們采用設(shè)計(jì)模型時(shí)序圖來(lái)實(shí)現(xiàn)概念模型中的交互。
設(shè)計(jì)模型時(shí)序圖使用設(shè)計(jì)類作為對(duì)象繪制,也是我們?nèi)粘i_(kāi)發(fā)設(shè)計(jì)中最為常用的動(dòng)態(tài)視圖。以下是商品查詢的設(shè)計(jì)模型時(shí)序圖。
可以看到,在設(shè)計(jì)模型時(shí)序圖里,消息會(huì)細(xì)致到方法級(jí)別。因?yàn)樵谶@個(gè)階段,相關(guān)的技術(shù)選型,比如編程語(yǔ)言,交互協(xié)議,中間件等已經(jīng)比較明確了。
時(shí)序圖除了在建模的三個(gè)階段使用外,當(dāng)你需要表達(dá)對(duì)象的交互,或者想分析對(duì)象的職責(zé)和接口時(shí),都可以使用時(shí)序圖。
6.2.2.4 協(xié)作圖
協(xié)作圖和時(shí)序圖一樣,也是描述對(duì)象之間的交互模式,不同的是,時(shí)序圖在意的是對(duì)象交互的執(zhí)行順序,而協(xié)作圖在意的是對(duì)象間的結(jié)構(gòu)關(guān)系。
因此,時(shí)序圖適用于獲得對(duì)調(diào)用過(guò)程的理解,而協(xié)作圖適用于獲得對(duì)對(duì)象結(jié)構(gòu)的理解。
協(xié)作圖可以和時(shí)序圖互相轉(zhuǎn)換,對(duì)應(yīng)時(shí)序圖的三種表達(dá)方式,協(xié)作圖也分為業(yè)務(wù)模型協(xié)作圖,概念模型協(xié)作圖和設(shè)計(jì)模型時(shí)序圖。本文只介紹業(yè)務(wù)模型協(xié)作圖,另外兩種協(xié)作圖可以由相應(yīng)的時(shí)序圖推導(dǎo),這里就不贅述了。
業(yè)務(wù)模型協(xié)作圖同樣采用業(yè)務(wù)實(shí)體來(lái)繪制,目標(biāo)也是實(shí)現(xiàn)用例場(chǎng)景。下圖是網(wǎng)上購(gòu)買商品的業(yè)務(wù)模型協(xié)作圖。
可以看到,協(xié)作圖和時(shí)序圖相比,對(duì)象間的結(jié)構(gòu)一目了然,很容易知道哪些消息會(huì)影響哪些對(duì)象或者哪些對(duì)象需要提供哪些接口。但在執(zhí)行順序的表達(dá)上就很弱,必須依賴消息文本里的數(shù)字。
以下是協(xié)作圖常用的 UML 元素:
- 對(duì)象:表示參與協(xié)作的對(duì)象。
- 對(duì)象關(guān)聯(lián):用于連接兩個(gè)對(duì)象,表示二者的關(guān)聯(lián)。這種關(guān)聯(lián)是臨時(shí)的,只在本次交互中有效。
- 消息:和時(shí)序圖中的消息定義一致。
- 消息序號(hào):表明消息傳遞的先后順序。
6.2.3 小結(jié)
本節(jié)介紹了 UML 的核心視圖,我們?cè)倏聪潞诵囊晥D的大綱。
核心視圖分靜態(tài)視圖和動(dòng)態(tài)視圖。靜態(tài)視圖表達(dá)事物的結(jié)構(gòu)性觀點(diǎn),動(dòng)態(tài)視圖表達(dá)事物的行為性觀點(diǎn)。
一個(gè)好的建模,結(jié)構(gòu)性和行為性都不可或缺,既要說(shuō)明該事物長(zhǎng)什么樣子,又要說(shuō)明該事物應(yīng)該怎么用。
七、總結(jié)
本文從一個(gè)示例開(kāi)始,引入了 UML 的概念,介紹了什么是 UML,為什么要用 UML以及什么時(shí)候用 UML。我們了解一個(gè)事物,知其然也要知其所以然。
然后介紹了 UML 的組成結(jié)構(gòu),從元素和視圖的角度出發(fā),講解了繪制圖形的方法和相關(guān)概念。文中也給出了很多我親手繪制的樣例視圖,如有錯(cuò)誤之處,還望讀者指摘。
紙上得來(lái)終覺(jué)淺,絕知此事要躬行。知道和做到總有一段距離,重在實(shí)踐。
希望這篇文章對(duì)從事面向?qū)ο缶幊痰淖x者朋友能夠有所啟發(fā)。
-
UML
+關(guān)注
關(guān)注
0文章
122瀏覽量
30872 -
面向?qū)ο?/span>
+關(guān)注
關(guān)注
0文章
64瀏覽量
9991 -
編程設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
9瀏覽量
6458
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論