思路呈現
- 什么是類圖?
- 描述類、接口、協作及他們之間的關系的圖。顯示系統中類的靜態結構。
- 有什么作用?
- 描述軟件系統的靜態結構
- ①對系統的詞匯建模
- ②對簡單協作建模
- ③對邏輯數據庫模式建模
- 什么是對象圖?
- 是類圖變化而來,與類圖相似,顯示一組對象和他們之間的關系(是類的多個對象實例而不是實際的類)
|
|
|
| 在類中包含三部分,分別是類名、類的屬性和類的操作 | 對象包含兩個部分:對象的名稱和對象的屬性 |
| 類的名稱欄只包含類名 | 對象的名稱欄包含“對象名:類名” |
| 類的屬性欄定義了所有屬性的特征 | 對象的屬性欄定義了屬性的當前值 |
| 類中列出了操作 | 對象圖中不包含操作內容,因為對屬於同一個類的對象,其操作是相同的 |
| 類中使用了關聯連接,關聯中使用名稱、角色以及約束等特征定義 | 對象使用鏈進行連接,鏈中包含名稱、角色 |
| 類代表的是對對象的分類所以必須說明可以參與關聯的對象的數目 | 對象代表的是單獨的實體,所有的鏈都是一對一的,因此不涉及到多重性。 |
- 類圖(對系統的靜態描述):
對象圖:對系統在某一時刻的展現
類的表示:
關於類和類圖的一些總結分類:(個人感覺一幅圖勝過千言萬語,所以我很少用文字描述,基本上都整理成了思維導圖的形式呈現出來,供大家參考!)
類在很多方面和組件相同:
(1)兩者都有名稱
(2)都可以實現一組接口
(3)都可以參與依賴關系
(4)都可以被嵌套
(5)都可以有實例
(6)都可以參與交互
但是也會有一些區別:
(1)類描述軟件設計的邏輯組織和意圖,組件描述軟件設計的物理實現,每個組件體現了系統設計中特定類的實現
下面進行一些簡單的說明:
①類圖描述所有可能情況
②聚合:限制性沒有組合強,聚合類似於書架與書的關系,不是有了書架才有的書,書的產生與書架沒有關系
③組合:限制性強於聚合,類似於身體與肢體的關系,有了身體才會有肢體,沒有身體,肢體是不會產生的(節點不能脫離列表的存在)
④能用關聯不用依賴,能用組合、聚合不用普通關聯,組合、依賴比普通關聯描述的信息更加的嚴格,關聯比依賴更加嚴格(嚴謹性、嚴格性:組合、聚合>關聯>依賴)
⑤自身關聯:一個對象可以與另一個同類的對象有鏈接,即類可以與自身有鏈接
⑥關聯類:兩個對象之間的鏈接本身可以擁有自己的屬性和行為,如果把連接看做是一個類的實例,則該類稱為關聯類。(如圖:L是A B的關聯類)
單重繼承:有且只有一個父類
多重繼承:一個類有兩個或兩個以上的父類
實現關系:類元之間的語義關系,該關系中一個類元描述了另一個類元保證實施的契約
|
|
|
| 名稱 | 描述關系性質(方向指示符用實心三角形箭頭表示) |
| 角色 | 類處於關聯某一端時,該類在關系中扮演特定角色(一個類對另一個類的職責) |
| 多重性 | 約束是UML三大擴展機制之一,多重性是一種約束(最廣泛),用..表示 |
| 聚合 | 特殊型關聯,表示整體與部分關系的關聯(has a) |
| 組合 | 被稱為“強聚合”,生命周期取決於聚合的生命周期 |
| 導航性 | 一個對象通過鏈(關聯的實例)進行導航訪問另一個對象(降低類間耦合度) |
|
|
|
| 0 | 恰好為“0” |
| 0..1 | 0或1 |
| 0..n | 0或更多 |
| 1 | 恰好為1 |
| 1..n | 1或更多 |
| n | n或更多 |
抽象類:(不能被實例化)
- 包圖(將圖形(系統)模塊化):
①將一個復雜的圖模塊化
②組織源代碼
③兩個包中任意兩個類之間有依賴關系,則兩個包之間有依賴關系
|
|
|
| 避免循環依賴 | |
| 以包為測試單位 | |
| 將概念和語義相近的元素包含在一個包中 | |
| 將包中的元素分為私有、公有(可以在包外訪問)和受保護的 | |
|
|
|
| 構造型 | 用途 |
| 虛包(facade) | 描述一個只引用其他包內元素的包 |
| 框架(framework) | 描述一個主要由模式組成的包 |
| 樁(stub) | 描述一個座位另一個包的公共內容代理的包 |
| 子系統(subsystem) | 描述正在建模中的整個系統的獨立部分的包 |
| 系統(system) | 描述正在建模中的整個系統的包 |
-
類與包的區別:
類:對問題領域或解決方案的事物的抽象,他必須有標識,有實例,類的實例(對象)是運行系統的組成元素。
包:把事物組織成一種模型的機制,他可以沒有標識,因為在運行系統中不可見。 -
類圖示例圖:

-
對象圖(一般用戶)示例圖:

-
對象圖(操作員)示例圖:

-
對象圖(管理員)示例圖:

轉載:https://blog.csdn.net/tigaobansongjiahuan8/article/details/80256396。
