序列圖訊息交換

序列圖說明專案內的訊息交換。您可以在開發軟體系統過程中,將訊息放置在序列圖中。也可以執行動畫序列圖,當執行程式中出現訊息時加以監看。

序列圖會顯示物件所扮演角色之間的訊息交換範例情節。在測試案例中有許多使用此功能的方式,包括分析與設計範例情節、執行追蹤及預期行為等。

垂直軸是時間維度,顯示系統物件之間的訊息交換。訊息以事件或作業呼叫的形式來代表物件之間的互動。描繪訊息的方式是以連接物件生命線的箭頭來表示。

下列序列圖顯示居住者一進入房間時,HomeHeatingSystem 內發生的協同作業。在第一列指定系統物件。可利用物件路徑來識別巢狀物件,從最上層物件開始並遵循階層。索引利用物件陣列來指出實例。

從每一個範例情節的所有物件生命線可投射出物件的完整行為需求。序列圖中的一組生命線會形成物件的完整生命週期,就像是狀態圖。

註: 在啟用動畫的 Rational® Rhapsody® Developer for C 中執行程式時,屬於套件的廣域物件將其原始名稱,作為動畫實例名稱且不具實例索引。例如,廣域物件 HomeHeatingSystem 的動畫實例名稱為 HomeHeatingSystem,而不是 HomeHeatingSystem[0]

在此範例情節中,下列訊息會在物件之間作為事件來傳遞:

訊息 傳送端 接收端 說明
updateOcc() <inhabitant> OccSensor 某人已進入房間。
occupied() <system> Room Room 接收到計時器。
updateDtemp() <inhabitant> Room 居住者設定理想的溫度。
heatReq() Room Furnace RoomFurnace 要求暖氣。
motorReady() <system> Furnace 系統檢查 Furnace 的馬達是否備妥開始運作。
Fstarted() Furnace Room Furnace 通知 Room 它已啟動。
open() Room Valve Room 通知暖氣 Valve 要開啟。
stopHeat() Room Furnace 當溫度已經夠暖,Room 通知 Furnace 停止產生暖氣。
close() Room Valve Room 通知暖氣 Valve 要關閉。
Fstopped() Furnace Room Furnace 通知 Room 它已停止。

範例情節中的每一個事件會產生至套件規格檔案中的事件結構。由於 HomeHeatingSystem 範例只有一個套件名為 Default,所以會在 Default.h 檔案中產生事件定義。


回饋