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