UML20以上14圖的解釋、分類記憶方法及類之間6種關(guān)系

UML2.0 分類

以下是教材書上的順序:

(1)類圖(Class Diagram)。

類圖描述一組類、 接口、協(xié)作和它們之間的關(guān)系。在00系統(tǒng)的建模中,最常見的圖就是類圖。類圖給出了系統(tǒng)的靜態(tài)設(shè)計(jì)視圖,活動(dòng)類的類圖給出了系統(tǒng)的靜態(tài)進(jìn)程視圖。

(2)對(duì)象圖(Object Diagram)。

對(duì)象圖描述一組對(duì)象 及它們之間的關(guān)系。對(duì)象圖描述了在類圖中所建立的事物實(shí)例的靜態(tài)快照。和類圖一樣,這些圖給出系統(tǒng)的靜態(tài)設(shè)計(jì)視圖或靜態(tài)進(jìn)程視圖,但它們是從真實(shí)案例或原型案例的角度建立的。

(3)構(gòu)件圖(Component Diagram)。

構(gòu)件圖描述一個(gè)封裝的類和它的接口、端口,以及由內(nèi)嵌的構(gòu)件和連接件構(gòu)成的內(nèi)部結(jié)構(gòu)。構(gòu)件圖用于表示系統(tǒng)的靜態(tài)設(shè)計(jì)實(shí)現(xiàn)視圖。對(duì)于由小的部件構(gòu)建大的系統(tǒng)來(lái)說,構(gòu)件圖是很重要的。構(gòu)件圖是類圖的變體。

(4)組合結(jié)構(gòu)圖(Composite Structure Diagram)。

組合結(jié)構(gòu)圖描述結(jié)構(gòu)化類(如構(gòu)件或類)的內(nèi)部結(jié)構(gòu),包括結(jié)構(gòu)化類與系統(tǒng)其余部分的交互點(diǎn)。組合結(jié)構(gòu)圖用于畫出結(jié)構(gòu)化類的內(nèi)部?jī)?nèi)容。

(5)用例圖(Use Case Diagram)。

用例圖描述組用例、參與者及它們之間的關(guān)系。用例圖給出系統(tǒng)的靜態(tài)用例視圖。這些圖在對(duì)系統(tǒng)的行為進(jìn)行組織和建模時(shí)是非常重要的。

(6)順序圖( Sequence Diagram,序列圖)。

順序圖是一種交互圖( Interaction Diagram),交互圖展現(xiàn)了一種交互,由一組對(duì)象或參與者以及它們之間可能發(fā)送的消息構(gòu)成。交互圖專注于系統(tǒng)的動(dòng)態(tài)視圖。順序圖是強(qiáng)調(diào)消息的時(shí)間次序的交互圖。

(7)通信圖(Communication Diagram)。

通信圖也是一種交互圖,強(qiáng)調(diào)收發(fā)消息的對(duì)象或參與者的結(jié)構(gòu)組織。該圖反映了對(duì)象之間的消息交互,與順序圖相似,但與順序圖不同的是,協(xié)作圖不但描述了對(duì)象之間的交互還描述了交互的對(duì)象之間的鏈接關(guān)系,即通信圖同時(shí)反映了系統(tǒng)的動(dòng)態(tài)和靜態(tài)特征。在UML 1.X版本中,通信圖稱為協(xié)作圖(Collaboration Diagram)。

(8)定時(shí)圖(Timing; Diagram, 計(jì)時(shí)圖)。

定時(shí)圖也是一種交互圖,強(qiáng)調(diào)消息跨越不同對(duì)象或參與者的實(shí)際時(shí)間,而不僅僅只是關(guān)心消息的相對(duì)順序。

(9)狀態(tài)圖(State Diagram)。

狀態(tài)圖描述一個(gè)狀態(tài)機(jī),由狀態(tài)、轉(zhuǎn)移、事件和活動(dòng)組成。狀態(tài)圖給出了對(duì)象的動(dòng)態(tài)視圖。它對(duì)于對(duì)于???、類或協(xié)作的行為建模尤為重要,而且它強(qiáng)調(diào)事件導(dǎo)致的對(duì)象行為,有助于對(duì)反應(yīng)式系統(tǒng)建模。

(10)活動(dòng)圖(Activity Diagram)。

活動(dòng)圖將進(jìn)程或其他計(jì)算結(jié)構(gòu)展示為計(jì)算機(jī)內(nèi)部一步步的控制流和數(shù)據(jù)流?;顒?dòng)圖專注于系統(tǒng)的動(dòng)態(tài)視圖。它對(duì)系統(tǒng)的功能建模和業(yè)務(wù)流程建模特別重要,并強(qiáng)調(diào)對(duì)象間的控制流程。

(11)部署圖(Deployment Diagram)。

部署圖描述對(duì)運(yùn)行時(shí)的的處理結(jié)點(diǎn)及在其中生存的構(gòu)件的配望。部署圖給出架構(gòu)的靜態(tài)部署視圖,通常個(gè)結(jié)點(diǎn)包含一個(gè)或多個(gè)部

署圖。

(12)制品圖(Artifact Diagram)。

制品圖描述計(jì)算機(jī)中一個(gè)系統(tǒng)的物理結(jié)構(gòu)。制品包括文件、數(shù)據(jù)庫(kù)和類似的物理比特集合。制品圖通常與部署圖一起使用。 制品也給出了它們實(shí)現(xiàn)的類和構(gòu)件。

(13)包圖(Package Diagram)。

包圖描述由模型本身分解而成的組織單元,以及它們之間的依賴關(guān)系。

(14)交互概覽圖(Interaction Overview Diagram)。

交互概覽圖是活動(dòng)圖和順序圖的混合物。


結(jié)構(gòu)性視圖包括(七種):類圖、對(duì)象圖、包圖、組合結(jié)構(gòu)圖、構(gòu)件圖、部署圖和制品圖

行為性視圖包括(七種):例圖、順序圖、通信圖、定時(shí)圖、狀態(tài)圖、活動(dòng)圖、交互圖概覽圖

其中交互圖:順序圖、通信圖、定時(shí)圖和交互概覽圖

其中實(shí)現(xiàn)圖:構(gòu)件圖、部署圖、制品圖

其中靜態(tài)圖:類圖、對(duì)象圖、包圖、結(jié)合結(jié)構(gòu)圖;


UML關(guān)系圖符號(hào)

? ? ? ? 依賴-->、關(guān)聯(lián)、聚合、合成、泛化、實(shí)現(xiàn);

? ? ? ? 強(qiáng)弱關(guān)系,由弱到強(qiáng)分別是 依賴 < 關(guān)聯(lián) < 聚合 < 組合 < 泛化 = 實(shí)現(xiàn);

? ? ? ?以下這段是輔助記憶的內(nèi)容,會(huì)的同學(xué)可以直接跳過。

? ? ? ? 小糊涂仙畫圖依賴UML說明書,圖與圖之間的關(guān)聯(lián)都畫不清,讓圖片都集重在一起,換一種說法就是簡(jiǎn)單形狀組的圖,但這是我們泛泛而看的印象,其實(shí)是他對(duì)大自然界的抽象實(shí)現(xiàn),大道從簡(jiǎn),UML統(tǒng)一建模語(yǔ)言實(shí)現(xiàn)一切;

后面的例子將針對(duì)某個(gè)具體目的來(lái)獨(dú)立地展示各種關(guān)系。雖然語(yǔ)法無(wú)誤,但這些例子可進(jìn)一步精煉,在它們的有效范圍內(nèi)包括更多的語(yǔ)義。

依賴(Dependency)

實(shí)體之間一個(gè)“使用”關(guān)系暗示一個(gè)實(shí)體的規(guī)范發(fā)生變化后,可能影響依賴于它的其他實(shí)例(圖D)。更具體地說,它可轉(zhuǎn)換為對(duì)不在實(shí)例作用域內(nèi)的一個(gè)類或?qū)ο蟮娜魏晤愋偷囊?。其中包括一個(gè)局部變量,對(duì)通過方法調(diào)用而獲得的一個(gè)對(duì)象的引用(如下例所示),或者對(duì)一個(gè)類的靜態(tài)方法的引用(同時(shí)不存在那個(gè)類的一個(gè)實(shí)例)。也可利用“依賴”來(lái)表示包和包之間的關(guān)系。由于包中含有類,所以你可根據(jù)那些包中的各個(gè)類之間的關(guān)系,表示出包和包的關(guān)系。

“動(dòng)物幾大特征,比如有新陳代謝,能繁殖。而動(dòng)物要有生命力,需要氧氣、水以及食物等。也就是說,動(dòng)物依賴于氧氣和水。他們之間是依賴關(guān)系(Dependency),用虛線箭頭來(lái)表示?!?/p>

關(guān)聯(lián)(Association)

實(shí)體之間的一個(gè)結(jié)構(gòu)化關(guān)系表明對(duì)象是相互連接的。UML關(guān)系圖符號(hào)中關(guān)聯(lián)關(guān)系的箭頭是可選的,它用于指定導(dǎo)航能力。如果沒有箭頭,暗示是一種雙向的導(dǎo)航能力。在Java中,關(guān)聯(lián)(圖E)轉(zhuǎn)換為一個(gè)實(shí)例作用域的變量,就像圖E的“Java”區(qū)域所展示的代碼那樣??蔀橐粋€(gè)關(guān)聯(lián)附加其他修飾符。多重性(Multiplicity)修飾符暗示著實(shí)例之間的關(guān)系。在示范代碼中,Employee可以有0個(gè)或更多的TimeCard對(duì)象。但是,每個(gè)TimeCard只從屬于單獨(dú)一個(gè)Employee。

聚合(Aggregation)

UML關(guān)系圖符號(hào)中聚合(圖F)是關(guān)聯(lián)的一種形式,代表兩個(gè)類之間的整體/局部關(guān)系。聚合暗示著整體在概念上處于比局部更高的一個(gè)級(jí)別,而關(guān)聯(lián)暗示兩個(gè)類在概念上位于相同的級(jí)別。聚合也轉(zhuǎn)換成Java中的一個(gè)實(shí)例作用域變量。

關(guān)聯(lián)和聚合的區(qū)別純粹是概念上的,而且嚴(yán)格反映在語(yǔ)義上。聚合還暗示著實(shí)例圖中不存在回路。換言之,只能是一種單向關(guān)系。

合成(Composition)

合成(圖G)是聚合的一種特殊形式,暗示“局部”在“整體”內(nèi)部的生存期職責(zé)。合成也是非共享的。所以,雖然局部不一定要隨整體的銷毀而被銷毀,但整體要么負(fù)責(zé)保持局部的存活狀態(tài),要么負(fù)責(zé)將其銷毀。局部不可與其他整體共享。但是,整體可將所有權(quán)轉(zhuǎn)交給另一個(gè)對(duì)象,后者隨即將承擔(dān)生存期職責(zé)。

Employee和TimeCard的關(guān)系或許更適合表示成“合成”,而不是表示成“關(guān)聯(lián)”。

泛化(Generalization)

泛化(圖H)表示一個(gè)更泛化的元素和一個(gè)更具體的元素之間的關(guān)系。UML關(guān)系圖符號(hào)中泛化是用于對(duì)繼承進(jìn)行建模的UML元素。在Java中,用extends關(guān)鍵字來(lái)直接表示這種關(guān)系。

實(shí)現(xiàn)(Realization)

實(shí)例(圖I)關(guān)系指定兩個(gè)實(shí)體之間的一個(gè)合同。換言之,一個(gè)實(shí)體定義一個(gè)合同,而另一個(gè)實(shí)體保證履行該合同。對(duì)Java應(yīng)用程序進(jìn)行建模時(shí),實(shí)現(xiàn)關(guān)系可直接用implements關(guān)鍵字來(lái)表示。

鏈接:http://www.itdecent.cn/p/378bc95f261c

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容