0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UML精準(zhǔn)入門指南3

jf_78858299 ? 來源:蝸?;ヂ?lián)網(wǎng) ? 作者:蝸牛互聯(lián)網(wǎng) ? 2023-05-05 11:17 ? 次閱讀

6.2 核心視圖

前面我們介紹了 UML 的核心元素,這些元素分別應(yīng)用于面對(duì)對(duì)象分析設(shè)計(jì)的各個(gè)階段,正是它們之間的相互組合,才形成了 UML 里的各種視圖,最終指導(dǎo)軟件設(shè)計(jì)。

接下來講講核心視圖里的結(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)用例視圖。

就借閱圖書的用例而言,業(yè)務(wù)用例視圖如下,它是完全從業(yè)務(wù)角度出發(fā),和計(jì)算機(jī)系統(tǒng)無(wú)關(guān)。

圖片

而我們?cè)跇I(yè)務(wù)用例分析的過程中,可以分解出一些關(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è)范圍。

下圖是借閱圖書的系統(tǒng)用例視圖。

圖片

6.2.1.2 類圖

類圖用于展示系統(tǒng)中的類及其相互之間的關(guān)系。

類圖建模常用的方式是從概念層,到說明層,最后到實(shí)現(xiàn)層這么一個(gè)抽象層次逐步降低和細(xì)化的過程。

概念層類圖位于業(yè)務(wù)建模階段,這個(gè)階段采用業(yè)務(wù)實(shí)體這個(gè)核心元素來表示。

下圖是網(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)。

說明層類圖位于概念建模階段,這個(gè)階段采用分析類這個(gè)核心元素來表示。

下圖展示了網(wǎng)上購(gòu)物的說明層類圖,這個(gè)類圖表達(dá)了從計(jì)算機(jī)的視角來說,網(wǎng)上購(gòu)物這個(gè)業(yè)務(wù)目標(biāo)是由哪些類來完成的,這些類的接口保證了這個(gè)業(yè)務(wù)目標(biāo)的達(dá)成。

圖片

實(shí)現(xiàn)層類圖位于設(shè)計(jì)建模階段,這個(gè)階段采用設(shè)計(jì)類這個(gè)核心元素來表示。

到了這一層,類圖可視作偽代碼,因此,在這個(gè)層次上,類必須明確采用哪種實(shí)現(xiàn)語(yǔ)言、什么設(shè)計(jì)模式、什么通信標(biāo)準(zhǔn)、遵循什么規(guī)范等。

下圖展示了查詢商品功能的類圖。可以看到,到了實(shí)現(xiàn)層類圖,類描述和類關(guān)系已經(jīng)是偽代碼級(jí)別了。

圖片

由此可見,在軟件生命周期的不同階段,類圖也有三種不同的表達(dá),他們分別是概念層類圖,說明層類圖和實(shí)現(xiàn)層類圖。

很多朋友在建模的時(shí)候只會(huì)用到實(shí)現(xiàn)層類圖,并非他們對(duì)問題領(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ì)象圖來描述,某個(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ān)系都繪制出來,看上去就會(huì)特別亂,特別復(fù)雜,也難以識(shí)別。

那為了更好的理解和管理這些建模元素,我們就需要有規(guī)律的對(duì)元素進(jìn)行組織。包圖就起到了這么一個(gè)作用,通過包這個(gè)容器,可以從大到小、從粗到細(xì)地將建模元素組織起來,便于我們的分析,交流和細(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)的過程,通過第三方軟件或者面向?qū)ο蠓治鲈O(shè)計(jì)過程中產(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)系兩種核心元素來繪制。常用于分布式應(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),最后通過數(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 元素,說明在靜態(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ì)象。也就是說,在面向?qū)ο蠓治鲈O(shè)計(jì)的三個(gè)階段(業(yè)務(wù)建模,概念建模,設(shè)計(jì)建模),都可以用狀態(tài)圖來表達(dá)。

下圖是一個(gè)產(chǎn)品的生命周期狀態(tài)圖。綠色部分是狀態(tài)圖相關(guān)的元素,紅色部分是元素的解釋。

圖片

從圖中,我們可以看到,狀態(tài)圖有以下關(guān)鍵元素:

  1. 初始狀態(tài):它是狀態(tài)機(jī)的起始位置,不需要事件的觸發(fā)。用實(shí)心圓圈表示。
  2. 狀態(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)。
  3. 轉(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ù)。
  4. 事件:事件是一個(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)。
  5. 條件:條件是一個(gè)布爾表達(dá)式,當(dāng)事件發(fā)生時(shí)將檢查這個(gè)表達(dá)式的值。條件求值結(jié)果可能決定轉(zhuǎn)移的分支,或者拒絕轉(zhuǎn)移。條件有可能引用當(dāng)前狀態(tài)。比如產(chǎn)品合不合格這個(gè)布爾判斷,決定了產(chǎn)品是可被銷售,還是不可被銷售。
  6. 最終狀態(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ù)流程的開始。一個(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ò)誤。
  • 同步:同步分為同步起始和同步匯合。
  • 同步起始表示從它開始多個(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ì)象交互過程,就能繪制出以下的對(duì)象活動(dòng)圖。

圖片

雖然 UML 允許用活動(dòng)圖繪制對(duì)象交互,但實(shí)際工作中,我從來沒用過。因?yàn)?UML 有其他更好的工具來繪制對(duì)象交互圖,比如接下來要講的時(shí)序圖。

6.2.2.3 時(shí)序圖

時(shí)序圖用于描述按時(shí)間順序排列的對(duì)象之間的交互模式。

前面類圖那一節(jié)有提過類有三個(gè)層次的觀點(diǎn):概念層、說明層和實(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í)序圖。

圖片

接下來介紹三種時(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)單消息:向右的實(shí)線箭頭,這種最為常用。
  • 返回消息:源消息的返回體,并非新消息。用向左的單向虛線箭頭表示。一般不需要為每個(gè)源消息都繪制返回消息,一方面源消息默認(rèn)情況下都有返回消息,另一方面過多的返回消息會(huì)讓圖變得更復(fù)雜。
  • 同步消息:表示發(fā)出消息的對(duì)象將停止所有后續(xù)動(dòng)作,一直等到接收消息方響應(yīng)。用向右?guī)А恋膯蜗驅(qū)嵕€箭頭表示。同步消息將阻塞源消息所有行為。通常程序之間的方法調(diào)用都是同步消息。
  • 異步消息:表示源消息發(fā)出消息后不等待響應(yīng),而可以繼續(xù)執(zhí)行其他操作。用向右的單向上箭頭表示。異步消息一般需要消息中間件的支持,如 MQ 等。
  • 會(huì)話:表示一次交互,在會(huì)話過程中所有對(duì)象共享一個(gè)上下文環(huán)境。例如操作上下文。
  • 銷毀:表示生命周期的終止。繪制在生命周期線的末端,一般沒有必要強(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í)體信息。

分析類展示出來的已經(jīng)是系統(tǒng)實(shí)現(xiàn)的原型,進(jìn)入設(shè)計(jì)建模階段,我們做的工作就是要選擇合適的實(shí)現(xiàn)方式來實(shí)現(xiàn)這個(gè)原型。

設(shè)計(jì)建模階段,我們采用設(shè)計(jì)模型時(shí)序圖來實(shí)現(xiàn)概念模型中的交互。

設(shè)計(jì)模型時(shí)序圖使用設(shè)計(jì)類作為對(duì)象繪制,也是我們?nèi)粘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)用過程的理解,而協(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í)體來繪制,目標(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)性和行為性都不可或缺,既要說明該事物長(zhǎng)什么樣子,又要說明該事物應(yīng)該怎么用。

七、總結(jié)

本文從一個(gè)示例開始,引入了 UML 的概念,介紹了什么是 UML,為什么要用 UML以及什么時(shí)候用 UML。我們了解一個(gè)事物,知其然也要知其所以然。

然后介紹了 UML 的組成結(jié)構(gòu),從元素和視圖的角度出發(fā),講解了繪制圖形的方法和相關(guān)概念。文中也給出了很多我親手繪制的樣例視圖,如有錯(cuò)誤之處,還望讀者指摘。

紙上得來終覺淺,絕知此事要躬行。知道和做到總有一段距離,重在實(shí)踐。

希望這篇文章對(duì)從事面向?qū)ο缶幊痰淖x者朋友能夠有所啟發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AN4232_STM32F3的模擬比較器入門指南

    AN4232_STM32F3的模擬比較器入門指南
    發(fā)表于 11-21 08:11 ?3次下載
    AN4232_STM32F<b class='flag-5'>3</b>的模擬比較器<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA6M3G – 快速入門指南

    EK-RA6M3G – 快速入門指南
    發(fā)表于 01-30 18:46 ?0次下載
    EK-RA6M<b class='flag-5'>3</b>G – 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA6M3 – 快速入門指南

    EK-RA6M3 – 快速入門指南
    發(fā)表于 01-30 18:46 ?1次下載
    EK-RA6M<b class='flag-5'>3</b> – 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA4M3 快速入門指南

    EK-RA4M3 快速入門指南
    發(fā)表于 02-03 19:16 ?1次下載
    EK-RA4M<b class='flag-5'>3</b> 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    Target Board S3A3(TB-S3A3) 快速入門指南

    Target Board S3A3 (TB-S3A3) 快速入門指南
    發(fā)表于 03-21 19:35 ?0次下載
    Target Board S<b class='flag-5'>3A3</b>(TB-S<b class='flag-5'>3A3</b>) 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    Target Board S3A6(TB-S3A6) 快速入門指南

    Target Board S3A6 (TB-S3A6) 快速入門指南
    發(fā)表于 03-21 19:35 ?0次下載
    Target Board S<b class='flag-5'>3</b>A6(TB-S<b class='flag-5'>3</b>A6) 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    S3A7 Development Kit(DK-S3A7) 快速入門指南

    S3A7 Development Kit (DK-S3A7) 快速入門指南
    發(fā)表于 03-27 20:18 ?0次下載
    S<b class='flag-5'>3</b>A7 Development Kit(DK-S<b class='flag-5'>3</b>A7) 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    UML精準(zhǔn)入門指南1

    自己。因此我希望可以結(jié)合自己的經(jīng)驗(yàn)和實(shí)踐,寫一篇 UML入門文章,幫助做面向?qū)ο蟮某绦騿T朋友能更好的利用它,從而順利完成自己的編程設(shè)計(jì)工作。
    的頭像 發(fā)表于 05-05 11:16 ?537次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>精準(zhǔn)入門</b><b class='flag-5'>指南</b>1

    UML精準(zhǔn)入門指南2

    自己。因此我希望可以結(jié)合自己的經(jīng)驗(yàn)和實(shí)踐,寫一篇 UML入門文章,幫助做面向?qū)ο蟮某绦騿T朋友能更好的利用它,從而順利完成自己的編程設(shè)計(jì)工作。
    的頭像 發(fā)表于 05-05 11:17 ?755次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>精準(zhǔn)入門</b><b class='flag-5'>指南</b>2

    EK-RA6M3G – 快速入門指南

    EK-RA6M3G – 快速入門指南
    發(fā)表于 07-03 20:10 ?0次下載
    EK-RA6M<b class='flag-5'>3</b>G – 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA6M3 – 快速入門指南

    EK-RA6M3 – 快速入門指南
    發(fā)表于 07-03 20:11 ?1次下載
    EK-RA6M<b class='flag-5'>3</b> – 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA4M3 快速入門指南

    EK-RA4M3 快速入門指南
    發(fā)表于 07-04 19:48 ?0次下載
    EK-RA4M<b class='flag-5'>3</b> 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    Target Board S3A3(TB-S3A3) 快速入門指南

    Target Board S3A3 (TB-S3A3) 快速入門指南
    發(fā)表于 07-07 19:34 ?0次下載
    Target Board S<b class='flag-5'>3A3</b>(TB-S<b class='flag-5'>3A3</b>) 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    Target Board S3A6(TB-S3A6) 快速入門指南

    Target Board S3A6 (TB-S3A6) 快速入門指南
    發(fā)表于 07-07 19:35 ?0次下載
    Target Board S<b class='flag-5'>3</b>A6(TB-S<b class='flag-5'>3</b>A6) 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    S3A7 Development Kit(DK-S3A7) 快速入門指南

    S3A7 Development Kit (DK-S3A7) 快速入門指南
    發(fā)表于 07-11 18:47 ?0次下載
    S<b class='flag-5'>3</b>A7 Development Kit(DK-S<b class='flag-5'>3</b>A7) 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>