(软件工程复习核心重点)第八章面向对象方法学-第三节:面向对象建模之对象模型
文章目錄
- 一:概念
- (1)定義
- (2)工具
- 二:類圖的基本符號
- (1)定義類
- A:表示
- B:命名規則
- (2)定義屬性
- (3)定義服務
- 三:表示關系的符號
- (1)關聯
- A:定義
- B:關聯的角色
- C:普通關聯
- ①:定義
- ②:表示
- D:限定關聯
- ①:定義
- ②:表示
- ③:意義
- E:關聯類
- ①:定義
- ②:表示
- (2)聚集(它是關聯的特例)
- A:共享聚集
- B:組合聚集
- (3)泛化(本質就是繼承)
- A:普通泛化
- ①:抽象類
- ②:具體類
- B:受限泛化
- ①:定義
- ②:約束
- (4)依賴和細化
- A:依賴關系
- B:細化關系
一:概念
(1)定義
對象模型表示靜態的、結構化的系統的數據性質。它是對模擬客觀世界實體的對象以及對象彼此間的關系的映射,描述了系統的靜態結構。對象模型為建立動態模型和功能模型,提供了實質性的框架。
(2)工具
使用UML(統一建模語言)提供的類圖來建立對象模型。在UML中,類的實際含義是一個類及屬于該類的對象
具體來說,UML提供了以下13種圖
- 用例圖:從用戶角度描述系統功能。
- 類圖:描述系統中類的靜態結構。
- 對象圖:系統中的多個對象在某一時刻的狀態。
- 狀態圖:是描述狀態到狀態控制流,常用于動態特性建模
- 活動圖:描述了業務實現用例的工作流程
- 順序圖:對象之間的動態合作關系,強調對象發送消息的順序,同時顯示對象之間的交互
- 協作圖:描述對象之間的協助關系
- 構件圖:一種特殊的UML圖來描述系統的靜態實現視圖
- 部署圖:定義系統中軟硬件的物理體系結構
- 包圖:對構成系統的模型元素進行分組整理的圖
- 組合結構圖:表示類或者構建內部結構的圖
- 交互概覽圖:用活動圖來表示多個交互之間的控制關系的圖
二:類圖的基本符號
(1)定義類
A:表示
UML中類的圖形符號為長方形,用兩條橫線把長方形分上、中、下3個區域,3個區域分別放類的名字、屬性和服務
B:命名規則
類名應該是富于描述的、簡潔的而且無二義性的
- 使用標準術語,不要隨意創造名字
- 使用具有確切含義的名詞,不要使用空洞或含義模糊的詞作名字
- 必要時可用名詞短語作名字,有時也可以加入形容詞
(2)定義屬性
具體格式為
- 可見性:有公有的(+)、私有的(-)和保護的(#)
- 類型名:表示該屬性的數據類型
- 賦值:在創建類的實例時應給其他屬性賦值,如果給某個屬性定義了初值,則該初值可作為創建實例時這個屬性的默認值
- 性質串:明確地列出該屬性所有可能取值,用逗號隔開
(3)定義服務
具體格式為
- 可見性:有公有的(+)、私有的(-)和保護的(#)
- 參數表:用逗號隔開不同參數,每個參數語法為 “參數名:類型名=默認值”
三:表示關系的符號
類與類之間通常具有以下四種關系
(1)關聯
A:定義
關聯表示兩個類的對象之間存在某種語義上的聯系
B:關聯的角色
在任何關聯中都會涉及參與此關聯的對象所扮演的角色,在某些情況下顯式標明角色名有助于別人理解類
- 如果沒有顯式標出角色名,則意味著用類名作為角色名
C:普通關聯
①:定義
普通關聯是最常見的關聯關系,只要在類與類之間存在連接關系就可以用普通關聯表示
②:表示
- 第一,普通關聯的圖示符號是連接兩個類之間的直線,如下圖
- 第二,關聯是雙向的,可為關聯起一個名字。在名字前面(或后面)加一個表示關聯方向的黑三角
- 第三,在表示關聯的直線兩端可以寫上重數,它表示該類有多少個對象與對方的一個對象連接。未明確標出關聯的重數,則默認重數是1
D:限定關聯
①:定義
限定關聯通常用在一對多或多對多的關聯關系中,可以把模型中的重數從一對多變成一對一, 或從多對多簡化成多對一
②:表示
在類圖中把限定詞放在關聯關系末端的一個小方框內。
- 利用限定詞“文件名”表示了目錄與文件之間的關系,利用限定詞把一對多關系簡化成了一對一關系
③:意義
限定提高了語義精確性,增強了查詢能力
E:關聯類
①:定義
為了說明關聯的性質,可能需要一些附加信息。關聯類可以用來記錄相關信息
②:表示
關聯類通過一條虛線與關聯連接
- 關聯中的每個連接與關聯類的一個對象相聯系
(2)聚集(它是關聯的特例)
聚集(聚合)是關聯的特例。表示類與類之間的關系是整體與部分的關系。在陳述需求時使用的**“包含”、“組成”、“分為…部分”**等字句,往往意味著存在聚集關系。除了一般聚集之外,還有兩種特殊的聚集關系,分別是共享聚集和組合聚集
A:共享聚集
如果在聚集關系中處于部分方的對象可同時參與多個處于整體方對象的構成,則該聚集稱為共享聚集
- 一般聚集和共享聚集的圖示符號,都是在表示關聯關系的直線末端緊挨著整體類的地方畫一個空心菱形
B:組合聚集
如果部分類完全隸屬于整體類,部分與整體共存,整體不存在了部分也會隨之消失, 則該聚集稱為組合聚集(組成)
- 組成關系用實心菱形示例
(3)泛化(本質就是繼承)
UML中的泛化關系就是繼承關系,它是通用元素和具體元素之間的一種分類關系。具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息。在UML中,用一端為空心三角形的連線表示泛化關系,三角形的頂角緊挨著通用元素
A:普通泛化
①:抽象類
沒有具體對象的類稱為抽象類。抽象類通常都有抽象操作,來指定該類的所有子類應具有哪些行為
- 表示抽象類是在類名下方附加一個標記值{abstract},表示抽象操作是在操作標記后面跟隨一個性質串{abstract}
②:具體類
具體類有自己的對象,并且該類的操作都有具體的實現方法
B:受限泛化
①:定義
可以給泛化關系附加約束條件,以進一步說明該泛化關系的使用方法或擴充方法,這樣的泛化關系稱為受限泛化
②:約束
預定義的約束有4種(都是語義約束)
-
多重:一個子類可以同時多次繼承同一個上層基類
-
不相交:一個子類不能多次繼承同一個基類。-般的繼承都是不相交繼承
-
完全:父類的所有子類都已在類圖中窮舉出來了
-
不完全:父類的子類并沒有都窮舉出來,隨著對問題理解的深入,可不斷補充和維護。是默認的繼承關系
(4)依賴和細化
A:依賴關系
依賴關系描述兩個模型元素之間的語義連接關系:其中一個模型元素是獨立的,另一個模型元素不是獨立的,它依賴于獨立的模型元素,如果獨立的模型元素改變了,將影響依賴于它的模型元素
- 在UML類圖中用帶箭頭的虛線連接有依賴關系的兩個類,箭頭指向獨立的類。在虛線上可以帶一個版類標簽,具體說明依賴的種類
B:細化關系
對同一個事物在不同抽象層次上描述時,這些描述之間具有細化關系
- 細化的圖示符號為由元素B指向元素A的一端為空心三角形的虛線
總結
以上是生活随笔為你收集整理的(软件工程复习核心重点)第八章面向对象方法学-第三节:面向对象建模之对象模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSPatch – 动态更新iOS AP
- 下一篇: ng-init,ng-controlle