UML學習筆記
- 在分析階段,需向行業專家請教,需要問問自己,誰是系統的最終用戶
- UML(統一建模語言)是一種系統建模方法,有兩個主要構件 -- 結構圖和行爲圖
一、用例圖
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、如何建立協作圖
- 確定屬於協作圖的元素
- 建模這些元素之間的結構化關係
- 建模實例層的協作圖