
以下是教材書上的順序:
(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