




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2第11章 構(gòu) 件 圖構(gòu)件是定義了良好接口的物理實現(xiàn)單元,它是構(gòu)件是定義了良好接口的物理實現(xiàn)單元,它是系統(tǒng)中可以替代的部分,每個構(gòu)件體現(xiàn)了系統(tǒng)系統(tǒng)中可以替代的部分,每個構(gòu)件體現(xiàn)了系統(tǒng)設(shè)計中的特定類的實現(xiàn),良好定義的構(gòu)件不直設(shè)計中的特定類的實現(xiàn),良好定義的構(gòu)件不直接依賴于其他構(gòu)件,而是依賴于其他構(gòu)件所支接依賴于其他構(gòu)件,而是依賴于其他構(gòu)件所支持的接口,在這種情況下,系統(tǒng)中的一個構(gòu)件持的接口,在這種情況下,系統(tǒng)中的一個構(gòu)件可以被支持相同接口的其他構(gòu)件所替代??梢员恢С窒嗤涌诘钠渌麡?gòu)件所替代。接口是被軟件或硬件所支持的一個操作集合。接口是被軟件或硬件所支持的一個操作集合。通過使用命名的接口,可以避
2、免在系統(tǒng)的各個通過使用命名的接口,可以避免在系統(tǒng)的各個構(gòu)件之間直接發(fā)生依賴關(guān)系,有利于新構(gòu)件的構(gòu)件之間直接發(fā)生依賴關(guān)系,有利于新構(gòu)件的替換。替換。311.1 什么是接口和構(gòu)件11.1.1 接口接口是對外聲明的一組操作的集合。接口分為供給接口和需求接口,供給接口只能向其他構(gòu)件提供服務(wù),需求接口表示構(gòu)件需要用到其他構(gòu)件提供的服務(wù)。接口有兩種表示方法:構(gòu)造型表示接口和圖標(biāo)表示接口,如圖11-1所示為用構(gòu)造型表示接口Borrow,圖11-2所示為用圖標(biāo)表示接口Borrow。411.1.1 接口接口每個接口有一個名稱,接口有操作、屬性、關(guān)每個接口有一個名稱,接口有操作、屬性、關(guān)系,約束等特征。系,約束等
3、特征。我們建立實現(xiàn)我們建立實現(xiàn)Borrow接口的模型,如圖接口的模型,如圖11-3和和圖圖11-4所示所示(圖圖11-3和圖和圖11-4是等價的模型,它是等價的模型,它們表示了相同的實現(xiàn)關(guān)系們表示了相同的實現(xiàn)關(guān)系)。511.1.2 端口端口是對相關(guān)的供給接口和需求接口的封裝。端口是對相關(guān)的供給接口和需求接口的封裝。端口用一個長方形表示,端口有名稱、類型。端口用一個長方形表示,端口有名稱、類型。端口名稱可以不標(biāo)識。端口名稱可以不標(biāo)識。端口可以沒有需求接口,但是必須有供給接口。端口可以沒有需求接口,但是必須有供給接口。圖圖11-5和圖和圖11-6所示為所示為CD構(gòu)件的兩種表示方法。構(gòu)件的兩種表示方
4、法。611.1.2 端口如圖如圖11-7所示,構(gòu)件所示,構(gòu)件CD和另一個構(gòu)件和另一個構(gòu)件Show通通過端口連接。兩個構(gòu)件連接時,它們的端口必過端口連接。兩個構(gòu)件連接時,它們的端口必須匹配,即一個構(gòu)件的供給接口與另一個構(gòu)件須匹配,即一個構(gòu)件的供給接口與另一個構(gòu)件的需求接口的規(guī)格說明必須一致。的需求接口的規(guī)格說明必須一致。711.1.3 構(gòu)件構(gòu)件是實現(xiàn)了某些功能的黑盒子。一個構(gòu)件表現(xiàn)出來的行為由構(gòu)件是實現(xiàn)了某些功能的黑盒子。一個構(gòu)件表現(xiàn)出來的行為由供給接口和需求接口來定義。供給接口和需求接口來定義。 從構(gòu)件組成上看,每個構(gòu)件定義了兩組接口從構(gòu)件組成上看,每個構(gòu)件定義了兩組接口(一組供給接口,一一組
5、供給接口,一組需求接口組需求接口),構(gòu)件為供給接口提供功能實現(xiàn)部分,即構(gòu)件本身,構(gòu)件為供給接口提供功能實現(xiàn)部分,即構(gòu)件本身已經(jīng)實現(xiàn)供給接口聲明的功能。構(gòu)件的需求接口只是向使用者已經(jīng)實現(xiàn)供給接口聲明的功能。構(gòu)件的需求接口只是向使用者說明,該構(gòu)件需要其他構(gòu)件提供哪些服務(wù)。說明,該構(gòu)件需要其他構(gòu)件提供哪些服務(wù)。構(gòu)件是一個泛指的概念,它可能是:一個子系統(tǒng)、一個實例構(gòu)件是一個泛指的概念,它可能是:一個子系統(tǒng)、一個實例(如如EJB)、一個邏輯部件等。、一個邏輯部件等。在定義一個構(gòu)件時,必須對以下在定義一個構(gòu)件時,必須對以下5個要素進(jìn)行規(guī)范。個要素進(jìn)行規(guī)范。接口聲明:每個構(gòu)件包含兩組接口,一組是供給接口,表
6、明它能提供的服務(wù);一組是需求接口,表明它需要的服務(wù)。接口實現(xiàn):構(gòu)件是一個物理部件,它實現(xiàn)了供給接口聲明的服務(wù)。構(gòu)件標(biāo)準(zhǔn):在創(chuàng)建構(gòu)件時,每一個構(gòu)件必須遵從某種構(gòu)件標(biāo)準(zhǔn)。封裝方法:也就是構(gòu)件遵從的封裝標(biāo)準(zhǔn)。部署方法:一個構(gòu)件可以有多種部署方法。811.1.3 構(gòu)件一個構(gòu)件的通用表示如圖一個構(gòu)件的通用表示如圖11-8所示。網(wǎng)卡所示。網(wǎng)卡的需求接口的需求接口pci與計算機(jī)插口連接,該網(wǎng)與計算機(jī)插口連接,該網(wǎng)卡的供給接口卡的供給接口cablei與網(wǎng)線的水晶頭連接。與網(wǎng)線的水晶頭連接。構(gòu)件具有內(nèi)部結(jié)構(gòu),它可能由多個零件組構(gòu)件具有內(nèi)部結(jié)構(gòu),它可能由多個零件組成。圖成。圖11-9所示為一個構(gòu)件的內(nèi)部結(jié)構(gòu)展所示
7、為一個構(gòu)件的內(nèi)部結(jié)構(gòu)展示。示。911.1.4 構(gòu)件類型1按照構(gòu)件在系統(tǒng)中的角色分配置構(gòu)件 工作產(chǎn)品構(gòu)件 執(zhí)行構(gòu)件 2按照構(gòu)件本身的性質(zhì)分(1)系統(tǒng)級構(gòu)件 (2)實體構(gòu)件 (3)沒有接口的構(gòu)件 (4)說明性構(gòu)件 (5)處理事務(wù)的構(gòu)件 (6)執(zhí)行計算的構(gòu)件 (7)子系統(tǒng)級構(gòu)件 1011.2 什么是構(gòu)件圖構(gòu)件圖是描述構(gòu)件及構(gòu)件關(guān)系的圖,主要用于構(gòu)件圖是描述構(gòu)件及構(gòu)件關(guān)系的圖,主要用于描述各種軟件構(gòu)件之間的依賴關(guān)系,例如可執(zhí)描述各種軟件構(gòu)件之間的依賴關(guān)系,例如可執(zhí)行文件和源文件之間的依賴關(guān)系。與所有行文件和源文件之間的依賴關(guān)系。與所有UML的其他圖一樣,構(gòu)件圖可以包括注釋、約束和的其他圖一樣,構(gòu)件圖可
8、以包括注釋、約束和包。如圖包。如圖11-10所示便是一個典型的構(gòu)件圖。所示便是一個典型的構(gòu)件圖。1111.2.1 構(gòu)件圖的作用構(gòu)件圖的基本目的是:使系統(tǒng)人員和開發(fā)人員能夠從整體上了構(gòu)件圖的基本目的是:使系統(tǒng)人員和開發(fā)人員能夠從整體上了解系統(tǒng)的所有物理部件;同時,也使我們知道如何對構(gòu)件進(jìn)行解系統(tǒng)的所有物理部件;同時,也使我們知道如何對構(gòu)件進(jìn)行打包,以便交付給最終客戶;最后,構(gòu)件圖顯示了被開發(fā)系統(tǒng)打包,以便交付給最終客戶;最后,構(gòu)件圖顯示了被開發(fā)系統(tǒng)所包含的構(gòu)件之間的依賴關(guān)系。所包含的構(gòu)件之間的依賴關(guān)系。構(gòu)件圖從軟件架構(gòu)的角度來描述一個系統(tǒng)的主要功能,如系統(tǒng)構(gòu)件圖從軟件架構(gòu)的角度來描述一個系統(tǒng)的主
9、要功能,如系統(tǒng)分成幾個子系統(tǒng),每個子系統(tǒng)包括哪些類、包和構(gòu)件,它們之分成幾個子系統(tǒng),每個子系統(tǒng)包括哪些類、包和構(gòu)件,它們之間的關(guān)系以及它們分配到哪些節(jié)點上等。間的關(guān)系以及它們分配到哪些節(jié)點上等。使用構(gòu)件圖可以清楚地看出系統(tǒng)的結(jié)構(gòu)和功能,從而方便項目使用構(gòu)件圖可以清楚地看出系統(tǒng)的結(jié)構(gòu)和功能,從而方便項目組的成員制定工作目標(biāo)和了解工作情況,同時,最重要的一點組的成員制定工作目標(biāo)和了解工作情況,同時,最重要的一點是有利于軟件的復(fù)用。是有利于軟件的復(fù)用。從宏觀角度來看,構(gòu)件圖是把軟件看作多個獨立構(gòu)件組裝而成從宏觀角度來看,構(gòu)件圖是把軟件看作多個獨立構(gòu)件組裝而成的集合,每個構(gòu)件可以被實現(xiàn)相同接口的其他構(gòu)
10、件替換。的集合,每個構(gòu)件可以被實現(xiàn)相同接口的其他構(gòu)件替換。1211.2.2 構(gòu)件圖的組成元素構(gòu)件圖的組成元素有構(gòu)構(gòu)件圖的組成元素有構(gòu)件和關(guān)系。關(guān)系把多個構(gòu)件和關(guān)系。關(guān)系把多個構(gòu)件連接在一起,構(gòu)成一個件連接在一起,構(gòu)成一個構(gòu)件圖。這里的關(guān)系指構(gòu)構(gòu)件圖。這里的關(guān)系指構(gòu)件間的依賴關(guān)系。件間的依賴關(guān)系。1311.3 構(gòu)件的表示表示構(gòu)件的方法有兩種:表示構(gòu)件的方法有兩種:第一種方法是,在構(gòu)件圖標(biāo)中沒有標(biāo)識接口;第二種方法是,在構(gòu)件圖標(biāo)中標(biāo)識了接口。1411.3.1 沒有標(biāo)識接口的構(gòu)件沒有標(biāo)識接口的構(gòu)件的圖形表示方法又分三種,沒有標(biāo)識接口的構(gòu)件的圖形表示方法又分三種,如圖如圖11-11所示的構(gòu)件網(wǎng)卡的三種
11、表示方法:所示的構(gòu)件網(wǎng)卡的三種表示方法:第一種在矩形框中寫上構(gòu)造型;第二種在矩形框的右上角放置一個構(gòu)件圖標(biāo);第三種是直接使用構(gòu)件圖標(biāo)。1511.3.2 標(biāo)識接口的構(gòu)件標(biāo)識接口的構(gòu)件表示方法也有三種,如圖標(biāo)識接口的構(gòu)件表示方法也有三種,如圖11-12所示是構(gòu)件網(wǎng)卡的三種表示方法。所示是構(gòu)件網(wǎng)卡的三種表示方法。1611.4 構(gòu)件間的關(guān)系構(gòu)件圖中的關(guān)系包括構(gòu)件與接口的關(guān)系、構(gòu)件構(gòu)件圖中的關(guān)系包括構(gòu)件與接口的關(guān)系、構(gòu)件與構(gòu)件間的關(guān)系。與構(gòu)件間的關(guān)系。1)構(gòu)件與構(gòu)件間的關(guān)系2)構(gòu)件與接口的關(guān)系1711.5 構(gòu)件圖分類對于一幅簡單的構(gòu)件圖而言,其對于一幅簡單的構(gòu)件圖而言,其內(nèi)容包括構(gòu)件、關(guān)系和構(gòu)件的接口。
12、內(nèi)容包括構(gòu)件、關(guān)系和構(gòu)件的接口。實際上,在實際上,在UML 2.0中,還提供了中,還提供了一種嵌套構(gòu)件的表示法,這使得構(gòu)一種嵌套構(gòu)件的表示法,這使得構(gòu)件圖具有了更強(qiáng)的語義模型。因此,件圖具有了更強(qiáng)的語義模型。因此,構(gòu)件圖可以分為簡單構(gòu)件圖和嵌套構(gòu)件圖可以分為簡單構(gòu)件圖和嵌套構(gòu)件圖。構(gòu)件圖。1811.5.1 簡單構(gòu)件圖用戶可以把相互協(xié)作的類組織成一個構(gòu)件。利用戶可以把相互協(xié)作的類組織成一個構(gòu)件。利用構(gòu)件圖可以讓軟件開發(fā)者知道系統(tǒng)是由哪些用構(gòu)件圖可以讓軟件開發(fā)者知道系統(tǒng)是由哪些可執(zhí)行的構(gòu)件組成的,這樣以構(gòu)件為單位來看可執(zhí)行的構(gòu)件組成的,這樣以構(gòu)件為單位來看待系統(tǒng)時,可以讓開發(fā)者清楚地看到軟件系統(tǒng)待
13、系統(tǒng)時,可以讓開發(fā)者清楚地看到軟件系統(tǒng)的體系結(jié)構(gòu)。例如,圖的體系結(jié)構(gòu)。例如,圖11-16所示就是一個所示就是一個“訂訂單管理系統(tǒng)單管理系統(tǒng)”的構(gòu)件圖局部。的構(gòu)件圖局部。1911.5.2 嵌套的構(gòu)件圖有時需要使用嵌套的構(gòu)件圖來表示構(gòu)件的內(nèi)部有時需要使用嵌套的構(gòu)件圖來表示構(gòu)件的內(nèi)部結(jié)構(gòu),如果我們對圖結(jié)構(gòu),如果我們對圖11-16中的中的3個構(gòu)件進(jìn)行封個構(gòu)件進(jìn)行封裝,組成一個更大的構(gòu)件裝,組成一個更大的構(gòu)件Store,就可以得到圖,就可以得到圖11-17所示的嵌套構(gòu)件圖。所示的嵌套構(gòu)件圖。2011.6 制 品在在UML中,把所有物理型中,把所有物理型事物稱為制品。例如,對象事物稱為制品。例如,對象庫、
14、可執(zhí)行程序、庫、可執(zhí)行程序、COM構(gòu)構(gòu)件、件、.NET構(gòu)件、構(gòu)件、EJB構(gòu)件、構(gòu)件、表、文件、文檔都是制品的表、文件、文檔都是制品的例子。例子。2111.6.1 制品的表示每個制品都有一個區(qū)別其他制品的名稱,如果制品名每個制品都有一個區(qū)別其他制品的名稱,如果制品名稱前標(biāo)有制品所屬的包名,則這個制品名稱為全名。稱前標(biāo)有制品所屬的包名,則這個制品名稱為全名。制品用一個矩形框表示制品用一個矩形框表示(制品的附件信息可以附加到矩制品的附件信息可以附加到矩形框中形框中),制品常用構(gòu)造型,制品常用構(gòu)造型標(biāo)識。圖標(biāo)識。圖11-18和圖和圖11-19所示為制品所示為制品home.java的兩種表示方法。的兩種
15、表示方法。圖圖11-20所示為制品所示為制品dog.dll的細(xì)節(jié),即的細(xì)節(jié),即dog.dll制品由制品由kill.dll和和bill.dll組成,我們把制品的細(xì)節(jié)寫在另一個組成,我們把制品的細(xì)節(jié)寫在另一個分欄中。分欄中。2211.6.2 制品的標(biāo)準(zhǔn)元素在在UML中,預(yù)先定義的制品有以下幾個。中,預(yù)先定義的制品有以下幾個。(1):可以在節(jié)點上執(zhí)行的制品。(2):動態(tài)或靜態(tài)庫程序,其文件后綴是.dll。(3):物理文件,也可能是可以執(zhí)行的代碼文件。(4):說明性的文件。(5):可以被解釋器執(zhí)行的腳本文件。(6):可以編譯為可以執(zhí)行的文件。(7):對部署的產(chǎn)品進(jìn)行詳細(xì)說明。(8):用來表示一個數(shù)據(jù)庫
16、,如Oracle、SQL Server等。2311.6.3 制品的種類制品可以分為制品可以分為3種類型,即部署制品、中間制品種類型,即部署制品、中間制品和執(zhí)行制品。和執(zhí)行制品。部署制品:構(gòu)成一個可執(zhí)行系統(tǒng)充分又必要的制品。例如動態(tài)鏈接庫和可執(zhí)行程序就屬于這類制品。中間制品:這類制品是開發(fā)過程的中間產(chǎn)物。中間制品是用來創(chuàng)建部署制品的事物。這些制品并不直接參與系統(tǒng)運(yùn)行。執(zhí)行制品:系統(tǒng)運(yùn)行時創(chuàng)建的制品。例如由DLL實例化形成的COM+對象、Servlets、XML文檔都屬于這類制品。2411.6.4 制品與類的區(qū)別制品與類的區(qū)別主要有以下三點。制品與類的區(qū)別主要有以下三點。(1)類是對一組對象的描述
17、,是一種邏輯抽象,類不能在節(jié)點上運(yùn)行,而制品是一種物理存在的事物,可以運(yùn)行在節(jié)點上。(2)制品是對計算機(jī)上比特流的封裝。(3)類具有屬性和方法,制品可以是對類的實現(xiàn),但是制品本身沒有屬性和方法。2511.6.4 制品與類的區(qū)別圖圖11-21所示為類與制品的區(qū)別。從圖中可以看所示為類與制品的區(qū)別。從圖中可以看出制品出制品dog.dll由類由類head的實例、類的實例、類leg的實例的實例和類和類body的實例動態(tài)鏈接構(gòu)成。因此,的實例動態(tài)鏈接構(gòu)成。因此,dog.dll依賴于依賴于head、leg、body。2611.7 建 模 應(yīng) 用構(gòu)件圖描述了軟件的組成和具構(gòu)件圖描述了軟件的組成和具體結(jié)構(gòu),表
18、示了系統(tǒng)的靜態(tài)部體結(jié)構(gòu),表示了系統(tǒng)的靜態(tài)部分,它能夠幫助開發(fā)人員從總分,它能夠幫助開發(fā)人員從總體上認(rèn)識系統(tǒng)。用戶通常采用體上認(rèn)識系統(tǒng)。用戶通常采用構(gòu)件圖來描述可執(zhí)行程序的結(jié)構(gòu)件圖來描述可執(zhí)行程序的結(jié)構(gòu)、源代碼、物理數(shù)據(jù)庫組成構(gòu)、源代碼、物理數(shù)據(jù)庫組成和結(jié)構(gòu)。和結(jié)構(gòu)。2711.7.1 對可執(zhí)行程序建模在對可執(zhí)行程序的結(jié)構(gòu)進(jìn)行建模時,通常應(yīng)遵從以下在對可執(zhí)行程序的結(jié)構(gòu)進(jìn)行建模時,通常應(yīng)遵從以下原則。原則。(1)標(biāo)識要建模的構(gòu)件。(2)理解和標(biāo)識每個構(gòu)件的類型、接口和作用。(3)標(biāo)識構(gòu)件間的關(guān)系。例如,圖例如,圖11-22是一個自主機(jī)器人可執(zhí)行程序的一部分是一個自主機(jī)器人可執(zhí)行程序的一部分進(jìn)行建模。進(jìn)行建模。 2811.7.2 對源代碼建模通過構(gòu)件圖可以清晰地表示出軟件的所有源文件之間通過構(gòu)件圖可以清晰地表示出軟件的所有源文件之間的關(guān)系,這樣開發(fā)者就可以更好地理解各個源代碼文的關(guān)系,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 組織學(xué)試題及答案
- 合肥保安考試題及答案
- 航空制圖考試題及答案
- 藥理試題及答案
- 商務(wù)樓公司年會策劃方案
- 團(tuán)委運(yùn)動活動方案
- 商場垃圾尋寶活動方案
- 國企聯(lián)村簽約活動方案
- 商圈爆破活動方案
- 團(tuán)體畫畫接龍活動方案
- 2025年華僑港澳臺學(xué)生聯(lián)招考試英語試卷試題(含答案詳解)
- ASTM-D3359-(附著力測試標(biāo)準(zhǔn))-中文版
- GA 1800.5-2021電力系統(tǒng)治安反恐防范要求第5部分:太陽能發(fā)電企業(yè)
- 膿毒癥指南解讀2021完整版課件
- 起重機(jī)械制動器和制動輪的檢查規(guī)定
- 醫(yī)院感染質(zhì)量檢查反饋記錄登記
- 乳糜漏的護(hù)理培訓(xùn)課件
- 站區(qū)道路施工監(jiān)理平行檢查記錄
- 兒童口腔科接診基本流程綱要
- 公司工作流程圖
- GB∕T 34876-2017 真空技術(shù) 真空計 與標(biāo)準(zhǔn)真空計直接比較校準(zhǔn)結(jié)果的不確定度評定
評論
0/150
提交評論