第11章+構(gòu)件圖 (1)_第1頁(yè)
第11章+構(gòu)件圖 (1)_第2頁(yè)
第11章+構(gòu)件圖 (1)_第3頁(yè)
第11章+構(gòu)件圖 (1)_第4頁(yè)
第11章+構(gòu)件圖 (1)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、LOGOUML 統(tǒng)一建模統(tǒng)一建模 第第11章章 構(gòu)件圖構(gòu)件圖目錄目錄111 構(gòu)件的概念構(gòu)件的概念112 構(gòu)件圖的概念構(gòu)件圖的概念113 構(gòu)件的表示構(gòu)件的表示114構(gòu)件間的關(guān)系構(gòu)件間的關(guān)系115 構(gòu)件圖分類構(gòu)件圖分類116構(gòu)件圖應(yīng)用構(gòu)件圖應(yīng)用 第第11章章 構(gòu)件圖構(gòu)件圖構(gòu)件是系統(tǒng)的可替代的物理部分,它表示的是實(shí)際的事物,構(gòu)件是定義了良好接口的物理實(shí)現(xiàn)單元,它是系統(tǒng)中可以替代的部分,每個(gè)構(gòu)件體現(xiàn)了系統(tǒng)設(shè)計(jì)中的特定類的實(shí)現(xiàn),良好定義的構(gòu)件不直接依賴于其它構(gòu)件,而是依賴于其它構(gòu)件所支持的接口,在這種情況下,系統(tǒng)中的一個(gè)構(gòu)件可以被支持相同的接口的其它構(gòu)件所替代。 接口是被軟件或硬件所支持的一個(gè)操作集合,

2、每個(gè)接口有一個(gè)名稱,通過(guò)使用命名的接口,可以避免在系統(tǒng)的各個(gè)構(gòu)件之間直接發(fā)生依賴關(guān)系,有利于新構(gòu)件的替換。111 構(gòu)件的概念構(gòu)件的概念1構(gòu)件從構(gòu)件組成上看,每個(gè)構(gòu)件定義了2組接口(一組供給接口,一組需求接口),構(gòu)件為供給接口提供了功能實(shí)現(xiàn)部分,即,構(gòu)件本身已經(jīng)實(shí)現(xiàn)了供給接口聲明的功能。對(duì)于一個(gè)構(gòu)件而言,它包含5個(gè)要素:1),接口聲明:每個(gè)構(gòu)件包含兩組接口,一組是供給接口,表明它能提供的服務(wù),一組是需求接口,表明它需要的服務(wù)。2),接口實(shí)現(xiàn):構(gòu)件是一個(gè)物理部件,它實(shí)現(xiàn)了供給接口聲明的服務(wù)。3),構(gòu)件標(biāo)準(zhǔn):在創(chuàng)建構(gòu)件時(shí),每一個(gè)構(gòu)件必須遵從某種構(gòu)件標(biāo)準(zhǔn)。4),封裝方法:也就是構(gòu)件遵從的封裝標(biāo)準(zhǔn)。5)

3、,部署方法:一個(gè)構(gòu)件可以有多種部署方法。2構(gòu)件與類111 構(gòu)件的概念構(gòu)件的概念從構(gòu)件的定義上看,構(gòu)件和類十分相似,事實(shí)也是如此:二者都有名稱,都可以實(shí)現(xiàn)一組接口,都可以參與依賴、泛化和關(guān)聯(lián)關(guān)系,都可以被嵌套,都可以有實(shí)例,都可以參與交互。但也存在著一些明顯的不同,下面是構(gòu)件與類的區(qū)別:(1)類表示是對(duì)實(shí)體的抽象,而構(gòu)件是對(duì)存在于計(jì)算機(jī)中的物理部件的抽象。也就是說(shuō),構(gòu)件是可以部署的,而類不能部署。(2)構(gòu)件屬于軟件模塊,而非邏輯模塊,與類相比,它們處于不同的抽象級(jí)別。甚至可以說(shuō),構(gòu)件就是由一組類通過(guò)協(xié)作完成的。(3)類可以直接擁有操作和屬性,而構(gòu)件僅擁有可以通過(guò)其接口訪問(wèn)的操作。111 構(gòu)件的概

4、念構(gòu)件的概念3構(gòu)件分類按照構(gòu)件在系統(tǒng)中的角色,把構(gòu)件分為3種類型:配置構(gòu)件、工作產(chǎn)品構(gòu)件、執(zhí)行構(gòu)件。1),配置構(gòu)件:組成系統(tǒng)的基礎(chǔ)構(gòu)件,是執(zhí)行其它構(gòu)件的基礎(chǔ)平臺(tái)。如,操作系統(tǒng)、java虛擬機(jī)(JVM) 、數(shù)據(jù)庫(kù)管理系統(tǒng)都屬于配置構(gòu)件。2),工作產(chǎn)品構(gòu)件:這類構(gòu)件主要是開(kāi)發(fā)過(guò)程的中間產(chǎn)物,如,創(chuàng)建構(gòu)件時(shí)的源代碼文件及數(shù)據(jù)文件都屬于工作產(chǎn)品構(gòu)件。這些構(gòu)件并不是直接地參與系統(tǒng)運(yùn)行。3),執(zhí)行構(gòu)件:在運(yùn)行時(shí)創(chuàng)建的構(gòu)件。例如由DLL實(shí)例化形成的COM+對(duì)象、Servlets、XML文檔都屬于執(zhí)行構(gòu)件。112 構(gòu)件圖的概念構(gòu)件圖的概念構(gòu)件圖主要用于描述各種軟件構(gòu)件之間的依賴關(guān)系,例如,可執(zhí)行文件和源文件之

5、間的依賴關(guān)系,所設(shè)計(jì)的系統(tǒng)中的構(gòu)件的表示法及這些構(gòu)件之間的關(guān)系構(gòu)成了構(gòu)件圖。構(gòu)件圖是描述構(gòu)件及構(gòu)件關(guān)系的圖。與所有UML的其它圖一樣,構(gòu)件圖可以包括注釋、約束、包。圖11-1是一個(gè)典型的構(gòu)件圖。1.構(gòu)件圖的作用:圖11-1構(gòu)件圖。112 構(gòu)件圖的概念構(gòu)件圖的概念在構(gòu)件圖中,系統(tǒng)中的每個(gè)物理構(gòu)件都使用構(gòu)件符號(hào)來(lái)表示,通常,構(gòu)件圖看起來(lái)像是構(gòu)件圖標(biāo)的集合,這些圖標(biāo)代表系統(tǒng)中的物理部件,構(gòu)件圖的基本目的是:使系統(tǒng)人員和開(kāi)發(fā)人員能夠從整體上了解系統(tǒng)的所有物理部件,同時(shí),也使我們知道如何對(duì)構(gòu)件進(jìn)行打包,以便交付給最終客戶,最后,構(gòu)件圖顯示了被開(kāi)發(fā)系統(tǒng)所包含的構(gòu)件之間的依賴關(guān)系。構(gòu)件圖從軟件架構(gòu)的角度來(lái)描

6、述一個(gè)系統(tǒng)的主要功能,如系統(tǒng)分成幾個(gè)子系統(tǒng),每個(gè)子系統(tǒng)包括哪些類、包和構(gòu)件,它們之間的關(guān)系以及它們分配到哪些節(jié)點(diǎn)上等。使用構(gòu)件圖可以清楚地看出系統(tǒng)的結(jié)構(gòu)和功能。方便項(xiàng)目組的成員制定工作目標(biāo)和了解工作情況,同時(shí),最重要的一點(diǎn)是有利于軟件的復(fù)用。112 構(gòu)件圖的概念構(gòu)件圖的概念從宏觀的角度上,構(gòu)件圖把軟件看作多個(gè)獨(dú)立構(gòu)件組裝而成的集合,每個(gè)構(gòu)件可以被實(shí)現(xiàn)相同接口的其它構(gòu)件替換。2.構(gòu)件圖的組成元素構(gòu)件圖的組成元素有:構(gòu)件、關(guān)系。關(guān)系把多個(gè)構(gòu)件連接在一起,構(gòu)成一個(gè)構(gòu)件圖。這里的關(guān)系指構(gòu)件間的依賴關(guān)系。構(gòu)件包含兩個(gè)部分:接口(供給接口,需求接口)和接口實(shí)現(xiàn)部分(實(shí)現(xiàn)了供給接口的功能)。表示構(gòu)件圖標(biāo)的方

7、法有兩種:第一種方法是,在構(gòu)件圖標(biāo)中沒(méi)有標(biāo)識(shí)接口,第二種方法是,在構(gòu)件圖標(biāo)中標(biāo)識(shí)了接口。113 構(gòu)件的表示構(gòu)件的表示1沒(méi)有標(biāo)識(shí)接口的構(gòu)件表示法沒(méi)有標(biāo)識(shí)接口的構(gòu)件的圖形表示方法又分三種,如圖11-2所示:第一種是表示為標(biāo)有構(gòu)造型component的矩形;第二種是在矩形的右上角放置一個(gè)構(gòu)件圖標(biāo)(一個(gè)小矩形,并在左側(cè)加上兩個(gè)突出的更小的矩形);第三種是直接使用構(gòu)件圖標(biāo),但在UML2.0中已經(jīng)不使用第三種方法了。和類的名稱相近,構(gòu)件的名稱也是一個(gè)正文字符串,它可以是簡(jiǎn)單名,也可以是帶路徑的全名。圖11-2 沒(méi)有標(biāo)識(shí)接口的構(gòu)件的圖形的三種表示法113 構(gòu)件的表示構(gòu)件的表示2標(biāo)識(shí)接口的構(gòu)件表示法對(duì)于一個(gè)構(gòu)

8、件而言,它有兩類接口:提供(provided)接口和所需(required)的接口。標(biāo)識(shí)接口的構(gòu)件表示方法也有3種,如圖11-3所示。圖11-3標(biāo)識(shí)接口的構(gòu)件3種表示方法113 構(gòu)件的表示構(gòu)件的表示(1)使用接口分欄表示:也就是將所需的接口和提供的接口直接顯示在矩形的分欄中,將構(gòu)造型provided和required放在每個(gè)接口名之前。(2)使用圖標(biāo)表示法:將接口的圖標(biāo)連接到矩形的邊框上,供給接口表示為通過(guò)一條實(shí)線鏈接到矩形上的圓圈;而需求接口則表示為一條實(shí)線鏈接到矩形上的上半圓。(3)顯示表示法:接口也可以用完整的顯示形式表示,構(gòu)件和其提供的接口之間是實(shí)現(xiàn)關(guān)系,而構(gòu)件和其所需的接口之間是使用

9、use關(guān)系。114構(gòu)件間的關(guān)系構(gòu)件間的關(guān)系我們知道,構(gòu)件有兩組接口,供給接口為其它構(gòu)件提供服務(wù),需求接口使用其它構(gòu)件提供的服務(wù)因此,構(gòu)件間的關(guān)系就是依賴關(guān)系我們把提供服務(wù)的構(gòu)件稱為提供者,把使用服務(wù)的構(gòu)件稱為客戶在UML中,構(gòu)件圖中依賴關(guān)系的表示方法與類圖中依賴關(guān)系相同,都是一個(gè)由客戶指向提供者的虛線箭頭。構(gòu)件間的依賴關(guān)系如圖11-4所示。圖11-4 構(gòu)件間的依賴關(guān)系115 構(gòu)件圖分類構(gòu)件圖分類對(duì)于一幅簡(jiǎn)單的構(gòu)件圖而言,其內(nèi)容包括構(gòu)件、關(guān)系和構(gòu)件的接口。實(shí)際上,在UML2.0中,還提供了一種嵌套構(gòu)件的表示法,這使得構(gòu)件圖具有了更強(qiáng)的語(yǔ)義模型。因此,構(gòu)件圖可以分為兩種:簡(jiǎn)單構(gòu)件圖和嵌套構(gòu)件圖。1

10、151 簡(jiǎn)單構(gòu)件圖我們可以把相互協(xié)作的類,組織成一個(gè)構(gòu)件。利用構(gòu)件圖可以讓軟件開(kāi)發(fā)者知道系統(tǒng)是由哪些可執(zhí)行的構(gòu)件組成的,這樣,以構(gòu)件為單位來(lái)看待系統(tǒng)時(shí),讓開(kāi)發(fā)者清楚的看到軟件系統(tǒng)的體系結(jié)構(gòu)。例如,圖11-5所示就是一個(gè)“個(gè)人圖書管理系統(tǒng)”的構(gòu)件圖局部。在圖11-5所示的構(gòu)件圖中,我們以構(gòu)件為單位,把整個(gè)系統(tǒng)分成三層,它們是:“用戶界面”、“業(yè)務(wù)邏輯”、“數(shù)據(jù)訪問(wèn)”。115 構(gòu)件圖分類構(gòu)件圖分類(1)用戶界面層:圖11-5左邊的一列構(gòu)件,都是采用JSP頁(yè)面,實(shí)現(xiàn)用戶界面。我們通過(guò)構(gòu)造型Java Server page來(lái)表示構(gòu)件。這一部分的構(gòu)件,主要由邊界類組成。(2)業(yè)務(wù)邏輯層:圖11-5中間的

11、一列是業(yè)務(wù)邏輯層,在實(shí)現(xiàn)上主要采用了JavaBean技術(shù)。我們使用構(gòu)造型JavaBean來(lái)表示這一層的構(gòu)件。這些構(gòu)件主要由實(shí)體類組合而成。圖11-5 簡(jiǎn)單構(gòu)件圖115 構(gòu)件圖分類構(gòu)件圖分類(3)數(shù)據(jù)訪問(wèn)層:圖11-5右邊的一列是數(shù)據(jù)訪問(wèn)層,該層將所有的數(shù)據(jù)訪問(wèn)操作封裝在一個(gè)JavaBean中(如果是大型的應(yīng)用,則可能封裝成為一個(gè)EJB),標(biāo)明了它是JDBC的一個(gè)實(shí)現(xiàn)。在這個(gè)例子中,對(duì)可執(zhí)行程序的體系結(jié)構(gòu)進(jìn)行了建模,以幫助開(kāi)發(fā)者了解可執(zhí)行程序模塊之間的關(guān)聯(lián)關(guān)系,從而從宏觀上認(rèn)識(shí)系統(tǒng)。1152 嵌套的構(gòu)件圖有些時(shí)候,我們使用嵌套的構(gòu)件圖來(lái)表示構(gòu)件的內(nèi)部結(jié)構(gòu)。例如圖11-6所示的就是一個(gè)包含嵌套的構(gòu)

12、件圖,它描述了一個(gè)收銀系統(tǒng)。這張圖描述了構(gòu)件以及構(gòu)件之間的接口。收銀機(jī)系統(tǒng)通過(guò)“銷售管理服務(wù)器”提供的接口發(fā)送“銷售消息”;銷售管理器通過(guò)財(cái)務(wù)系統(tǒng)提供的接口發(fā)送相應(yīng)的財(cái)務(wù)數(shù)據(jù)。115 構(gòu)件圖分類構(gòu)件圖分類銷售管理服務(wù)器中包含兩個(gè)構(gòu)件:一個(gè)是處理收銀機(jī)發(fā)送來(lái)的銷售消息,完成交易處理;另一個(gè)是財(cái)務(wù)接口,負(fù)責(zé)處理與財(cái)務(wù)系統(tǒng)的連接,這時(shí)交易處理程序就委托財(cái)務(wù)接口來(lái)完成與財(cái)務(wù)系統(tǒng)的數(shù)據(jù)傳送。在上圖中,銷售管理服務(wù)器所提供的接口和所需的接口與構(gòu)件連接的點(diǎn)上,都有一個(gè)小矩形,它表示的是“端口”。這些端口將通過(guò)帶箭頭的實(shí)線與具體的子構(gòu)件連接,表示該接口的提供者或需求者。圖11-6 嵌套構(gòu)件圖116構(gòu)件圖應(yīng)用構(gòu)

13、件圖應(yīng)用構(gòu)件圖描述了軟件的組成和具體結(jié)構(gòu),表示了系統(tǒng)的靜態(tài)部分。它能夠幫助開(kāi)發(fā)人員從總體上認(rèn)識(shí)系統(tǒng)。我們常采用構(gòu)件圖來(lái)描述可執(zhí)行程序的結(jié)構(gòu)、源代碼、物理數(shù)據(jù)庫(kù)組成和結(jié)構(gòu)。1161 對(duì)可執(zhí)行程序建模通過(guò)構(gòu)件圖,可以清晰地表示出各個(gè)可執(zhí)行文件、鏈接庫(kù)、數(shù)據(jù)庫(kù)、幫助文件和資源文件等其它可運(yùn)行的物理構(gòu)件之間的關(guān)系。在對(duì)可執(zhí)行程序的結(jié)構(gòu)進(jìn)行建模時(shí),通常應(yīng)遵從以下原則:1首先標(biāo)識(shí)要建模的構(gòu)件。116構(gòu)件圖應(yīng)用構(gòu)件圖應(yīng)用2理解和標(biāo)識(shí)每個(gè)構(gòu)件的類型、接口和作用。3標(biāo)識(shí)構(gòu)件間的關(guān)系。例如,有一個(gè)語(yǔ)音呼叫中心程序callcenter.exe,使用了三匯的語(yǔ)音卡的驅(qū)動(dòng)程序shp_a3.dll,以及相應(yīng)的TTS(文本

14、轉(zhuǎn)語(yǔ)音)引擎sh_ttsu.dll,現(xiàn)在我們用構(gòu)件圖來(lái)描述這三個(gè)構(gòu)件的關(guān)系,如圖11-7所示。圖11-7 代表可執(zhí)行程序的構(gòu)件116構(gòu)件圖應(yīng)用構(gòu)件圖應(yīng)用1162 對(duì)源代碼進(jìn)行建模通過(guò)構(gòu)件圖可以清晰地表示出軟件的所有源文件之間的關(guān)系,有了這樣的構(gòu)件圖,開(kāi)發(fā)者能更好地理解各個(gè)源代碼文件之間的依賴關(guān)系。在對(duì)源程序進(jìn)行建模時(shí),通常應(yīng)遵從以下原則:1表示出要重點(diǎn)描述的每個(gè)源代碼文件,并把每個(gè)源代碼文件標(biāo)識(shí)為構(gòu)件。2如果系統(tǒng)較大,我們就利用包來(lái)對(duì)構(gòu)件進(jìn)行分組。116構(gòu)件圖應(yīng)用構(gòu)件圖應(yīng)用3用編譯依賴關(guān)系來(lái)描述構(gòu)件間的關(guān)系。4在構(gòu)件圖中,采用約束來(lái)表示源代碼的版本號(hào)、作者和最后的修改日期等信息。例如:singal.h是一個(gè)頭文件,被interp.cpp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論