標籤:建模 uml
今天接著昨天的內容,繼續來瞭解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. 依賴關係:存在於方法中的臨時變數、方法簽名中的參數等,由於項目中很少用到,所以這裡就不再贅述。
有點晚了,明天繼續,晚安。
對軟體開發中uml建模的理解和圖形整理(二)