我們在進行項目的時候,通過使用 UML 的面向對象圖的方式來更明確、清晰的表達項目中的架設思想、項目結構、執(zhí)行順序等一些邏輯思維。
工具
- Astah
- StarUML
- Visio
- PowerDesigner(比較大)
- Enterprise Archlitect
- ProcessOn(在線建模工具,聯(lián)網使用)
UML 介紹
1997年,OMG 組織(Object Management Group對象管理組織)發(fā)布了統(tǒng)一建模語言(Unified Modeling Language,UML)。UML 是一種編制軟藍圖的標準化語言,它的目標之一就是為開發(fā)團隊提供標準通用的設計語言來開發(fā)和構建計算機應用。UML 提出了一套 IT 專業(yè)人員期待多年的統(tǒng)一的標準建模符號。通過使用UML,這些人員能夠閱讀和交流系統(tǒng)架構和設計規(guī)劃。UML支持面向對象的技術,能夠準確的方便地表達面向對像的概念,體現面向對象的分析和設計風格。
UML 特點
1、面向對象
2、可視化,表達能力強
3、獨立于過程
4、獨立于程序設計
5、容易掌握使用
UML 面向對象的概念
- 對象: 對象代表一個實體的基本構建塊.
- 類: 類是對象的藍圖.
- 抽象化: 抽象代表現實世界中實體的行為.
- 封裝: 封裝是將數據綁定在一起,并隱藏他們外部世界的機制。
- 繼承: 繼承是從現有的機制作出新的類。
- 多態(tài)性: 定義的機制來以不同的形式存在.
UML 模型
構成部分
事物(Things):UML模型中最基本的構成元素,是具有代表性的成分的抽象
關系(Relationships):關系把事物緊密聯(lián)系在一起
圖(Diagrams ):圖是事物和關系的可視化表示
事物
事物是實體抽象化的最終結果,是 UML 構建塊最重要的組成部分,事物的分類如下:
- 結構事物
- 行為事物
- 分組事物
- 注釋事物
結構事物
結構事物是模型中的靜態(tài)部分,用以呈現概念或實體的表現元素,是軟件建模中最常見的元素:
1、類
類是指具有相同屬性、方法、關系和語義的對象的集合;

2、接口
接口是指類或組件所提供的服務(操作),描述了類或組件對外可見的動作;

ios 中是沒有接口一說的,只有個協(xié)議。
3、協(xié)作
協(xié)作定義元素之間的相互作用;

4、用例
用例定義了執(zhí)行者(在系統(tǒng)外部和系統(tǒng)交互的人)和被考慮的系統(tǒng)之間的交互來實現的一個業(yè)務目標;

5、組件
組件描述物理系統(tǒng)的一部分;

6、節(jié)點
一個節(jié)點可以被定義為在運行時存在的物理元素;

行為事物
行為事物指的是 UML 模型中的動態(tài)部分,代表語句里的 "動詞",表示模型里隨著時空不斷變化的部分。
1、交互
交互被定義為一種行為,包括一組元素之間的消息交換來完成特定的任務。

2、狀態(tài)機
狀態(tài)機由一系列對象的狀態(tài)組成,它是有用的,一個對象在其生命周期的狀態(tài)是很重要的。

分組事物
可以把分組事物看成是一個"盒子",模型可以在其中被分解。目前只有一種分組事物,即包(package)。結構事物、動作事物甚至分組事物都有可能放在一個包中。包純粹是概念上的,只存在于開發(fā)階段,而組件在運行時存在。
1、包
封裝是唯一一個分組事物可收集結構和行為的東西。

注釋事物
注釋事物可以被定義為一種機制來捕捉UML模型元素的言論,說明和注釋。注釋是唯一一個注釋事物。
1、注釋
注釋用于渲染意見,約束等的UML元素。

關系
關系是另一個最重要的構建塊UML,它顯示元素是如何彼此相關聯(lián),此關聯(lián)描述的一個應用程序的功能,UML中定義了四種關系
依賴關系
協(xié)作
泛化
實現
依賴關系
依賴是兩件事物之間的語義聯(lián)系,其中一個事物的變化也影響到另一個事物。

協(xié)作
一種描述一組對象之間連接的結構關系,如聚合關系(描述了整體和部分間的結構關系);

泛化
泛化可以被定義為一個專門的元件連接關系與一個廣義的元素,它基本上描述了在對象世界中的繼承關系,是一種一般化-特殊化的關系

實現
類之間的語義關系,其中的一個類指定了由另一個類保證執(zhí)行的契約

UML 圖
UML 圖的整個討論的最終輸出所有要素,關系用于使一個完整的UML圖,圖中表示的系統(tǒng)。
UML 圖的視覺效果是整個過程中最重要的部分。
圖是事物集合的分類,UML 中包含多種圖:
1.類圖:類圖描述系統(tǒng)所包含的類、類的內部結構及類之間的關系;
2.對象圖:對象圖是類圖的一個具體實例;
3.用例圖:用例圖從用戶的角度出發(fā)描述系統(tǒng)的功能、需求,展
示系統(tǒng)外部的各類角色與系統(tǒng)內部的各種用例之間的關系;
4.順序圖:順序圖表示對象之間動態(tài)合作的關系;
5.協(xié)作圖:協(xié)作圖描述對象之間的協(xié)作關系;
6.活動圖:活動圖描述系統(tǒng)中各種活動的執(zhí)行順序。
7.狀態(tài)圖:狀態(tài)圖描述一類對象的所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉移條件;
8.部署關系圖:部署關系圖定義系統(tǒng)中軟硬件的物理體系結構;
9.組件圖:組件圖描述代碼部件的物理結構以及各部件之間的依賴關系;
面向對象的概念和實施步驟
步驟可以被定義為:
OO Analysis --> OO Design --> OO implementation using OO languages
UML 分類
- 結構圖
- 行為圖
UML建模類型
結構建模
結構建模具有捕捉靜態(tài)的功能,包括下列各項:
- 類圖
- 對象圖
- 部署圖
- 包圖
- 復合結構圖
- 組件圖
結構模型代表的是系統(tǒng)架構,包含所有其他組件存在的地方。
結構模型不能描述系統(tǒng)的動態(tài)行為。類圖中是最廣泛使用的結構圖。
行為建模
行為建模描述了在系統(tǒng)中的相互作用,代表之間的交互的結構圖,行為建模顯示系統(tǒng)的動態(tài)性質,包括下列各項:
- 活動圖
- 交互圖
- 用例圖
顯示一個系統(tǒng)中流動的動態(tài)序列
架構建模
架構建模表示的是一個系統(tǒng)的總體框架,它包含了系統(tǒng)的結構和行為的元素。架構建??梢员欢x為整個系統(tǒng)的藍圖。包圖是根據架構模型進行的。
UML 圖介紹
UML 類圖
1.類圖是描述系統(tǒng)中的類,以及各個類之間的關系的靜態(tài)視圖,它包括:類、接口、關聯(lián)和協(xié)作。
2.類圖能夠讓我們在正確編寫代碼以前對系統(tǒng)有一個全面的認識。
3.類圖是一種模型類型,確切的說,是一種靜態(tài)模型類型。
4.活動類在類圖來表示系統(tǒng)的并發(fā)性。
5.類圖代表的面向對象的系統(tǒng)。
UML 對象圖
對象圖與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類,它描述的不是類之間的關系,而是對象之間的關系。從實際的角度來看,它們被用來建立一個系統(tǒng)的原型。
UML 組件圖
1.組件圖描述代碼構件的物理結構以及各種構建之間的依賴關系。
2.組件圖用來建模軟件的組件及其相互之間的關系,這些圖由構件標記符和構件之間的關系構成。
3.組件圖中,構件時軟件單個組成部分,它可以是一個文件,產品、可執(zhí)行文件和腳本等。
4.在設計階段的軟件構件(類,接口等)的系統(tǒng)被安排在不同的組,這取決于他們的關系。這些組被稱為組件。
5.組件圖用于可視化的實現。
UML 部署圖
1.部署圖是用來建模系統(tǒng)的物理部署。例如計算機和設備,以及它們之間是如何連接的。
2.部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測試人員。
3.部署圖是一組節(jié)點和它們之間的關系,這些節(jié)點部署這些組件的物理實體。
4.部署圖用于可視化系統(tǒng)的部署視圖。
注: 如果上述描述和用法仔細觀察,這是很清楚的,所有的圖表都彼此有某種關系。組件圖是依賴的類,接口等類/對象圖的一部分。再次部署圖是取決于使用的組件,這些組件,以使一個組件圖。
UML 用例圖
1.用例圖描述角色以及角色與用例之間的連接關系。說明的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。
2.一個用例圖包含了多個模型元素,如系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關系,如泛化、關聯(lián)和依賴。
因此,用例圖是用來描述的功能之間的關系和他們的內部/外部控制器,這些控制器是已知的參與者。
UML 交互圖
UML 狀態(tài)圖
1.狀態(tài)圖描述類的對象所有可能的狀態(tài),以及事件發(fā)生時狀態(tài)的轉移條件。
2.狀態(tài)圖可以捕獲對象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個對象可以擁有的狀態(tài),并且事件(如消息的接收、時間的流逝、錯誤、條件變?yōu)檎娴?會怎么隨著時間的推移來影響這些狀態(tài)。
3.狀態(tài)圖是用來表示的事件驅動的系統(tǒng)狀態(tài)的變化。它基本上描述了類,接口狀態(tài)變化等
- 狀態(tài)圖是用于可視化的反應系統(tǒng)內部/外部因素。
UML 活動圖
1.活動圖描述了在一個系統(tǒng)中的控制流。
2.活動圖描述用例要求所要進行的活動,以及活動間的約束關系,有利于識別并行活動。
3.活動圖能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。
4.活動圖用于可視化的流量控制在一個系統(tǒng)中。這是準備系統(tǒng)將如何工作,在執(zhí)行時有一個想法。
注: 在一個系統(tǒng)中很難捕捉到動態(tài)性質,而 UML 已經提供從不同的角度捕捉到動態(tài)系統(tǒng)的功能。序列圖和協(xié)作圖是同構的,它們之間的轉換不會丟失任何信息。
UML 基本表示法
UML 中最重要的建模元素是符號是,一個完整的、有意義的模型要適當有效地使用符號,如果一個模型中的目的沒有被正確描述,則該模型是無用的。
結構事物
1、類UML表示法 +注釋

1、頂端部分被用來命名類。
2、第二個是用來顯示類的屬性。
3、第三部分是用來描述由類執(zhí)行的操作。
4、第四部分是可選的顯示附加組件。
2、對象UML表示法

該對象表示以同樣的方式作為類。唯一的區(qū)別是有下劃線的名稱
3、接口UML 表示法

接口是用圓來表示,它有一個名稱,一般寫成下面的圓圈。
4、協(xié)作UML 表示法

協(xié)作表示由 elipse 虛線。它有一個名字,里面寫 elipse。
5、用例UML表示法

用例表示它里面的一個名字作為 ellipse。
用例是用來捕捉系統(tǒng)的高層次功能
6、角色UML表示法

某些內部或外部的與系統(tǒng)進行交互的實體,可以被定義為一個角色。
角色是在描述用例圖內部或外部實體。
7、初始狀態(tài)UML表示法

初始狀態(tài)的表示法的用法是顯示的一個過程的起點。
8、最終狀態(tài)UML表示法

最終狀態(tài)表示法的用法是顯示一個過程的終止點。
9、活動類UML表示法

活動類類似于一類具有扎實的邊界,活動類一般是用來描述一個系統(tǒng)的并發(fā)行為。
活動類是用來表示在一個系統(tǒng)的并發(fā)性。
10、元件UML表示法

UML中的一個組件,如圖所示名稱里面。在必要時,可以添加額外的元素。
元器件是用來表示系統(tǒng)的任何部分的 UML 圖。
11、節(jié)點UML表示法

UML 中的一個節(jié)點表示的一個方盒子,如下圖所示,同一個名字。一個節(jié)點表示一個物理的系統(tǒng)組件。
節(jié)點用來表示物理系統(tǒng)的一部分,如服務器,網絡等。
行為事物
動態(tài)部分是 UML 中最重要的元素之一。
UML 有一個強大的功能集,代表軟件和非軟件系統(tǒng)的動態(tài)部分。這些功能包括交互和狀態(tài)機。
相互作用可分為兩種類型:
- 順序(序列圖)
- 協(xié)作(協(xié)作圖)
1、交互UML表示法

交互基本上是兩個 UML 組件之間的信息交換,圖表示交互中使用不同的符號
交互是用來表示一個系統(tǒng)的組件之間的通信。
2、狀態(tài)機UML表示法

狀態(tài)機描述的組件在其生命周期的不同狀態(tài)。在上面的圖中描述的符號。
狀態(tài)機是用來描述一個系統(tǒng)組件的不同狀態(tài)。狀態(tài)可以是活動,空閑或任何其他根據情況。
分組事物
組織的 UML 模型設計的最重要的方面之一。 UML 中只有一個元件即可用于分組,也就是包。
包UML表示法

注釋事物
任一圖表中說明的不同的元素和它們的功能是非常重要的。因此,UML 符號注釋,以支持這一要求
注釋UML表示法

UML關系
類型
- Dependency(依賴)
- Association (協(xié)作)
- Generalization (泛化)
- Extensibility (可擴展)
依賴UML表示法

依賴關系用虛線箭頭表示,如上所示。箭頭代表的獨立元素,另一端的依賴元素。
依賴是UML元素的一個重要方面。它描述了相關的元素和方向上依賴關系。
依賴關系是用來表示一個系統(tǒng)的兩個元素之間的依賴。
協(xié)作UML表示法

聯(lián)合兩側的箭頭的虛線表示。兩端代表兩個相關聯(lián)的元素,如圖所示。在兩端(1,*等)的多樣性也提到多少對象相關。
協(xié)作介紹 UML 圖中的元素相關聯(lián)。簡單的一句話,它介紹了多少個元素參與互動。
協(xié)作是用來表示一個系統(tǒng)的兩個元素之間的關系。
泛化UML表示法

泛化為代表的空心箭頭,如圖所示箭頭的一端表示的父元素而另一端表示子元素。
泛化介紹了面向對象世界的繼承關系。這是父與子的關系。
泛化是用來描述一個系統(tǒng)的兩個元素的親子關系。
可擴展性UML表示法
所有的語言(編程或模型)有某種機制來擴展與其功能類似的語法,語義等。 UML 具有以下機制來提供可擴展性功能。
- 定型觀念(代表新元素)
- 標記值 (代表新的屬性)
- 約束 (代表界限)

可擴展標記基本上是用來表示一些額外的系統(tǒng)行為的附加元素。這些額外的行為,不包括可用的標準符號。
如何畫類圖?
- 1、類圖中的名稱應該是有意義的描述,并且是面向系統(tǒng)的。
- 2、畫類圖前應先確定每個元素之間的關系。
- 3、類圖中的每個類職責(屬性和方法)應該清晰標明。
- 4、對于每個類的屬性的最小數量應符合規(guī)定,不必要的屬性將使+ 圖表復雜。
- 5、使用了以下注釋有否要求來描述圖中的某些方面。因為上面的附圖,它應該是可以理解的開發(fā)者/編碼器。
- 6、最后,在最終版本之前,該圖應繪制在普通紙上盡可能多次,使其糾正和返工。
類圖目的
- 分析和設計應用程序的靜態(tài)視圖。
- 描述一個系統(tǒng)的責任。
- 基地組件圖和部署圖。
- 正向和逆向工程。
類圖舉例

系統(tǒng)中的兩個要素是所有訂單以及客戶,他們有一個一對多的關系,因為一個客戶可以有多個訂單。
我們將保持 Order 類是一個抽象類,它有兩個具體的類(繼承關系)SpecialOrder 和 NormalOrder。
兩個繼承類 Order 類的所有屬性。此外,他們有額外的功能 dispatch () 和 receive ().
如何繪制對象圖
- 首先,分析系統(tǒng),并決定哪些情況下有重要的數據和關聯(lián)。
- 其次,只考慮那些實例將涵蓋功能。
- 第三,做一些優(yōu)化實例的數量是無限的。
繪制對象圖之前
+ 對象圖的主要內容是對象。
+ 對象圖中的鏈接是用來連接對象。
+ 對象和鏈接的兩個要素,用于構造一個對象圖。
在開始構建圖前,下列事項要明確:
+ 對象圖的名稱要有意義,以表明其目的。
+ 最重要的要素是要確定。
+ 對象之間的關聯(lián),應該予以明確。
+ 不同元素的值需要捕獲包含在對象圖。
+ 添加適當的注釋,需要更清晰點。
簡單舉例

圖例場景
現在客戶對象(C)是與三階對象(O1,O2和O3)。與訂單對象相關聯(lián)的有特殊訂單和一般訂單對象(S1,S2和N1)。顧客具有以下三個具有不同數目的訂單(12,32和40)在不同的時間可能會點不同的訂單。
現在,客戶可以在將來增加訂單數量,在這種情況下對象圖將反映。觀察會發(fā)現,訂單、特殊訂單和正常秩訂單對象那么,他們有一些值, 訂單的值是12,32和40,這意味著,這些對象都擁有這些實例時,能夠捕獲特定時刻的值(這里是購買時的時刻被視為特定時間)。
如何繪制組件圖
他描述的是在軟件系統(tǒng)中遵從并實現一組接口的物理的、可替換的軟件模塊。
組件圖 = 構件(Component)+接口(Interface)+關系(Relationship)+端口(Port)+連接器(Connector)
目的
- 可視化系統(tǒng)的組成部分。
- 構建的可執(zhí)行文件,使用正向和反向工程。
- 描述的組織和組件的關系。
組件圖是用來描述一個系統(tǒng)的物理構件。此神器包括文件,可執(zhí)行文件,庫等。
所以這張圖的目的是不同的,組件圖的作用階段是應用程序的實施階段。是提前可視化的實現細節(jié)。
所以在繪制組件圖后的工件是清楚可辨:
- 在系統(tǒng)中使用的文件。
- 庫和其他構件的申請有關。
- 構件之間的關系。

圖例介紹
這是訂單管理系統(tǒng)的組件圖,其中的構件是java文件。所以,該圖顯示了在應用程序的文件以及它們之間的關系。(在實際組件圖還包含 dll 文件,庫,文件夾等。)
一共有四個文件,Customer.java, order.Java,NormaOrder.java,SpecialOrder.java
他們都是Java file。
其實就是文件組成結構,這里也可以把Java file 換成一個特定的文件夾
這里的與components 連接的實線可以忽略掉。只是解釋作用
如何繪制部署圖
概述
部署圖由節(jié)點以及節(jié)點之間的關系組成。
部署圖描述的是系統(tǒng)運行時的結構,展示了硬件的配置及其軟件如何部署到網絡結構中。
部署圖通常用來幫助理解分布式系統(tǒng),一個系統(tǒng)模型只有一個部署圖。
部署圖用于可視化的軟件組件部署的系統(tǒng)中的物理組件的拓撲結構。
部署圖是用來描述一個系統(tǒng)的靜態(tài)部署視圖。
元素
1、結點(Node)
結點是存在與運行時的代表計算機資源的物理元素,可以是硬件也可以是運行其上的軟件系統(tǒng),比如64主機、Windows server 2008操作系統(tǒng)、防火墻等。
結點用三維盒裝表示,如下

2、結點實例(Node Instance)
結點實例的命名格式:
Node Instance : node
它與結點的區(qū)別在于名稱有下劃線和結點類型前面有冒號,冒號前面可以有示例名稱也可以沒有示例名稱,如下圖:

3、結點類型(Node Stereotypes)
結點類型有:cdrom、cd-rom、computer、disk array、pc、pc client、pc server、secure、server、storage、unix server、user pc,并在結點的右上角用不同的圖標表示,如下圖:

4、物件(Artifact)
物件是軟件開發(fā)過程中的產物,包括過程模型(比如用例圖、設計圖等等)、源代碼、可執(zhí)行程序、設計文檔、測試報告、需求原型、用戶手冊等等。物件表示如下,帶有關鍵字 artifact 和文檔圖標

5、連接(Association)
結點之間的連線表示系統(tǒng)之間進行交互的通信路徑,這個通信路徑稱為連接(Association),如下圖所示,連接中有網絡協(xié)議:

6、結點容器(Node as Container)
一個結點可以包括其他的結點,比如組件或者物件,則稱此結點為結點容器(Node as Container)。如下圖所示,結點(Node)包容了物件(Artifact):

目的
- 可視化系統(tǒng)的硬件拓撲。
- 描述用于部署軟件組件的硬件組件。
- 描述運行時處理節(jié)點。
如何繪制部署圖
一個高效的部署圖是非常重要的,因為它控制以下參數:
- 性能
- 可擴展性
- 可維護性
- 可移植性
在繪制部署圖前應確定以下構件: - 節(jié)點
- 節(jié)點之間的關系
舉例
部署圖是一個樣品給訂單管理系統(tǒng)的部署視圖的想法,已經表明的節(jié)點:
- 監(jiān)控
- 調制解調器
- 緩存服務器
- 服務器
假定應用程序是一個基于 Web 的應用程序部署在集群環(huán)境中使用服務器1,服務器2和服務器3。用戶連接到使用互聯(lián)網的應用程序??刂屏鲝木彺娣掌鞯募涵h(huán)境中。

如何繪制用例圖
概述
用例圖捕捉了模擬系統(tǒng)中的動態(tài)行為,并且描述了用戶、需求以及系統(tǒng)功能單元之間的關系。
用例圖展示了一個外部用戶能夠觀察到的系統(tǒng)功能模型圖。
用例圖由主角,用例和它們之間的關系組成。
目的
用例圖的目的是捕捉到一個系統(tǒng)的動態(tài)方面。
用例圖是用來收集系統(tǒng)的要求,包括內部和外部的影響。這些要求大多是設計要求。所以,分析一個系統(tǒng)時要收集其功能用例和確定參與者。
- 用例圖用來收集系統(tǒng)的要求。
- 用例圖用于獲取系統(tǒng)的外觀圖。
- 用例圖識別外部和內部因素影響系統(tǒng)。
- 用例圖顯示要求之間的相互作用是參與者。
繪制
用例圖中應該有以下項目:
- 功能被表示為一個用例
- 參與者
- 用例和參與者之間的關系。
確定上述項目后,我們必須遵循以下指導原則,繪制一個有效的用例圖
- 一個用例的名稱是非常重要的。所以名的選擇應以這樣的方式,以便它可以識別執(zhí)行的功能。
- 給出一個合適的名參與者。
- 圖中清楚地顯示關系和依賴性。
- 不要試圖包括所有類型的關系。由于該圖的主要目的是確定要求。
- 使用注意以往任何時候都需要闡明一些重要的點。
舉例
訂單管理系統(tǒng)

看圖,我們會發(fā)現三個用例(訂單,特殊訂單和正常訂單)和一個參與者:顧客。
SpecialOrder 和NormalOrder 從訂單使用情況擴展。因此,他們擴展了關系。另外很重要的一點是確定系統(tǒng)邊界,這是圖中所示。參與者是客戶以外的系統(tǒng),因為它是系統(tǒng)的外部用戶。
如何繪制UML 交互圖
概述
- UML 交互圖描述的是對象之間的動態(tài)合作關系以及合作過程中的行為次序。
- UML 交互圖常常用來描述一個用例的行為,顯示該用例中所涉及的對象以及這些對象之間的消息傳遞情況,即一個用例的實現過程。
- UML 交互圖包括兩種:序列圖和協(xié)作圖。
序列圖 :顯示對象之間的關系,強調對象之間消息的時間順序,顯示對象之間的交互。
協(xié)作圖 :描述對象之間的交互關系。
作用
UML 交互圖主要包括對象和消息兩類元素,創(chuàng)建交互圖的過程實際上就是向對象分配任務的過程,是可視化系統(tǒng)的交互行為。
由于可視化的交互是一個困難的任務,所以要使用不同類型的模型來捕獲不同方面的相互作用,這也是序列圖和時序圖的作用。
總而言之,對交互圖的描述如下:
- 交互圖捕捉一個系統(tǒng)的動態(tài)行為;
- 交互圖用來描述該系統(tǒng)中的消息流;
- 交互圖用來描述對象的結構組織;
- 交互圖是為了描述對象之間的互動。
繪制
我們已經了解了交互圖的作用就是捕捉系統(tǒng)的動態(tài)環(huán)節(jié)。因此,關于動態(tài)捕捉,我們需要知道一個動態(tài)的環(huán)節(jié)是如何實現可視化的。
動態(tài)環(huán)節(jié)可以定義為在一個特定的時刻運行的系統(tǒng)快照。
在繪制交互圖之前,確定以下條件:
- 參與互動的對象;
- 對象之間的消息流;
- 消息的順序流程;
- 對象的組織。
舉例
序列圖

序列圖中包含了四個對象:客戶、訂單、特殊訂單和正常訂單。
關系圖所示的是消息序列為 SpecialOrder 對象和 NormalOrder 對象在相同的情況下使用。重要的是要了解時間順序的消息流,與消息流無關,使用一個對象的方法調用。
首先調用的是 sendOrder(),這是一個訂單對象的方法;在下一次調用 confirm (),這是一個 SpecialOrder 對象的方法;最后調用 Dispatch (),它是一種方法的 SpecialOrder 對象。所以這里的圖主要描述方法從一個對象到另一個對象的調用,在系統(tǒng)運行時這也是實際情況:
協(xié)作圖

協(xié)作圖顯示對象的組織,如下圖所示。
這里協(xié)作圖的方法調用序列是用一些數字標示。
該數字表示方法調用順序
這些調用方法類似序列圖。但不同的是,序列圖中未介紹對象組織,而協(xié)作圖中展示出了對象的組織。
如何繪制狀態(tài)圖
概述
UML 狀態(tài)圖是圖表本身的名稱,主要用于描述對象具有的各種狀態(tài)、狀態(tài)之間的轉換過程以及觸發(fā)狀態(tài)轉換的各種事件和條件。
UML 狀態(tài)圖描述了一個狀態(tài)機,可以被定義為一臺機器,它定義了一個對象,這些狀態(tài)控制外部或內部事件的不同狀態(tài)。
目的
UML 狀態(tài)圖可以捕獲對象、子系統(tǒng)和系統(tǒng)的生命周期,可以告知一個對象可以擁有的狀態(tài),并且事件(如消息的接收,時間的流逝、錯誤、條件為真等)會怎樣隨著時間的推移來影響這些狀態(tài)。一個狀態(tài)圖應該連接到所有具有清晰的可標志狀態(tài)和復雜行為的類;該圖可以確定類的行為以及該行為如何根據當前的狀態(tài)而變化,也可以展示哪些事件將會改變類的對象的狀態(tài)。
狀態(tài)圖主要是為了模擬響應系統(tǒng)。
- 為了模擬系統(tǒng)的動態(tài)環(huán)節(jié)。
- 反應系統(tǒng)模型生命周期。
- 一個對象來描述不同的狀態(tài),在其生命周期的時間。
- 定義一個狀態(tài)機模型狀態(tài)的對象。
繪制
狀態(tài)圖是用來描述不同的對象在其生命周期的狀態(tài)。因此,強調的是一些內部或外部事件的狀態(tài)發(fā)生變化時,這些對象的狀態(tài)要重要的分析和準確的貫徹落實。
狀態(tài)圖描述的狀態(tài)是非常重要的。對象的狀況,當發(fā)生特定事件時,可以被確定為狀態(tài)。
繪制狀態(tài)圖之前,我們必須明確以下幾點:
- 識別對象,以進行分析。
- 識別狀態(tài)。
- 識別的事件。
舉例

第一個狀態(tài)表示空閑狀態(tài)的過程從哪里開始;接下來的狀態(tài)表示到達的事件,如發(fā)送請求,確認請求,并調度順序,這些事件負責訂單對象的狀態(tài)變化。
在對象的生命周期(這里為了對象)通過以下狀態(tài)的時候有可能也存在一些不正常的退出。出現這種不正常的退出可能是由于系統(tǒng)中的一些問題。
整個生命周期完成時,它被視為完整的交易下文所述。
如何繪制UML活動圖
概述
- UML 活動圖是 UML 的動態(tài)模型的一種圖形,一般用來描述相關用例圖。
- UML 活動圖描述滿足用例要求所要進行的活動以及活動間的約束關系,有利于識別并行活動。
- UML 活動圖是一種特殊的狀態(tài)圖,它對于系統(tǒng)的功能建模特別重要,強調對象間的控制流程。
- UML 活動圖是一種表述過程基理、業(yè)務過程以及工作流的技術。它可以用來對業(yè)務過程、工作流建模,也可以對用例實現甚至是程序實現來建模
- UML 活動圖基本上是代表流程形成一個活動到另一個活動的流程圖?;顒涌梢员幻枋鰹橐粋€系統(tǒng)的操作。
目的
UML 活動圖能夠捕捉到該系統(tǒng)的動態(tài)行為,UML 中其它的四個圖是用來顯示從一個對象到另一個消息流,但活動圖是用來顯示消息流從一個活動到另一個活動圖。
活動圖不僅用于可視化系統(tǒng)的動態(tài)性質,也可用于通過使用正向和逆向工程技術來構建可執(zhí)行的系統(tǒng)。唯一缺少的東西在活動圖的消息部分。
它并不顯示任何消息流程從一個活動到另一個?;顒訄D是一段時間視為流程圖。雖然圖中看起來像一個流程圖,但事實并非如此。它顯示不同的流程,如并行,分支,并發(fā)單。
以下是 UML 活動圖目的描述:
- 繪制活動流程系統(tǒng)。
- 描述的順序從一個活動到另一個。
- 描述系統(tǒng)并行,分支,并發(fā)流。
繪制
活動圖主要用于為流程圖包括由系統(tǒng)執(zhí)行的活動,但活動圖是不完全的,因為他們有一些額外的功能流程圖。這些額外的功能,包括分支,平行流,泳道等。
繪制活動圖之前,我們得知道活動圖的主要元素是活動本身,一個活動是由系統(tǒng)執(zhí)行的功能。確定活動后,我們需要了解他們是如何相關的約束和條件。
所以在繪制活動圖,我們應該確定以下要素:
- 活動
- 交互
- 條件
- 約束
上述參數確定后,我們需要做一個心理布局整個流程。這種心理的布局轉化成一個活動圖。