UML基礎(chǔ)與建模實踐:11、第十一章 構(gòu)件圖ppt_第1頁
UML基礎(chǔ)與建模實踐:11、第十一章 構(gòu)件圖ppt_第2頁
UML基礎(chǔ)與建模實踐:11、第十一章 構(gòu)件圖ppt_第3頁
UML基礎(chǔ)與建模實踐:11、第十一章 構(gòu)件圖ppt_第4頁
UML基礎(chǔ)與建模實踐:11、第十一章 構(gòu)件圖ppt_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

UML基礎(chǔ)與建模實踐

第十一章構(gòu)件圖

主講人:

內(nèi)容摘要什么是接口、構(gòu)件、構(gòu)件圖1構(gòu)件的表示和構(gòu)件間的關(guān)系2構(gòu)件圖分類3制品和建模應(yīng)用4小結(jié)與習(xí)題511.1什么是接口和構(gòu)件11.1.1接口 接口是對外聲明的一組操作的集合。接口分為供給接口和需求接口兩種,供給接口只能向其他構(gòu)件提供服務(wù),需求接口表示構(gòu)件需要用到其他構(gòu)件提供的服務(wù)。11.1.1接口接口有兩種表示方法:構(gòu)造型表示接口和圖標表示接口,如圖11-1用構(gòu)造型表示接口Borrow,圖11-2用圖標表示接口Borrow。11.1.2端口端口是對一組接口的封裝,即,把一組相關(guān)的供給接口和需求接口封裝為一個整體。端口用一個長方形表示,端口有名稱、類型。端口名稱可以不標識。端口必須有供給接口,可以沒有需求接口。圖11-5和圖11-6是CD構(gòu)件的兩種表示方法。11.1.2端口如圖11-7所示,構(gòu)件CD和另一個構(gòu)件Show通過端口連接。兩個構(gòu)件連接時,它們的端口必須匹配,即一個構(gòu)件的供給接口與另一個構(gòu)件的需求接口的規(guī)格說明必須一致。11.1.3構(gòu)件從構(gòu)件組成上看,每個構(gòu)件定義了兩組接口(一組供給接口,一組需求接口),構(gòu)件為供給接口提供了功能實現(xiàn)部分,即構(gòu)件本身已經(jīng)實現(xiàn)了供給接口聲明的功能。構(gòu)件的需求接口只是向使用者說明,該構(gòu)件需要其它構(gòu)件提供哪些服務(wù)。習(xí)慣上,我們把接口看作構(gòu)件的一部分。構(gòu)件是一個泛指的概念,它可能是:一個子系統(tǒng)、一個實例(如EJB)、一個邏輯部件等等。11.1.3構(gòu)件在定義一個構(gòu)件時,必須對以下5個要素進行規(guī)范:對接口的功能進行規(guī)范聲明:每個構(gòu)件包含兩組接口,一組是供給接口,表明它能提供的服務(wù),一組是需求接口,表明它需要的服務(wù)。實現(xiàn)供給接口的功能:構(gòu)件是一個物理部件,它實現(xiàn)了供給接口聲明的服務(wù)。遵循構(gòu)件標準:在創(chuàng)建構(gòu)件時,每一個構(gòu)件必須遵從某種構(gòu)件標準。遵循封裝方法:也就是構(gòu)件遵從的封裝標準。部署方法:一個構(gòu)件可以有多種部署方法。11.1.3構(gòu)件一個構(gòu)件的構(gòu)造型表示如圖11-8所示。圖11-8用構(gòu)造型表示了一個網(wǎng)卡,該網(wǎng)卡的需求接口pci與計算機插口連接,該網(wǎng)卡的供給接口cablei與網(wǎng)線的水晶頭連接。11.1.3構(gòu)件構(gòu)件具有內(nèi)部結(jié)構(gòu),它可能由多個零件組成。如果要展示一個構(gòu)件的內(nèi)部結(jié)構(gòu),我們用圖11-9表示。圖11-9中,假設(shè)網(wǎng)卡由零件a和零件b組成,零件a的供給接口是cablei,零件b的需求接口是pci,則整個網(wǎng)卡對外表現(xiàn)的供給接口是cablei,對外表現(xiàn)的需求接口是pci。11.1.4構(gòu)件類型構(gòu)件的分類有兩種方法:一種是按照構(gòu)件在系統(tǒng)中的角色分一種是按照構(gòu)件本身的性質(zhì)分

1.按照構(gòu)件在系統(tǒng)中的角色分 按照構(gòu)件在系統(tǒng)中的角色,可以將構(gòu)件分為3種類型,即配置構(gòu)件、工作產(chǎn)品構(gòu)件和執(zhí)行構(gòu)件。 2.按照構(gòu)件本身的性質(zhì)分11.2什么是構(gòu)件圖構(gòu)件圖是描述構(gòu)件及構(gòu)件關(guān)系的圖。與所有UML的其他圖一樣,構(gòu)件圖可以包括注釋、約束和包。如圖11-10所示便是一個典型的構(gòu)件圖。圖11-10構(gòu)件圖11.2.1構(gòu)件圖的作用 構(gòu)件圖從軟件架構(gòu)的角度來描述一個系統(tǒng)的主要功能,如系統(tǒng)分成幾個子系統(tǒng),每個子系統(tǒng)包括哪些類、包和構(gòu)件,它們之間的關(guān)系以及它們分配到哪些節(jié)點上等。 使用構(gòu)件圖可以清楚地看出系統(tǒng)的結(jié)構(gòu)和功能從而方便項目組的成員制定工作目標和了解工作情況,同時,最重要的一點是有利于軟件的復(fù)用。 從宏觀的角度上看,構(gòu)件圖是把軟件看作多個獨立構(gòu)件組裝而成的集合,每個構(gòu)件可以被實現(xiàn)相同接口的其他構(gòu)件替換。11.2.2構(gòu)件圖的組成元素構(gòu)件圖的組成元素有構(gòu)件和關(guān)系。關(guān)系把多個構(gòu)件連接在一起,構(gòu)成一個構(gòu)件圖。這里的關(guān)系指構(gòu)件間的依賴關(guān)系。11.3構(gòu)件的表示

在UML中,構(gòu)件用一個矩形框表示,構(gòu)件名寫在矩形框中。在表示構(gòu)件時,有兩種表示構(gòu)件的方法:第一種方法是,在構(gòu)件圖標中只標識構(gòu)件,不標識接口,第二種方法是,在構(gòu)件圖將構(gòu)件和接口都標識出來。11.3.1沒有標識接口的構(gòu)件沒有標識接口的構(gòu)件的圖形表示方法又分三種,如圖11-11網(wǎng)卡(構(gòu)件)的三種表示方法:第一種在矩形框中寫上構(gòu)造型《component》;第二種在矩形框的右上角放置一個構(gòu)件圖標;第三種是直接使用構(gòu)件圖標。圖11-11沒有標識接口的構(gòu)件的圖形的三種表示法11.3.2標識接口的構(gòu)件標識接口的構(gòu)件表示方法也有3種,如圖11-12所示是網(wǎng)卡(構(gòu)件)的三種表示方法。

圖11-12標識接口的構(gòu)件3種表示方法11.3.1沒有標識接口的構(gòu)件(1)使用分欄表示接口:在矩形框的第二欄中,用構(gòu)造型《provided》和《required》分別標識供給接口名cablei和需求接口名pci。這種表示將構(gòu)件的接口和內(nèi)容都展示出來了,所以,也稱為構(gòu)件的白盒表示法。(2)使用圖標表示接口:將接口的圖標連接到構(gòu)件的邊框上。(3)使用構(gòu)造型《interface》表示接口:構(gòu)件實現(xiàn)供給接口,用實現(xiàn)關(guān)系表示;構(gòu)件依賴需求接口,用依賴關(guān)系表示。11.4構(gòu)件間的關(guān)系構(gòu)件與接口的關(guān)系構(gòu)件圖中的關(guān)系包括構(gòu)件與構(gòu)件間的關(guān)系11.4構(gòu)件間的關(guān)系(1)構(gòu)件與構(gòu)件間的關(guān)系 在構(gòu)件圖中,構(gòu)件間的關(guān)系就是依賴關(guān)系。我們把提供服務(wù)的構(gòu)件稱為提供者,把使用服務(wù)的構(gòu)件稱為客戶。 在UML中,構(gòu)件圖中依賴關(guān)系的表示方法與類圖中依賴關(guān)系相同,虛線箭頭由客戶構(gòu)件指向服務(wù)提供者。 如圖11-13所示,構(gòu)件B是客戶,構(gòu)件A是服務(wù)提供者,構(gòu)件B使用構(gòu)件A提供的服務(wù)。因此,構(gòu)件B依賴于構(gòu)件A。圖11-13構(gòu)件間的依賴關(guān)系11.4構(gòu)件間的關(guān)系 在系統(tǒng)分析階段,我們只要確定構(gòu)件之間的依賴關(guān)系即可(并用依賴箭頭表示構(gòu)件間的關(guān)系)。在設(shè)計階段,我們必須把構(gòu)件間的依賴關(guān)系具體化為供給接口與需求接口間的關(guān)系,即,對依賴進行解耦。如,我們對圖11-13的依賴進行解耦后,得到圖11-14更具體的關(guān)系。圖11-14對依賴關(guān)系解耦在設(shè)計階段,對依賴關(guān)系解耦后,確定了供給接口和需求接口的詳細要求。11.4構(gòu)件間的關(guān)系(2)構(gòu)件與接口的關(guān)系構(gòu)件與接口的關(guān)系有:實現(xiàn)關(guān)系和使用關(guān)系兩種,如圖11-15表明了構(gòu)件與接口間的兩種關(guān)系。

圖11-15構(gòu)件與接口間的關(guān)系11.5構(gòu)件圖分類構(gòu)件圖可以分為: 簡單構(gòu)件圖 嵌套構(gòu)件圖11.5.1簡單構(gòu)件圖例如,圖11-16所示就是一個“訂單管理系統(tǒng)”的構(gòu)件圖局部。圖11-16簡單構(gòu)件圖11.5.2嵌套的構(gòu)件圖如果我們對圖11-16中的3個構(gòu)件進行封裝,組成一個更大的構(gòu)件store,就構(gòu)成如圖11-17所示的嵌套的構(gòu)件圖。圖11-17嵌套構(gòu)件圖構(gòu)件store中包含3個構(gòu)件,它們是:Order(訂單構(gòu)件),Customer(客戶信息構(gòu)件),Product(產(chǎn)品庫存構(gòu)件)。11.6制品在UML中,把所有物理型事物稱為制品。例如,對象庫、可執(zhí)行程序、COM構(gòu)件、.NET構(gòu)件、EJB構(gòu)件、表、文件、文檔都是制品的例子。11.6.1制品的表示每個制品都有一個區(qū)別其它制品的名稱,如果制品名稱前標有制品所屬的包名,則這個制品名稱為全名。制品用一個矩形框表示(制品的附件信息可以附加到矩形框中),制品常用構(gòu)造型《artifact》標識。11.6.1制品的表示圖11-20,標識了制品dog.dll的細節(jié),即,dog.dll制品由kill.dll和bill.dll組成,我們把制品的細節(jié)寫在第二個分欄中。11.6.2標準制品元素的表示法在UML中,預(yù)先定義的制品有:(1)《executable》:可以在節(jié)點上執(zhí)行的制品。(2)《library》:動態(tài)或靜態(tài)庫程序,其文件后綴是.dll。(3)《file》:物理文件,也可能是可以執(zhí)行的代碼文件。(4)《document》:說明性的文件。(5)《script》:可以被解釋器執(zhí)行的腳本文件。(6)《score》:指源文件制品,可以編譯為可以執(zhí)行的文件。(7)《deloymentspec》:對部署的產(chǎn)品進行詳細說明。(8)《database》:用來表示一個數(shù)據(jù)庫,如Oracle,sqlserver2005等。除以上預(yù)定義的制品外,分析員可以定義自已的制品。11.6.3制品的種類在進行系統(tǒng)開發(fā)時,我們按不同階段開發(fā)的軟件制品對制品進行分類,可以分為3種類型,即部署制品、中間制品和執(zhí)行制品。部署制品:中間制品:執(zhí)行制品:11.6.4制品與類的區(qū)別制品與類的區(qū)別主要在以下三點:

(1)類是對一組對象的描述,是一種邏輯抽象,類不能在節(jié)點上運行,而制品是一種物理存在的事物,可以運行在節(jié)點上。(2)制品是對計算機上比特流的封裝。(3)類具有屬性和方法,制品可以是對類的實現(xiàn),但是,制品本身沒有屬性和方法。11.6.4制品與類的區(qū)別圖11-21所示,我們可以看出類與制品的區(qū)別。制品dog.dll由head類的實例、leg類的實例和body類的實例,通過動態(tài)鏈接構(gòu)成。因此,dog.dll依賴于head、leg、body。

圖11-21制品與類的區(qū)別11.7建模應(yīng)用構(gòu)件圖描述了軟件的組成和具體結(jié)構(gòu),表示了系統(tǒng)的靜態(tài)部分,它能夠幫助開發(fā)人員從總體上認識系統(tǒng)。用戶通常采用構(gòu)件圖來描述可執(zhí)行程序的結(jié)構(gòu)、源代碼、物理數(shù)據(jù)庫組成和結(jié)構(gòu)。

11.7建模應(yīng)用123對可執(zhí)行程序的結(jié)構(gòu)進行建模時,通常應(yīng)遵從以下原則:首先標識要建模的構(gòu)件。理解和標識每個構(gòu)件的類型、接口和作用。標識構(gòu)件間的關(guān)系。11.7建模應(yīng)用例如,圖11-22是一個自主機器人可執(zhí)行程序的一部分進行建模。

圖11-22代表可執(zhí)行程序的構(gòu)件11.7.2對源代碼進行建模對源程序進行建模時,通常應(yīng)遵從以下原則:在正向工程或逆向工程中,識別出要重點描述的每個源代碼文件,并把每個源代碼文件標識為構(gòu)件。如果系統(tǒng)較大,包含的構(gòu)件很多,就利用包來對構(gòu)件進行分組。找出源代碼之間的編譯依賴關(guān)系,并用工具管理這些依賴關(guān)系。給現(xiàn)有系統(tǒng)確定一個版本號,在構(gòu)件圖中,采用約束來表示源代碼的版本號、作者和最后的修改日期等信息。

11.7.2對源代碼進行建模例如,某公司用c語言開發(fā)的家電管理子系統(tǒng),該子系統(tǒng)由6個文件組成,其中,2個頭文件是:hose.h和driver.h;4個源文件是:qq.cpp、given.cpp、device.cpp、home.cpp。如圖11-23所示。其中,有3個文件是獨立的,它們不依賴于任何文件,這3個文件分別是:hose.h、driver.h和device.cpp。其它3個文件的編譯依賴關(guān)系如下:

11.7.2對源代碼進行建模(1)given.cpp文件:該文件依賴于hose.h、device.cpp、dricer.h,因此,當hose.h、device.cpp、dricer.h文件之一發(fā)生改變時,必須重新編譯given.cpp。(2)qq.cpp文件:該文件依賴于given.cpp,而given.cpp依賴于hose.h、device.cpp、dricer.h,因此,當hose.h、device.cpp、dricer.h和given.cpp文件之一發(fā)生改變時,必須重新編譯qq.cpp文件。(3)home.cpp文件:該文件編譯依賴于hose.h,當頭文件hose.h發(fā)生改變時,必須重新編譯home.cpp文件。

11.7.2對源代碼進行建模圖11-23對源代碼建模通過逆向

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論