




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、構(gòu)件圖與部署圖1構(gòu)件圖o 構(gòu)件是系統(tǒng)的可替代的物理部分,是定義了良好接口的物理實現(xiàn)單元,它是系統(tǒng)中可以替代的部分,每個構(gòu)件體現(xiàn)了系統(tǒng)設計中的特定類的實現(xiàn),良好定義的構(gòu)件不直接依賴于其它構(gòu)件,而是依賴于其它構(gòu)件所支持的接口,在這種情況下,系統(tǒng)中的一個構(gòu)件可以被支持相同的接口的其它構(gòu)件所替代。 2構(gòu)件圖o 接口是被軟件或硬件所支持的一個操作集合,每個接口有一個名稱,通過使用命名的接口,可以避免在系統(tǒng)的各個構(gòu)件之間直接發(fā)生依賴關(guān)系,有利于新構(gòu)件的替換。3構(gòu)件的概念o 從構(gòu)件組成上看,每個構(gòu)件定義了2組接口(一組供給接口,一組需求接口),構(gòu)件為供給接口提供了提供了功能實現(xiàn)部分。4o 對于一個構(gòu)件而言,
2、它包含5個要素:n 1)接口聲明:每個構(gòu)件包含兩組接口,一組是供給接口,表明它能提供的服務,一組是需求接口,表明它需要的服務。n 2)接口實現(xiàn):構(gòu)件是一個物理部件,它實現(xiàn)了供給接口聲明的服務。n 3)構(gòu)件標準:在創(chuàng)建構(gòu)件時,每一個構(gòu)件必須遵從某種構(gòu)件標準。n 4)封裝方法:也就是構(gòu)件遵從的封裝標準。n 5)部署方法:一個構(gòu)件可以有多種部署方法。5構(gòu)件與類o 從構(gòu)件的定義上看,構(gòu)件和類十分相似:n 二者都有名稱,都可以實現(xiàn)一組接口,都可以參與依賴、泛化和關(guān)聯(lián)關(guān)系,都可以被嵌套,都可以有實例,都可以參與交互。6構(gòu)件與類o 構(gòu)件與類的區(qū)別:n (1)類表示是對實體的抽象,而構(gòu)件是對存在于計算機中的物
3、理部件的抽象。也就是說,構(gòu)件是可以部署的,而類不能部署。n (2)構(gòu)件屬于軟件模塊,而非邏輯模塊,與類相比,它們處于不同的抽象級別。甚至可以說,構(gòu)件就是由一組類通過協(xié)作完成的。n (3)類可以直接擁有操作和屬性,而構(gòu)件僅擁有可以通過其接口訪問的操作。7構(gòu)件分類o 按照構(gòu)件在系統(tǒng)中的角色,把構(gòu)件分為3種類型:n1)配置構(gòu)件:組成系統(tǒng)的基礎構(gòu)件,是執(zhí)行其它構(gòu)件的基礎平臺。如:操作系統(tǒng)、java虛擬機(JVM) 、數(shù)據(jù)庫管理系統(tǒng)都屬于配置構(gòu)件。n2)工作產(chǎn)品構(gòu)件:這類構(gòu)件主要是開發(fā)過程的中間產(chǎn)物,如:創(chuàng)建構(gòu)件時的源代碼文件及數(shù)據(jù)文件都屬于工作產(chǎn)品構(gòu)件。這些構(gòu)件并不是直接地參與系統(tǒng)運行。n3)執(zhí)行構(gòu)件
4、:在運行時創(chuàng)建的構(gòu)件。例如由DLL實例化形成的COM+對象、Servlets、XML文檔都屬于執(zhí)行構(gòu)件。8構(gòu)件圖的概念o 構(gòu)件圖提供當前模型的物理視圖,對系統(tǒng)的靜態(tài)實現(xiàn)視圖建模。構(gòu)件圖顯示一個系統(tǒng)物理設計時,構(gòu)件所映射的類和對象的配置。o 一個構(gòu)件圖可以表示一個系統(tǒng)全部或者部分的構(gòu)件體系。從組織內(nèi)容看,構(gòu)件圖顯示軟件構(gòu)件的組織以及構(gòu)件之間的依賴關(guān)系,包括源代碼構(gòu)件、二進制代碼構(gòu)件以及可執(zhí)行構(gòu)件。o 構(gòu)件圖是對OO系統(tǒng)物理方面建模的2個圖之一。9構(gòu)件圖的概念o 構(gòu)件圖主要用于描述各種軟件構(gòu)件之間的依賴關(guān)系,例如,可執(zhí)行文件和源文件之間的依賴關(guān)系,所設計的系統(tǒng)中的構(gòu)件的表示法及這些構(gòu)件之間的關(guān)系構(gòu)
5、成了構(gòu)件圖。o 與所有UML的其它圖一樣,構(gòu)件圖可以包括注釋、約束、包。10構(gòu)件圖的概念11構(gòu)件圖的概念12構(gòu)件圖是用來表示系統(tǒng)中構(gòu)件與構(gòu)件之間,以及定義的類或接口與構(gòu)件之間的關(guān)系的圖。在構(gòu)件圖中,構(gòu)件和構(gòu)件之間的關(guān)系表現(xiàn)為依賴關(guān)系,定義的類或接口與類之間的關(guān)系表現(xiàn)為依賴關(guān)系或?qū)崿F(xiàn)關(guān)系。13構(gòu)件圖的作用o 構(gòu)件圖的基本目的是:使系統(tǒng)人員和開發(fā)人員能夠從整體上了解系統(tǒng)的所有物理部件,同時,也使我們知道如何對構(gòu)件進行打包,以便交付給最終客戶,最后,構(gòu)件圖顯示了被開發(fā)系統(tǒng)所包含的構(gòu)件之間的依賴關(guān)系。o 構(gòu)件圖從軟件架構(gòu)的角度來描述一個系統(tǒng)的主要功能,如系統(tǒng)分成幾個子系統(tǒng),每個子系統(tǒng)包括哪些類、包和構(gòu)
6、件,它們之間的關(guān)系以及它們分配到哪些節(jié)點上等。14構(gòu)件圖的作用o 使用構(gòu)件圖可以清楚地看出系統(tǒng)的結(jié)構(gòu)和功能。方便項目組的成員制定工作目標和了解工作情況,同時,最重要的一點是有利于軟件的復用。o 從宏觀的角度上,構(gòu)件圖把軟件看作多個獨立構(gòu)件組裝而成的集合,每個構(gòu)件可以被實現(xiàn)相同接口的其它構(gòu)件替換。15構(gòu)件的表示o 構(gòu)件是定義了良好接口的物理實現(xiàn)單元,是系統(tǒng)中可替換的物理部件。o 構(gòu)件可以是源代碼構(gòu)件、二進制構(gòu)件或一個可執(zhí)行的構(gòu)件。o 在UML中,構(gòu)件用一個左側(cè)帶有突出兩個小矩形的矩形來表示。 帶版型的構(gòu)件帶版型的構(gòu)件16構(gòu)件的名稱o 每個構(gòu)件都必須有一個不同于其他構(gòu)件的名稱。構(gòu)件的名稱是一個字符
7、串,位于構(gòu)件圖標的內(nèi)部o 構(gòu)件名稱通常是從現(xiàn)實的詞匯表中抽取出來的短名詞或名詞短語,并依據(jù)目標操作系統(tǒng)添加相應的擴展名,例如java和dll。17o在構(gòu)件圖中,我們將系統(tǒng)中可重用的模塊封裝成為具有可替代性的物理單元,我們稱之稱為構(gòu)件,它是獨立的,在一個系統(tǒng)或子系統(tǒng)中的封裝單位,提供一個或多個接口,是系統(tǒng)高層的可重用的部件。 o構(gòu)件作為系統(tǒng)定義良好接口的物理實現(xiàn)單元,它能夠不直接依賴于其他構(gòu)件而僅僅依賴于構(gòu)件所支持的接口。通過使用被軟件或硬件所支持的一個操作集接口,構(gòu)件可以避免在系統(tǒng)中與其它構(gòu)件之間直接發(fā)生依賴關(guān)系。 18構(gòu)件圖和部署圖的基本概念有一些構(gòu)件的圖標表示形式和標準構(gòu)件圖形表示形式相同
8、,它們包括ActiveX、Applet、Application、DLL、EXE以及自定義構(gòu)造型的構(gòu)件,它們的表示形式是在構(gòu)件上添加相關(guān)的構(gòu)造型,是一個構(gòu)造型為Applet的構(gòu)件。19構(gòu)件圖和部署圖的基本概念o在Rational Rose 2003中,數(shù)據(jù)庫也被認為是一種構(gòu)件。o虛包是一種只包含對其它包所具有的元素進行的引用的構(gòu)件。它被用來提供一個包的某些內(nèi)容的公共視圖。虛包不包含任何它自己的模型元素。 20構(gòu)件圖和部署圖的基本概念o系統(tǒng)是指組織起來以完成一定目的的連接單元的集合,在系統(tǒng)中,肯定有一個文件用來指定系統(tǒng)的入口,也就是系統(tǒng)程序的根文件,這個文件被成為主程序。o子程序規(guī)范和子程序體是用
9、來顯示子程序的規(guī)范和實現(xiàn)體。子程序是一個單獨處理的元素的包,我們通常用它代指一組子程序集。21構(gòu)件的表示o 沒有標識接口的構(gòu)件表示法n 沒有標識接口的構(gòu)件的圖形表示方法分三種:o 表示為標有構(gòu)造型component的矩形;o 在矩形的右上角放置一個構(gòu)件圖標(一個小矩形,并在左側(cè)加上兩個突出的更小的矩形);o 直接使用構(gòu)件圖標。沒有標識接口的構(gòu)件的圖形的三種表示法和類的名稱相近,構(gòu)件的名稱也是一個正文字符串,它可以是簡單名,也可以是帶路徑的全名。22構(gòu)件的表示o 標識接口的構(gòu)件表示法n對于一個構(gòu)件而言,它有兩類接口:提供(provided)接口和所需(required)的接口。標識接口的構(gòu)件表示
10、方法也有3種。標識接口的構(gòu)件3種表示方法23構(gòu)件的表示o (1)使用接口分欄表示:也就是將所需的接口和提供的接口直接顯示在矩形的分欄中,將構(gòu)造型provided和required放在每個接口名之前。o (2)使用圖標表示法:將接口的圖標連接到矩形的邊框上,共給接口表示為通過一條實線鏈接到矩形上的圓圈;而需求接口則表示為一條實線鏈接到矩形上的上半圓。o (3)顯示表示法:接口也可以用完整的顯示形式表示,構(gòu)件和其提供的接口之間是實現(xiàn)關(guān)系,而構(gòu)件和其所需的接口之間是使用use關(guān)系。24Rose中的擴展構(gòu)件子程序說明是一組子程序集合名子程序說明是一組子程序集合名, 其其中不包括類定義中不包括類定義.子
11、程序體表示子程序的實現(xiàn)子程序體表示子程序的實現(xiàn).主程序是包含程序根的文件主程序是包含程序根的文件.25構(gòu)件的類型26 構(gòu)件間的關(guān)系依賴關(guān)系一個構(gòu)件如果使用另外一個構(gòu)件的操作,則也可以在該構(gòu)件和另外一個構(gòu)件的接口間建立依賴關(guān)系;27 構(gòu)件間的關(guān)系依賴關(guān)系對象和源碼間28 構(gòu)件間的關(guān)系依賴關(guān)系兩個構(gòu)件中的類如果存在泛化關(guān)系,則構(gòu)件間可以加依賴關(guān)系;29 構(gòu)件間的關(guān)系依賴關(guān)系兩個構(gòu)件中的類如果存在使用關(guān)系,則構(gòu)件間可以加依賴關(guān)系;30 構(gòu)件間的關(guān)系實現(xiàn)關(guān)系31 構(gòu)件圖Component diagram提供當前模型的物理視圖;顯示包括構(gòu)件源碼、二進制文件和可執(zhí)行文件在內(nèi)的軟件構(gòu)件之間的組織和依賴關(guān)系;
12、也可以通過顯示組件的接口來展示組件外部可見的行為。32 構(gòu)件圖基本構(gòu)件圖33 構(gòu)件圖嵌套構(gòu)件圖34 繪制構(gòu)件圖確定子系統(tǒng)對外的接口將整個“在線酒店預訂子系統(tǒng)”作為一個構(gòu)件,考慮其對外接口。顯然它首先需要提供用戶界面;其次還需要與加盟的酒店系統(tǒng)連接,完成預訂工作35 繪制構(gòu)件圖確定子構(gòu)件和接口顯然要有一個構(gòu)件來實現(xiàn)用戶界面,一個構(gòu)件來完成與酒店系統(tǒng)的連接和預訂,另外還應該有一個負責將用戶的需求與酒店的供給進行匹配的“調(diào)度程序”36 繪制構(gòu)件圖對可執(zhí)行程序的結(jié)構(gòu)建模首先識別你想建模的構(gòu)件集合考慮集合中各構(gòu)件的不同類型對這個集合中的每個構(gòu)件,分析它們之的關(guān)系37繪制構(gòu)件圖對源代碼建模識別相關(guān)源代碼文
13、件的集合,建模為構(gòu)件;對于較大的系統(tǒng),利用包來進行分組;通過約束來表示源代碼的版本號、作者和最后修改日期等信息;用依賴關(guān)系來表示這些文件間編譯的依賴關(guān)系38實例實例1:ATM系統(tǒng)的構(gòu)件圖:一個執(zhí)行文件構(gòu)件和兩個包文件系統(tǒng)的構(gòu)件圖:一個執(zhí)行文件構(gòu)件和兩個包文件構(gòu)件。構(gòu)件。 39實例2選課系統(tǒng)的構(gòu)件圖選課系統(tǒng)的構(gòu)件圖40o實例3圖中包括:顧客需要信息亭接口提供顧客需要信息亭接口提供服務服務售票員需要職員接口提供售票員需要職員接口提供服務服務信用卡付款需要信用卡代信用卡付款需要信用卡代理提供服務理提供服務職員接口需要預訂銷售、職員接口需要預訂銷售、個人銷售和團體銷售提供個人銷售和團體銷售提供服務服務
14、管理接口需要數(shù)據(jù)庫狀態(tài)管理接口需要數(shù)據(jù)庫狀態(tài)提供服務提供服務售票處需要付款和購買提售票處需要付款和購買提供服務供服務等等等等圖中包括:信用卡付款提供信用卡付款提供付款服務付款服務票數(shù)據(jù)庫提供購票數(shù)據(jù)庫提供購買和狀態(tài)查詢服買和狀態(tài)查詢服務務售票處提供預訂售票處提供預訂購買、個人購買購買、個人購買和團體購買服務和團體購買服務購買個人票可以通過公用信息亭訂購也可直接購買個人票可以通過公用信息亭訂購也可直接向售票員購買,但購買團體票只能通過售票員。向售票員購買,但購買團體票只能通過售票員。買票的人可以根據(jù)任意選擇預訂銷售或個人銷買票的人可以根據(jù)任意選擇預訂銷售或個人銷售或團體銷售中的一種方式,售票處為
15、了方便售或團體銷售中的一種方式,售票處為了方便銷售,需要信用卡付款服務的支持,同時也必銷售,需要信用卡付款服務的支持,同時也必然需要票數(shù)據(jù)庫處在有票可賣的狀況中。然需要票數(shù)據(jù)庫處在有票可賣的狀況中。情景描述情景描述41接口o 接口用于描述構(gòu)件所提供的服務的一組操作集合,指定了構(gòu)件的外部可見操作。構(gòu)件和接口之間的關(guān)系叫做實現(xiàn)關(guān)系??梢酝ㄟ^接口訪問一個構(gòu)件。o 接口和構(gòu)件之間的關(guān)系分為兩種:n 實現(xiàn)關(guān)系(Realization)n 依賴關(guān)系(Dependency)o 在圖中,接口和構(gòu)件之間用實線連接表示實現(xiàn)關(guān)系;而接口和構(gòu)件之間用虛線箭頭連接則表示依賴關(guān)系。42接口o 在構(gòu)件圖中,常見的兩種依賴關(guān)
16、系:n 編譯依賴n 調(diào)用依賴o 使用依賴關(guān)系的三種情況:n 客戶類要訪問一個在提供者類(接口)中定義的值(常量或變量); n 客戶類的操作激活提供者類(接口)的操作; n 客戶類的操作具有返回到提供者類(接口)的實例或參量的特征標記。 43接口構(gòu)件與接口之間的關(guān)系構(gòu)件與接口之間的關(guān)系: : 實現(xiàn)關(guān)系實現(xiàn)關(guān)系和和依賴關(guān)系依賴關(guān)系導出接口導出接口導入接口導入接口為了便于構(gòu)件之間替換為了便于構(gòu)件之間替換,建議使用以上依賴關(guān)系建議使用以上依賴關(guān)系44構(gòu)件圖分類o 構(gòu)件圖可以分為兩種:簡單構(gòu)件圖和嵌套構(gòu)件圖。o 1 簡單構(gòu)件圖n 我們可以把相互協(xié)作的類,組織成一個構(gòu)件。利用構(gòu)件圖可以讓軟件開發(fā)者知道系統(tǒng)
17、是由哪些可執(zhí)行的構(gòu)件組成的,這樣,以構(gòu)件為單位來看待系統(tǒng)時,讓開發(fā)者清楚的看到軟件系統(tǒng)的體系結(jié)構(gòu)。45構(gòu)件圖分類o (1)用戶界面層:采用JSP頁面實現(xiàn)用戶界面。我們通過構(gòu)造型Java Server page來表示構(gòu)件。這一部分的構(gòu)件,主要由邊界類組成。o (2)業(yè)務邏輯層:在實現(xiàn)上主要采用了JavaBean技術(shù)。使用構(gòu)造型JavaBean來表示這一層的構(gòu)件。這些構(gòu)件主要由實體類組合而成。o (3)數(shù)據(jù)訪問層:該層將所有的數(shù)據(jù)訪問操作封裝在一個JavaBean中(如果是大型應用,可能封裝成為EJB),標明了它是JDBC的一個實現(xiàn)。46構(gòu)件圖分類o 在這個例子中,對可執(zhí)行程序的體系結(jié)構(gòu)進行了建模
18、,以幫助開發(fā)者了解可執(zhí)行程序模塊之間的關(guān)聯(lián)關(guān)系,從而從宏觀上認識系統(tǒng)。47構(gòu)件圖分類o 2 嵌套的構(gòu)件圖n 使用嵌套的構(gòu)件圖來表示構(gòu)件的內(nèi)部結(jié)構(gòu)。銷售管理服務器中包含兩個構(gòu)件:銷售管理服務器中包含兩個構(gòu)件:一個是處理收銀機發(fā)送來的銷售一個是處理收銀機發(fā)送來的銷售消息,完成交易處理;另一個是消息,完成交易處理;另一個是財務接口,負責處理與財務系統(tǒng)財務接口,負責處理與財務系統(tǒng)的連接,這時交易處理程序就委的連接,這時交易處理程序就委托財務接口來完成與財務系統(tǒng)的托財務接口來完成與財務系統(tǒng)的數(shù)據(jù)傳送。數(shù)據(jù)傳送。在圖中,銷售管理服務器所提供在圖中,銷售管理服務器所提供的接口和所需的接口與構(gòu)件連接的接口和所
19、需的接口與構(gòu)件連接的點上,都有一個小矩形,它表的點上,都有一個小矩形,它表示的是示的是“端口端口”。這些端口將通。這些端口將通過帶箭頭的實線與具體的子構(gòu)件過帶箭頭的實線與具體的子構(gòu)件連接,表示該接口的提供者或需連接,表示該接口的提供者或需求者。求者。48構(gòu)件圖與類圖、包圖的關(guān)系o 基于類與構(gòu)件之間的區(qū)別,也可以看到,類圖側(cè)重于系統(tǒng)的邏輯設計,而構(gòu)件圖更側(cè)重于系統(tǒng)的物理設計及實現(xiàn)。o 包的設計主要是為了創(chuàng)建方便他人重用的包,因為人們通常不重用一個類,一般總是重用一組類。絕大多數(shù)系統(tǒng)都是由許多個包建立的,這些包相互依賴,建立了一個龐大的依賴關(guān)系圖,根據(jù)發(fā)生變化的敏感度將類分組,基于同一個原因發(fā)生變
20、化的類放在同一個包中。 49構(gòu)件圖應用o 構(gòu)件圖描述了軟件的組成和具體結(jié)構(gòu),表示了系統(tǒng)的靜態(tài)部分。它能夠幫助開發(fā)人員從總體上認識系統(tǒng)。常采用構(gòu)件圖來描述可執(zhí)行程序的結(jié)構(gòu)、源代碼、物理數(shù)據(jù)庫組成和結(jié)構(gòu)。o 1 對可執(zhí)行程序建模o 通過構(gòu)件圖,可以清晰地表示出各個可執(zhí)行文件、鏈接庫、數(shù)據(jù)庫、幫助文件和資源文件等其它可運行的物理構(gòu)件之間的關(guān)系。在對可執(zhí)行程序的結(jié)構(gòu)進行建模時,通常應遵從以下原則:n(1)首先標識要建模的構(gòu)件。n(2)理解和標識每個構(gòu)件的類型、接口和作用。n(3)標識構(gòu)件間的關(guān)系。50構(gòu)件圖應用對可執(zhí)行文件之間的關(guān)系建模51構(gòu)件圖應用o 例如,有一個語音呼叫中心程序callcenter
21、.exe,使用了三匯的語音卡的驅(qū)動程序shp_a3.dll,以及相應的TTS(文本轉(zhuǎn)語音)引擎sh_ttsu.dll,現(xiàn)在我們用構(gòu)件圖來描述這三個構(gòu)件的關(guān)系。52構(gòu)件圖應用o 2 對源代碼進行建模o 通過構(gòu)件圖可以清晰地表示出軟件的所有源文件之間的關(guān)系,開發(fā)者能更好地理解各個源代碼文件之間的依賴關(guān)系。在對源程序進行建模時,通常應遵從以下原則:n(1)表示出要重點描述的每個源代碼文件,并把每個源代碼文件標識為構(gòu)件。n(2)如果系統(tǒng)較大,我們就利用包來對構(gòu)件進行分組。n(3)用編譯依賴關(guān)系來描述構(gòu)件間的關(guān)系。n(4)在構(gòu)件圖中,采用約束來表示源代碼的版本號、作者和最后的修改日期等信息。53構(gòu)件圖應
22、用o 例如:singal.h是一個頭文件,被interp.cpp和signal.cpp引用,其中interp.cpp還引用了另一個頭文件irq.h,而device.cpp又對interp.cpp有編譯依賴關(guān)系。那么用構(gòu)件圖表示它們間的關(guān)系。54使用Rose創(chuàng)建構(gòu)件圖和部署圖o 創(chuàng)建一個新的構(gòu)件圖,可以通過以下方式進行。 ()右鍵單擊瀏覽器中的Component View(構(gòu)件視圖)或者位于構(gòu)件視圖下的包。 ()在彈出的菜單中,選中“New”(新建)下的“Component Diagram”(構(gòu)件圖)選項。 ()輸入新的構(gòu)件圖名稱。 ()雙擊打開瀏覽器中的構(gòu)件圖。 55使用Rose創(chuàng)建構(gòu)件圖和部
23、署圖o通過構(gòu)件圖的圖形編輯工具欄添加對象的步驟如下: ()在構(gòu)件圖的圖形編輯工具欄中,選擇按鈕,此時光標變?yōu)椤啊碧枴?()在構(gòu)件圖圖形編輯區(qū)內(nèi)選擇任意一個位置然后使用鼠標左鍵單擊,系統(tǒng)在該位置創(chuàng)建一個新的構(gòu)件。 ()在構(gòu)件的名稱欄中,輸入構(gòu)件的名稱。 56使用Rose創(chuàng)建構(gòu)件圖和部署圖對于構(gòu)件圖中的構(gòu)件,和其它Rational Rose 2003 中的模型元素一樣,我們可以通過構(gòu)件的標準規(guī)范窗口設置增加其細節(jié)信息,包括名稱、構(gòu)造型、語言、文本、聲明、實現(xiàn)類和關(guān)聯(lián)文件等。57部署圖58部署圖o 部署圖(deployment diagram,也稱為配置圖)是用來顯示系統(tǒng)中軟件和硬件的物理架構(gòu)。從部
24、署圖中,可以了解到軟件和硬件組件之間的物理關(guān)系以及軟件組件在處理節(jié)點上的分布情況。使用部署圖可以顯示運行時系統(tǒng)的結(jié)構(gòu),同時還表明了構(gòu)成應用程序的硬件和軟件元素的配置和部署方式。59部署圖的概念o 部署圖描述了系統(tǒng)中包括的計算機和其他的硬件設備,如這些計算機和設備的位置以及它們之間是如何進行相互連接的,即,部署圖描述系統(tǒng)中的硬件節(jié)點及節(jié)點之間如何連接的圖。60部署圖的概念o 部署圖的作用n 一個UML部署圖描述了一個運行時的硬件結(jié)點,以及在這些結(jié)點上運行的軟件構(gòu)件的靜態(tài)視圖。 部署圖顯示了系統(tǒng)的硬件,安裝在硬件上的軟件,以及用于連接異構(gòu)機器之間的中間件。 創(chuàng)建一個部署模型的目的包括 o 描述系統(tǒng)
25、與生產(chǎn)環(huán)境中的其它系統(tǒng)間的依賴關(guān)系,這些系統(tǒng)可能是已經(jīng)存在,或是將要引入的。 o 描述一個商業(yè)應用主要的部署結(jié)構(gòu)。 o 設計一個嵌入系統(tǒng)的硬件和軟件結(jié)構(gòu)。 o 描述一個組織的硬件/網(wǎng)絡基礎結(jié)構(gòu)。 61部署圖的概念o 部署圖的組成元素n 部署圖的組成元素包括節(jié)點、節(jié)點間的連接。連接把多個節(jié)點關(guān)連在一起,構(gòu)成一個部署圖。62部署圖的表示o 部署圖包含兩個部分:節(jié)點和連接。o 1 節(jié)點n節(jié)點代表一個運行時計算機系統(tǒng)中的硬件資源。節(jié)點通常擁有一些內(nèi)存,并具有處理能力。例如一臺計算機、一個工作站等其它計算設備都屬于節(jié)點。n在UML中,節(jié)點用一個立方體來表示。 每一個節(jié)點都必須有一個區(qū)別于其他節(jié)點的名稱。
26、節(jié)點的名稱是一個字符串,位于節(jié)點圖標的內(nèi)部。n節(jié)點的名稱有2種表示方法:簡單名字和帶路徑的名字。簡單名字就是一個文字串;帶路徑的名字指在簡單名字前加上節(jié)點所屬的包名。下面的立方體表示一個節(jié)點,其名稱為Node。63部署圖的表示o 按照節(jié)點是否有計算能力,把節(jié)點分為兩種類型:處理器和設備,分別用構(gòu)造型Processor和構(gòu)造型Device表示處理器和設備。o(1)處理器(Processor)n處理器是能夠執(zhí)行軟件、具有計算能力的節(jié)點。o(2)設備(Device) n設備是沒有計算能力的節(jié)點,通常情況下都是通過其接口為外部提供某種服務,例如打印機、IC讀寫器,如果我們的系統(tǒng)不考慮它們內(nèi)部的芯片,就
27、可以把它們看作設備。64部署圖的表示(3)節(jié)點中的構(gòu)件當某些構(gòu)件駐留在某個節(jié)點時,可以在該節(jié)點的內(nèi)部描述這些構(gòu)件。對于一張部署圖而言,最有價值的信息就是節(jié)點上的內(nèi)容,也就是安裝在節(jié)點中的構(gòu)件。對于這些構(gòu)件,可以直接寫在節(jié)點中,也可以用構(gòu)件表示,或用UML2.0規(guī)范推薦的artifact、database、deploymentSpec等構(gòu)造型來表述構(gòu)件。65部署圖的表示對節(jié)點內(nèi)駐留的構(gòu)件描述對節(jié)點內(nèi)駐留的構(gòu)件描述66部署圖的表示(對上圖的解釋)o(1)直接描述:例如在B/S客戶端中,必須安裝“Web瀏覽器”(并通過約束說明需要IE6.0以上版本或Firefox1.5以上版本)。通常,對于不是由開
28、發(fā)團隊生成的制品,例如IIS服務器這種描述方式,也可以通過“約束”來描述它。o(2)artifact構(gòu)造型:用來表示文件、構(gòu)件等制品,例如IIS服務器上的swWeb.dll、BusinessRule.dll、DateAccess.dll及C/S客戶端上的se.exe。o(3)database構(gòu)造型:用來表示一個實際的數(shù)據(jù)庫(對應Oracle的scheme),例如在數(shù)據(jù)庫服務器上的sw。o(4)deploymentSpec構(gòu)造型:用來表示部署描述,通常對關(guān)鍵的配置文件進行建模,還可以在構(gòu)造塊中直接指出具體參數(shù)的值。o對于這些構(gòu)造型,可以使用依賴關(guān)系來表示他們之間的相互關(guān)系,甚至可以表示跨節(jié)點之間
29、的依賴(入DataAccess.dll到sw之間的依賴連接)。另外,在圖中,使用了一個directory構(gòu)造型,這并不是一個UML標準構(gòu)造型,它只是使用者的一個擴展。67部署圖的表示o 節(jié)點屬性n象類一樣,可以為一個節(jié)點提供屬性描述,如,處理器速度、內(nèi)存容量、網(wǎng)卡數(shù)量等屬性。可以為節(jié)點其提供啟動、關(guān)機等操作屬性 。o 節(jié)點與構(gòu)件的區(qū)別n節(jié)點表示一個硬件部件,構(gòu)件表示一個軟件部件。兩者有許多相同之處,例如二者都有名稱,都可以參與依賴、泛化和關(guān)聯(lián)關(guān)系,都可以被嵌套,都可以有實例,都可以參與交互。但它們之間也存在明顯的區(qū)別:構(gòu)件是軟件系統(tǒng)執(zhí)行的主體,而節(jié)點是執(zhí)行構(gòu)件的平臺;構(gòu)件是邏輯部件,而節(jié)點表示
30、是物理部件,在物理部件上部署構(gòu)件。68部署圖的表示o2 連接n部署圖用連接表示各節(jié)點之間通信路徑,連接用一條實線表示。對于企業(yè)的計算機系統(tǒng)硬件設備間的關(guān)系,通常關(guān)心的是節(jié)點之間是如何連接的,因此描述節(jié)點間的關(guān)系一般不使用名稱,而是使用構(gòu)造型描述。下圖是節(jié)點之間連接的例子。69部署圖應用o 在實際的應用中,部署圖主要用在設計和實現(xiàn)兩個階段。o 1.設計階段n 在這一階段,部署圖主要用來描述硬件節(jié)點以及節(jié)點之間的連接。僅描述硬件節(jié)點的部署圖僅描述硬件節(jié)點的部署圖右圖并沒有描述節(jié)點內(nèi)的構(gòu)件。在設計階段,還沒有創(chuàng)建出軟件構(gòu)件。70部署圖應用o 2.實現(xiàn)階段n 在實現(xiàn)階段,已經(jīng)生產(chǎn)出了軟件構(gòu)件,因此,可
31、以把構(gòu)件分配給對應的節(jié)點。描述了節(jié)點內(nèi)部署的構(gòu)件描述了節(jié)點內(nèi)部署的構(gòu)件實際應用當中,部署圖主要用來對嵌入式系統(tǒng)、客戶機/服務器系統(tǒng)、分布式系統(tǒng)進行建模,而且能夠起到很好的作用。71部署圖應用o3嵌入式系統(tǒng)建模o如果采用部署圖對嵌入式系統(tǒng)進行了建模,通過部署圖,硬件工程師和軟件開發(fā)者之間就能做更好的交流。o在對嵌入式系統(tǒng)進行建模時,重點在于描述處理器和設備之間的關(guān)系;可以考慮對處理器和設備采取用更直觀的圖標。例如,一個航標RTU的嵌入式系統(tǒng)的部署圖示。描述嵌入式系統(tǒng)的部署圖描述嵌入式系統(tǒng)的部署圖72部署圖應用o 4客戶機/服務器和分布式系統(tǒng)建模n 當開發(fā)的軟件要運行在多臺計算機上時,就必須將軟件
32、構(gòu)件以合理的方式部署在各個節(jié)點上。其中客戶機/服務器結(jié)構(gòu)就是一種典型的分布式系統(tǒng)模型,它包含三層B/S/S結(jié)構(gòu)和兩層C/S結(jié)構(gòu)。n 對于大型分布式系統(tǒng)可能還包括負載均衡、集群等部署結(jié)構(gòu),部署圖的引入能夠很好地對其進行表述。73使用Rose創(chuàng)建構(gòu)件圖和部署圖o 在每一個系統(tǒng)模型中,只存在一個部署圖。在使用Rational Rose 2003創(chuàng)建系統(tǒng)模型時,就已經(jīng)創(chuàng)建完畢,即為Deployment View(部署視圖)。如果要訪問部署圖,在瀏覽器中雙擊該部署視圖即可。 o 其中包括: (1)創(chuàng)建和刪除節(jié)點。 (2)設置節(jié)點。 (3)添加和刪除節(jié)點之間的連接。 (4)設置連接規(guī)范。 74用Rose部
33、署一個實際的項目o我們使用下列的步驟創(chuàng)建構(gòu)件圖: (1)根據(jù)用例或場景的確定需求,確定系統(tǒng)的構(gòu)件。 (2)將系統(tǒng)中的類、接口等邏輯元素映射到構(gòu)件中。 (3)確定構(gòu)件之間的依賴關(guān)系,并對構(gòu)件進行細化。o我們將以將以在序列圖中介紹的一個學生信息管理系統(tǒng)的簡單用例為例,介紹如何去創(chuàng)建系統(tǒng)的構(gòu)件圖。75用Rose部署一個實際的項目我們可以和確定用例中的類和對象一樣,根據(jù)用例的流程確定系統(tǒng)的構(gòu)件。根據(jù)上面的用例,我們可以確我們可以確定最明顯的二個實體類是學生類(Student)和班級類(Grades)。系統(tǒng)的操作界面(WebInterface)是一個邊界類。還有,數(shù)據(jù)訪問操作過程中離不開與數(shù)據(jù)庫交互的數(shù)據(jù)庫管理類(DataManager)。除此以外,我們還需要一個系統(tǒng)的主程序(MainSystem),用來表示整個系統(tǒng)的啟動入口。76用Rose部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國錦綸切片行業(yè)競爭格局規(guī)劃研究報告
- 2025-2030年中國銅礦采選行業(yè)發(fā)展狀況及營銷戰(zhàn)略研究報告
- 2025-2030年中國蜂窩紙板市場運營狀況及投資戰(zhàn)略研究報告
- 2025-2030年中國藥學教育發(fā)展模式及未來投資戰(zhàn)略分析報告
- 2025-2030年中國聚碳酸酯pc行業(yè)運行狀況規(guī)劃分析報告
- 2025-2030年中國粗雜糧行業(yè)競爭格局及發(fā)展前景分析報告
- 2025-2030年中國空氣污染治理設備市場經(jīng)營狀況及發(fā)展趨勢分析報告
- 2025-2030年中國碼垛機器人市場運行動態(tài)及發(fā)展前景分析報告
- 幼兒健康有營養(yǎng)的蔬菜教案(12篇)
- 中國傳媒大學《電子與電工技術(shù)》2023-2024學年第二學期期末試卷
- 學生創(chuàng)新能力培養(yǎng)方案計劃
- 各級人員及各崗位安全生產(chǎn)責任制度
- 2025年湖北省技能高考(建筑技術(shù)類)《建筑材料與檢測》模擬練習試題庫(含答案)
- 2024-2025學年第二學期教學教研工作安排表 第二版
- 七年級地理下冊 9.2 巴西說課稿 (新版)新人教版
- 開展課外讀物負面清單管理的具體實施舉措方案
- 人體的免疫系統(tǒng)課件
- 六年級下學期開學第一課
- 體育原理課件
- 鍛件的結(jié)構(gòu)設計與工藝性分析
- 合理化建議獎勵制度(共8頁)
評論
0/150
提交評論