一、作為一種建模語言,UML的定義包括UML語義和UML表示法兩個部分。
UML語義:描述基於UML的精確元模型定義。
UML表示法:定義UML符號的表示法,為開發者或開發工具使用這些圖形符號和文本語法為系統建模提供了標準。這些圖形符號和文字所表達的是應用級的模型,在語義上它是UML元模型的實例。
二、標準建模語言UML可以由下列5類圖來定義。
用例圖:從用戶角度描述系統功能,並指出各功能的操作者。
靜態圖:包括類圖和對象圖。類圖描述系統中類的靜態結構,不僅定義系統中的類,表示類之間的聯繫,如關聯、依賴、聚合等,也包括類的屬性和操作,類圖描述的是一種靜態關係,在系統的整個生命週期都是有效的。對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。一個對象圖是類圖的一個實例。由於對象存在生命週期,因此對象圖只能在系統某一時間段存在。
行為圖:描述系統的動態模型和組成對象間的交互關係,包括狀態圖和活動圖。狀態圖描述類的對象所有可能的狀態以及事件發生時狀態的轉移條件,狀態圖是對類圖的補充,活動圖描述滿足用例要求所要進行的活動以及活動間的約束關係,有利於識別並進行活動。
交互圖:描述對象間的交互關係,包括時序圖和協作圖。時序圖顯示對象之間的動態合作關係,它強調對象之間消息發送的順序,同時顯示對象之間的交互;協作圖描述對象間的協作關係,協作圖跟時序圖相似,顯示對象間的動態合作關係。除顯示信息交換外,協作圖還顯示對象以及它們之間的關係。如果強調時間和順序,則使用時序圖;如果強調上下級關係,則選擇協作圖。
實現圖:包括組件圖和部署圖。組件圖描述代碼部件的物理結構及各部件之間的依賴關係,組件圖有助於分析和理解部件之間的相互影響程度;部署圖定義系統中軟硬件的物理體系結構。
採用UML來設計系統時,第一步是描述需求;第二步根據需求建立系統的靜態模型,以構造系統的結構;第三步是描述系統的行為。其中在第一步與第二步中所建立的模型都是靜態的,包括用例圖、類圖、對象圖、組件圖和部署圖等5種圖形,是標準建模語言UML的靜態建模機制。其中第三步中所建立的模型或者可以執行,或者表示執行時的時序狀態或交互關係。它包括狀態圖、活動圖、時序圖和協作圖等4種圖形,是標準建模語言UML的動態建模機制。
首先對UML中的各個圖的功用做一個簡單介紹:
1、用例圖
描述角色以及角色與用例之間的連接關係。說明的是誰要使用系統,以及他們使用該系統可以做些什麼。一個用例圖包含了多個模型元素,如系統、參與者和用例,並且顯示了這些元素之間的各種關係,如泛化、關聯和依賴。
2、類圖
類圖是描述系統中的類,以及各個類之間的關係的靜態視圖。能夠讓我們在正確編寫代碼以前對系統有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態模型類型。
3、對象圖
與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關係,而是對象之間的關係。
4、活動圖
描述用例要求所要進行的活動,以及活動間的約束關係,有利於識別並行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。
5、狀態圖
描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件。可以捕獲對象、子系統和系統的生命週期。他們可以告知一個對象可以擁有的狀態,並且事件(如消息的接收、時間的流逝、錯誤、條件變為真等)會怎麼隨著時間的推移來影響這些狀態。一個狀態圖應該連接到所有具有清晰的可標識狀態和複雜行為的類;該圖可以確定類的行為,以及該行為如何根據當前的狀態變化,也可以展示哪些事件將會改變類的對象的狀態。狀態圖是對類圖的補充。
6、序列圖(順序圖)
序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調消息是如何在對象之間被髮送和接收的。
7、協作圖
和序列圖相似,顯示對象間的動態合作關係。可以看成是類圖和順序圖的交集,協作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調時間和順序,則使用序列圖;如果強調上下級關係,則選擇協作圖;這兩種圖合稱為交互圖。
8、構件圖 (組件圖)
描述代碼構件的物理結構以及各種構建之間的依賴關係。用來建模軟件的組件及其相互之間的關係,這些圖由構件標記符和構件之間的關係構成。在組件圖中,構件時軟件單個組成部分,它可以是一個文件,產品、可執行文件和腳本等。
9、部署圖 (配置圖)
是用來建模系統的物理部署。例如計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發人員、系統集成人員和測試人員。
幾種圖的區別:
一:這九種模型圖各有側重,
1:用例圖側重描述用戶需求,
2:類圖側重描述系統具體實現;
二:描述的方面都不相同,
1:類圖描述的是系統的結構,
2:序列圖描述的是系統的行為;
三:抽象的層次也不同,
1:構件圖描述系統的模塊結構,抽象層次較高,
2:類圖是描述具體模塊的結構,抽象層次一般,
3:對象圖描述了具體的模塊實現,抽象層次較低。
在有的文獻書籍中,將這九種模型圖分為三大類:
結構分類、動態行為和模型管理:
1:結構分類包括用例圖、類圖、對象圖、構件圖和部署圖,
2:動態行為包括狀態圖、活動圖、順序圖和協作圖,
3:模型管理則包含類圖。
畫圖說明
UML(統一建模語言):是面向對象的可視化建模的一種語言。是數據庫設計過程中,在E-R圖(實體-聯繫圖)的設計後的進一步建模。UML中有3種構造塊:事物、關係和圖,事物是對模型中最具有代表性的成分的抽象;關係是把事物結合在一起;圖聚集了相關的的事物。具體關係圖標如下:
說明:構件事物是名詞,是模型的靜態部分。行為事物是動態部分,表示行為。分組事物是組織部分。註釋事物是解釋部分。
依賴:一個事物變化會引起另一個事物變化。聚集:特殊的關聯,描述整體與部分的組合關係。泛化:是一種特殊與一般的關係,如子元素(特殊)與父元素(一般),箭頭指向父元素。實現:類元之間的關係,其中一個類元指定了由另一個類元保證執行的契約。一般用在接口和實現他們的類之間或用例和實現它們的協作之間。
UML提供9種視圖:類圖、對象圖,用例圖,序列圖、協作圖,狀態圖、活動圖,構件圖和部署圖。
在UML系統開發中有三個主要的模型:
功能模型: 從用戶的角度展示系統的功能,包括用例圖。對象模型: 採用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括類圖。動態模型: 展現系統的內部行為。 包括序列圖,活動圖,狀態圖。
下面具體說明:
1.類圖:描述一組對象、接口、協作等事物之間的關係。如下圖(摘自網絡):
注:#表示protected,+表示Public,-表示private
2.對象圖:描述一組對象之間的關係,是具有具體屬性值和行為的一個具體事物,其是類圖中所建事物實例的靜態快照,其與類圖的主要區別是一個是抽象的,而對象圖是具體的。如下圖(摘自網絡):
3.用例圖:描述一組用例、參與者以及它們之間的關係,其展示的是該系統在它的外面環境中所提供的外部可見服務。如下圖(摘自網絡):
4.交互圖:包括序列圖(順序圖)和協作圖,兩者對應,順序圖是強調消息時間順序,有對象生命線和控制焦點。協作圖是強調接收和發送消息的對象的結構組織,有路徑和順序號。如下圖(摘自網絡):
5.協作圖:
6.狀態圖:展示了一個狀態機,由狀態、轉換、事件和活動組成。強調事件行為的順序。如下圖(摘自網絡):
7.活動圖:是一種特殊的狀態圖,實現一個活動到另一個活動的流程。如下圖(摘自網絡):
8.構件圖 9.部署圖:構件圖展示一組構件之間的組織和依賴關係,並以全局的模型展示出來。部署圖是構件的配置及描述系統如何在硬件上部署。如下圖(摘自網絡):