UML圖之五——時序圖
一、什麼是時序圖
序列圖表示了系統在參與者互動執行某一個用例期間,系統內部的一群物件的協作情況。一個用例就對應一個時序圖。序列圖是對系統動態行為進行描述。用於用例分析和設計階段。
二、對比
1、序列圖和協作圖
序列圖跟協作圖相似,兩種圖傳遞的意思是一樣的。不同的是序列圖強調的是訊息的傳遞順序,它將互動關係表示為一個二維圖。縱向是時間軸,橫軸是物件,物件的生命週期沿豎線向下延伸。而協作圖強調的是系統間的組織結構,重在表現物件的角色,訊息的傳遞順序不明顯。
看示例:
時序圖
協作圖
2、時序圖和類圖、用例圖
用例圖是系統外部物件(參與者)與系統這兩大物件之間的互動,而類圖是對系統中涉及到得所有物件,進行抽象描述。時序圖是參與者和系統進行互動,系統內部物件之間的具體互動實現。SO
三、時序圖的構成
1、角色:參與者。
角色是類中的使用者類,可以直接拖過來用,但是這裡的角色應該是脫離系統之外的一個單純的角色。類中定義的屬性和操作可以不考慮。
2、物件:系統內部參與用例的一群物件。
物件的來源
1、類圖。
開篇已經說過時序圖其實可以是用例圖和類圖的整合。所以時序圖中的物件大部分是已經存在的。
存在哪?在類圖中。也就是說時序圖中的物件是我們在類中已經建立好的,我們只需要拿來用。還有一點要注意:時序圖中用到得是具體的物件,而非類,所以時序圖中的物件是類圖中類的例項化。
畫法:
2、建立
還有一小部分物件是在互動過程中通過訊息建立的。
畫法:
當然有建立就有撤銷:在生命線的末尾打岔。
3、訊息:角色,跟物件,物件和物件之間資訊的傳遞。
簡單訊息:
同步訊息:發出訊息後等待對方迴應後,再去做別的事情。
非同步訊息::發出訊息後無需等待對方迴應,可以先去做別的事情。
返回訊息:
4、生命線:物件在某一用例中的生命週期。
啟用期:生命線上不是虛線的部分,代表物件在某一用例過程中執行某一操作的時間。
PS: 一個用例,可以對應生成一個用例。
參與者物件只能跟邊界物件互動。
實體物件不能傳送訊息給邊界物件和控制物件。
如只是對資料增,刪,該,查,可以不設定控制物件。
關係:序列圖的一群物件來自類圖,物件之間的互動來自用例描述。
四、時序圖怎麼畫?
採用BCE(boundary-control-entity patterns)模式繪製時序圖。
BCE 模型中將物件分為三類:邊界類,控制類,實體類。
邊界類:用來隔離系統內外,通常負責接收並響應系統內外訊息,參與者與系統物件進行訊息傳遞要通過邊界類來實現。
控制類:一個用例會生成一個控制類。用來控制用例執行期間的複雜運算或者業務邏輯。
實體類:系統內部的物件。
他們的排列如下圖所示。
步驟:1、找出參與者和新增用例控制類。
2、然後根據用例流程不斷對邊界類和實體類進行填充。
PS:控制類只有一個,邊界類和實體類可以使多個。
分析下來,其實我們的具體實現是在做一道填空題。我們需要向B,C,E三個框中新增物件。
以下是對機房收費系統登陸用例的時序圖:
按F5鍵同時生成的協作圖:
修改密碼示例:圖一個為一次修改成功:
圖二為二次修改成功
圖二的畫法不確定,請指正。