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