狀態圖是做什麼的?
描述了一個具體對象的可能狀態以及它們之間的轉換。展現一個對象擁有的狀態,還可以說明時間(如消息的接收、錯誤、條件變更等)如何隨着時間的推移來影響這些狀態。
先上一張導圖看看狀態圖都有哪些內容吧!
什麼是活動圖?
描述一個過程或操作的工作步驟,描述系統的動態行爲。與流程圖很類似,但他們也有不同點。
活動圖和流程圖的不同點:
- 流程圖着重描述處理過程,主要控制結構是順序、分支和循環,各個處理過程之間有嚴格的順序和時間關係
活動圖描述的是對象活動的順序關係所遵循的規則,它着重表現的是系統的行爲,而非系統的處理過程
- 活動圖能夠表示併發活動的情形,而流程圖不能
- 活動圖是面向對象的,而流程圖是面向過程的
比方說現在要登錄機房收費系統:步驟分爲輸入用戶名和密碼,系統判斷輸入的密碼是否正確,正確的話走哪一個活動,不正確的話又走哪一個活動。而活動圖是把這些步驟用圖形的方式表現出來了
活動圖的作用有哪些?
- 描述一個操作的執行過程中所完成的工作或者動作
- 描述對象內部的工作
- 顯示如何執行一組相關的動作,以及這些動作如何影響周圍對象
- 描述用例的執行
- 處理多線程應用
一般什麼情況下使用活動圖?
- 描述一個並行的過程或者行爲
- 描述一個算法
- 描述一個跨越多個用例的活動
活動圖包含了哪些圖標?
活動(ActionState) |
動作的執行 |
|
起點(InitialState) |
活動圖的開始 |
|
終點(FinalState) |
活動圖的終點 |
|
對象流(ObjectFlowState) |
活動之間的交換的信息 |
|
發送信號(SignalSending) |
活動過程中發送時間,出發另一活動流程 |
|
接受信號(SignalReceipt) |
活動過程中接收事件,接收到信號的活動流程開始執行 |
|
泳道(SWimLane) |
活動的負責者 |
|
活動的關係表示
遷移(transition) |
活動的完成與新活動的開始 |
|
分支(junction point) |
根據條件,控制執行方向 |
|
分叉(fork) |
以下的活動可併發執行 |
|
結合(join) |
以上的併發活動再此結合 |
|
我的理解:
- 活動圖中的“分叉與合併”很像我們平常生活中的兩條路徑,它描述了軟件對象在不同的判斷結果下所執行的不同動作。一條是“Yes”的路,一條是“No”的路,就看你的操作是要執行哪條路徑,但最後終是會走到終點的
- “分叉和匯合”像我們學數據庫中“and”的關係,當進入考場後,老師檢查證件,學生對號入座,他們同時在做一件事情
機房中“用戶登錄”的應用
狀態圖
活動圖
第一次畫,不足之處歡迎大佬們斧正哦~🙂