“獨孤九劍”靜態建模:[用例圖]、[類圖]、對象圖、組件圖、部署圖。動態建模:[時序圖](sequence diagrams)、狀態圖">
今天接著昨天的內容,繼續來了解uml的靜態建模和動態建模,希望大家通過這兩天的了解能加深對uml建模的理解并在以后的項目開發中加以應用。
核心UML圖分類: ---> “獨孤九劍”
靜態建模:[用例圖]、[類圖]、對象圖、組件圖、部署圖。動態建模:[時序圖](sequence diagrams)、狀態圖、活動圖、協作圖。
核心UML圖的定義及使用:
一、 用例圖:主要用來展示系統的核心功能及其交互的用戶或系統。
舉例說明:相信上一篇已經寫的很清楚了,這里簡單貼一張圖。
===================== Num1.用例圖========================
1. 用例:系統為參與者(人/系統)提供的功能,一般取名為帶有動作性的詞語。--橢圓
2. 用例之間的關系 --> 虛線 :
a) 包含關系:大功能包含《include》子功能。
b) 擴展關系:將基用例中一段【相對獨立并且可選】的動作,用擴展《extends》用例加以封裝。 --虛線反向
c) 泛化關系:一般和特殊(抽象類/接口+實現類/子類)的關系。實線三角形箭頭反向。
二、類圖:主要用來表現類的特征(屬性和操作等),描述了多個類/接口的特征以及對象之間的協作和交互。
類圖主要做兩件事:1 對類中的數據及其操作進行封裝;2 標明類與類之間的關系。
下面主要針對這兩點來談談,第一點: 對類中的數據及其操作進行封裝,還是先看圖吧:
因為這里使用的是Rose畫圖,所以所有的畫圖操作都是在Rose上執行的。需要說明一下:這里畫的是一張簡單的普通類圖,類圖的屬性和方法是可選的,而這里的正向工程和反向功能有點類似于Java web里面的Hibernate的一個重要作用:將表映射成類,也可以將類映射成表,當然這里的是一張類圖而不是數據庫里面的表。
第二點:標明類與類之間的關系。類與類之間的關系主要有一下幾種:1. 泛化關系(繼承關系)、2. 實現關系(接口與實現類的關系)、3. 關聯關系(這個比較復雜,這要包含單向關聯、雙向關聯、自關聯、聚合關聯、組合關聯)、4. 依賴關系(項目開發中基本很少畫)。下面以圖的方式進行講解:
1,泛化(繼承)關系:注意是子類指向父類,且箭頭為三角形,連線為實線。
2,實現關系(接口與實現類的關系):這個在Java web中經常用到,比如在Spring中,經常會調用DAO層接口的對象(通過IOC配置xml的方式來setXx產生接口對象)方法來處理Service層的業務(如:登錄、注冊等)。注意是實現類指向接口,且箭頭為三角形,連線為虛線。
3,關聯關系:
a)單向關聯:就拿追MM來說,很多人都稀罕她,但她都不稀罕。如圖:
b)雙向關聯:就拿夫妻來說,一個男的只能有一個老婆,而一個女的只能有一個老公。如圖:
c)自關聯:典型的,就拿Menu菜單來說,子菜單和父菜單封裝的數據都一樣,只是Menu類中要有自己的引用。如圖:
d)聚合關聯:聚合表示的是整體和部分的關系,比如說:有輛汽車報廢了,但其輪胎有兩個還是好的,它可以供別的汽車使用。如圖(畫圖時切記:整體指向部分):
e)組合關聯:組合也是整體和部分的關系,與聚合最大的區別在于:整體可以控制部分的生命周期。比如:一家IT公司倒閉了,那么其部門也將不復存在。如圖:
注意:整體指向部分,與聚合關聯不同的是:組合的菱形箭頭是實心的,而聚合的菱形箭頭的空心的。
4. 依賴關系:存在于方法中的臨時變量、方法簽名中的參數和對靜態方法的調用。比如咱經常使用的電腦,咱們需要它的幫助來完成一些事情,這就是依賴。如圖:
注意:箭頭指向被依賴者,且箭頭為虛線。
有點晚了,明天繼續,晚安。
下一篇 ubuntu 防火墻