時(shí)序圖,活動(dòng)圖,狀態(tài)圖和協(xié)作圖區(qū)別——時(shí)序圖
時(shí)序圖(Sequence Diagram),又名序列圖、循序圖、順序圖,是一種UML交互圖。它通過(guò)描述對(duì)象之間發(fā)送消息的時(shí)間順序顯示多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作。它可以表示用例的行為順序,當(dāng)執(zhí)行一個(gè)用例行為時(shí),其中的每條消息對(duì)應(yīng)一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的觸發(fā)事件。
創(chuàng)建步驟
1、確定交互過(guò)程的上下文;
2、識(shí)別參與過(guò)程的交互對(duì)象;
3、為每個(gè)對(duì)象設(shè)置生命線;
4、從初始消息開(kāi)始,依次畫(huà)出隨后消息;
5、考慮消息的嵌套,標(biāo)示消息發(fā)生時(shí)的時(shí)間點(diǎn),則采用FOC(focus of control);
6、說(shuō)明時(shí)間約束的地點(diǎn)。
在UML中,時(shí)序圖表示為一個(gè)二維的關(guān)系圖,其中,縱軸是時(shí)間軸,時(shí)間延豎線向下延伸。橫軸代表在協(xié)作中各個(gè)獨(dú)立的對(duì)象。當(dāng)對(duì)象存在時(shí),生命線用一條虛線表示,消息用從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象的生命線的箭頭表示。箭頭以時(shí)間的順序在圖中上下排列。
時(shí)序圖中的基本概念
ATM用戶成功登陸的時(shí)序圖
對(duì)象:時(shí)序圖中對(duì)象使用矩形表示, 并且對(duì)象名稱下有下劃線。將對(duì)象置于時(shí)序圖的頂部說(shuō)明在交互開(kāi)始時(shí)對(duì)象就已經(jīng)存在了。如果對(duì)象的位置不在頂部,表示對(duì)象是在交互的過(guò)程中被創(chuàng)建的。
生命線:生命線是一條垂直的虛線。表示時(shí)序圖中的對(duì)象在一段生命周期內(nèi)存在。每個(gè)對(duì)象底部中心的位置都帶有生命線。
消息:兩個(gè)對(duì)象之間的單路通信。從發(fā)送方指向接收方。在時(shí)序圖中很少使用返回消息。
激活:時(shí)序圖可以描述對(duì)象的激活和鈍化。 激活表示該對(duì)象被占用以完成某個(gè)任務(wù)。 鈍化指對(duì)象處于空閑狀態(tài), 等待消息。 在 UML 中, 對(duì)象激活時(shí)將對(duì)象的生命線拓寬為矩形來(lái)表示的。 矩形稱為計(jì)劃條或控制期。 對(duì)象就是在激活條的頂部被激活的。 對(duì)象在完成自己的工作后被鈍化。
對(duì)象的創(chuàng)建和銷毀:在時(shí)序圖中,對(duì)象的默認(rèn)位置是在圖的頂部。這說(shuō)明對(duì)象在交互開(kāi)始之前就已經(jīng)存在了。如果對(duì)象是在交互過(guò)程中創(chuàng)建的,那么就應(yīng)該將對(duì)象放到中間部分。如果要撤銷一個(gè)對(duì)象,在其生命線終止點(diǎn)處放置“ X”符號(hào)。
時(shí)序圖,活動(dòng)圖,狀態(tài)圖和協(xié)作圖區(qū)別——活動(dòng)圖
在UML中,活動(dòng)圖本質(zhì)上就是流程圖。它用于描述系統(tǒng)的活動(dòng),判定點(diǎn)和分支等。
活動(dòng)圖中的基本概念
活動(dòng)圖(activity diagram,動(dòng)態(tài)圖)是闡明了業(yè)務(wù)用例實(shí)現(xiàn)的工作流程。業(yè)務(wù)工作流程說(shuō)明了業(yè)務(wù)為向所服務(wù)的業(yè)務(wù)主角提供其所需的價(jià)值而必須完成的工作。業(yè)務(wù)用例由一系列活動(dòng)組成,它們共同為業(yè)務(wù)主角生成某些工件。工作流程通常包括一個(gè)基本工作流程和一個(gè)或多個(gè)備選工作流程。工作流程的結(jié)構(gòu)使用活動(dòng)圖來(lái)進(jìn)行說(shuō)明。
動(dòng)作狀態(tài):原子的,不可中斷的動(dòng)作,并在此動(dòng)作完成之后向另一個(gè)動(dòng)作轉(zhuǎn)變。在UML中動(dòng)作狀態(tài)用圓角矩形表示,動(dòng)作狀態(tài)所表示的動(dòng)作寫(xiě)在圓角矩形內(nèi)部。
分支與合并:分支在軟件系統(tǒng)中很常見(jiàn)。一般用于表示對(duì)象類所具有的條件行為。用一個(gè)布爾型表達(dá)式的真假來(lái)判定動(dòng)作的流向。條件行為用分支和合并表達(dá)。在活動(dòng)圖中,分支用空心小菱形 表示。分支包括一個(gè)入轉(zhuǎn)換和兩個(gè)帶條件的出轉(zhuǎn)換,出轉(zhuǎn)換的條件應(yīng)該是互斥的,須保證只有一條出轉(zhuǎn)換能夠被觸發(fā)。合并包含兩個(gè)帶條件的入轉(zhuǎn)換和一個(gè)出轉(zhuǎn)換。
時(shí)序圖,活動(dòng)圖,狀態(tài)圖和協(xié)作圖區(qū)別——狀態(tài)圖
狀態(tài)圖(Statechart Diagram)是描述一個(gè)實(shí)體基于事件反應(yīng)的動(dòng)態(tài)行為,顯示了該實(shí)體如何根據(jù)當(dāng)前所處的狀態(tài)對(duì)不同的事件做出反應(yīng)。通常我們創(chuàng)建一個(gè)UML狀態(tài)圖是為了以下的研究目的:研究類、角色、子系統(tǒng)、或組件的復(fù)雜行為。
狀態(tài)圖:通過(guò)建立對(duì)象的生存周期模型來(lái)描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為。
狀態(tài)圖中的基本概念
狀態(tài):用圓角矩形表示。狀態(tài)名稱表示狀態(tài)的名字,通常用字符串表示。一個(gè)狀態(tài)的名稱在狀態(tài)圖所在的上下文中應(yīng)該是唯一的。
轉(zhuǎn)換:用帶箭頭的直線表示。一端連著源狀態(tài),一端連著目標(biāo)狀態(tài)。
初始狀態(tài):每個(gè)狀態(tài)圖都有一個(gè)初始狀態(tài)。 此狀態(tài)代表狀態(tài)圖的起始位置。初始狀態(tài)只能作為轉(zhuǎn)換的源,不能作為轉(zhuǎn)換的目標(biāo),并且在狀態(tài)圖中只能有一個(gè)。初始狀態(tài)用一個(gè)實(shí)心圓表示。
終止?fàn)顟B(tài):模型元素的最后狀態(tài),是一個(gè)狀態(tài)圖的終止點(diǎn)。終止?fàn)顟B(tài)在一個(gè)狀態(tài)圖中可以有多個(gè)。
時(shí)序圖,活動(dòng)圖,狀態(tài)圖和協(xié)作圖區(qū)別——協(xié)作圖
協(xié)作圖(也叫合作圖)是一種交互圖。即Communication Diagram,而“協(xié)作”作為一個(gè)結(jié)構(gòu)事物用于表達(dá)靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的概念組合,表達(dá)不同事物相互協(xié)作完成一個(gè)復(fù)雜功能。故UML 2.0以后通信圖不再是協(xié)作圖,沒(méi)有專門的”協(xié)作圖“,只有”協(xié)作“。
時(shí)序圖主要側(cè)重于對(duì)象間消息傳遞在時(shí)間上的先后關(guān)系,而協(xié)作圖表達(dá)對(duì)象間的交互過(guò)程及對(duì)象間的關(guān)聯(lián)關(guān)系
評(píng)論