今天,本站帶領大家來學習一下UML中的部署圖。
部署圖很簡單,簡單到沒必要大張旗鼓的進行介紹,但是本文還是詳細的介紹一下相關知識。
部署圖(Deployment Diagram)用于描述系統硬件的物理拓撲結構以及在相關節點上運行的軟件工件(artifacts)。
工件是系統開發過程產生的具體的元素,如可執行文件、庫、檔案文件、數據庫模式、配置文件等。
部署圖與上篇文章介紹的組件圖都是對系統物理方面進行建模。
構成的部署圖的元素主要包括節點(node)和節點之間的關系(relationship)。
節點是系統部署的目標對象,其通常是硬件或軟件的運行環境。
每個節點都有自己的名稱,如“Web服務器”,“數據庫服務器”等。
也可以在節點上進行其他信息的描述,如硬件的配置情況,軟件環境的版本信息等。
在UML1.x中,節點被分為兩類:處理器(processor)和設備(device)。
處理器是具有計算能力的節點,且一般可以運行軟件,如服務器。
設備指的是一些不具有計算能力的節點,它們可能作為一些輸入輸出設備或者本身是處理器的外部連接設備,如顯示器、打印機、讀卡器等。
在UML中,兩種節點分別使用下面的圖形來表示:
而在UML2.x中,節點被分為設備和執行環境兩種。
設備是一個具有處理能力的物理計算資源的節點,可以在該節點上部署執行構件(artifacts)。
設備使用帶有<<device>>構造型的正方體或長方體來表示,如下圖所示:
上圖是UML2.x中表示一個設備節點,其名稱是“Application Server”(應用服務器)。
在UML中沒有為設備節點提供標準的構造型,用戶可以根據實際情況選擇一些非規范性的構造型,如:
設備節點也可使用用戶自定義的圖標,配置信息、構造型和標記值等可以添加到自定義圖標和屬性信息中。如下圖是使用用戶自定義圖標表示設備節點的一個例子:
上圖中使用了構造型<<application server>>來給出設備的類別,并配以文字說明設備的名稱和型號信息。
下圖使用注釋的方式給出設備節點的相關信息:
下圖使用另外一種圖標來表示數據庫服務器的情形:
上圖使用構造型<<database server>>來描述節點,并使用文字給出設備名稱和品牌。
下面使用用戶自定義圖標來表示智能手機的情形:
設備也可能很復雜,如設備可能包含其它設備。
執行環境是一種軟件節點,它為以可執行工件(artifacts)的形式部署在該節點上特定類型的組件提供一個可執行環境。
在UML2.x中,執行環境節點以標準的構造型<<executionEnviroment>>來指定。
但這個構造型的名稱有些冗長,UML也未提供其它標準構造型,在實際中可以使用一些非規范的構造型來表示實際的可執行環境,如:
如下面兩個例子:
Linux操作系統執行環境
Oracle 10g DBMS執行環境
節點之間的關系也稱之為節點間的通信路徑,其表示兩個部署目標之間的關聯關系,節點之間使用這種路徑可以交換信號和消息。
下圖給出了兩個設備節點之間的關聯關系。
當部署目標為物理設備時,通信路徑通常表示兩個節點之間的物理連接。
下圖顯示兩個節點支架使用千兆以太網作為應用程序服務器和數據庫服務器之間的通信路徑。
當兩個部署目標是執行環境節點時,通信路徑通常是一些協議。
下圖表示了部署在兩個設備節點中執行環境節點的關聯關系。兩個節點通過TCP/IP協議進行通信。
同時,上圖也表示出一個執行環境部署到一個設備節點上的情況。
在UML中,也可以使用文本列表的形式來表示在該節點上部署的工件(artifacts)。
下圖顯示了執行環境.NET Framework 4.7中部署的工件情況:
部署情況也可以使用左上角帶一個小分隔倉的矩形框架來表示,在分隔倉中標注dep(deployment的縮寫形式)和部署的名稱:
上圖中使用虛線箭頭表示工件(artifacts)“Borrow.dll”部署到節點“.NET Framework 4.7”服務器上的,并在虛線箭頭上標注<<deploy>>。
在Rose中只支持UML1.x中的節點繪制方法,而且只支持繪制一個部署圖。
具體繪制方法如下:
(1)在Rose左側瀏覽器中,雙擊“Deployment View”節點,則會打開部署圖繪制界面;
(2)在Rose中,部署圖的工具欄主要有三種工具:
帶陰影的正方形圖標表示創建一個處理器節點;
不帶陰影的正方形圖標表示創建一個設備節點;
實線表示節點之間的連接。
(3)根據需要點擊相應的圖標后,并在繪圖區點擊一下就會創建一個節點,在創建的同時,可以給節點命名。
(4)雙擊節點,或右擊節點后選擇“Open Specification...”,可以打開節點詳述對話框,下圖為處理器節點的詳述對話框:
在上圖中的“Name”處可以設置處理器節點的名稱,在“Stereotype”中可以輸入該節點的構造型,在“Documentation”中可以輸入該節點的其它說明信息。
處理器節點詳述“Detail”選項卡的信息如下:
在“Characteristic”可以給出處理器的特征,如型號,配置等信息。
在“Processes”中可以定義該節點中處理的進程和優先級。
在“Scheduling”可以指定調度信息:
Preemptive:搶占式;Non Preemptive:非搶占式;Cyclic:周期的;Executive:可執行的;Manual:手動的。
一般情況下,部署圖僅顯示各個節點的連接情況,這些信息可以不用設置。
下圖顯示的是設備節點的詳述對話框:
該對話框中的內容與處理器節點相同。
在設備節點詳述對話框的“Detail”選項卡中僅有“Characteristic”項,可以給出設備的型號等信息。
(5)建立連接
在工具欄中選擇“Connection”連接線,然后在要連接的一個節點上點擊鼠標后按住鼠標左鍵拖動到第二個節點上,并松開鼠標,這時就會建立了兩個節點之間的鏈接。
雙擊連接線,或右擊連接線后選擇“Open Specification...”,可以打開連接線詳述對話框,如下圖所示:
在這個對話框中可以指定連接的名稱以及連接的構造型。
如在“Name”里輸入“1000 Base-T”,在“Stereotype”里輸入“ethernet”,則會顯示如下圖所示的情形。
下面給出Rose中一個部署圖的例子。
該部署圖描述了圖書館借閱系統的部署圖。
而關于UML2.x中的部署圖可以使用Visio、StarUML、draw.io等工具進行繪制。
新聞熱點
疑難解答