A. 請問uml怎麼畫關聯和類圖間的虛線
打開visio畫圖軟體,在左邊的導航中選擇「軟體」選項,在右邊會有很多圖,我們會看到UML圖
我們會進入畫圖的界面,在上面導航區有個百分比的選項,默認的畫圖區域比較小,我們可以調整百分比,更方便自己畫圖
在左邊的導航里有很多相關的組件,只要點擊大標題即可展開,我們可以根據自己的需要選擇想要的類、依賴關系等組件,如果你用的很熟的話也可以在上面搜索得到你想到的組件
在左邊的導航里有很多相關的組件,只要點擊大標題即可展開,我們可以根據自己的需要選擇想要的類、依賴關系等組件,如果你用的很熟的話也可以在上面搜索得到你想到的組件。
組件需要改變其名字,我們只要滑鼠雙擊,便可以改變組件的名字,屬性,得到我們想到的組件名稱等。
組件需要改變其名字,我們只要滑鼠雙擊,便可以改變組件的名字,屬性,得到我們想到的組件名稱等。
B. uml 類圖
應該是依賴關系。A類實例化B類所以應該A依賴於B
A----->B 圖 應該這么畫
構造方法也是方法啊,肯定寫在方法里
UML類圖的構成就是類名,變數,方法。
另外,你表示類之間的關系,畫的是UML圖中的類圖,類圖中關系的類型有
一般化(泛化)/關聯/聚合/合成/依賴/這幾種
C. 如何應用uml類圖繪制系統的類及類之間的關系
第五十七回柴桑口卧龍吊喪耒陽縣鳳雛理事第五十八回馬孟起興兵雪恨曹阿瞞割須棄袍
D. UML類圖依賴關系和關聯關系的區別
1.依賴關系(Dependencies)
UML類圖依賴關系是一種使用關系,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另一個事物時使用,兩個元
素之間的一種關系,其中一個元素(服務者)的變化將影響另一個元素(客戶),或向它(客戶)提供所需信息。它是一種組成不同模型關系的簡便方法。依賴表示
兩個或多個模型元素之間語義上的關系。它只將模型元素本身連接起來而不需要用一組實例來表達它的意思。它表示了這樣一種情形,提供者的某些變化會要求或指
示依賴關系中客戶的變化。
根據這個定義,關聯和泛化都是依賴關系,但是它們有更特別的語義,故它們有自己的名字和詳細的語義。我們通常用依賴這個詞來指其他的關系。依賴用一
個從客戶指向提供者的虛箭頭表示,用一個構造型的關鍵字來區分它的種類,通常情況下,UML類圖依賴關系體現在某個類的方法使用另一個類作為參數。
2.關聯關系(Association)
關聯是一種結構化的關系,指一種對象和另一種對象有聯系。給定有關聯的兩個類,可以從一個類的對象得到另一個類的對象。關聯有兩元關系和多元關系。
兩元關系是指一種一對一的關系,多元關系是一對多或多對一的關系。一般用實線連接有關聯的同一個類或不同的兩個類。當你想要表示結構化關系時使用關聯,如
果幾個類元的實例之間有聯系,那麼這幾個類元之間的語義關系即關聯。關聯描述了系統中對象或實例之間的離散連接。
關聯將一個含有兩個或多個有序表的類元,在允許復制的情況下連接起來。最普通的關聯是一對類元之間的二元關聯。關聯的實例之一是鏈。每個鏈由一組對
象(一個有序列表)構成,每個對象來自於相應的類。二元鏈包含一對對象。關聯帶有系統中各個對象之間關系的信息。當系統執行時,對象之間的連接被建立和銷
毀。關聯關系是整個系統中使用的「膠粘劑」,如果沒有它,那麼只剩下不能一起工作的孤立的類。在關聯中如果同一個類出現不止一次,那麼一個單獨的對象就可
以與自己關聯。如果同一個類在一個關聯中出現兩次,那麼兩個實例就不必是同一個對象,通常的情況都如此。二元關聯用一條連接兩個類的連線表示。
聚集表示部分與整體關系的關聯,它用端點帶有空菱形的線段表示,空菱形與聚集類相連接。組成是更強形式的關聯,整體有管理部分的特有的職責,它用一
個實菱形物附在組成端表示。每個表示部分的類與表示整體的類之間有單獨的關聯,但是為了方便起見,連線結合在一起,現在整組關聯就像一棵樹。
E. UML類圖怎麼畫
用過draw.io、StarUML. 、MagicDraw、億圖圖示,最後確定了國產億圖圖示,使用習慣和符號元素、操作上都是我的參考,你可以試用下
F. UML類圖怎麼畫
UML 類圖簡介 UML 對很多人來說應該不是一個陌生的概念,這一兩年來,UML 被大家越來越多的討論著。本來 UML 跟我這個主題似乎並不能扯上多大的關系(它是語言無關的,甚至可以說其本身就是一種語言——用於交流的)。我在此談到它有兩個目的: 1. UML 是針對面向對象軟體開發的,而 C++正是這樣的一種語言 2. UML 在設計中被越來越多的使用著,而下一篇雜談准備討論設計模式,如果不了解 UML,那麼無法進行下去 UML,全稱:Unified Modeling Language,其目的是為了對軟體密集型的製品進行可視化、詳述、構造和文檔化的圖形語言。UML 是依據許多前人的思想總結出的成果,1997 年被 OMG 通過並成為標准(所以在《設計模式》書中如果你看到與標准不一樣的地方,不要奇怪,那本書是 95 年的)。關於 UML 的歷史和更詳細的描述,可以參考《UML 參考手冊》。UML 主要由一系列視圖組成,其中包括靜態視圖(Static vi ew),用例視圖(Use case view)活動視圖(Acti vity view)等,不同的圖用處自然也不一樣,而對開發人員來講(或者說為我的下一篇來說),更重要的應該是靜態視圖中的類圖(class diagram)和交互視圖(Interaction view)中的順序圖(Sequence diagram),請注意 view 和 diagram 的區別。 類圖 靜態視圖說明了對象的結構,其中最常用的就是類圖,類圖可以幫助我們更直觀的了解一個系統的體系結構,有時侯,描述系統快照的對象圖(Object diagram)也是很有用的。在這里,我們主要介紹類圖,下面的圖就是一個簡單的類圖: 在類圖中,類由矩形框來表示,如上圖中,定義了 4 個類,分別為 Base、A、B、 C,類之間的關系通過各種線條和其他符號來表示,在上圖中,空心的三角表示繼承關系,在 UML 的術語中,這種關系被稱為泛化(Generalization),所以上面的類用等價代碼表示為: class Base{…}; class A:public Base{…}; class B:public Base{…}; class C:public Base{…}; 我們再看下一幅圖: 這幅圖與上幅幾乎沒有什麼區別,唯一的不同就是 Base 類中增加了成員,一個私有的 integer _x(UML 術語為 property)和一個公有的 fun()的函數(method),是否需要這些類的內部細節 UML 本身並沒有限制,完全取決於你自己如何使用, UML 的用處在於幫助你了解系統,所以只要你自己覺得足夠清楚,那麼夠了,不要再復雜了。 接著看第三幅圖: 上面圖中的箭頭表示一種關系,箭頭另一邊有一個菱形(空心)表示聚合(aggregation),聚合的意義表示 has-a 關系,其等價代碼如下: class A{…}; class B{ A* theA;…}; 聚合是一種相對鬆散的關系,聚合類 B 不需要對被聚合的類 A 負責。 下面的圖: 這幅圖與上面的唯一區別是菱形為實心的,它代表了一種更為堅固的關系——組合(composition)。組合表示的關系也是 has-a,不過在這里,A 的生命期受 B 控制,通常情況,等價代碼如下: class A{…}; class B{A theA;…}; 即 A 會隨著 B 的創建而創建,隨 B 的消亡而消亡。 下圖: 這里 B 與 A 的關系只是一種依賴關系,這種關系表明,如果類 A 被修改,那麼類 B 會受到影響,一個簡單的例子就是: class A{…}; class B{fun(A params);…}; 常用的關系就是我們上面用的這些,通過這些關系和類表示的類圖,我們可以用圖形化的方式描述一個系統的設計部分,當你習慣使用 UML 後,你會發現,這往往比你告訴同伴某某類從某某類派生,派生類又和某某類具有什麼關系容易的多。 順序圖: UML 中另外一個常用的圖形就是交互視圖中的順序圖,在以往的過程化語言中,我們通常使用流程圖來描述一個函數(系統)是如何工作的,而在面向對象的系統中,這顯然是不可行的,而順序圖正是來解決這個問題的。 假設有如下的偽代碼: class circle { public: void fillcolor() { // ... }; void draw() { fillcolor(); }; }; class window { public: void drawcircle() { _circle.draw(); }; private: circle _circle; }; 對於下面的調用: window wnd; wnd.drawcircle(); 對應的順序圖如下: 圖中上方的方塊表示參與的對象,垂直的虛線表示對象的生命線,方框表示激活,其中箭頭表示了一個調用消息(也可以有回送 return),如果是非同步的消息,則用半箭頭表示,其中 draw 表示了一個自調用(self call) 至此,UML 中最常用的(從開發人員的角度),當然 UML 的內容遠遠不只這些,這里的介紹只是一些簡單的概括,並且 UML 本身也在不斷的發展之中,無論怎樣,我覺得 UML 會越來越多的深入我們的開發過程中,特別是對下一篇我們要介紹的設計模式而言,類圖是主要的描述工具(到那個時候你會體會到 UML 描述的優越)。 如果你看過《設計模式》著本書,你會發現與我上面所描述的有一些細微的不同,不要緊張,《設計模式》是 GOF95 年的作品,那時候 UML 還沒有形成,而且,其中也明確那是 OMT 方法(Jim Rumbaugh 在通用電氣發表的建模技術——Object Modeling Technique)和 Booch 方法。
G. 如何用OmniGraffle畫UML類圖
你好,希望我的回答能幫到你,首先簡單介紹一下類圖,在UML的靜態機制中,類圖是一個重點,它不但是設計人員關心的核心,更是實現人員關注的核心。類圖有三個要素:類名、屬性和操作。繪制類圖並不難,Omnigraffle自帶類圖模板,所以不需要費什麼功夫就能繪制完成。單擊右側的「型版」按鈕,在菜單欄中找到「圖表」模塊,在圖表下選擇「UX套件UML」,下方會出現「UX套件UML」模塊,前幾項就是類圖模板,直接用滑鼠拖動到畫布上即可。
類圖中需要添加文字信息,雙擊類圖模板中的原英文就能修改文字,還可以對類圖本身和文本填充顏色,這些都在「對象」檢查器里:在填充檢查器里可以填充類圖顏色,字體檢查器可以更改文本的字體和顏色。
類圖不是單獨一個,幾個類連接在一起才是完整的類圖,連接線可以顯示類與類之間的關系,所以連接線也是類圖的重要部分,類圖的連接線可以是直線,或者是單向和雙向箭頭,這一點和流程圖不同,連接線也是在型版里,「UX套件UML」下方是「UX套件連接」,這個模塊里就有不少連接線選擇,根據自己的需求選用即可網頁鏈接。
H. 面向對象技術與uml,畫對象類圖
標准建模語言UML的重要內容可以由下列五類圖(共9種圖形)來定義:
·第一類是用例圖
從用戶角度描述系統功能,並指出各功能的操作者.
·第二類是靜態圖(Static
diagram)
包括類圖、對象圖和包圖.其中類圖描述系統中類的靜態結構.不僅定義系統中的類,表示類之間的聯系如關聯、依賴、聚合等,也包括類的內部結構(類的屬性和操作).類圖描述的是一種靜態關系,在系統的整個生命周期都是有效的.對象圖是類圖的實例,幾乎使用與類圖完全相同的標識.他們的不同點在於對象圖顯示類的多個對象實例,而不是實際的類.一個對象圖是類圖的一個實例.由於對象存在生命周期,因此對象圖只能在系統某一時間段存在.包由包或類組成,表示包與包之間的關系.包圖用於描述系統的分層結構.
·第三類是行為圖(Behavior
diagram)
描述系統的動態模型和組成對象間的交互關系.其中狀態圖描述類的對象所有可能的狀態以及事件發生時狀態的轉移條件.通常,狀態圖是對類圖的補充.在實用上並不需要為所有的類畫狀態圖,僅為那些有多個狀態其行為受外界環境的影響並且發生改變的類畫狀態圖.而活動圖描述滿足用例要求所要進行的活動以及活動間的約束關系,有利於識別並行活動.
·第四類是交互圖(Interactive
diagram)
描述對象間的交互關系.其中順序圖顯示對象之間的動態合作關系,它強調對象之間消息發送的順序,同時顯示對象之間的交互;合作圖描述對象間的協作關系,合作圖跟順序圖相似,顯示對象間的動態合作關系.除顯示信息交換外,合作圖還顯示對象以及它們之間的關系.如果強調時間和順序,則使用順序圖;如果強調上下級關系,則選擇合作圖.這兩種圖合稱為交互圖.
·第五類是實現圖(
Implementation
diagram
).其中
構件圖描述代碼部件的物理結構及各部件之間的依賴關系.一個部件可能是一個資源代碼部件、一個二進制部件或一個可執行部件.它包含邏輯類或實現類的有關信息.部件圖有助於分析和理解部件之間的相互影響程度.
配置圖定義系統中軟硬體的物理體系結構.它可以顯示實際的計算機和設備(用節點表示)以及它們之間的連接關系,也可顯示連接的類型及部件之間的依賴性.在節點內部,放置可執行部件和對象以顯示節點跟可執行軟體單元的對應關系.
從應用的角度看,當採用面向對象技術設計系統時,首先是描述需求;其次根據需求建立系統的靜態模型,以構造系統的結構;第三步是描述系統的行為.其中在第一步與第二步中所建立的模型都是靜態的,包括用例圖、類圖(包含包)、對象圖、組件圖和配置圖等五個圖形,是標准建模語言UML的靜態建模機制.其中第三步中所建立的模型或者可以執行,或者表示執行時的時序狀態或交互關系.它包括狀態圖、活動圖、順序圖和合作圖等四個圖形,是標准建模語言UML的動態建模機制.因此,標准建模語言UML的主要內容也可以歸納為靜態建模機制和動態建模機制兩大類.
I. uml中類圖之間有幾種關系
在uml類圖中,常見的有以下幾種關系:泛化(generalization),
實現(realization),關聯(association),聚合(aggregation),組合(composition),依賴(dependency)
1.泛化(generalization)【泛化關系】:是一種繼承關系,它指定了子類如何特化父類的所有特徵和行為例如:老虎是動物的一種.【箭頭指向】:帶三角箭頭的實線,箭頭指向父類2.實現(realization)【實現關系】:是一種類與介面的關系,表示類是介面所有特徵和行為的實現【箭頭指向】:帶三角箭頭的虛線,箭頭指向介面3.關聯(association)【關聯關系】:是一種擁有的關系,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。【代碼體現】:成員變數【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者
上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關系為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。
上圖為自身關聯:
4.
聚合(aggregation)【聚合關系】:是整體與部分的關系.如車和輪胎是整體和部分的關系.聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在語法上無法區分,必須考察具體的邏輯關系。【代碼體現】:成員變數【箭頭及指向】:帶空心菱形的實心線,菱形指向整體
5.
組合(composition)【組合關系】:是整體與部分的關系.,沒有公司就不存在部門
組合關系是關聯關系的一種,是比聚合關系還要強的關系,它要求普通的聚合關系中代表整體的對象負責代表部分的對象的生命周期【代碼體現】:成員變數【箭頭及指向】:帶實心菱形的實線,菱形指向整體
6.
依賴(dependency)【依賴關系】:是一種使用的關系,所以要盡量不使用雙向的互相依賴。【代碼表現】:局部變數、方法的參數或者對靜態方法的調用【箭頭及指向】:帶箭頭的虛線,指向被使用者各種關系的強弱順序:泛化=
實現>
組合>
聚合>
關聯>
依賴下面這張uml圖,比較形象地展示了各種類圖關系: