UML(Unified Modeling Language) -- 早期筆記
UML學習筆記
- 系統的創建步驟: 分析、設計與實現比例
- 在分析階段,需向行業專家請教,需要問問自己,誰是系統的最終用戶
- UML(統一建模語言)是一種系統建模方法,有兩個主要構件 -- 結構圖和行為圖
- 工具:StarUML
一、用例圖
1、說明
1.1 用例圖說明的事誰要使用系統以及他們使用該系統可以做些什么?
<業務需求>
1.2 解析一個用例圖,我們可以發現它包含4個基本組件:
- 系統
- 參與者
- 用例(功能)
- 關系
另外可以通過在用例前面加上包名和兩個冒號來確定該用例是屬於哪個包的。如:staff::mechanic。如果用
多個參與者與用例之間有同一關系,可以重新考慮為用戶選擇的在系統中扮演的角色的名稱。使名稱更為廣泛化,以一個參與者取代重復的參與者。
2、包含用例圖
用
虛線和箭頭連接,起始處為包含用例,終止處為被包含用例。包含關系用於表示用例為執行其功能從其他用例引入功能。(
重用某些功能)
教師必須記錄成績,更新成績。這兩個用例都從一個用例包含了一項為save grades的公用功能,成績總會被保存。
3、 擴展關系(繼承)
表示用例可以通過其他用例得到擴展
Notify guardians 用例是添加到save grades 功能中的一項功能。
與包含關系相比,用例必須包含被包含用例,而擴展關系則有是否使用被擴展功能的選擇權。
4、創建用例圖步驟
找出系統中的參與者和用例
區分用例的優先次序
細分每個用例(描述)
建立用例模型結構
建立用戶界面的原型
PS: 軟件開發過程
泛化
二、活動圖
用於面向對象的系統的不同組件之間建模工作流
1、作用
- 進一步規划用例
- 標識用例的前后條件
- 發現新用例
2、組件:
- 活動,指示動作
- 狀態,指示系統當前狀態 (在StarUML里面,狀態和活動是同一個標識,其實狀態圖應該是一個矩形四個角為小圓弧)
- 轉意,顯示從一種狀態到另一種狀態的控制流
UML描述了兩個特殊狀態,即開始狀態和結束狀態。開始狀態以
實心黑點表示,結束狀態以
帶有圓圈的實心黑點表示。
- 控制點,用來允許控制流僅沿着滿足預置條件的方向
- 決策點,對控制流繼續的方向做出決策
- 事件和觸發器,強制控制流從一個活動到另一個活動的活動(類似JAVA中的方法)
- 游泳道(強烈推薦在模型中涉及多個對象事使用游泳道)
- 分岔聯絡
三、 順序圖
用於顯示參與者如何以一系列順序的步驟與系統的對象交互的模型(不同的活動對象之間的交互)
由於StarUML對順序圖的支持不是很好,本節最好貼上筆抄
1、組件:
- 活動對象,可以是系統的參與者或者任何有效的系統對象
消息可以包含條件一邊限制他們只在滿足條件對才能發送
消息包含四種類型:
同步 : 指示在消息完成之前,工作流被中斷
返回 : 顯示控制流返回到調用的活動對象
異步 : 用於被返回的消息,活動對象不等待來自該消息的響應
簡單 : 在同步和異步之間沒有區別
即時創建對象 :
2、創建順序圖4項任務:
- 確定需要建模的工作流
- 從左到右布置對象
- 添加消息和條件以便創建每一個工作流
- 繪制總圖以便連接各個分圖
3、附圖(筆抄):
四、 類圖
1、作用:
- 為了更加詳細地展示產品
- 提供指示完成有效功能的路徑地圖所需的信息
2、組件
- 類的標記符
- 關系
- 多重性,一個類的多少對象與另一個類的一個對象相關
上例描述了一個Teacher教授1到無限多個班級,一個Student屬於4-6個班級,一個Class有10-30個學生
1,3..*(除2之外的自然數); 2,4,6,8,10(大於0小於等於10的偶數)
- 角色,在類圖中使用角色可以幫助讀者理解第一個類對於第二個類的作用,角色與多重性顯示在相同的位置
對象的特性值顯示在特性名之后,中間用等於號連接
- 包, 一種把類分組為通用類目的方式
Developer屬於Development包
- 數據類型
3、步驟
創建類圖兩個反復步驟就是
- 確定類及其關聯
- 確定特性和操作
五、 協作圖
1、對象實例的3種標記符
- 未指示類的實例
- 完全限定對象,包含對象名和實例名
- 對象實例未命名,帶有類名的實例
2、協作圖中對象實例角色的4種標記符
3、類角色的3種標記符
- 不帶角色名的類名
4、鏈接
“parameter”固化類型指示一個對象是另一個對象的參數,而"local"固化類型指定一個對象在其他對象中具有局部作用域
5、消息
6、序列化消息
7、迭代
對於每一個ObjectB, Message都會從ObjectA發送到對應的ObjectB
Message被從ObjectA到ObjectB 發送了5次
8、如何建立協作圖
- 確定屬於協作圖的元素
- 建模這些元素之間的結構化關系
- 建模實例層的協作圖