1. 時序圖元素
我们在画时序图时会涉及7种元素:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息、组合片段。
-
角色(Actor)
系统角色,可以是人或者其他系统,子系统。以一个小人图标表示。
-
对象(Object)
对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:
1. 对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService。
2. 只显示类名,不显示对象,即为一个匿名类。例如::手机、:LoginSservice。
3. 只显示对象名,不显示类名。例如:华为手机:、loginServiceObject:。 -
生命线(LifeLine)
时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表。
-
控制焦点(Activation)
控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。
-
消息(Message)
表现代表对象之间发送的信息。消息分为三种类型。
- 同步消息(Synchronous Message)
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条
实线+实心箭头表示。- 异步消息(Asynchronous Message)
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条
实线+大于号表示。- 返回消息(Return Message)
返回消息表示从过程调用返回。以
小于号+虚线表示。 -
自关联消息
表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个
半闭合的长方形+下方实心剪头表示。
2. 組合片段
| 片段類型 | 名稱 | 說明 |
|---|---|---|
| Opt | 選項 | 包含一個可能發生或可能不發生的序列,可以在臨界中指定序列發生的條件 |
| Alt | 抉擇 | 包含一個片段列表,這些片段包含備選消息序列,在任何場合下只發生一個序列。可以在每一個片段中設置一個臨界來指示該片段可以運行的條件,else的臨界指示其它任何臨界都不為true時應運行的片段,如果所有臨界都為false並沒有else,則不執行任何臨界 |
| Loop | 循環 | 片段重複一定次數,可以在臨界中指示片段重複的條件。Loop組合片段具有Max和Min屬性,它們指示該片段可以重複的最小和最大次數,默認值是無限制 |
| Break | 中斷 | 如果執行此片段,則放棄序列的其餘片段 可以使用臨界來指示發生中斷的條件 |
| Par | 並行 | 並行處理,片段中的事件可以交錯 |
| Critical | 關鍵 | 使用在Par或者Seq片段中,指示此片段中的消息不得與其它消息交錯 |
| Seq | 弱順序 | 有兩個或更多操作數片段。涉及同一生命線的消息必須以片段的順序發生。如果消息涉及的生命線不同,來自不同偏度的消息可能會並行交錯 |
| Strict | 強順序 | 有兩個或更多操作數片段,這些片段必須按給定順序發生 |
| Consider | 考慮 | 指定此片段描述的消息隊列,其它消息可發生在運行的系統中,在"Message"屬性中鍵入該列表 |
| Ignore | 忽略 | 此片段未描述的消息列表,這些消息可發生在運行的系統中,在"Message"屬性中鍵入該列表 |
| Assert | 斷言 | 操作數片段指定唯一有效的序列,通常用在Consider或者Ignore片段中 |
| Neg | 否定 | 此片段中顯示的序列不得發生,通常用在Consider或Ignore 片段中 |
Demo:
-
每個週末老媽檢查作業
沒做完,罵我,我邊哭邊寫,最後寫完
寫完了,切水果,送到我房間,更愛媽媽
- 每次睡覺都要打呼嚕