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