UML基礎(chǔ) 全面解讀UML部署圖
本文和大家重點(diǎn)討論一下UML部署圖的相關(guān)內(nèi)容,UML部署圖顯示了系統(tǒng)的硬件,安裝在硬件上的軟件,以及用于連接異構(gòu)的機(jī)器之間的中間件。希望通過(guò)本文的學(xué)習(xí)你對(duì)UML部署圖的概念有明確的認(rèn)識(shí)。
UML建模風(fēng)格之部署圖
一個(gè)UML部署圖(對(duì)象管理組織2001)描述了一個(gè)運(yùn)行時(shí)的硬件結(jié)點(diǎn),以及在這些結(jié)點(diǎn)上運(yùn)行的軟件組件的靜態(tài)視圖。部署圖顯示了系統(tǒng)的硬件,安裝在硬件上的軟件,以及用于連接異構(gòu)的機(jī)器之間的中間件。創(chuàng)建一個(gè)部署模型的目的包括∶
探究系統(tǒng)投產(chǎn)的相關(guān)問(wèn)題.
探究你的系統(tǒng)和生產(chǎn)環(huán)境中的其它系統(tǒng)的依賴關(guān)系,這些系統(tǒng)可能是已經(jīng)存在,或是將要引入的。
描述一個(gè)商業(yè)應(yīng)用主要的部署結(jié)構(gòu)。
設(shè)計(jì)一個(gè)嵌入系統(tǒng)的硬件和軟件結(jié)構(gòu)。
描述一個(gè)組織的硬件/網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)。
一、通用準(zhǔn)則
1.在特定的項(xiàng)目圖上注明軟件組件
圖1是一個(gè)大學(xué)管理系統(tǒng)的UML部署圖描述.該圖描述了那些包含單一應(yīng)用程序的主要軟件組件是怎樣配置到生產(chǎn)環(huán)境中的,這使得項(xiàng)目團(tuán)隊(duì)能夠確定他們的部署策略。
圖1.一個(gè)特定項(xiàng)目的UML部署圖。
2.集中在企業(yè)級(jí)圖上的結(jié)點(diǎn)和通信關(guān)聯(lián)
UML部署圖經(jīng)常被認(rèn)為是一個(gè)網(wǎng)絡(luò)圖或技術(shù)架構(gòu)圖,圖2是該風(fēng)格的一個(gè)例子,它描述了一個(gè)簡(jiǎn)單組織的技術(shù)基礎(chǔ)結(jié)構(gòu)。注意圖2是一個(gè)非常簡(jiǎn)單的例子,像這樣的圖,許多組織將會(huì)有幾十甚至幾百個(gè)結(jié)點(diǎn)。
雖然在圖的有限范圍內(nèi)注明組件的部署情況是可以頂用的,例如圖1,但圖很快地就變得笨重起來(lái)。圖2則關(guān)注于企業(yè)的那些高階部署,因此配置在硬件結(jié)點(diǎn)之上的軟件組件的精細(xì)的、細(xì)節(jié)的東西就不需要顯示出來(lái),你可以在你的CASE工具中處理這些信息,但這并不意味著你需要在圖上顯示它們。
圖2.一個(gè)組織的UML部署圖。
二、結(jié)點(diǎn)和組件
UML部署圖中一個(gè)結(jié)點(diǎn),通常描述成一個(gè)立體的盒子,表示一個(gè)計(jì)算設(shè)備,一般是一個(gè)單獨(dú)的硬件設(shè)備,例如一臺(tái)電腦,網(wǎng)絡(luò)路由器,主機(jī),傳感器,或個(gè)人數(shù)字助理(PDA)。組件,描述為矩形,左側(cè)面還伸出兩個(gè)較小矩形,這和UML組件圖上使用的符號(hào)是相同的,它表示軟件的中間產(chǎn)物,例如文件、框架、或領(lǐng)域組件。
1.用描述性術(shù)語(yǔ)命名結(jié)點(diǎn)
在圖1中,你可以看到結(jié)點(diǎn)都有名稱,例如client、ApplicationServer、DatabaseServer、和Mainframe。所有的這些術(shù)語(yǔ)都需要即刻為組織內(nèi)的開(kāi)發(fā)人員所認(rèn)可,因?yàn)檫@些條款都是他們?nèi)粘J褂玫?。保持它的?jiǎn)單性。
2.僅僅建模重要的軟件組件
雖然圖1包含軟件組件,但它沒(méi)有描述每一個(gè)軟件組件。例如,客戶機(jī)上很可能還安裝有其他的軟件組件,如操作系統(tǒng)和應(yīng)用軟件,但那些組件沒(méi)有顯示出來(lái),因?yàn)樗鼈円呀?jīng)離題了。事實(shí)是每個(gè)結(jié)點(diǎn)也許有幾十甚至幾百的軟件組件配置于其上,你的目標(biāo)并不是描述所有的軟件組件,而是只需要描述那些對(duì)系統(tǒng)的列節(jié)至關(guān)重要的組件。如果你需要探究軟件組件間的關(guān)系,你應(yīng)該創(chuàng)建一個(gè)UML組件圖作為替代,遵循敏捷建模(AM)(Ambler2002)的應(yīng)用"合適的Artifact"的實(shí)踐。
3.為組件一致地應(yīng)用一致版型
在UML部署圖上為組件應(yīng)用和UML組件圖中的相同的版型。
4.把可視化的版型應(yīng)用到結(jié)點(diǎn)
圖2使用可視化的版型來(lái)描述結(jié)點(diǎn)描述結(jié)點(diǎn),例如mobilePC是顯示為一個(gè)筆記本,而databases則使用傳統(tǒng)的數(shù)據(jù)庫(kù)的圓筒符號(hào)來(lái)表示。為UML部署圖上應(yīng)用可視化版型制定標(biāo)準(zhǔn)是不可能的,一般的經(jīng)驗(yàn)法則是使用你看得到的適當(dāng)?shù)募糍N畫(huà)。
三、依賴和通信關(guān)聯(lián)
UML部署圖中通信關(guān)聯(lián),經(jīng)常稱為連接,被描述為連接結(jié)點(diǎn)間的線條。組件間的依賴則被建模成虛線箭頭,這和其他UML圖上使用的符號(hào)是一樣的。
1.用版型來(lái)注明通信協(xié)議
通信關(guān)聯(lián)支持一個(gè)或多個(gè)通信協(xié)議,每一個(gè)都應(yīng)該使用一個(gè)UML版型來(lái)描述。圖1中你可以看到HTTP、JDBC、和webservices協(xié)議,他們就是使用了這個(gè)方法。表1提供了一個(gè)典型的通信關(guān)聯(lián)的版型列表,你的組織也許會(huì)想開(kāi)發(fā)自己的特定標(biāo)準(zhǔn)。
表1.通用的版型為通信關(guān)聯(lián)
版型 含意
異步 一個(gè)異步連接,也許經(jīng)由一個(gè)消息總線或消息隊(duì)列。
HTTP 超文本傳輸協(xié)議,一個(gè)網(wǎng)際協(xié)議。
JDBC Java數(shù)據(jù)庫(kù)連接,一套為數(shù)據(jù)庫(kù)存取編寫(xiě)的JavaAPI。
ODBC 開(kāi)放式數(shù)據(jù)庫(kù)連接,一套微軟的數(shù)據(jù)庫(kù)存取應(yīng)用編程接口。
RMI 遠(yuǎn)程方法調(diào)用,一個(gè)Java的通信協(xié)議。
RPC 經(jīng)由遠(yuǎn)程過(guò)程調(diào)用的通信。
同步 一個(gè)同步連接,發(fā)送器等待從接收器回來(lái)的反應(yīng)。
webservices 經(jīng)由諸如SOAP和UDDI的WebServices協(xié)議的通信。
2.僅僅建模組件間的關(guān)鍵性依賴
圖1中配置在應(yīng)用服務(wù)器上的領(lǐng)域組件間的依賴并沒(méi)有被建模出來(lái),因?yàn)樗鼈兒蛨D并沒(méi)有什么關(guān)系(而且它們最好是在UML組件圖上建模具體的細(xì)節(jié))。然而,在數(shù)據(jù)庫(kù)服務(wù)器上的組件間的依賴則被建模出來(lái),因?yàn)樗兄谡故緮?shù)據(jù)庫(kù)的訪問(wèn)。領(lǐng)域組件對(duì)數(shù)據(jù)庫(kù)的方位是間接的,他們需要通過(guò)一個(gè)持久性框架,這是通用的架構(gòu)最佳實(shí)踐(Ambler2001)。遵循AM的實(shí)踐,簡(jiǎn)單的描述建模。僅僅建模和手頭的任務(wù)相關(guān)的信息。
【編輯推薦】
- UML基礎(chǔ)專題 UML系統(tǒng)組件圖與UML部署圖
- UML部署圖繪制及應(yīng)用說(shuō)明
- 專家解說(shuō)UML部署圖
- UML部署圖組成元素和繪制方法解析
- UML中UML部署圖和組件圖專家解析