[.net 物件導向程式設計深入](3)UML——在Visual Studio 2013/2015中設計UML活動圖
1.活動圖簡介
定義:是闡明瞭業務用例實現的工作流程。
業務工作流程說明了業務為向所服務的業務主角提供其所需的價值而必須完成的工作。
業務用例由一系列活動組成,它們共同為業務主角生成某些工件。
工作流程通常包括一個基本工作流程和一個或多個備選工作流程。
工作流程的結構使用活動圖來進行說明。
活動圖在本質上是一種流程圖。活動圖著重表現從一個活動到另一個活動的控制流,是內部處理驅動的流程。
型別:動態圖
應用:需求分析階段
2.活動圖元素
在VS 2013/2015中有以下17種活動圖元素:
2.1 Initial Node(起始節點)
說明:表示一個活動或行為的開始
表示:用黑色的實心圓點表示
圖例:
2.2 Activity Final Node(活動結束節點)
說明:表示整個流程的結束
表示:用黑色的實心圓點和一個外部圓表示
圖例:
2.3 Action(活動)
說明:動作狀態是指原子的,不可中斷的動作,並在此動作完成後通過完成轉換轉向另一個狀態。動作狀態有如下特點:
(1)、動作狀態是原子的,它是構造活動圖的最小單位。
(2)、動作狀態是不可中斷的。
(3)、動作狀態是瞬時的行為。
(4)、動作狀態可以有入轉換,入轉換既可以是動作流,也可以是物件流。動作狀態至少有一條出轉換,這條轉換以內部的完成為起點,與外部事件無關。
(5)、動作狀態與狀態圖中的狀態不同,它不能有入口動作和出口動作,更不能有內部轉移。
(6)、在一張活動圖中,動作狀態允許多處出現。
表示:用平滑的圓角矩形表示
圖例:
2.4 Object Node(物件節點)
說明: 表示一個物件元素
表示: 矩形表示
圖例:
2.5 Comment(註釋)
說明: 對活動圖元素註釋
表示: 黃色邊框折角矩形表示(一般給某個元素註釋,會有一條連線線)
圖例:
2.6 Decision Node(決策節點)
說明: 一般某一節點需要有一個決策分支時使用
表示: 菱形表示
圖例:
2.7 Merge Node(合併節點)
說明: 分支流程合併時使用
表示: 菱形表示
圖例: 菱形表示
2.8 Fork Node(分支節點或分叉節點)
說明: 分支節點和決策節點的區別在於,分支節點是對兩個或多個併發控制流的表示,不存在決策
表示: 黑色矩形框表示
圖例:
2.9 Join Node(連線節點或聯接節點)
說明:同步多個併發分支,完成程程匯合
表示:黑色矩形框表示(水平或垂直均可)
圖例:
2.10 Send Signal Action(訊號傳送活動)
說明: 動作傳送一個訊號
表示: 矩形箭頭
圖例:
2.11 Accept Event Action(事件接收活動)
說明:接收一個訊號
表示: 燕尾狀短形
圖例:
2.12 Call Behavior Action(行為呼叫活動)
說明:詳細的行為呼叫
表示:圓角短形
圖例:
2.13 Call Operation Action(操作呼叫活動)
說明:這一動作呼叫一個類的例項操作
表示:圓角短形
圖例:
2.14 Input Pin(輸入標記)
說明:表示資料動作能夠獲取執行
表示: 小方框表示(只能定義在行為、操作、物件上)
圖例:
2.15 Output Pin(輸出標記)
說明:表示資料產生一個動作時執行
表示:小方框表示(只能定義在行為、操作、物件上)
圖例:
2.16 Activity Parameter Node(活動引數節點)
說明:物件節點,表示活動產生的物件
表示:矩形框表示
圖例:
2.17 Connector(連線線箭頭)
說明:表示一個動作流,箭頭方向表示
表示:箭頭表示
圖例:
3.活動圖設計示例
下面是幾種常見的活動圖設計示例:
3.1 單線控制流(Simple Control Flow)
下面單線控制流中,地鐵如果選錯線路,可以通過節點再進行一次重選
3.2 並行流(Concurrent Flows)
以下是一個從建立訂單開始,費用支付和接收支付是一個訊號傳送行為和接收事件,另一分支處理訂單發貨操作,兩個併發分支完成後聯接,完成訂單。
3.3 資料流(Data Flows)
4.總結
軟體設計中對於需求分析的重要性是毋庸置疑的,不論採用什麼樣的設計思想,都需要比較周密的需求分析,進而形成書面的文件。在文件編寫過程中,活動圖比起文字描述具有更直觀的表現。使用UML活動圖能讓其他人更快的讀懂的你的設計意圖,更快速的理解你的業務控制流程。
5.原始檔下載
Git下載:https://github.com/yubinfeng/BlogExamples
==============================================================================================
<如果對你有幫助,記得點一下推薦哦,如有有不明白或錯誤之處,請多交流>
<對本系列文章閱讀有困難的朋友,請先看 《.net 物件導向程式設計基礎》 和 《.net 物件導向程式設計進階》 >
<轉載宣告:技術需要共享精神,歡迎轉載本部落格中的文章,但請註明版權及URL>
==============================================================================================