[.net 面向對象程序設計深刻](3)UML——在Visual Studio 2013/2015中設計UML活動圖html
定義:是闡明瞭業務用例實現的工做流程。git
業務工做流程說明了業務爲向所服務的業務主角提供其所需的價值而必須完成的工做。github
業務用例由一系列活動組成,它們共同爲業務主角生成某些工件。編程
工做流程一般包括一個基本工做流程和一個或多個備選工做流程。併發
工做流程的結構使用活動圖來進行說明。 post
活動圖在本質上是一種流程圖。活動圖着重表現從一個活動到另外一個活動的控制流,是內部處理驅動的流程。spa
類型:動態圖 .net
應用:需求分析階段設計
在VS 2013/2015中有如下17種活動圖元素:3d
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.1 單線控制流(Simple Control Flow)
下面單線控制流中,地鐵若是選錯線路,能夠經過節點再進行一次重選
3.2 並行流(Concurrent Flows)
如下是一個從建立訂單開始,費用支付和接收支付是一個信號發送行爲和接收事件,另外一分支處理訂單發貨操做,兩個併發分支完成後聯接,完成訂單。
3.3 數據流(Data Flows)
軟件設計中對於需求分析的重要性是毋庸置疑的,不論採用什麼樣的設計思想,都須要比較周密的需求分析,進而造成書面的文檔。在文檔編寫過程當中,活動圖比起文字描述具備更直觀的表現。使用UML活動圖能讓其餘人更快的讀懂的你的設計意圖,更快速的理解你的業務控制流程。
Git下載:https://github.com/yubinfeng/BlogExamples
==============================================================================================
<若是對你有幫助,記得點一下推薦哦,若有有不明白或錯誤之處,請多交流>
<對本系列文章閱讀有困難的朋友,請先看 《.net 面向對象編程基礎》 和 《.net 面向對象程序設計進階》 >
<轉載聲明:技術須要共享精神,歡迎轉載本博客中的文章,但請註明版權及URL>
==============================================================================================