UML類圖的類之間的關係,UML類圖依賴關係和關聯關係的區別

2021-03-12 16:09:05 字數 5869 閱讀 4483

1樓:椶啑颶

類之間的關係是類圖中比較複雜的內容。有關聯、聚合、組合、泛化、依賴。

關聯:是模型元素之間的一種語義聯絡,是類之間的一種很弱的聯絡。關聯可以有方向,可以是單向關聯,也可以是雙向關聯。

可以給關聯加上關聯名來描述關聯的作用。關聯兩端的類也可以以某種角色參與關聯,角色可以具有多重性,表示可以有多少個物件參與關聯。可以通過關聯類進一步描述關聯的屬性、操作以及其他資訊。

關聯類通過一條虛線與關聯連線。對於關聯可以加上一些約束,以加強關聯的含義。如下圖所示:

聚合是一種特殊的關聯,聚合表示整體與部分的關係。通常在定義一個整體類後,再去分析這個整體類的組成結構。從而找出一些組成類,該整體類和組成類之間就形成了聚合關係。

例如艦隊是由一系列的艦船組成。需求描述中「包含」、「組成」、「分為….部分」等詞常意味著聚合關係。

組合也是一種特殊的關聯,也表示類之間整體和部分的關係,但是組合關係中部分和整體具有統一的生存期。一旦整體物件不存在,部分物件也將不存在。部分物件與整體物件之間具有共生死的關係。

聚合和組合的區別:聚合關係是「has-a」關係,組合關係是「contains-a」關係;聚合關係表示整體與部分的關係比較弱,而組合比較強;聚合關係中代表部分事物的物件與代表聚合事物的物件的生存期無關,一旦刪除了聚合物件不一定就刪除了代表部分事物的物件。組合中一旦刪除了組合物件,同時也就刪除了代表部分事物的物件。

泛化定義了一般元素和特殊元素之間的分類關係,類之間的這種泛化關係也就是繼承關係。泛化關係是「a-kind-of」關係,定義一般元素和特殊元素之間的分類關係。下圖是一個泛化關係的例子。

有兩個元素如果修改x的定義可能會導致對y的定義,則認為y依賴x。依賴關係可能由各種原因引起,如一個類向另一個類傳送訊息,或者一個類是另一個類的資料成員型別,或者一個類是另一個類的操作的引數型別等。有時依賴關係和關聯關係比較難區分。

如果類a和類b有關聯關係,它們之間必然有依賴關係。如果兩個類之間有關聯關係時不用再表示出這兩個類之間的依賴關係。

2樓:秒懂**

uml類圖:顯示了一組類、介面、協作以及他們之間的關係

uml類圖依賴關係和關聯關係的區別

3樓:下個id我們再見

1.依賴關係(dependencies)

uml類圖依賴關係是一種使用關係,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另一個事物時使用,兩個元

素之間的一種關係,其中一個元素(服務者)的變化將影響另一個元素(客戶),或向它(客戶)提供所需資訊。它是一種組成不同模型關係的簡便方法。依賴表示

兩個或多個模型元素之間語義上的關係。它只將模型元素本身連線起來而不需要用一組例項來表達它的意思。它表示了這樣一種情形,提供者的某些變化會要求或指

示依賴關係中客戶的變化。

根據這個定義,關聯和泛化都是依賴關係,但是它們有更特別的語義,故它們有自己的名字和詳細的語義。我們通常用依賴這個詞來指其他的關係。依賴用一

個從客戶指向提供者的虛箭頭表示,用一個構造型的關鍵字來區分它的種類,通常情況下,uml類圖依賴關係體現在某個類的方法使用另一個類作為引數。

2.關聯關係(association)

關聯是一種結構化的關係,指一種物件和另一種物件有聯絡。給定有關聯的兩個類,可以從一個類的物件得到另一個類的物件。關聯有兩元關係和多元關係。

兩元關係是指一種一對一的關係,多元關係是一對多或多對一的關係。一般用實線連線有關聯的同一個類或不同的兩個類。當你想要表示結構化關係時使用關聯,如

果幾個類元的例項之間有聯絡,那麼這幾個類元之間的語義關係即關聯。關聯描述了系統中物件或例項之間的離散連線。

關聯將一個含有兩個或多個有序表的類元,在允許複製的情況下連線起來。最普通的關聯是一對類元之間的二元關聯。關聯的例項之一是鏈。每個鏈由一組對

象(一個有序列表)構成,每個物件來自於相應的類。二元鏈包含一對物件。關聯帶有系統中各個物件之間關係的資訊。當系統執行時,物件之間的連線被建立和銷

毀。關聯關係是整個系統中使用的「膠粘劑」,如果沒有它,那麼只剩下不能一起工作的孤立的類。在關聯中如果同一個類出現不止一次,那麼一個單獨的物件就可

以與自己關聯。如果同一個類在一個關聯中出現兩次,那麼兩個例項就不必是同一個物件,通常的情況都如此。二元關聯用一條連線兩個類的連線表示。

聚集表示部分與整體關係的關聯,它用端點帶有空菱形的線段表示,空菱形與聚集類相連線。組成是更強形式的關聯,整體有管理部分的特有的職責,它用一

個實菱形物附在組成端表示。每個表示部分的類與表示整體的類之間有單獨的關聯,但是為了方便起見,連線結合在一起,現在整組關聯就像一棵樹。

uml類圖幾種關係的總結

4樓:喜洋洋

在uml類圖中,常見的有以下幾種關係:泛化(generalization), 實現(realization),關聯(association),聚合(aggregation),組合(***position),依賴(dependency) 1.泛化(generalization)【泛化關係】:

是一種繼承關係,它指定了子類如何特化父類的所有特徵和行為例如:老虎是動物的一種.【箭頭指向】:

帶三角箭頭的實線,箭頭指向父類2.實現(realization)【實現關係】:是一種類與介面的關係,表示類是介面所有特徵和行為的實現【箭頭指向】:

帶三角箭頭的虛線,箭頭指向介面3.關聯(association)【關聯關係】:是一種擁有的關係,它使一個類知道另一個類的屬性和方法;如:

老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。【**體現】:

成員變數【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者 上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關係為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。

上圖為自身關聯: 4. 聚合(aggregation)【聚合關係】:

是整體與部分的關係.如車和輪胎是整體和部分的關係.聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。

【**體現】:成員變數【箭頭及指向】:帶空心菱形的實心線,菱形指向整體 5.

組合(***position)【組合關係】:是整體與部分的關係.,沒有公司就不存在部門 組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的物件負責代表部分的物件的生命週期【**體現】:

成員變數【箭頭及指向】:帶實心菱形的實線,菱形指向整體 6. 依賴(dependency)【依賴關係】:

是一種使用的關係,所以要儘量不使用雙向的互相依賴。【**表現】:區域性變數、方法的引數或者對靜態方法的呼叫【箭頭及指向】:

帶箭頭的虛線,指向被使用者各種關係的強弱順序:泛化= 實現》 組合》 聚合》 關聯》 依賴下面這張uml圖,比較形象地展示了各種類圖關係:

5樓:百度文庫精選

內容來自使用者:蔣先芳

2. 實現(realization)

【實現關係】:是一種類與介面的關係,表示類是介面所有特徵和行為的實現.

【箭頭指向】:帶三角箭頭的虛線,箭頭指向介面3. 關聯(association)

【關聯關係】:是一種擁有的關係,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。

雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。

【**體現】:成員變數

【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關係為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。

uml類圖關係怎麼畫

6樓:匿名使用者

類圖畫法

1、 類圖的概念

a、顯示出類、介面以及它們之間的靜態結構和關係

b、用於描述系統的結構化設計

2、 類圖的元素

類、介面、協作、關係,我們只簡單介紹一下這四種元素。

同其他的圖一樣,類圖也可以包含註解和限制。

類圖中也可以包含包和子系統,這兩者用來將元素分組。

有時候你也可以將類的例項放到類圖中。

3、 類

a、 類是對一組具有相同屬性、操作、關係和語義的物件的抽象,它是物件導向系統組織結構的核心,包括名稱部分(name)、屬性部分(attribute)和操作部分(operation),見下圖。

b、 類屬性的語法為:

[可見性] 屬性名 [:型別] [=初始值]

可見性:公有(public)「+」、私有(private)「-」、受保護(protected)「#」

類操作的語法為:

[可見性] 操作名 [(參數列)] [:返回型別]

可見性:公有(public)「+」、私有(private)「-」、受保護(protected)「#」、包內公有(package)「~」

參數列:

定義方式:「名稱:型別」;若存在多個引數,將各個引數用逗號隔開;引數可以具有預設值;

屬性字串:

在操作的定義中加入一些除了預定義元素之外的資訊。

4、 介面

在沒有給出物件的實現和狀態的情況下對物件行為的描述。

一個類可以實現一個或多個介面。

5、 協作

協作是指一些類、介面和其他的元素一起工作提供一些合作的行為,這些行為不是簡單地將元素加能得到的。例如:當你為一個分散式的系統中的事務處理過程建模型時,你不可能只通過一個類來明白事務是怎樣進行的,事實上這個過程的執行涉及到一系列的類的協同工作。

使用類圖來視覺化這些類和他們的關係。

6、 關係

這篇文章的重點,詳見第二部分。

二、類之間的幾種關係

1、 泛化(generalization)

a、 是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行為,描述了一種「is a kind of」 的關係。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。

b、 用帶空心箭頭的實線表示,箭頭指向父類,如下圖:

2、 實現(realization)

a、 是一種類與介面的關係,表示類是介面所有特徵和行為的實現。

b、 用帶空心箭頭的虛線表示,箭頭指向介面,如下圖:

3、 關聯(association)

a、 一般關聯

a、 關聯關係是類與類之間的聯結,它使一個類知道另一個類的屬性和方法,指明瞭事物的物件之間的聯絡,如:老師與學生、丈夫與妻子。關聯可以是雙向的,也可以是單向的,還有自身關聯。

b、 用帶普通箭頭的實心線表示。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭,如下圖:

b、 聚合(aggregation)

a、 它是整體與部分(整體 has a 部分)的關係,且部分可以離開整體而單獨存在,如車和輪胎是整體和部分的關係,輪胎離開車仍然可以存在。聚合關係是關聯關係的一種,是強的關聯關係,關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。

b、 用帶空心菱形的實線表示,菱形指向整體,如下圖:

c、 組合(***position)

a、 它是整體與部分的關係,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關係,沒有公司就不存在部門。組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的物件負責代表部分的物件的生命週期。

b、 用帶實心菱形的實線表示,菱形指向整體,如下圖:

4、 依賴(dependency)

a、 元素a的變化會影響元素b,那麼b和a的關係是依賴關係,b依賴a。要避免雙向依賴,一般來說,不應該存在雙向依賴。關聯、實現、泛化都是依賴關係。

b、 用帶箭頭的虛線表示,箭頭指向被依賴元素。

5、 總結

各種關係的強弱順序如下:

泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴

下面這張uml圖,比較形象地展現了各種類圖關係:

uml類圖用軟體怎樣畫

1.staruml,小巧 免費,功能也不錯。2.visio,微軟的,不僅是用於uml圖。3.rose,大而全。不是有rational rose嘛?可以用那個畫的哇,不過有點大,裝起來有點麻煩,祝你成功咯 可以利用微軟的 visio軟體,選擇軟體與資料庫模型裡面有個uml靜態結構,就可以畫類圖了。怎麼...

怎樣修改用Visio畫的UML圖

最好是在visio裡面修改,貼上到word中,就像trufun plato uml2建模工具操作的那樣,或者直接可以生成你內uml模型的分析設計文件,容就不需要自己一個一個貼上。可以一次性生成所有uml模型圖,也可以根據需要在拷貝部分,貼上到word中。如何使用visio2013如何繪製uml圖 v...

學習類 惜時類 送別類 友情類 思鄉類 節日類的詩句 各兩句

1.春 陽春佈德澤,萬物生光輝 漢 樂府古辭 長歌行 不知細葉誰裁出,二月春風似剪刀 唐 賀知章 詠柳 天街小雨潤如酥,草色遙看近卻無。最是一年春好處,絕勝煙柳滿皇都 唐 韓愈 早春呈水部張十八員外 竹外桃花三兩枝,春江水暖鴨先知。宋 蘇軾 惠崇春江晚景二首 等閒識得東風面,萬紫千紅總是春 宋 朱熹...