部署圖由節(jié)點以及節(jié)點之間的關(guān)系組成。
部署圖描述的是系統(tǒng)運行時的結(jié)構(gòu),展示了硬件的配置及其軟件如何部署到網(wǎng)絡(luò)結(jié)構(gòu)中。
部署圖通常用來幫助理解分布式系統(tǒng),一個系統(tǒng)模型只有一個部署圖。
部署圖用于可視化的軟件組件部署的系統(tǒng)中的物理組件的拓?fù)浣Y(jié)構(gòu)。
部署圖是用來描述一個系統(tǒng)的靜態(tài)部署視圖。
UML 部署圖元素
1、結(jié)點(Node)
結(jié)點是存在與運行時的代表計算機(jī)資源的物理元素,可以是硬件也可以是運行其上的軟件系統(tǒng),比如64主機(jī)、Windows server 2008操作系統(tǒng)、防火墻等。
結(jié)點用三維盒裝表示,如下圖所示:
2、結(jié)點實例(Node Instance)
結(jié)點實例的命名格式:Node Instance : node。它與結(jié)點的區(qū)別在于名稱有下劃線和結(jié)點類型前面有冒號,冒號前面可以有示例名稱也可以沒有示例名稱,如下圖:
3、結(jié)點類型(Node Stereotypes)
結(jié)點類型有:cdrom、cd-rom、computer、disk array、pc、pc client、pc server、secure、server、storage、unix server、user pc,并在結(jié)點的右上角用不同的圖標(biāo)表示,如下圖:
4、物件(Artifact)
物件是軟件開發(fā)過程中的產(chǎn)物,包括過程模型(比如用例圖、設(shè)計圖等等)、源代碼、可執(zhí)行程序、設(shè)計文檔、測試報告、需求原型、用戶手冊等等。物件表示如下,帶有關(guān)鍵字 artifact 和文檔圖標(biāo)
5、連接(Association)
結(jié)點之間的連線表示系統(tǒng)之間進(jìn)行交互的通信路徑,這個通信路徑稱為連接(Association),如下圖所示,連接中有網(wǎng)絡(luò)協(xié)議:
6、結(jié)點容器(Node as Container)
一個結(jié)點可以包括其他的結(jié)點,比如組件或者物件,則稱此結(jié)點為結(jié)點容器(Node as Container)。如下圖所示,結(jié)點(Node)包容了物件(Artifact):
UML 部署圖目的:
部署圖與組件圖密切相關(guān),部署圖是用來描述軟件組件部署的硬件組件;而組件圖是用來描述組件和顯示了它們是如何在硬件中部署。
UML的設(shè)計主要是把重點放在系統(tǒng)的軟件構(gòu)件。但是,這兩個圖是使用特殊圖表專注于軟件組件和硬件組件。
所以大多數(shù)的 UML 圖是用來處理邏輯組件,但把重點放在系統(tǒng)的硬件拓?fù)洳渴饒D。
以下是部署圖的目的描述:
可視化系統(tǒng)的硬件拓?fù)洹?/p>
描述用于部署軟件組件的硬件組件。
描述運行時處理節(jié)點。
如何繪制 UML 部署圖?
部署圖對系統(tǒng)工程師是非常有用。一個高效的部署圖是非常重要的,因為它控制以下參數(shù):
性能
可擴(kuò)展性
可維護(hù)性
可移植性
在繪制部署圖前應(yīng)確定以下構(gòu)件:
節(jié)點
節(jié)點之間的關(guān)系
下列部署圖是一個樣品給訂單管理系統(tǒng)的部署視圖的想法,已經(jīng)表明的節(jié)點:
監(jiān)控
調(diào)制解調(diào)器
緩存服務(wù)器
服務(wù)器
假定應(yīng)用程序是一個基于 Web 的應(yīng)用程序部署在集群環(huán)境中使用服務(wù)器1,服務(wù)器2和服務(wù)器3。用戶連接到使用互聯(lián)網(wǎng)的應(yīng)用程序??刂屏鲝木彺娣?wù)器的集群環(huán)境中。
所以下面的部署圖已經(jīng)制定考慮到所有上述提到的幾點:

在哪里使用部署圖?
部署圖主要用于系統(tǒng)工程師。這些圖用來描述的物理組件(硬件)以及它們的分布和關(guān)聯(lián)。
為了闡述清楚細(xì)節(jié),我們可以想像的硬件組件/節(jié)點上的軟件組件位于部署圖。
軟件應(yīng)用程序的開發(fā)需要復(fù)雜的業(yè)務(wù)流程模型。為了滿足業(yè)務(wù)的需求,一個軟件應(yīng)用只做到高效是不夠的,還應(yīng)考慮到業(yè)務(wù)是否能夠支持用戶的不斷增長以及響應(yīng)的時間是否夠快等。
軟件應(yīng)用程序可以是獨立的,基于 Web,分布式,基于大型機(jī)和更多。
使用部署圖可以描述如下:
為了模擬一個系統(tǒng)的硬件拓?fù)洹?/p>
嵌入式系統(tǒng)建模。
為了模擬一個客戶機(jī)/服務(wù)器系統(tǒng)的硬件的詳細(xì)信息。
為了模擬硬件的分布式應(yīng)用程序的細(xì)節(jié)。
正向和逆向工程。
更多建議: