UML詳解之基本元素-關係

模型元素與模型元素之間的連接關係也是模型元素,
常見的關係有關聯(association)、泛化(generalization)、
依賴(dependency)和聚合(aggregation),其中聚合是關
聯的一種特殊形式。

 關聯:連接(connect)模型元素及鏈接(link)實例。
 依賴:表示一個元素以某種方式依賴於另一種元素。
 泛化:表示一般與特殊的關係,即“一般”元素是“特殊”關係的泛化。
 聚合:表示整體與部分的關係。

基本元素-關係-關聯
 關聯(association)是類之間的語義連接
(link),使一個類知道另一個類的公共屬性
和操作。
 關聯可以是單向的也可以是雙向的。

關聯的表示
 關聯有二元關聯(binary)、三元關聯(ternary)、多元關聯
(higher order)。

關聯的重數
 重數(multiplicity)表示多少個對
象與對方對象相連接,它的默認
值爲1,常用的重數表示符號有:
 0..1  表示零或1
 0..* 或*  表示零或多個
 1..*  表示1或多個
 1,3,7  表示1、3或7(枚舉型)


 在關聯的多端標註{ordered}指
明這些對象是有序的。
 關聯可以用箭頭,表示該關聯
使用的方向(單向或雙向),
稱爲導引或導航(navigation)。

關聯的約束

 約束(constraint)是各種模型元素的一種語義條件或限制。
一條約束只能應用於同一類的元素。
 如果約束應用於一種具有相應視圖元
素的模型元素,它可以出現在它所約
束元素視圖元素的旁邊。
 通常一個約束由一對花括號括起來
({constraint}),花括號中爲約束
內容。
 如果一條約束涉及同一種類的多個元
素,則要用虛線把所有受約束的元素
框起來,並把該約束顯示在旁邊(如
或約束)。

泛化的約束

 約束可分爲:泛化的約束、關聯的約束。
 對泛化的約束
 顯示在大括號裏,若有多個約束,用逗號隔開。
 如果沒有共享,則用一條虛線通過所有繼承線,並在虛線的旁邊顯示
約束。

對泛化有以下常用的約束:

① complete:泛化中所有子元素都已在模型中說明,不允
許再增加其它子元素。
② incomplete:不是泛化中所有子元素都已說明,允許再
增加其它子元素。
③ disjoint:父類對象不能有多於一個型的子對象。
④ overlapping:給定父類對象可有多於一個型的子對象,
表示重載。

關聯的約束

 對關聯有以下常用的約束:
① implicit:該關聯只是概念性的,在對模型進行精化時不再用。
② ordered:具有多重性的關聯一端的對象是有序的。
③ changeable:關聯對象之間的鏈(link)是可變的(添加、修改、刪
除)。
④ addonly:可在任意時刻增加新的鏈接。
⑤ frozen:凍結已創建的對象,不能再添加、刪除和修改它的鏈接。
⑥ xor: “或約束”,某時刻只有一個當前的關聯實例。

 對消息,鏈接角色和對象的約束
 自定義約束 

基本元素-關係-聚集

 聚集(Aggregation)用來表達
整體--部分關係的關聯。
 聚集是特殊的關聯,它可以有
重數、角色、限制等。聚集分
爲:
共享(shared)聚集,它的“部
分”對象可以是任意“整體”對
象的一部分。
組合(Composition)聚集,是指
它的“整體”擁有它的“部分”,
是關聯更強的形式。

基本元素-關係-泛化

 泛化(generalization)是一般和具體之間的一種關係。
 繼承(inherit)就是一種泛化關係,更一般化的描述稱爲
雙親,雙親的雙親稱爲祖先,更具體化的描述稱爲孩子,
在類的範疇,雙親對應超類,孩子對應派生類。

 

基本元素-關係-依賴

 依賴(dependency)指明一個元素引用另一個元素的關係,
它可分爲類與類之間的依賴和包與包之間的依賴。
 依賴有很多種類,比如:
實現(realize) 使用(usage)  實例化(instantiate)
調用(call)  派生(derive) 訪問(access)
引入(import) 友元(friend) ……

依賴的形式

依賴的形式可能是多樣的,針對不同的依賴的形式,依賴關係有不同
的變體(varieties):
① 抽象(abstraction):從一個對象中提取一些特性,並用類方法表示。
② 綁定(binding):爲模板參數指定值,以定義一個新的模板元素。
③ 組合(combination):對不同類或包進行性質相似融合。
④ 許可(permission):允許另一個對象對本對象的訪問。
⑤ 使用(usage):聲明使用一個模型元素需要用到已存在的另一個模型
元素,這樣才能正確實現使用者的功能(包括調用、實例化、參數、
發送)。
⑥ 跟蹤(trace):聲明不同模型中元素的之間的存在一些連接。
⑦ 訪問或連接(access):允許一個包訪問另一個包的內容。

⑧ 調用(call):聲明一個類調用其他類的操作的方法。
⑨ 導出(derive):聲明一個實例可從另一個實例導出。
⑩ 友元(friend):允許一個元素訪問另一個元素,不管被訪問的元素是否
具有可見性。
11 引入(import):允許一個包訪問另一個包的內容,併爲被訪問組成部
分增加別名。
12 實例(instantiation):關於一個類的方法創建了另一個類的實例聲明。
13 參數(parameter):一個操作和它參數之間的關係。
14 實現(realize):說明和其實之間的關係。
15 精化(refine):聲明具有兩個不同語義層次上的元素之間的映射。
16 發送(send):信號發送者和信號接收者之間的關係。

基本元素-關係-細化

 細化(refinement)是對同一事物不同級別的
兩種描述之間的一種關係。
 例如:對同一事物建模的分析類與設計類之間
的就是細化關係。

歡迎志趣相投的朋友一起學習交流! 
本人qq:906570770 
技術資料分享羣:272811256

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章