註明:整理自學習禮包,非徹底原創,原做沒法考查。架構
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------併發
1、用例圖(Use case)dom
參與者,經過使用系統服務實現其目標的那些人或者事物異步
用例,外部可見的系統功能,對系統提供的服務進行描述。用橢圓表示。用例是動詞或者動名詞。能夠從每個界面的主要功能來析取用例。學習
關係:spa
用例圖中涉及的關係有:關聯、泛化、包含、擴展。設計
以下表所示:對象
關係繼承 |
涉及對象接口 |
符號 |
箭頭方向 |
關聯 |
參與者與用例 |
|
無箭頭 |
泛化 |
參與者與參與者 用例與用例 |
|
指向父用例或者父參與者 |
包含 |
用例與用例 |
|
指向分解出來的功能 |
擴展 |
用例與用例 |
|
箭頭指向基礎用例 |
泛化
包含
擴展
注意:用例的詞性(動名詞),關聯是實線無箭頭
2、活動圖(Activity)
每個用例有一個活動圖,活動圖儘可能簡單
開始節點: (只有一個)
結束節點: (能夠有多個)
同步條: (必須成對出現),表示並行執行
選擇/合併: (須要寫明分支的判斷條件)
活動: (圓邊矩形,必須與狀態圖進行區分,動名詞,能夠從一個用例的執行流程中分析出動詞)
注意:同步條必須成對出現,斷定需列明條件,活動的框必定是圓邊矩形
3、狀態圖(statement)
每個用例有一個狀態圖,顯示一個對象從建立到消亡的整個生命週期
狀態:表示對象具備的一個情況,條件(名詞或者說不是動名詞格式)
轉移:事件名 [監護條件]/動做名(若是前面出現「/」,說明是系統的動做,不加是使用者進行的操做)
開始/結束狀態:
注意:狀態是圓角矩形,狀態不能是一個動做(動名詞格式),而是一個情況(名詞或者名詞+動詞的格式)必需要有狀態發生變化的條件
4、領域模型(domain model)
一組沒有定義操做(方法的特徵標記)的類圖,也稱爲概念類圖
步驟:(1)尋找概念類
概念類:思想,事物或對象(也就是說找名詞)
描述類:描述其餘事物的信息,如Flight和Airport之間最好添加一個FlightDescription這個描述類。
(2)將其繪製爲UML類圖的類
(3)添加關聯和屬性
關聯:名稱須要首字母大寫,通常以類名-動詞短語-類名的格式來命名。但在領域模型中,避免加入太多關聯,是否須要記錄關聯,要基於現實世界的須要,就是那些「須要記住」的關聯關係。
多重性:類A有多少個實例能夠和類B的一個實例關聯
0或更多
1或更多
1~40
屬性:對象的邏輯數據值。當需求(用例)建議或暗示須要記住信息時,引入屬性
(能夠只有屬性名稱,不須要類型,可見性)
注意:一般不超過10個概念類,至少有一個描述類,不能出現XX列表
5、系統順序圖(SSD)
對於用例的一個特定場景(通常是一個用例),外部參與者產生的事件,其順序和系統之類的事件。該圖強調的是從參與者到系統的跨越系統邊界的事件。
(也就是說系統被視爲黑盒)
參與者:須要加‘:’和下劃線
系統:
循環:
注意:對象必須有「:」和下劃線,消息須要有編號,而且消息爲動做,必需要有控制焦點,不超過5個消息,儘量簡單
6、包圖
(MVC架構 view【也就是UI,邊界類】model【實體類,從領域模型中選取】 control【控制類】)
依賴: 箭頭指向被依賴的包(包的圖都是虛線)
層:
類,用例等:
嵌入包:
注意:包與包之間必定是虛線
7、順序圖
在時間上對象交互的安排
角色(Actor)系統角色,能夠是人、及其甚至其餘的系統或者子系統。
對象: (名稱前面要加「:」,還有下劃線)(對象通常是前面包圖說起的與用例相關的邊界類,控制類,實體類)
生命線: 表示對象存在的時間
控制焦點: 表示對象執行一個動做的期間 (也能夠不用這個)
消息: (消息須要有序號,且消息爲動做)
同步消息:消息的發送者把控制傳遞給消息的接收者,而後中止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。
異步消息:消息發送者經過消息把信號傳遞給消息的接收者,而後繼續本身的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是併發工做的。
自調用信息:表示方法的自身調用以及一個對象內的一個方法調用另一個方法。
注意:對象必須有「:」和下劃線,消息須要有編號,而且消息爲動做,必需要有控制焦點,對象來源於包圖
8、設計類圖
類:
(和順序圖對應,分爲實體類(領域模型的類),邊界類(界面),控制類)
關係 |
表示關係 |
符號 |
箭頭方向 |
關聯 |
對象之間具備永久關係 |
|
能夠用箭頭表示關聯的方向。沒有箭頭表示雙向關聯 |
多重性 |
多重性:類A有多少個實例能夠和類B的一個實例關聯 |
|
無箭頭 |
依賴 |
表示一個類依賴於另外一個類的定義,其中一個類的變化將影響另一個類(use) |
|
指向被依賴的類 |
泛化 |
類與類的繼承關係。子類繼承超類的全部特(屬性、操做、關係),並具備獨自的特性 場景:父與子、植物與樹等 |
|
指向父用例或者父參與者 |
實現 |
類與接口的實現關係 |
|
指向接口 |
聚合 |
當某一個類成爲另外一類的一部分時,可以使用匯集的關係,表示類之間的關係是總體與部分的關係(has) |
|
部分指向總體 |
組合 |
對象A包含對象B,對象B離開對象A沒有實際意義。是一種更強的關聯關係。人包含手,手離開人的軀體就失去了它應有的做用。(contain) |
|
部分指向總體 |
組合>聚合>關聯>依賴
注意:類名須要和領域模型,順序圖的同樣;每一個類至少1屬性,1操做;
注意繼承,聚合這些關係,實線和虛線的區別,類之間的關聯關係是幾對幾的關係;重要的是與前面的圖保持一致性
9、部署圖
(整個系統就一個)可經過修改這個基礎模型來作
注意點:節點之間沒有箭頭,節點是軟件仍是物理設備須要標記,須要寫清鏈接的介質(如網線那些),協議(HTTP等)
------------------------------------------------------------------------------------------------------------------------------------------------