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