1.事物
UML中有4種事物:結(jié)構(gòu)事物夏块、行為事物、分組事物和注釋事物。
(1)結(jié)構(gòu)事物(structural thing)琴许。結(jié)構(gòu)事物是UML模型中的名詞。它們通常是模型的靜態(tài)部分溉躲,描述概念或物理元素虚吟。結(jié)構(gòu)事物包括類(class)、接口(interface)签财、協(xié)作(collaboration)串慰、用例(use case)、主動(dòng)類(active class)唱蒸、構(gòu)件(component)邦鲫、制品(artifact)和結(jié)點(diǎn)(node)。
各種結(jié)構(gòu)事物的圖形化表示如下圖所示:
(2)行為事物(behavior thing)神汹。行為事物是UML模型的動(dòng)態(tài)部分庆捺。它們是模型中的動(dòng)詞,描述了跨越時(shí)間和空間的行為屁魏。行為事物包括交互(interaction)滔以、狀態(tài)機(jī)(state machine)和活動(dòng)(activity)。各種行為事物的圖形化表示如下圖所示:
交互由在特定語(yǔ)境中共同完成一定任務(wù)的一組對(duì)象之間交換的消息組成氓拼。一個(gè)對(duì)象群體的行為或單個(gè)操作的行為可以用一個(gè)交互來(lái)描述你画。交互涉及一些其他元素,包括消息桃漾、動(dòng)作序列(由一個(gè)消息所引起的行為)和鏈(對(duì)象見的連接)坏匪。在圖形上,把一個(gè)消息表示為一條有向直線撬统,通常在表示消息的線段上總有操作名适滓。
狀態(tài)機(jī)描述了一個(gè)對(duì)象或一個(gè)交互在生命期內(nèi)響應(yīng)時(shí)間所經(jīng)歷的狀態(tài)序列。單個(gè)類或一組類之間協(xié)作的行為可以用狀態(tài)機(jī)來(lái)描述恋追。一個(gè)狀態(tài)機(jī)設(shè)計(jì)到一些其他元素凭迹,包括狀態(tài)、轉(zhuǎn)換(從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的流)苦囱、事件(出發(fā)轉(zhuǎn)換的事物)和活動(dòng)(對(duì)一個(gè)轉(zhuǎn)換的響應(yīng))嗅绸。在圖形上,把狀態(tài)表示為一個(gè)圓角矩形沿彭,通常在圓角矩形中含有狀態(tài)的名稱及其子狀態(tài)朽砰。
活動(dòng)是描述計(jì)算機(jī)過(guò)程執(zhí)行的步驟序列,注重步驟之間的流而不關(guān)心哪個(gè)對(duì)象執(zhí)行哪個(gè)步驟喉刘∏迫幔活動(dòng)的一個(gè)步驟稱為一個(gè)動(dòng)作。在圖形上睦裳,把動(dòng)作畫成一個(gè)圓角矩形造锅,在其中含有指明其用途的名字。狀態(tài)和動(dòng)作靠不同的語(yǔ)境得以區(qū)別廉邑。
交互哥蔚、狀態(tài)機(jī)和活動(dòng)是可以包含在UML模型中的基本行為事物。在語(yǔ)義上蛛蒙,這些元素通常與各種結(jié)構(gòu)元素(主要是類糙箍、協(xié)作和對(duì)象)相關(guān)。
(3)分組事物(grouping thing)牵祟。分組事物是UML模型的組織部分深夯,是一些由模型分解成的“盒子”。在所有的分組事物中诺苹,最主要的分組事物是包(package)咕晋。包是把元素組織成組的機(jī)制,這種機(jī)制具有多種用途收奔。結(jié)構(gòu)事物掌呜、行為事物甚至其他分組事物都可以放進(jìn)包內(nèi)。包與構(gòu)件(僅在運(yùn)行時(shí)存在)不同坪哄,它純粹是概念上的(即它僅在開發(fā)時(shí)存在)质蕉。包的圖形化表示如下圖所示:
(4)注釋事物(annotational thing)。注釋事物是UML模型的解釋部分翩肌。這些解釋事物用來(lái)描述饰剥、說(shuō)明和標(biāo)注模型的任何元素。注解(note)是一種主要的注釋事物摧阅。注解是一個(gè)依附于一個(gè)元素或者一組元素之上汰蓉,對(duì)它進(jìn)行約束或解釋的簡(jiǎn)單符號(hào)。注解的圖形化表示如下圖所示:
2.關(guān)系
UML中有4中關(guān)系:依賴棒卷、關(guān)聯(lián)顾孽、泛化和實(shí)現(xiàn)。
(1)依賴(dependency)比规。依賴是兩個(gè)事物間的語(yǔ)義關(guān)系若厚,其中一個(gè)事物(獨(dú)立事物)發(fā)生變化會(huì)影響另一個(gè)事物(依賴事物)的語(yǔ)義。在圖形上蜒什,把一個(gè)依賴畫成一條可能有方向的虛線测秸,如下圖所示:
(2)關(guān)聯(lián)(association)。關(guān)聯(lián)是一種結(jié)構(gòu)關(guān)系,它描述了一組鏈霎冯,鏈?zhǔn)綄?duì)象之間的連接铃拇。聚集(aggregation)是一種特殊類型的關(guān)聯(lián),它描述了中體和部分間的結(jié)構(gòu)關(guān)系沈撞。關(guān)聯(lián)和聚集的圖形化表示如下圖所示:
在關(guān)聯(lián)上可以標(biāo)注重復(fù)度(multiplicity)和角色(role)慷荔。
(3)泛化(generalization)。泛化是一種特殊/一般關(guān)系缠俺,特殊關(guān)系(子元素)的對(duì)象可替代一般元素(父元素)的對(duì)象显晶。用這種方法,子元素共享了父元素的結(jié)構(gòu)和行為壹士。在圖形上磷雇,把一個(gè)泛化關(guān)系畫成一條帶有空心箭頭的實(shí)線,它指向父元素躏救,如下圖所示:
泛化
(4)實(shí)現(xiàn)(realization)唯笙。實(shí)現(xiàn)是類元之間的語(yǔ)義關(guān)系,其中一個(gè)類元制定了由另一個(gè)類元保證執(zhí)行的契約落剪。在兩種情況下會(huì)使用實(shí)現(xiàn)關(guān)系:一種是在接口和實(shí)現(xiàn)他們的類或構(gòu)件之間睁本;另一種是在用例和實(shí)現(xiàn)它們的協(xié)作之間。在圖形上忠怖,把一個(gè)實(shí)現(xiàn)關(guān)系畫成一條帶有空心箭頭的虛線呢堰,如下圖所示:
這四種關(guān)系是UML模型中可以包含的基本關(guān)系事物。它們也有變體凡泣,例如枉疼,依賴的變體有精華、跟蹤鞋拟、包含和延伸骂维。
3.UML中的圖
圖(diagram)是一組元素的圖形表示,大多數(shù)情況下把圖畫成頂點(diǎn)(代表事物)和缓馗佟(代表關(guān)系)的連通圖航闺。為了對(duì)系統(tǒng)進(jìn)行可視化,可以從不同的角度畫圖猴誊,這樣圖是對(duì)系統(tǒng)的投影潦刃。 UML2.0提供了13種圖,分別是類圖懈叹、對(duì)象圖乖杠、用例圖、序列圖澄成、通信圖胧洒、狀態(tài)圖畏吓、活動(dòng)圖、構(gòu)件圖卫漫、部署圖菲饼、組合結(jié)構(gòu)圖、包圖汛兜、交互概覽圖和計(jì)時(shí)圖巴粪。序列圖通今、通信圖粥谬、交互概覽圖和計(jì)時(shí)圖均被稱為交互圖。
1.類圖
類圖(class diagram)展現(xiàn)了一組對(duì)象辫塌、接口漏策、協(xié)作和他們之間的關(guān)系。在面向?qū)ο笙到y(tǒng)的建模中所建立的最常見的圖就是類圖臼氨。類圖給出系統(tǒng)的靜態(tài)設(shè)計(jì)視圖掺喻。包含主動(dòng)類的類圖給出了系統(tǒng)的靜態(tài)進(jìn)程視圖。
類圖中通常包括下述內(nèi)容(如下圖所示)储矩。
2.對(duì)象圖
對(duì)象圖描述一組對(duì)象及它們之間的關(guān)系感耙。對(duì)象圖描述了在類圖中所建立的事物實(shí)例的靜態(tài)快照。和類圖一樣持隧,這些圖給出系統(tǒng)的靜態(tài)設(shè)計(jì)視圖或靜態(tài)進(jìn)程視圖即硼,但它們是從真實(shí)案例或原型案例的角度建立的。
3.構(gòu)件圖
構(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)說(shuō)裂允,構(gòu)件圖是很重要的。構(gòu)件圖是類圖的變體哥艇。
4.組合結(jié)構(gòu)圖
組合結(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.用例圖
用例圖描述一組用例、參與者及它們之間的關(guān)系哩俭。用例圖給窗戶系統(tǒng)的靜態(tài)用例視圖绷跑。這些圖在對(duì)系統(tǒng)的行為進(jìn)行組織和建模時(shí)是非常重要的。
6.順序圖
順序圖是一種交互圖凡资,交互圖展現(xiàn)了一種交互砸捏,它由一組對(duì)象或參與者以及它們之間可能發(fā)送的消息構(gòu)成谬运。交互圖專注于系統(tǒng)的動(dòng)態(tài)視圖。順序圖是強(qiáng)調(diào)消息的時(shí)間次序的交互圖垦藏。
7.通信圖
通信圖也是一種交互圖梆暖,它強(qiáng)調(diào)收發(fā)消息的對(duì)象或參與者的結(jié)構(gòu)組織。順序圖和通信圖表達(dá)了類似的基本概念掂骏,但它們所強(qiáng)調(diào)的概念不同轰驳,順序圖強(qiáng)調(diào)的是時(shí)序,通信圖強(qiáng)調(diào)的是對(duì)象之間的組織結(jié)構(gòu)(關(guān)系)弟灼。在UML1.X版本中级解,通信圖成為協(xié)作圖。
8.定時(shí)圖
定時(shí)圖也是一種交互圖田绑,它強(qiáng)調(diào)消息跨越不同對(duì)象或參與者的實(shí)際時(shí)間勤哗,而不僅僅只是關(guān)心消息的相對(duì)順序。
9.狀態(tài)圖
狀態(tài)圖描述一個(gè)狀態(tài)機(jī)掩驱,它由狀態(tài)芒划、轉(zhuǎn)移、時(shí)間和活動(dòng)組成欧穴。狀態(tài)圖給出了對(duì)象的動(dòng)態(tài)視圖民逼。它對(duì)于結(jié)構(gòu)、類或協(xié)作的行為建模尤為重要涮帘,而且它強(qiáng)調(diào)事件導(dǎo)致的對(duì)象行為拼苍,這非常有助于對(duì)反應(yīng)式系統(tǒng)建模。
10.活動(dòng)圖
活動(dòng)圖將進(jìn)程或其他計(jì)算結(jié)構(gòu)展示為計(jì)算內(nèi)部的一步步的控制流和數(shù)據(jù)流焚辅∮澄荩活動(dòng)圖專注于系統(tǒng)的動(dòng)態(tài)視圖。它對(duì)系統(tǒng)的功能建模和業(yè)務(wù)流程建模特別重要同蜻,并強(qiáng)調(diào)對(duì)象間的控制流程棚点。
11.部署圖
部署圖描述對(duì)運(yùn)行時(shí)的處理結(jié)點(diǎn)及在其中生存的構(gòu)件的配置。部署圖給出了架構(gòu)的靜態(tài)部署視圖湾蔓,通常一個(gè)結(jié)點(diǎn)包含一個(gè)或多個(gè)部署圖瘫析。
12.制品圖
制品圖描述計(jì)算機(jī)中一個(gè)系統(tǒng)的物理結(jié)構(gòu)。制品包括文件默责、數(shù)據(jù)庫(kù)和類似的物理比特集合贬循。制品圖通常與部署圖一起使用。制品也給出了它們實(shí)現(xiàn)的類和構(gòu)件桃序。
13.包圖
包圖描述由模型本身分解而成的組織單元杖虾,以及它們之間的依賴關(guān)系。
14.交互概覽圖
交互概覽圖是活動(dòng)圖和順序圖的混合物媒熊。