「圖_02」時序圖 sequence diagram
系列文章:
下面的介紹部分主要是根據其他的文章編寫的,但是第四部分的例子是我自己找到。
1. 介紹
時序圖表示的是對象之間的交互,這些對象都是按照時間順序排列的
2. 組成元素
角色(Actor)對象(Object)生命線(Lifeline)控制焦點(Focus of Control)消息(Message)自關聯消息(Self-Message)Combined Fragments
3.具體介紹
3.1 對象
對象包括三種命名方式:
對象名和類名;只顯示類名不顯示對象名,即表示他是一個匿名對象;只顯示對象名不顯示類明。
表示方法:橫線上表示的是和序列有關的對象。也就是名字下面有橫線
3.2 生命線
生命線在順序圖中表示爲從對象圖標向下延伸的一條虛線,表示對象存在的時間,如下圖:
3.3 參與者
定義:參與者就是和系統,子系統或者類發生交互作用的外部用戶
表示方法:一個小人,下面緊跟該參與者的名字
3.3 控制焦點
控制焦點是順序圖中表示時間段的符號,在這個時間段內對象將執行相應的操作。用小矩形表示,如下圖。
3.4 信息
消息一般分爲同步消息(Synchronous Message),異步消息(Asynchronous Message)和返回消息(Return Message).如下圖所示:
- 同步消息=調用消息(Synchronous Message): 消息的發送者把控制傳遞給消息的接收者,然後停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。
- 異步消息(Asynchronous Message):消息發送者通過消息把信號傳遞給消息的接收者,然後繼續自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是併發工作的。
- 返回消息(Return Message):返回消息表示從過程調用返回
3.5 自關消息
表示方法的自身調用以及一個對象內的一個方法調用另外一個方法。
3.6 Combined Fragments
Alternative fragment(denoted “alt”) 與 if…then…else對應
Option fragment (denoted “opt”) 與 Switch對應
Parallel fragment (denoted “par”) 表示同時發生
Loop fragment(denoted “loop”) 與 for 或者 Foreach對應
4. 例子
下面列舉一下實例圖的例子,幫助大家更好的理解這個過程。
首先,看一個簡單的例子,這裏使用的用戶是student。主要的類包括2個:課程和成績
學生首先需要進行身份驗證,教務系統就是學生使用的系統,交互的界面。也就是說學生想使用系統必須通過和教務系統的信息交流纔可以得到訪問和使用。
這裏只顯示了學生進行的一個功能,就是查詢成績。
1.1:請求成績查詢課程列表(因爲是用戶,所以是請求)
1.2:獲取成績查詢課程列表(實際和1.1的作用是一樣的)
1.3 通過和“課程”類的交互,得到了課程列表,在設計的時候,可以把這個結果返回給student,也可以不返回,從而作爲實現成績查詢的一箇中間步驟。這就好像,做一個字典查詢系統,如果用戶想向其中添加一個字段,系統需要先調用查詢語句,檢測該單詞是否出現在數據庫中,如果不存在在add,如果存在,那麼無法繼續執行add的操作。
1.4 使用“成績”類,獲取成績的信息
1.5 返回成績信息
1.6 展示給用戶:因爲1.5得到的結果只是給了系統,但是需要展示給用戶,因此需要有1.6
注意:這裏只有單一的一個功能和一個用戶,正常的系統,交互的人員應該還有管理員或者lecturer取錄入成績和課程的相關信息。