系統架構師談企業應用架構之系統建模4
上一篇:系統架構師-基礎到企業應用架構-系統建模[中篇](下) 中我們主要講解了部署圖、活動圖,我們在這里也是參考上篇的形式,這里不再詳細介紹。上篇主
要講解了下面2類建模圖:
二、摘要
本文將講解其他的幾個類型的建模圖當然只是簡單的講解,并且將結合B2C電子商城系統進行分析通過使用我們已經講解的建模圖為例。分析系統可劃分的子功能
模塊,每個功能模塊內部的運行步驟等等。
上面的2個不同類型的進行劃分的建模圖,本章將對上述6個建模圖進行分別舉例講解。
三、本章內容
1、上章回顧。
2、摘要。
3、本章內容。
4、結構圖。
5、行為圖。
6、本章總結。
7、系列進度。
8、下篇預告。
四、結構圖
1、對象圖
首先、我們閑來講解對象圖。對象圖用來描述系統的各個對象在某一時刻的狀態。對象和類圖一樣他們是靜態結構圖。他們是從實際的或者原型化的場景去表達
的。對象圖顯示了某一時刻對象與對象的關系。一個對象圖可以看作類圖的特殊用例,類圖中的關系同樣適用在對象圖中。可以這樣理解,對象圖就是類圖的實例。對
象圖是有生命周期的,因此對象圖只在某個時間段內存在。
對象圖中的元素在類圖中都可以找到,只是把類圖中的類元素換成對象即可。而類圖中類元素之間的關系,在對象圖中同樣適用。這里不在復述。如果對類圖不
是特別的熟悉,請看這篇文章中的講解:系統架構師-基礎到企業應用架構-系統建模[上篇]。
下面講解對象圖的舉例:
這樣的格式表示了某個類的實例的格式,冒號“:”后面跟著類名,也就是這里的“父類”。另外還必須加上下劃
線。
對象首先是一個確定,所以一般情況下,對象屬性一般把值直接列出來。如下形式:
對象圖中的所有的對象名可以為空,但是為了更好的標識對象圖中的對象,不建議這么做,并且如果未指定對象名那么必須指定該對象所屬的類格式如下:
下面以B2C中的訂單系統中的新訂單的狀態為例,講述下各對象的狀態。
上圖中的訂單信息的狀態:訂單(新訂單)-物流信息(未發貨)-支付信息(未支付)-產品狀態(產品信息)。
2、包圖
包圖就是由包與包之間的關系組成的。
包圖也是一種靜態結構,包可以擁有的元素:
我想上面的元素大家都是有所了解的,我這里就不一樣舉例說明了,下面通過一個例子來顯示如何使用包圖。
包的訪問限制:與我們平時了解的3個訪問權限設置關鍵字用法相同。
包與包之間的關系:
a、引入與訪問依賴:首先這個關系與平時我們說的類的繼承關系是不同的.包括包的訪問域不能繼承。
用于在一個包中引入另一個包輸出的元素,因此A依賴B,包A引入包B中的B方法。B這里的訪問權限是公共的。A中的方法是保護的。
b、泛化關系:
系,途中描述的意思是只要是包A出現的位置都可以用包B替換。
3、組合結構圖
組合結構圖:以結構化的方式給出類型的內部結構。組合結構圖是一種靜態結構,它顯示了一個類型內部的成員及成員之間的關系。組合結構圖可以這樣理解,
就是描述類的內部結構及成員之間的調用關系的建模圖。組合結構圖用于撲捉類的內部細節,描述了對象如何在某個類中協同工作。
組合圖中其實就是描述類的內部的結果,基本上的元素有:類、對象,其他等,具體的關系請參考類圖中的關系。
組合圖實例:
上圖顯示了產品與產品品牌與產品分類的組合關系。產品品牌與產品分類是關聯關系(關聯關系可
以是1:N),通過一條直線來鏈接。如果有不清楚的地方請看類圖的相關介紹:系統架構師-基礎到企業應用架構-系統建模[上篇]。
#p#
五、行為圖
1、通信圖
在UML建模中除了順序圖(序列圖)可以表示對象之間的交互外,通信圖也可以完成通用的描述。一般情況下,二類圖可以進行互轉。
首先、我們先來分析下2類圖的不同。
我們還是先來看下通信圖中的元素:
上圖中的主要組成元素是對象。對象之間的關系,通過鏈接來完成。然后通過一個帶有實體三角形的線段指向要發送消息的對象。
下面來解釋下對象之間的關系。
返回消息的類型:
下面我們來簡單舉例如何說明:
上圖中簡單描述了發送郵件的過程。我們可以看出通信圖相比順序圖更注重對象之間的
鏈接關系。我們通過通信圖能夠知道一個系統中的某個流程中各對象直接的鏈接關系及傳遞的完整信息傳遞過程。
首先、我們閑來講解對象圖。對象圖用來描述系統的各個對象在某一時刻的狀態。
2、時間圖
時間圖:主要用來描述一段時間內對象的行為(狀態的變化,執行的動作等等)。主要用來模擬即時系統模型。與對象圖類似,不同的是時間圖描述的一個時間段,而
對象圖描述的一個時間點。對象圖關心對象的狀態,而時間圖關心的是對象的行為。
這里設置了定時器之后,對象的狀態將會從A,在定時器時間到達后自動的跳轉
到狀態B。這里表示的是定時器來控制狀態的遷移。
時間圖中支持異步信息,時間圖采用垂直圖的方式來描述系統的執行順序。
時序圖等于是在序列圖(順序圖上)加上時間的限制就構成了時間圖。
從垂直的角度來看,就是說A調用B先于B返回值給A,從時間圖上就可以清晰的看出來對象的行
為。 一般情況下我們可以通過序列圖來完成相應的描述。除非需要定義一個時間段的對象時才會用到時間圖。包括某個對象到某個對象的調用都可以通過時間限制來進
行行為的控制等。
六、本章總結。
本章中主要簡單的講述了幾類UML2.0語言相比UML1.0新增的幾類建模圖,雖然我們平時可能用的比較少,但是某些特定的領域范圍,通過這些圖可能更能清晰的
表達抽象模型。
1、對象圖:描述系統在某一時刻的狀態。
2、包圖:描述系統中的某個模塊的內部組成結構,是由元素及元素之間的關系構成的。
3、組合結構圖:以結構化的方式描述了系統中的某個類型的內部結構。
4、通信圖:描述了對象之間的交互與順序圖不同的是,交互圖更關注對象之間的鏈接及通信。
5、時間圖:描述了在一個時間段內的對象的行為。
當然具體的建模圖如何使用及在實際的項目中如何去應用分析,這才是最主要的目的,當然這就需要理論結合實際來達到學以致用的效果。下一篇,我講專門的講
解針對B2C電子商城為例,詳細的剖析UML建模的具體應用。
【編輯推薦】