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