UML建模综述
?
?
一、概念
UML-Unified Model Language?統一建模語言,又稱標準建模語言。是用來對軟件密集系統進行可視化建模的一種語言。作為一個支持模型化和軟件系統開發的圖形化語言,UML為軟件開發的所有階段提供模型化和可視化支持,包括由需求分析到規格,到構造和配置。
UML規范用來描述建模的概念有:類(對象的)、對象、關聯、職責、行為、接口、用例、包、順序、協作,以及狀態。
?
二、分類
在UML系統開發中有三個主要的模型:?
功能模型: 從用戶的角度展示系統的功能,包括用例圖。?
對象模型: 采用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括類圖、對象圖、包圖。?
動態模型: 展現系統的內部行為。 包括序列圖,活動圖,狀態圖。
?
UML定義了5類,10種模型圖
五種類圖定義:
用例圖:從用戶角度描述系統功能,并指各功能的操作者。
靜態圖:包括類圖,包圖,對象圖。
類圖:描述系統中類的靜態結構
包圖:是包和類組成的,表示包與包之間的關系,包圖描述系統的分層結構
對象圖:是類圖的實例
行為圖:描述系統動態模型和對象組成的交換關系。包括狀態圖和活動圖
活動圖:描述了業務實現用例的工作流程
狀態圖:是描述狀態到狀態控制流,常用于動態特性建模
交互圖:描述對象之間的交互關系
順序圖:對象之間的動態合作關系,強調對象發送消息的順序,同時顯示對象之間的交互
合作圖:描述對象之間的協助關系
實現圖:描述系統的實際體系結構安排
配置圖:定義系統中軟硬件的物理體系結構
?
十種圖定義:
UML包括用例圖、類圖、構件圖、部署圖、順序圖、協作圖、狀態圖、活動圖
(1)類圖(Class Diagram)。展現了一組對象、接口、協作和它們之間的關系。類圖描述的是一種靜態關系,在系統的整個生命周期都是有效的,是面向對象系統的建模中最常見的圖。
(2)對象圖(Object Diagram)。展現了一組對象以及它們之間的關系。對象圖是類圖的實例,幾乎使用與類圖完全相同的標示。
(3)用例圖(UseCase Diagram)。展現了一組用例、參與者(actor)以及它們之間的關系。用例圖從用戶角度描述系統的靜態使用情況,用于建立需求模型。
(4)交互圖。用于描述對象間的交互關系,由一組對象和它們之間的關系組成,包含它們之間可能傳遞的消息。交互圖又分為序列圖和協作圖,其中序列圖描述了以時間順序組織的對象之間的交互活動;協作圖強調收發消息的對象的結構組織。
(5)狀態圖(State Diagram)。由狀態、轉換、事件和活動組成,描述類的對象所有可能的狀態以及事件發生時的轉移條件。通常狀態圖是對類圖的補充,僅需為那些有多個狀態的、行為隨外界環境而改變的類畫狀態圖。
(6)活動圖(Active Diagram)。一種特殊的狀態圖,展現了系統內一個活動到另一個活動的流程。活動圖有利于識別并行活動。
(7)組件圖(Component Diagram)。展現了一組組件的物理結構和組件之間的依賴關系。部件圖有助于分析和理解組件之間的相互影響程度。
(8)部署圖(Deployment Diagram)。展現了運行處理節點以及其中的組件的配置。部署圖給出了系統的體系結構和靜態實施視圖。它與組件圖相關,通常一個節點包含一個或多個構建。
(9)包圖((Package Diagram))。包圖描述系統的分層結構。在UML1.1版本中,包圖不再看作一種獨立的模型圖。
?
三、十種模型圖具體描述
1.類圖(概念類圖Class Diagram/Conceptual Class Diagram / Domian Model)
類圖是描述系統中的類,以及各個類之間的關系的靜態視圖。能夠讓我們在正確編寫代碼以前對系統有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態模型類型。類圖表示類、接口和它們之間的協作關系。
2.活動圖(Activity Diagram)
描述用例要求所要進行的活動,以及活動間的約束關系,有利于識別并行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。
3.狀態圖(狀態機圖State Diagram/State Machine Diagram)
描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件。可以捕獲對象、子系統和系統的生命周期。他們可以告知一個對象可以擁有的狀態,并且事件(如消息的接收、時間的流逝、錯誤、條件變為真等)會怎么隨著時間的推移來影響這些狀態。一個狀態圖應該連接到所有具有清晰的可標識狀態和復雜行為的類;該圖可以確定類的行為,以及該行為如何根據當前的狀態變化,也可以展示哪些事件將會改變類的對象的狀態。狀態圖是對類圖的補充。
4.用例圖(Use Case Diagram)
描述角色以及角色與用例之間的連接關系。說明的是誰要使用系統,以及他們使用該系統可以做些什么。一個用例圖包含了多個模型元素,如系統、參與者和用例,并且顯示這些元素之間的各種關系,如泛化、關聯和依賴。
5.序列圖(順序圖Sequence Diagram)
序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調消息是如何在對象之間被發送和接收的。
6.協作圖(通訊圖Communication Diagram)
和序列圖相似,顯示對象間的動態合作關系。可以看成是類圖和順序圖的交集,協作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調時間和順序,則使用序列圖;如果強調上下級關系,則選擇協作圖;這兩種圖合稱為交互圖。
7.對象圖(設計類圖Object Diagram/Design Class Diagram)
與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關系,而是對象之間的關系。
8.包圖(Package Diagram)
包圖用于描述系統的分層結構,由包或類組成,表示包與包之間的關系。
9.組件圖(構件圖Component Diagram)
描述代碼構件的物理結構以及各種構建之間的依賴關系。用來建模軟件的組件及其相互之間的關系,這些圖由構件標記符和構件之間的關系構成。在組件圖中,構件是軟件單個組成部分,它可以是一個文件,產品、可執行文件和腳本等。
10.部署圖(配置圖Deployment Diagram)
是用來建模系統的物理部署。例如計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發人員、系統集成人員和測試人員。部署圖用于表示一組物理結點的集合及結點間的相互關系,從而建立了系統物理層面的模型。
?
三、十種模型圖對比
這十種模型圖各有側重:
1:用例圖側重描述用戶需求,
2:類圖側重描述系統具體實現;
描述的方面都不相同:
1:類圖描述的是系統的結構,
2:序列圖描述的是系統的行為;
抽象的層次也不同:
1:構件圖描述系統的模塊結構,抽象層次較高,
2:類圖是描述具體模塊的結構,抽象層次一般,
3:對象圖描述了具體的模塊實現,抽象層次較低。
在有的文獻書籍中,將這九種模型圖分為三大類:
結構分類、動態行為和模型管理:
1:結構分類包括用例圖、類圖、對象圖、構件圖和部署圖,
2:動態行為包括狀態圖、活動圖、順序圖和協作圖,
3:模型管理則包含類圖。
?
總結
- 上一篇: UML建模——用例图(Use Case
- 下一篇: UML用例图间关系说明