1. 程式人生 > >UML圖之五——時序圖

UML圖之五——時序圖

一、什麼是時序圖

序列圖表示了系統在參與者互動執行某一個用例期間,系統內部的一群物件的協作情況。一個用例就對應一個時序圖。序列圖是對系統動態行為進行描述。用於用例分析和設計階段。

二、對比

1、序列圖和協作圖

序列圖跟協作圖相似,兩種圖傳遞的意思是一樣的。不同的是序列圖強調的是訊息的傳遞順序,它將互動關係表示為一個二維圖。縱向是時間軸,橫軸是物件,物件的生命週期沿豎線向下延伸。而協作圖強調的是系統間的組織結構,重在表現物件的角色,訊息的傳遞順序不明顯。

看示例:

時序圖

 

協作圖

2、時序圖和類圖、用例圖

用例圖是系統外部物件(參與者)與系統這兩大物件之間的互動,而類圖是對系統中涉及到得所有物件,進行抽象描述。時序圖是參與者和系統進行互動,系統內部物件之間的具體互動實現。SO

,時序圖關聯了類圖與用例圖,可以通過用例圖和類圖進行整合。

三、時序圖的構成

1、角色:參與者。

角色是類中的使用者類,可以直接拖過來用,但是這裡的角色應該是脫離系統之外的一個單純的角色。類中定義的屬性和操作可以不考慮。

2、物件:系統內部參與用例的一群物件。

 

物件的來源

1、類圖。

開篇已經說過時序圖其實可以是用例圖和類圖的整合。所以時序圖中的物件大部分是已經存在的。

存在哪?在類圖中。也就是說時序圖中的物件是我們在類中已經建立好的,我們只需要拿來用。還有一點要注意:時序圖中用到得是具體的物件,而非類,所以時序圖中的物件是類圖中類的例項化。

畫法:

2、建立

還有一小部分物件是在互動過程中通過訊息建立的。

畫法:

當然有建立就有撤銷:在生命線的末尾打岔。

 

3、訊息:角色,跟物件,物件和物件之間資訊的傳遞。

簡單訊息:

同步訊息:發出訊息後等待對方迴應後,再去做別的事情。

非同步訊息::發出訊息後無需等待對方迴應,可以先去做別的事情。

返回訊息:

4、生命線:物件在某一用例中的生命週期。

啟用期:生命線上不是虛線的部分,代表物件在某一用例過程中執行某一操作的時間。

 

PS:    一個用例,可以對應生成一個用例。

參與者物件只能跟邊界物件互動。

實體物件不能傳送訊息給邊界物件和控制物件。

如只是對資料增,刪,該,查,可以不設定控制物件。

關係:序列圖的一群物件來自類圖,物件之間的互動來自用例描述。

四、時序圖怎麼畫?

採用BCE(boundary-control-entity patterns)模式繪製時序圖。

BCE 模型中將物件分為三類:邊界類,控制類,實體類。

邊界類:用來隔離系統內外,通常負責接收並響應系統內外訊息,參與者與系統物件進行訊息傳遞要通過邊界類來實現。

控制類:一個用例會生成一個控制類。用來控制用例執行期間的複雜運算或者業務邏輯。

實體類:系統內部的物件。

他們的排列如下圖所示。

步驟:1、找出參與者和新增用例控制類。

2、然後根據用例流程不斷對邊界類和實體類進行填充。

PS:控制類只有一個,邊界類和實體類可以使多個。

分析下來,其實我們的具體實現是在做一道填空題。我們需要向B,C,E三個框中新增物件。

以下是對機房收費系統登陸用例的時序圖:

按F5鍵同時生成的協作圖:

 

修改密碼示例:圖一個為一次修改成功:

圖二為二次修改成功

 

圖二的畫法不確定,請指正。