天天看點

UML 之 序列圖和協作圖

序列圖(Sequence Diagram)

    亦稱為時序圖或循序圖,是一種UML行為圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動态協作。它可以表示用例的行為順序,當執行一個用例行為時,時序圖中的每條消息對應了一個類操作或狀态機中引起轉換的觸發事件。

    序列圖展示對象之間的互動,這些互動是指在場景或用例的時間流中發生的。序列圖屬于動态模組化。

    序列圖的重點在消息序列上,也就是說,描述消息是如何在對象間發送和接收的。表示了對象之間傳送消息的時間順序。

序列圖中的事物

    參與者:與系統、子系統或類發生互動作用的外部使用者。

UML 之 序列圖和協作圖

    對象:序列圖的橫軸上時與序列有關的對象。對象的表示方法是:矩形框中寫有對象或類名,且名字下面有下劃線。

UML 之 序列圖和協作圖

    生命線:坐标軸縱向的虛線表示對象在序列中的執行情況(即發送和接收的消息,對象的活動)這條虛線稱為對象的“生命線”。

UML 之 序列圖和協作圖

    消息符号:消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。

UML 之 序列圖和協作圖

下面是一個簡單的序列圖例子

UML 之 序列圖和協作圖

協作圖(Collaboration Diagram )

    是一種互動圖(interaction diagram),強調的是發送和接收消息的對象之間的組織結構,使用協作圖來說明系統的動态情況。一個協作圖顯示了一系列的對象和在這些對象之間的聯系以及對象間發送和接收的消息。

協作圖中的事物

    參與者:發出主動操作的對象,負責發送出事消息,啟動一個操作。

UML 之 序列圖和協作圖

    對象:對象是類的執行個體,負責發送和接收消息。與序列圖中的符号相同,冒号前為對象名,冒号後為類名。

UML 之 序列圖和協作圖

    消息流:箭頭訓示消息的流向,從消息的發出者指向接受者。标簽對消息作說明,其中,順序号指出消息的發生順序,并且指明了消息的嵌套關系,冒号後面是消息的名字。

UML 之 序列圖和協作圖

協作圖與序列圖的差別和聯系

    協作圖和序列圖都表示出了對象間的互動作用,但是它們側重點不同。

    序列圖清楚地表示了對象間的關系(強調空間),但時間順序必須從順序号獲得。

    協作圖和序列圖可以互相轉化

乘坐電梯的協作圖

UML 之 序列圖和協作圖

    參與者需要乘坐電梯,他從系統外部按下按鈕,讓電梯到達他想去的樓層。此時,電梯系統的操作被啟動,電梯控制對象以循環的方式檢查所有的電梯,從中選擇一個工作隊列長度最短的。然後,它建立一個作業指令,并将該指令放入對應電梯的工作隊列,接着激活隊列。電梯對象并發運作,從它的隊列中選擇一個作業并執行。電梯是一個活動對象,它與它的控制線程并發執行。

下面是我自己畫的機房收費系統中上下機的序列圖,僅供參考,有不足之處,希望大家給我指出來

UML 之 序列圖和協作圖
UML

繼續閱讀