簡介
部署圖也稱配置圖,用來顯示系統中硬件和軟件的物理架構。從中可以了解到軟件和硬件組件之間的物理拓撲、連接關系以及處理節點的分布情況。
部署圖建模步驟
- 找出需要進行部署的各類節點,如網絡硬件設備、服務器硬件設備、及部署在硬件設備上的軟件系統等
- 確定各類節點之間的連接關系及通信方式
- 從性能、可擴展性、可維護性、可移植性角度確定各類節點的數目和部署方式
- 繪制部署圖,將artifact分配給各個節點
部署圖主要元素
部署圖中的主要元素有節點、物件和連接。其中節點根據其狀態不同又有節點實例、節點容器等區別於節點的拓撲方式。
- 節點(Node):硬件設備或運行在硬件設備上的軟件系統。
- UML表示
- 節點實例:節點的實例形式。格式為instance name: Node,與類實例格式相似,冒號前面可以有實例名稱也可以沒有實例名稱
- 節點類型:根據節點是否能夠進行
- 處理器:本身具有計算、執行等軟件運行處理能力的節點
- 設備:本身不具有軟件運行處理能力的節點
- 節點容器(Node as Container):一個節點可以包括其他的物件或節點,比如Artifact類型的庫文件、可執行文件等。
- 物件(Artifact):UML部署圖中的物件時軟件開發過程中的產物,包括需求文檔、源代碼、庫文件、可執行程序、庫文件、用戶手冊等。
UML標識為 artifact + 圖標 或 <<artifact>> + Name
- 連接(Association):節點或物件之間的連線。見部署圖主要關系部分
部署圖主要關系
部署圖中節點或物件之間存在依賴或關聯關系。
- 依賴:節點的物件之間存在相互調用的弱關系
- 關聯:節點間的通信方式。跟具體的協議有關,比如TCP/IP, ftp, http, soap, web service等
部署圖示例
以訂單-庫存系統為例
部署圖與組件圖的區別
- 組件圖側重系統組件在軟件層面的定義、結構及調用關系;部署圖側重系統組件在硬件層面的組織結構
- 組件圖側重描述哪個組件位於哪個模塊或包以及各個組件的版本信息;部署圖側重描述哪個組件部署在哪個硬件設備上以及硬件設備之間的交互關系
- 組件圖中的組件側重源文件的模塊化打包;部署圖中的節點側重組件的物理部署
- 組件圖中的組件和部署圖中的Artifact相對照
部署圖與組件圖的聯系
- 組件圖和部署圖都是對系統實現的UML描述,聯系起來對比使用,更易加深對整個系統架構的理解,一般來說大型項目兩類圖都需要
- 組件圖和部署圖包含相同的構成元素:組件、接口、組件間關系、組件通過提供接口向外部提供的服務、組件通過需求接口向外部請求的服務
- 組件圖和部署圖都包含關聯、依賴關系
- 組件圖和部署圖都可以被嵌套、都可以參與外部和內部接口間的交互通信
部署圖注意事項
- 一般部署圖的繪畫分為四階段:
- 第一階段確定需要進行部署的各類節點,如網絡硬件設備、服務器硬件設備、及部署在硬件設備上的軟件系統等
- 第二階段側重確定節點信息、節點關系、及連接方式
- 第三階段把物件分配到節點
- 第四階段根據性能、可靠性、可維護性、可移植性等確定各類節點的數目及拓撲方式
- 對於部署圖來說,最有價值的就是節點上的物件信息
- 在UML1.x部署圖規范中,組件圖中的組件可以直接部署到節點中;在UML2.x規范中,組件圖中的組件不能直接部署到節點,需要通過Artifact
- 部署圖中擺放元素時盡量避免線的交叉