華南理工大學(xué)UML-11.組件圖_第1頁(yè)
華南理工大學(xué)UML-11.組件圖_第2頁(yè)
華南理工大學(xué)UML-11.組件圖_第3頁(yè)
華南理工大學(xué)UML-11.組件圖_第4頁(yè)
華南理工大學(xué)UML-11.組件圖_第5頁(yè)
已閱讀5頁(yè),還剩46頁(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、軟件需求分析與建模-組件圖主講:( )2022年8月27日1引言邏輯視圖描述的內(nèi)容靜態(tài)結(jié)構(gòu):類(lèi)、接口、對(duì)象、類(lèi)圖、交互圖動(dòng)態(tài)行為用例/用例圖、交互/交互圖、狀態(tài)機(jī)/狀態(tài)圖/活動(dòng)圖描述的是概念空間中的事物軟件系統(tǒng)的設(shè)計(jì)建造不能只停留于概念空間引言實(shí)現(xiàn)視圖軟件系統(tǒng)是存在于物理世界中的運(yùn)行時(shí)刻可執(zhí)行文件程序庫(kù)(dll)數(shù)據(jù)文件(數(shù)據(jù)庫(kù)、配置文件、求助文件.)建造時(shí)刻源程序文件工程文件引言實(shí)現(xiàn)視圖從軟件建造的角度考慮必須將概念空間中的軟件事物轉(zhuǎn)換為物理空間中的真實(shí)存在所以描述其物理構(gòu)成是必須的尤其是對(duì)復(fù)雜的軟件系統(tǒng)而言軟件制成品在物理世界中的真實(shí)存在在UML中,它們用組件表示組件的特性:存在于物理世界

2、中:形式:計(jì)算機(jī)文件實(shí)現(xiàn)給定的動(dòng)態(tài)行為建造時(shí)刻:源代碼文件: 是設(shè)計(jì)概念的實(shí)現(xiàn)運(yùn)行時(shí)刻:可執(zhí)行文件、運(yùn)行庫(kù):實(shí)現(xiàn)給定的動(dòng)態(tài)行為,可替代什么是組件組件是什么?組件是系統(tǒng)的一個(gè)物理的和可替代的組成部分,該組成部分遵循并實(shí)現(xiàn)了一組給定的接口。組件屬于實(shí)現(xiàn)視圖組件可以用來(lái)運(yùn)行時(shí)刻:運(yùn)行組件的結(jié)構(gòu),不同結(jié)點(diǎn)上的分布數(shù)據(jù)文件的構(gòu)成、聯(lián)系建造時(shí)刻類(lèi)與源程序的對(duì)應(yīng)源程序之間的編譯依賴組件的表示組件的圖形表示組件的名字簡(jiǎn)單名字路徑名字標(biāo)記值描述版本號(hào)等圖形表示簡(jiǎn)單情形擴(kuò)展情形可增加分隔區(qū)-描述詳細(xì)內(nèi)容可使用標(biāo)記值組件的概念組件和類(lèi)區(qū)別:組件存在于物理空間類(lèi)存在于概念空間聯(lián)系組件和類(lèi)都是分類(lèi)符組件用來(lái)實(shí)現(xiàn)類(lèi)的動(dòng)態(tài)

3、行為組件實(shí)現(xiàn)類(lèi)的結(jié)構(gòu)和動(dòng)態(tài)行為 圖形表示: UML標(biāo)準(zhǔn) / ROSE (realize TAB)接口(類(lèi)的一種變體)規(guī)定組件為外界提供的服務(wù) 圖形表示: UML / ROSE .(1)構(gòu)件與類(lèi)的相同點(diǎn)二者都有名稱(chēng);都可以實(shí)現(xiàn)一組接口;都可以參與依賴、繼承、關(guān)聯(lián)等關(guān)系和交互;都可以被嵌套;都可以有實(shí)例。(2)構(gòu)件與類(lèi)的顯著不同點(diǎn)抽象的方式不同;抽象的級(jí)別不同;訪問(wèn)方式不同;與包的關(guān)系。構(gòu)件的組織形式和分類(lèi)組織形式(1)用包來(lái)組織構(gòu)件。(2)用構(gòu)件之間的交互關(guān)系來(lái)組織構(gòu)件。分類(lèi):(1)源代碼構(gòu)件(2)二進(jìn)制構(gòu)件(3)可執(zhí)行構(gòu)件組件的概念組件和接口接口和組件之間的關(guān)系是一個(gè)十分重要的關(guān)系回顧:接口:

4、接口是一系列操作的集合,它指定了一個(gè)類(lèi)或者一個(gè)組件所能提供的服務(wù)。組件的一個(gè)重要特性就是實(shí)現(xiàn)了邏輯視圖中為軟件系統(tǒng)規(guī)定的設(shè)計(jì)詞匯的語(yǔ)義,語(yǔ)義除了靜態(tài)結(jié)構(gòu)之外,即是其規(guī)定的動(dòng)態(tài)行為從組件外部來(lái)看,一個(gè)組件區(qū)分于另一個(gè)組件的的本質(zhì)特征就是其動(dòng)態(tài)行為。如果需要強(qiáng)調(diào)組件的動(dòng)態(tài)行為,即組件為外部世界提供的服務(wù),就可以使用接口組件的概念組件和接口通過(guò)將軟件系統(tǒng)的劃分為不同的可執(zhí)行組件,可以實(shí)現(xiàn)軟件系統(tǒng)的組件化軟件系統(tǒng)在物理上由不同組件構(gòu)成有些組件向外部提供由接口規(guī)定的服務(wù)有些組件使用這些服務(wù)組件的概念組件和接口組件化的好處組件是可替換的:邊界清晰便于維護(hù)升級(jí)組件化的軟件系統(tǒng)可以是分布式的不要求使所有組件都

5、運(yùn)行于一個(gè)結(jié)點(diǎn)組件的概念組件和接口之間的聯(lián)系的描述(圖1)一個(gè)組件實(shí)現(xiàn)了一個(gè)接口實(shí)現(xiàn)關(guān)系輸出接口:- 被一個(gè)組件實(shí)現(xiàn)的接口是該組件的實(shí)現(xiàn)接口一個(gè)組件使用了另一個(gè)組件通過(guò)接口提供的服務(wù)依賴關(guān)系輸入接口:- 被一個(gè)組件調(diào)用的接口是該組件的輸入接口組件接口及其實(shí)現(xiàn)關(guān)系的圖形表示圖標(biāo)形式擴(kuò)展形式(ROSE不支持)圖運(yùn)行時(shí)刻可替換(Binary Replaceability)基于組件的軟件系統(tǒng)允許通過(guò)利用已有的組件構(gòu)造系統(tǒng)組成系統(tǒng)組件的可以隨時(shí)更新替換,不必重新構(gòu)造(編譯)整個(gè)系統(tǒng)運(yùn)行時(shí)刻可替換(Binary Replaceability)組件和接口是實(shí)現(xiàn)這一點(diǎn)的重要保證系統(tǒng)由多個(gè)可執(zhí)行組件組成由二進(jìn)制

6、代碼構(gòu)成的可以直接運(yùn)行的物理存在組件之間的聯(lián)系由接口定義遵循相同接口的組件可以互相替換只要調(diào)用接口的組件和輸出接口的組件都遵循相應(yīng)的接口,整個(gè)系統(tǒng)便能順利運(yùn)行必要時(shí),只需替換組件,不需重新編譯整個(gè)系統(tǒng)組件的種類(lèi)組件分為三類(lèi):一類(lèi)存在于開(kāi)發(fā)時(shí)刻開(kāi)發(fā)用組件(working product component)兩類(lèi)存在于運(yùn)行時(shí)刻發(fā)布組件(deployment component)運(yùn)行用組件(execution component)組件的種類(lèi)開(kāi)發(fā)用組件(working product component)進(jìn)行軟件建造時(shí)首先將邏輯視圖的內(nèi)容轉(zhuǎn)化為實(shí)現(xiàn)源代碼文件源代碼是設(shè)計(jì)概念的實(shí)現(xiàn),是組件:存在于開(kāi)發(fā)時(shí)

7、刻的組件開(kāi)發(fā)用組件是開(kāi)發(fā)過(guò)程的剩余物(residue)它不參加軟件系統(tǒng)的運(yùn)行它用來(lái)建造軟件系統(tǒng)組件的種類(lèi)發(fā)布組件(deployment component)用來(lái)組成一個(gè)完整的運(yùn)行系統(tǒng)的組件包括:DLLEXE對(duì)象模型:- COM+- CORBA- Enterprise Java Bean其他:- 動(dòng)態(tài)網(wǎng)頁(yè)- 數(shù)據(jù)庫(kù)文件- 使用給定的通訊機(jī)制的可執(zhí)行對(duì)象組件的種類(lèi)運(yùn)行用組件(execution component)作為一個(gè)可執(zhí)行系統(tǒng)的運(yùn)行結(jié)果而產(chǎn)生的組件例如COM+對(duì)象- 它由DLL實(shí)例化而來(lái)組件的組織模型包組件的標(biāo)準(zhǔn)變體UML的擴(kuò)充機(jī)制也可用于組件典型:標(biāo)記值- 可用來(lái)標(biāo)記正在發(fā)展中的組件的版本

8、信息五個(gè)用于組件的標(biāo)準(zhǔn)變體可執(zhí)行文件(executable)代表一個(gè)可以在一個(gè)結(jié)點(diǎn)上運(yùn)行的組件庫(kù)文件(library)代表一個(gè)靜態(tài)或動(dòng)態(tài)對(duì)象庫(kù)數(shù)據(jù)表(table)代表數(shù)據(jù)庫(kù)表格文件(file)代表包含源代碼或數(shù)據(jù)的文件文檔(documentation)代表文檔UML沒(méi)有為這些標(biāo)準(zhǔn)變體定義標(biāo)準(zhǔn)圖標(biāo)ROSE中的組件變體(1)組件 Rose中的組件即一般意義上的組件。也可以用構(gòu)造型來(lái)指定組件類(lèi)型(如ActiveX、Applet、Application、DLL和Executable等)。(2)程序規(guī)范(Subprogram Specification) 子程序規(guī)范通常是一組子程序集合名,子程序中不包括

9、類(lèi)定義。下圖給出了兩種表示子程序規(guī)范的圖標(biāo): ROSE中的組件變體(3)子程序體(4)主程序 主程序是包含程序根的文件。ROSE中的組件變體(5)包規(guī)范包是類(lèi)的實(shí)現(xiàn)方法。包規(guī)范(Package Specification)是類(lèi)的頭文件,包含類(lèi)中函數(shù)的原型信息。在C+中,包規(guī)范就是.h文件。(6)、包體 包體(Package Body)包含類(lèi)操作代碼。在C+中,包體就是.cpp文件。 ROSE中的組件變體(7)任務(wù)規(guī)范 任務(wù)表示具有獨(dú)立控制線程的包??蓤?zhí)行文件通常表示為擴(kuò)展名為.exe的任務(wù)規(guī)范。(8)任務(wù)體 下圖是兩種表示任務(wù)體的圖標(biāo)。ROSE中的組件變體(9)數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)可能含有一個(gè)或幾個(gè)

10、結(jié)構(gòu)。(10)虛包 下圖是兩種表示虛包的圖標(biāo)。(11)虛子程序 下圖是兩種表示虛子程序的圖標(biāo)。 用組件為軟件系統(tǒng)建模為可執(zhí)行文件(executable)和庫(kù)文件(library)建模對(duì)于復(fù)雜的可執(zhí)行系統(tǒng),需要用組件為其建模描述可執(zhí)行系統(tǒng)的構(gòu)成對(duì)其進(jìn)行視化說(shuō)明建造建檔描述版本發(fā)展/配置管理更為重要跟蹤可執(zhí)行系統(tǒng)的開(kāi)發(fā)進(jìn)展用組件為軟件系統(tǒng)建模為可執(zhí)行文件(executable)和庫(kù)文件(library)建模為可執(zhí)行文件和庫(kù)文件建模的一般原則確定組件的劃分對(duì)于系統(tǒng)的可執(zhí)行文件和庫(kù)文件用組件建模可以使用相應(yīng)的組件標(biāo)準(zhǔn)變體如果需要描述系統(tǒng)中的接縫將重要的接縫用接口建模根據(jù)交流的目的,適當(dāng)使用關(guān)系描述組件

11、、接口之間的關(guān)系e.g.: 依賴關(guān)系-用來(lái)分析組件的變化對(duì)整個(gè)系統(tǒng)的影響用組件為軟件系統(tǒng)建模為可執(zhí)行文件(executable)和庫(kù)文件(library)建模例子:(圖 2)tagged valuedependency這是一種省略表示組件之間的調(diào)用是對(duì)接口的輸入實(shí)現(xiàn)的復(fù)雜的系統(tǒng)使用模型包使用結(jié)點(diǎn)描述分布式的系統(tǒng)圖 2為數(shù)據(jù)表、文件和文檔建??蓤?zhí)行系統(tǒng)不僅僅由包含可執(zhí)行二進(jìn)制代碼的可執(zhí)行組件構(gòu)成還包含大量支持性的組件它們對(duì)系統(tǒng)的正確運(yùn)行也是至關(guān)重要的e.g.:數(shù)據(jù)文件幫助文檔教本文件日志文件初始化文件安裝/卸載文件為數(shù)據(jù)表、文件和文檔建模 .支持性的組件 .為它們建模是十分重要的由助于控制軟件系

12、統(tǒng)的配置為數(shù)據(jù)表、文件和文檔建模的一般原則在可執(zhí)行系統(tǒng)中辨識(shí)出這些支持性組件用組件建模為它們對(duì)于新出現(xiàn)的組件類(lèi)型,可以引入自定義變體根據(jù)需要,用關(guān)系描述組件之間的聯(lián)系典型地,描述它們之間的依賴關(guān)系- 有助于發(fā)現(xiàn)某一組件的變換對(duì)其他組件的影響為數(shù)據(jù)表、文件和文檔建模例子:包含:數(shù)據(jù)表文件文檔用組件為軟件系統(tǒng)建模為應(yīng)用程序接口(API)建模應(yīng)用程序接口是由一個(gè)或多個(gè)組件實(shí)現(xiàn)的接口構(gòu)造組件化系統(tǒng)時(shí),必然要用到API對(duì)組件化操作系統(tǒng)提供的支持的使用,要通過(guò)API如果僅從開(kāi)發(fā)者的角度考慮 .用組件為軟件系統(tǒng)建模為應(yīng)用程序接口(API)建模如果僅從開(kāi)發(fā)者的角度考慮僅需關(guān)心接口本身無(wú)需考慮接口的實(shí)現(xiàn)總是假定

13、接口是存在的只需為接口及其調(diào)用建模如果從系統(tǒng)配置管理的角度考慮必須保證該系統(tǒng)在運(yùn)行時(shí)刻所依賴的各接口是被實(shí)現(xiàn)了的需要為API的實(shí)現(xiàn)建模用組件為軟件系統(tǒng)建模為應(yīng)用程序接口(API)建模為API建模的一般規(guī)則辨識(shí)出程序設(shè)計(jì)時(shí)的系統(tǒng)接縫將各接縫用接口建模需要描述接口的細(xì)節(jié)只暴露出對(duì)問(wèn)題的表達(dá)有重要意義的接口的構(gòu)成其他構(gòu)成只在接口的規(guī)格說(shuō)明那表達(dá)如果對(duì)系統(tǒng)的實(shí)現(xiàn)配置有意義,就描述接口的實(shí)現(xiàn)用組件為軟件系統(tǒng)建模為應(yīng)用程序接口(API)建模例子:(下圖)animator.exe輸出的API用組件為軟件系統(tǒng)建模為源代碼建模組件的另一個(gè)重要用途為開(kāi)發(fā)過(guò)程中使用的物理存在建模開(kāi)發(fā)用組件e.g.:源代碼文件資源文

14、件工程文件等等描述源代碼文件源代碼文件用于存放類(lèi)的實(shí)現(xiàn)源代碼文件與類(lèi)的對(duì)應(yīng)通常由開(kāi)發(fā)工具和配置管理工具決定組件可以用來(lái)表達(dá)這種對(duì)應(yīng)e.g:ROSE: - 使用規(guī)格說(shuō)明對(duì)話框組件可以表達(dá)源代碼之間的關(guān)系e.g.: 源代碼文件之間的編譯依賴- 用組件之間的依賴關(guān)系表示為源代碼建模的一般規(guī)則用組件為實(shí)現(xiàn)系統(tǒng)中所有的類(lèi)的各文件建模同時(shí)描述它們之間的編譯依賴如果需要為源代碼的配置管理建模使用標(biāo)記值描述- 版本- 作者- 檢入/檢出 消息和配置管理工具配合使用 盡可能地使用開(kāi)發(fā)工具管理文件之間的關(guān)系只使用UML對(duì)這些關(guān)系進(jìn)行視化和建檔例子版本信息編譯依賴UML1.4和2.0中的組件圖UML 2 中,組件的

15、一個(gè)高層次的抽象視圖,可以用一個(gè)長(zhǎng)方形建模,包括組件的名字和組件原型的文字和/或圖標(biāo)。組件原型的文本是“component”,而組件原型圖標(biāo)是在左邊有兩個(gè)凸出的小長(zhǎng)方形的一個(gè)大長(zhǎng)方形(UML 1.4 中組件的符號(hào)元素)。下圖顯示,組件可以用UML 2規(guī)范中的三種不同方法表示。為組件提供/要求接口建模 圖 :這里額外的區(qū)顯示Order組件提供和要求的接口。UML 2 也引入另外一種方法來(lái)顯示組件提供并要求的接口。這個(gè)方法是建立一個(gè)里面有組件名的大長(zhǎng)方形,并在長(zhǎng)方形的外面放置在 UML 2 規(guī)范中稱(chēng)為接口符號(hào)的東西。這第二種方法在圖 4 中舉例說(shuō)明。 組件關(guān)系的建模 圖 :顯示Order系統(tǒng)組件如

16、何依賴于其他組件的組件圖顯示組件的內(nèi)部結(jié)構(gòu) 端口和委托連接器委托連接器連接了組件的一個(gè)外部端口和它內(nèi)部的一個(gè)子組件的一個(gè)端口。外部端口接收到的消息被傳送到這個(gè)內(nèi)部組件的端口上;從內(nèi)部端口發(fā)出的消息被傳送到外部端口,并隨后發(fā)送給與之相連的組件。 (1)一個(gè)結(jié)構(gòu)良好的構(gòu)件應(yīng)具備的特點(diǎn) 從物理結(jié)構(gòu)上對(duì)軟件系統(tǒng)進(jìn)行抽象;提供一組小的、定義完整的接口實(shí)現(xiàn);構(gòu)件應(yīng)包含與其功能有關(guān)的一組類(lèi),以便滿足接口要求;與其它構(gòu)件相對(duì)獨(dú)立,構(gòu)件之間一般只有依賴和實(shí)現(xiàn)的關(guān)系。(2)在UML中繪制一個(gè)構(gòu)件時(shí)應(yīng)掌握的技巧 為構(gòu)件標(biāo)識(shí)一個(gè)能準(zhǔn)確表達(dá)其意義的名字;接口一般采用短式圖符表示;只在必須顯示接口的操作(不展示不能清楚描述構(gòu)件的功能)時(shí)才用長(zhǎng)式表示;只顯示那些對(duì)理解構(gòu)件功能有重要影響的接口;構(gòu)件為源代碼或庫(kù)時(shí),注意顯示有關(guān)版本標(biāo)記。構(gòu)件圖建模的方法和技巧(1)一個(gè)結(jié)構(gòu)良好的構(gòu)件圖應(yīng)具備的特點(diǎn) 側(cè)重

溫馨提示

  • 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)論