關於UML類圖中的關聯關係,UML類圖依賴關係和關聯關係的區別

2021-03-17 09:29:24 字數 6324 閱讀 3543

1樓:草莓愛戀月光

關聯(association)

是模型元素間的一種語義聯絡,它是對具有共同的結構特性、行為特性、關係和語義的鏈(link)的描述。(不同物件或類之間的結構化關係)

表示物件之間的聯絡。

在類圖中,關聯用一條把類連線在一起的實線表示。

比如:學生與課程之間就是通過選課關係進行關聯聚合(aggregation)

表示兩個類之間是「is part of」關係,即整體--部分關係。

用橫線加空心菱形表示,菱形部分對應整體一端比如:組員是團隊中的一部分

相對的橫線加實心菱形表示組合(***position)關係,雖然組合關係也表示整體--部分關係,可是它表示部分物件被嵌入到整體物件中。比如:引擎是飛機的一部分

我理解的也比較淺 大家一起學習學習

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

2樓:下個id我們再見

1.依賴關係(dependencies)

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

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

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

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

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

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

2.關聯關係(association)

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

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

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

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

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

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

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

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

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

uml類圖幾種關係的總結

3樓:喜洋洋

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

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

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

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

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

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

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

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

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

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

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

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

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

4樓:百度文庫精選

內容來自使用者:蔣先芳

2. 實現(realization)

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

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

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

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

【**體現】:成員變數

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

uml類圖的類之間的關係

5樓:椶啑颶

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

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

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

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

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

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

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

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

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

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

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

6樓:秒懂**

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

uml類圖關係怎麼畫

7樓:匿名使用者

類圖畫法

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類圖問題,uml的類圖包含哪些抽象的層次

不能這樣說 控制類,邊界類,實體類是畫精化類圖時才分的,所謂的類版圖一般指概要類圖,在某種權程度上前面三類都要畫,但不要求分的很清,不過屬於控制類的類概要類圖中一定要出現。先是需求分析階段根據使用者需要實現的功能畫用例圖,再根據功能實現的步驟畫活 然後是設計階段進行類分析,畫概要類圖,細化類圖,對每...

uml物件圖和實體類圖的區別,uml ER圖的聯絡與區別??

一般來說,一個用例對應一個控制類新增資料的順序圖,從左向右 假設是 物件 邊界類 控制類 例項類管理員 資料輸入介面 對資料的處理 存入資料庫記錄 管理在系統介面輸入要新增的資料,確定後 控制類對資料進行檢查等處理,當資料無誤後,存入資料形成例項物件。控制類,在用例中,出去實體類,邊界類,很簡單就是...

在UML的包圖中,兩個包之間的關係use和call有什麼區別

use宣告使用一個類時需要用到已存在的另一個類。call宣告一個類呼叫其他類的操作的方法。都是依賴關係,只是依賴的不同 包圖之間的關係又依賴 細化 泛化,根本就沒有你說的呼叫。uml中的順序圖和通訊圖有什麼聯絡和區別 順序圖和通bai信圖都屬於互動圖。du這兩種圖zhi 之間的區別dao 在於 順序...