1. 程式人生 > >UML建模之包圖、元件圖和部署圖學習筆記

UML建模之包圖、元件圖和部署圖學習筆記

UML建模中包圖、元件圖和部署圖學習筆記

對於較大的專案進行UML建模,由於有很多的類和用例,僅僅利用類圖和用例圖的話,常常會使結構變得更為複雜。此時如果可以以功能模組劃將類圖和用例圖進行封裝,可以很好地簡化結構圖,讓開發人員或者使用人員更容易看懂整個結構或流程。此時包圖會是不錯的選擇。利用包圖可以封裝相同型別的類或用例,包與包之間利用不同的聯絡進行連線。此時,龐大複雜的系統變成了,一目瞭然的關係圖。頓時,整個系統的架構都盡收眼底。

而元件圖和部署圖,個人感覺則是它們之間有點相似,如果說元件圖把整個系統中用到的元件進行了虛擬的連線的話,那麼部署圖則是把整個系統所需硬體裝置的物理連線體現了出來。

下面分別將這三種圖進行一個總結。

1      包圖

什麼是包圖

書上給出的包的定義:包是將一些具有共性的類組合在一起。在ROSE建模中包的作用相當於目錄結構。但它與某些程式語言的包組織功能相對應,實際上它與Java語言的包概念十分相似。在UML中包用如下圖所示。


包圖不僅僅能封裝類

而包圖不僅僅侷限於封裝類,對於用例,元件等其他模型元素也可以進行封裝,甚至一個包可以巢狀到另一個包中,進行包的封裝。

包圖中包之間的關係

包之間和類之間一樣可以畫出依賴性關係。包依賴性也可以用虛線箭頭表示,如圖所示。


從NewPackage1到NewPackage2的依賴性關係表示NewPackage1中的某些類與Package2中的某些類存在單向關係。也就是說,NewPackage1中的某些類要知道NewPackage2中的某些類。這具有複用意義。如果兩個包存在如上依賴關係,則NewPackage1包依賴於NewPackage2包。由於存在依賴關係,因此不能直接在一個應用程式中複用NewPackage1,但可以複用NewPackage2包,因為後者沒有依賴於其他包。

包圖中最好不要有迴圈依賴關係

要確定包依賴關係,就要檢查類圖中的關係。如果不同包中的類之間有關係,則包也有關係。而且建立包依賴性關係時,要儘量避免迴圈依賴性關係。迴圈依賴性如圖所示。


此時Package1包中的某些類要知道Package2中的某些類,而Package2包中的某些類又要知道Package1包中的某些類,這樣兩個包都不容易複用,一個包改變時會影響另一個包。這樣會失去包封裝性的好處。如果要破壞迴圈依賴性,可以將一個包一分為二。比如我們要破壞上圖的依賴迴圈性,那麼可以將Package2包中的Package1包所依賴的類移到Package3中。如圖所示。


這樣更能體現包圖的實際運用意義,使每個功能都模組化並封裝成包,並且盡最大程度降低模組之間,也就是包之間的耦合度。

2      元件圖

什麼是元件圖

書上的定義:元件圖是個UML框圖,用來顯示系統中的元件及其相互依賴性。在元件圖中,我們著重考慮的是系統的實際結構。主要描述的是系統元件及其相互依賴性關係。這裡我們定義組價是程式碼的物理模組。它包括程式碼庫和執行檔案。比如,我們使用C++語言,那麼每個.cpp和.h檔案都是單獨的元件。編譯後生成的.exe檔案也是元件。

元件的型別

1)        實施構件:這類構件是構成一個可執行系統必要和充分的構件,例如動態連結庫(dll)、可執行檔案(exe),另外還包括如COM+、CORBA及企業級Java Beans、動態Web頁面也屬於實施構件的一部分

2)        工作產品構件:這類構件主要是開發過程的產物,包括建立實施構件的原始碼檔案及資料檔案。這些構件並不是直接地參與可執行系統,而是用來產生可執行系統的中間工作產品

3)        執行構件:作為一個正在執行的系統的結果而被建立的,例如由DLL例項化形成的COM+物件

元件之間的關係

元件之間不僅僅只有依賴關係。元件實現了某個介面的話,那麼元件與介面之間的關係就是實現關係。另外,關聯、繼承關係也可以在元件之間體現。

所以元件圖可以有四種關係,依賴、實現、關聯和繼承。

3      部署圖

什麼是部署圖

相比元件圖,部署圖考慮的是應用程式的物理部署,如網路佈局和元件在網路上的位置的問題。部署圖顯示了網路中的所有結點、結點間的連線和每個結點上執行的過程。它是對硬體物理裝置的描述。如圖就是一個部署圖的例子。


部署圖中主要包括處理器和裝置。處理器和裝置都是網路上的節點。

部署圖的基本要素

1.      處理器

處理器是任何具有處理功能的及其。伺服器、工作站和其他具有處理功能的機器都是處理器。在UML中處理器用下面符號表示:


處理器有很多細節問題,比如它的處理器版型、特性和計劃等資訊。

2.      裝置

裝置是沒有處理功能的及其或硬體,包括啞終端、印表機、掃描器等。在UML中,裝置用下面的符號表示:


和處理器一樣,裝置也有各種細節,比如它的版型。特性等。這些細節與處理器大致相似。

3.      結點之間的連線

連線是兩個處理器、兩個裝置或處理器與裝置之間的實際連線。通常,連線表示網路結點之間的物理網路連線。連線也可以表示兩個結點間的Internet連線。同時,連線可以指定版型,也可以指定連線的特性。

相關推薦

UML建模元件部署學習筆記

UML建模中包圖、元件圖和部署圖學習筆記 對於較大的專案進行UML建模,由於有很多的類和用例,僅僅利用類圖和用例圖的話,常常會使結構變得更為複雜。此時如果可以以功能模組劃將類圖和用例圖進行封裝,可以很好地簡化結構圖,讓開發人員或者使用人員更容易看懂整個結構或流程。此時包圖

初探UML建模時序

1. 什麼是UML建模 統一建模語言(Unified Modeling Language,UML),1970年由OMG 組織(Object Management Group物件管理組織)釋出。以面向物件圖的方式來清晰直接的表達專案架構設計思想、專案結構及執行順

UML建模時序(重點講矩形長條的連續與間斷)

  時序圖(Sequence Diagram ,是互動圖的一種,另一種互動圖是協作圖,這兩種圖在Rose中可以相互轉化)用來描述按時間順序排列的物件之間的互動,它強調物件之間訊息傳遞的時間順序(協作圖強調物件之間的互動關係)。 時序圖都由哪些元素組成呢? 角色例項(

UML建模用例學習筆記

什麼是用例圖 用例圖是指由參與者(Actor)、用例(Use Case)以及它們之間的關係構成的用於描述系統功能的靜態檢視。 用例圖是用例(Use Case)分析手段或工具。用例分析是捕獲應用需求的有效手段,也是 UML 中進行功能需求分析的主要方法。它用參

UML建模狀態(Statechart Diagram)

狀態圖目錄: 一、狀態圖簡介(Brief introduction) 二、狀態圖元素(State Diagram Elements) 1、狀態(States) 2、轉移(Transitions) 3、動作(State Actions) 4、自身轉移(Self-Transi

EA(Enterprise Architect) UML 建模活動

  1)、動作狀態是原子的,它是構造活動圖的最小單位。   (2)、動作狀態是不可中斷的。   (3)、動作狀態是瞬時的行為。   (4)、動作狀態可以有入轉換,入轉換既可以是動作流,也可以是物件流。動作狀態至少有一條出轉換,這條轉換以內部的完成為起點,與外部事件無關。   (5)、動作狀態與狀態圖中的狀態

UML建模——時序(待整理)

時序圖是一個二維圖,橫軸表示物件,縱軸表示時間,訊息在各物件之間橫向傳遞,依照時間順序縱向排列。 二、 時序圖的作用是什麼? 1、展示物件之間互動的順序。將互動行為建模為訊息傳遞,通過描述訊息是如何在物件間傳送和接收的來動態展示物件之間的互動; 2、相對於其他UML圖,時序圖更強調互動的

8【資料結構】鄰接矩陣鄰接表無向

一、鄰接矩陣無向圖 1、基本定義 #define MAX 10 class MatrixUDG { private: char mVexs[MAX]; //頂點集合 int mVexNum; //頂點

9【資料結構】鄰接矩陣鄰接表有向

一、鄰接矩陣有向圖 1、基本定義 #define MAX 10 class MatrixDG { private: char mVexs[MAX]; // 頂點集合 int mVexNum; // 頂點數

uml 9種構件部署

    構件圖(Component diagram)是面向物件系統從物理方面建模時用到的圖之一,顯示一組構件之間的組織和依賴關係。使用構件圖的思想是複用。就像是我們蓋房子,當房子的大體框架建好之後,剩

UML實現---構件部署

簡介    UML中的實現圖是用來描述系統實現方面的資訊,從系統層次來描述硬體的組成和佈局還有軟體系統劃分和功能的實現等問題。實現圖分為構件圖和部署圖兩種。構件圖(Component diagram

DJANGO入門系列(模板層的簡單介紹層的掃尾)

dir 解析 http eth endif () 查詢 文件上傳 lte 昨日回顧:1 虛擬環境 -1 pycharm裏創建 -2 用命令串講2 視圖層: 1 Request對象---GET,POST,method,body,FILES,META,path(只是

echarts生成餅狀柱狀多項柱狀的引數介紹

1.餅圖 html程式碼: <div id="SexDistri" style="width: 100%;height: 50%;"></div> 下面的柱狀圖的html程式碼也與此類似。 js程式碼: var SexDistributi

【JavaScript基礎筆記】資料型別轉換false值記憶體垃圾回收深淺拷貝簡易概念

其他型別轉換成字串 xxx.toString()   // var object = {a:1}; object.toString = [object Object]   //這種方法對null undefined使用會報錯 xxx +

UML---構件部署

前言: 我們在面向物件系統的物理方面建模時使用構件圖和部署圖,而這兩種圖從屬於實現檢視。 內容: 一、構件圖 1、構件圖 構件圖是用來表示系統中構件與構件之間,以及定義的類(或介面)與構件

UML建模協作圖

概述 協作圖是一種互動圖,強調的是傳送和接收訊息的物件之間的組織結構,使用協作圖來說明系統的動態情況。 協作圖主要描述協作物件間的互動和連結,顯示物件、物件間的連結以及物件間如何傳送訊息。 協作圖可以表示類操作的實現。 協作圖中的事物及解釋 事物名稱 解釋 圖 參與者 發出主動操作的物件

UML學習】--構件部署

一、構件圖(元件圖)      一輛汽車由輪子、發動機等物理部件組成,一個軟體往往也是由很多“物理部件”(如:控制元件、重用構件等)組成的,元件圖就是用來描述軟體內部物理組成的一種圖。1.構件表示的變化: (1)UML1.4中 (2)UML2.0中 2.構件圖中的關係

JAVA長連線短連線心跳

短連線: client向server發起連線,server接到請求,雙方建立連線,client向server傳送訊息,server迴應client,一次讀寫完成雙方都可以發起close請求 優點:短連線對於伺服器來說較為簡單,存在的連線都是有用的連線,不需要額外的控制。

論點邊集二分的相關概念性質

可能 基於 alt 等於 最小邊 ron imu ima vertex 轉自https://dsqiu.iteye.com/blog/1689505 點覆蓋、最小點覆蓋 點覆蓋集即一個點集,使得所有邊至少有一個端點在集合裏。或者說是“點” 覆蓋了

知源四點坐標目標四點坐標,求透視變換矩陣

lan tails i++ show ffi 源碼 讓我 strong 函數   最近在搞圖像處理,碰到了透視變換的問題。   同事給我一些代碼,裏邊有誤差,挺嚴重,讓我幫他想想哪裏出錯了。搗鼓了很久,我猜測肯定是透視變換矩陣求錯了,然後我的透視變換之旅就開始了。