第09講_軟件架構(gòu)與建模(1)_第1頁
第09講_軟件架構(gòu)與建模(1)_第2頁
第09講_軟件架構(gòu)與建模(1)_第3頁
第09講_軟件架構(gòu)與建模(1)_第4頁
第09講_軟件架構(gòu)與建模(1)_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件架構(gòu)與建模共七十六頁順序(shnx)圖協(xié)作圖狀態(tài)圖回 顧共七十六頁基本概念體系結(jié)構(gòu)風格組件圖部署圖包與包圖小結(jié)(xioji)與實驗主要(zhyo)內(nèi)容共七十六頁建筑(jinzh)的例子狗舍一個人搭建(d jin),需要最小化建模簡單的過程簡單的工具共七十六頁建筑(jinzh)的例子住房一個團隊高效(o xio)和適時地建造,需要仔細的建模良好定義的過程良好的工具共七十六頁建筑(jinzh)的例子摩天大廈共七十六頁組織機構(gòu)的例子(l zi)家庭作坊共七十六頁組織機構(gòu)(jgu)的例子中小公司共七十六頁組織機構(gòu)的例子(l zi)跨國集團共七十六頁軟件開發(fā)單槍匹馬(dn qing p m)共七十六

2、頁軟件開發(fā)(kif)團隊開發(fā)(kif)共七十六頁軟件開發(fā)大型(dxng)復雜系統(tǒng)共七十六頁ISO/IEC 12207按ISO/IEC 12207軟件開發(fā)生存周期過程,軟件設(shè)計由兩個活動組成軟件體系結(jié)構(gòu)設(shè)計-software architectural design頂層設(shè)計(top-level design)描述系統(tǒng)頂層的結(jié)構(gòu)和組織標識各個構(gòu)件軟件詳細(xingx)設(shè)計-software detailed design充分描述每個構(gòu)件使之可以編碼13/72共七十六頁系統(tǒng)架構(gòu)認識(rn shi)與實現(xiàn)程序=數(shù)據(jù)結(jié)構(gòu)+算法程序=對象+對象系統(tǒng)=構(gòu)件(gujin)+構(gòu)件系統(tǒng)=組件+連接件整體結(jié)構(gòu)技術(shù)細

3、節(jié)性能功能共七十六頁為什么需要(xyo)體系結(jié)構(gòu)我們所定義(dngy)的類或者對象其關(guān)注的重點是定義(dngy)了一個系統(tǒng)的核心概念和行為一個系統(tǒng)是由多個子系統(tǒng)組成,每個子系統(tǒng)中的領(lǐng)域?qū)ο蠖疾恢灰粋€這些類如何組織、分布并協(xié)同完成所需的功能?因此系統(tǒng)應(yīng)該要有一個總體的體系結(jié)構(gòu),它定義了各子系統(tǒng)之間的通信和耦合體系結(jié)構(gòu)包圖(architecture package diagram)15/72共七十六頁軟件體系結(jié)構(gòu)的焦點(jiodin)和范圍軟件體系結(jié)構(gòu)是一個軟件系統(tǒng)的設(shè)計圖解決復雜性問題提高復用和構(gòu)件市場的潛力包含形式化方法兩個主要焦點系統(tǒng)結(jié)構(gòu)需求和實現(xiàn)之間的對應(yīng) 構(gòu)件 + 組裝規(guī)則 + 行為規(guī)則

4、理解系統(tǒng)級關(guān)注的框架全局流動率,通訊模式,執(zhí)行控制機構(gòu)(jgu),可升級性,系統(tǒng)演化路徑,容量,吞吐量,一致性,構(gòu)件兼容性,等16/72共七十六頁軟件體系結(jié)構(gòu)定義(dngy)1軟件體系結(jié)構(gòu)描述(mio sh)軟件系統(tǒng)的子系統(tǒng)和構(gòu)件及其相互關(guān)系體系結(jié)構(gòu)的概念從研究軟件的結(jié)構(gòu)和風格開始,導致家族式(產(chǎn)品線)軟件,可重用軟件和類屬設(shè)計UML Reference Manual:體系結(jié)構(gòu)是一個系統(tǒng)的組織結(jié)構(gòu),包括系統(tǒng)分解成的各個部分、它們的連接性、交互機制和通知系統(tǒng)設(shè)計的向?qū)б?guī)則17/72共七十六頁系統(tǒng)(xtng)體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu)將多組類結(jié)合起來,形成一個有機的整體,并且展示(zhnsh)各部分

5、之間結(jié)構(gòu)上的相互關(guān)系.構(gòu)件(components)連接件(connectors)配置(configurations)共七十六頁構(gòu)件(gujin)構(gòu)件是指語義完整、語法(yf)正確和有可復用價值的單位軟件,是軟件復用過程中可以明確辨識的元素;結(jié)構(gòu)上,它是語義描述、通訊接口和實現(xiàn)代碼的復合體。共七十六頁構(gòu)件(gujin)組成構(gòu)件是計算或數(shù)據(jù)儲存的單元構(gòu)件可以是計算和狀態(tài)的場所客戶(clients)服務(wù)器(servers)數(shù)據(jù)庫(databases)過濾器(filters)層次(layers)抽象數(shù)據(jù)類型(ADTs)構(gòu)件可以是簡單的或復合(fh)的復合構(gòu)件描述了一個(子)系統(tǒng)共七十六頁連接件連接件是

6、對以下內(nèi)容進行建模的體系結(jié)構(gòu)元素構(gòu)件之間的交互指導這些交互的規(guī)則簡單交互過程調(diào)用共享變量訪問復雜和語義豐富的交互客戶/服務(wù)器協(xié)議數(shù)據(jù)庫訪問協(xié)議異步事件(shjin)廣播管道數(shù)據(jù)流共七十六頁配置(pizh)拓撲體系結(jié)構(gòu)的配置或拓撲是構(gòu)件(gujin)和連接件的連接圖(connected graph),描述了系統(tǒng)結(jié)構(gòu) 適當?shù)倪B接并發(fā)和分布特性符合設(shè)計啟發(fā)式規(guī)則和風格規(guī)則復合構(gòu)件本身就是配置共七十六頁軟件體系結(jié)構(gòu)風格(fngg)是對某個體系結(jié)構(gòu)的一組約束,定義了能滿足要求的一組或一族體系結(jié)構(gòu)通用結(jié)構(gòu):分層、管道過濾器、黑板分布式系統(tǒng):客戶-服務(wù)器、三層、中介交互式系統(tǒng):MVC、表示-抽象-控制(kn

7、gzh)可適配系統(tǒng):微內(nèi)核、反映式其它:批處理、解釋器、進程控制、基于規(guī)則共七十六頁典型(dinxng)的體系結(jié)構(gòu)風格共七十六頁管道(gundo)/過濾器(pipes and filters)計算(j sun)過濾器計算過濾器管道過濾器:對輸入數(shù)據(jù)進行局部變換,并采用漸進式計算方法,在未處理完所有輸入數(shù)據(jù)以前,就可以產(chǎn)生部分計算結(jié)果,并將其送到輸出端口。管道:各過濾器之間的連接器將一個過濾器的輸出傳到下一過濾器的輸入端。特征:1.過濾器一定是獨立的實體,即各過濾器之間不能共享狀態(tài); 2.過濾器與其連接的上下游的過濾器互相獨立。過濾器只能涉及限制哪類數(shù)據(jù)可以出現(xiàn)在它的輸入管道中,可以保證它將輸出

8、何種類型的計算結(jié)果,但不能識別與其相連的管道的另一邊的過濾器。$cat TestResults | sort | grep Good共七十六頁1.系統(tǒng)(xtng)的整體行為可以理解為各獨立過濾器行為的簡單合成。 2.系統(tǒng)維護容易:過濾器可以容易地替換和增加。 3.允許進行如吞吐量和死鎖等性能分析。 4.很自然地支持并發(fā)執(zhí)行。1.過濾器容易被看成提供一個完整的將輸入數(shù)據(jù)轉(zhuǎn)換成輸出數(shù)據(jù)的模塊。實際上,過濾器是以漸進式處理數(shù)據(jù)的。 2.維護兩個分離但相關(guān)的數(shù)據(jù)流時,很難設(shè)計這樣的系統(tǒng)。 3.由于管道遵循最一般的數(shù)據(jù)傳輸標準,所以(suy),過濾器必須承擔數(shù)據(jù)語法分析和編碼的額外工作,增加了復雜性,降

9、低了性能。管道/過濾器(pipes and filters)共七十六頁分層系統(tǒng)(xtng)(layered systems)內(nèi)核(ni h)基本工具有用的系統(tǒng)用戶軟部件:實現(xiàn)在層次結(jié)構(gòu)中的虛擬機連接件:層次與層次之間交互的協(xié)議層次化組織原則:每一層向其上層提供服務(wù),并利用下層的服務(wù)。共七十六頁支持基于抽象程度遞增的系統(tǒng)設(shè)計。支持功能擴展、增強(zngqing)。因為功能的改變最多影響相鄰的層次。支持復用。只要提供的服務(wù)接口定義不變,同一層的不同實現(xiàn)可以交換使用。并不是每個系統(tǒng)(xtng)都可以很容易地劃分為分層的模式,有時即使存在邏輯層次結(jié)構(gòu),但出于對系統(tǒng)(xtng)性能的考慮,將低層和高層的

10、功能耦合起來。很難找到一個合適的、正確的層次抽象方法。分層系統(tǒng)(layered systems)共七十六頁倉庫(cngk)系統(tǒng)(repositories)軟件(run jin)部件表示當前狀態(tài)的中心數(shù)據(jù)結(jié)構(gòu)一組相互獨立的處理中心數(shù)據(jù)的部件部件交互方式根據(jù)輸入數(shù)據(jù)流的事務(wù)處理類型決定執(zhí)行哪個處理過程根據(jù)中心數(shù)據(jù)結(jié)構(gòu)的當前狀態(tài)觸發(fā)進行執(zhí)行傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)黑板系統(tǒng)共七十六頁黑板(hibn)(共享數(shù)據(jù))知識(zh shi)源知識源知識源知識源直接存取:知識源不斷改變黑板的狀態(tài)。按照與應(yīng)用程序相關(guān)的層次組織的問題求解數(shù)據(jù)獨立、分離的與應(yīng)用程序相關(guān)的知識及其處理單元黑板狀態(tài)驅(qū)動控制:使用特定的知識。倉庫系

11、統(tǒng)(repositories)共七十六頁模型-視圖(sht)-控制器風格用戶控制器視圖模型問題領(lǐng)域的應(yīng)用程序使用操作更新查看共七十六頁客戶服務(wù)器風格(fngg)分布式系統(tǒng)中最常用(chn yn)的體系結(jié)構(gòu):客戶/服務(wù)器模型服務(wù)器:為客戶提供服務(wù);事先并不知道有哪些客戶對其進行訪問??蛻簦罕仨氈苯踊蜷g接知道服務(wù)器的標識。遠過程調(diào)用注意:結(jié)構(gòu)的層次可以是兩層,也可以是三層(在客戶和服務(wù)器之間增加了一個中間層:中間件),三層結(jié)構(gòu)中相鄰兩層仍然保持客戶/服務(wù)器的關(guān)系。共七十六頁客戶-服務(wù)器風格(fngg)處理流程共七十六頁三層客戶(k h)-服務(wù)器風格共七十六頁三層風格(fngg)處理流程共七十六頁三

12、層客戶(k h)-服務(wù)器風格共七十六頁異構(gòu)結(jié)構(gòu)(jigu)風格共七十六頁結(jié)構(gòu)(jigu)模型視圖用戶視圖用例圖實現(xiàn)視圖 結(jié)構(gòu)視圖 行為視圖 環(huán)境視圖 類圖對象圖順序圖協(xié)作圖狀態(tài)圖活動圖組件圖部署圖共七十六頁組件(z jin)圖組件圖描述了軟件的各種組件和它們之間的依賴關(guān)系。組件圖中通常包含(bohn)3種元素:組件、接口和依賴關(guān)系。共七十六頁組件(z jin)組件是定義了良好接口的物理實現(xiàn)單元,是系統(tǒng)中可替換的物理部件。一般情況下,組件表示將類、接口等邏輯元素打包而形成的物理模塊。組件可以是源代碼組件、二進制組件或一個可執(zhí)行的組件。每個組件實現(xiàn)一些接口,并使用另一些接口。如果(rgu)組件間的

13、依賴關(guān)系與接口有關(guān),就可以被具有同樣接口的其他組件所替代。共七十六頁組件(z jin)一個組件包含它所實現(xiàn)的一個或多個(du )邏輯類的相關(guān)信息。在UML中,組件用一個左側(cè)帶有兩個突出小矩形的矩形來表示。 共七十六頁組件(z jin)組件在很多方面與類相同 有名稱; 可以實現(xiàn)一組接口; 可以參與(cny)依賴關(guān)系; 可以被嵌套; 可以有實例; 可以參與交互。共七十六頁組件(z jin)類和組件之間也存在著差別: 類描述了軟件設(shè)計的邏輯組織和意圖(yt); 組件描述軟件設(shè)計的物理實現(xiàn),即每個組件體現(xiàn)了系統(tǒng)設(shè)計中特定類的實現(xiàn)。共七十六頁組件(z jin)名稱每個組件都必須有一個不同于其他組件的名稱

14、。組件的名稱是一個字符串,位于(wiy)組件圖標內(nèi)部。實際應(yīng)用中,組件名稱通常是從現(xiàn)實的詞匯表中抽取出來的短名詞或名詞短語,并依據(jù)目標操作系統(tǒng)添加相應(yīng)的擴展名,例如java和dll。共七十六頁組件(z jin)名稱組件的名稱有兩種:簡單名和路徑名。簡單名只有一個簡單的名稱;路徑名是在簡單名的前面(qin mian)加上組件所在包的名稱。共七十六頁組件(z jin)名稱通常,UML圖中的組件只顯示其名稱,也可以用標記(bioj)值或表示組件細節(jié)的附加欄加以修飾。共七十六頁組件(z jin)種類 在軟件系統(tǒng)建模過程中,存在3種類型的組件:配置組件、工作產(chǎn)品(chnpn)組件執(zhí)行組件。共七十六頁配置

15、(pizh)組件配置組件是運行系統(tǒng)需要(xyo)配置的組件,是形成可執(zhí)行文件的基礎(chǔ)。操作系統(tǒng)、Java虛擬機(JVM)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)都屬于配置組件。共七十六頁工作產(chǎn)品(chnpn)組件工作產(chǎn)品(chnpn)組件包括模型、源代碼和用于創(chuàng)建配置組件的數(shù)據(jù)文件,它們是配置組件的來源。工作產(chǎn)品組件包括UML圖、Java類和動態(tài)鏈接庫(DLL)和數(shù)據(jù)庫表等。共七十六頁執(zhí)行(zhxng)組件執(zhí)行組件是在運行時創(chuàng)建的組件,是最終可運行的系統(tǒng)產(chǎn)生的允許(ynx)結(jié)果。HTML和XML文檔和.NET組件等都是執(zhí)行組件的例子。共七十六頁組件(z jin)圖標組件的定義非常廣泛,如程序源代碼、子系統(tǒng)、

16、動態(tài)鏈接庫、ActiveX控件等都可以(ky)認為是組件。 在實際建模過程中,如果僅僅使用一種圖標表示組件會造成不便。共七十六頁一般(ybn)組件Rose中的組件(Component),即一般(ybn)意義上的組件。可以用構(gòu)造型來指定組件類型(Application、 DLL、ActiveX、 和Executable等)。共七十六頁接口(ji ku)在組件圖中,組件可以通過其他(qt)組件的接口來使用其他(qt)組件中定義的操作。通過使用命名的接口,可以避免在系統(tǒng)中各個組件之間直接發(fā)生依賴關(guān)系,有利于組件的替換。組件圖中的接口也使用一個小圓圈來表示。共七十六頁接口(ji ku)接口和組件之間的

17、關(guān)系分為(fn wi)兩種:實現(xiàn)關(guān)系和依賴關(guān)系。接口和組件之間用實線連接表示實現(xiàn)關(guān)系;用虛線箭頭連接表示依賴關(guān)系。共七十六頁接 口組件(z jin)的接口分為兩種:導入接口和導出接口。導入接口供訪問操作的組件使用,導出接口由提供操作的組件提供。如下圖所示,接口Interface對于組件Component來說是導出接口,對于組件Component2來說是導入接口。共七十六頁依賴(yli)關(guān)系組件圖用依賴(yli)關(guān)系表示各組件之間存在的關(guān)系類型。在UML中,組件圖中依賴關(guān)系的表示方法與類圖中依賴關(guān)系相同,都是一個由客戶指向提供者的虛線箭頭。其中,客戶組件依賴于提供者組件;提供者組件只在開發(fā)時存在

18、,運行時則不存在。共七十六頁組件(z jin)建模技術(shù)組件圖一般用于面向?qū)ο笙到y(tǒng)物理方面的建模,建模時要找出系統(tǒng)中存在的組件、接口以及(yj)組件之間的依賴關(guān)系。具體的建模步驟如下: 對系統(tǒng)中的組件建模。 對相應(yīng)組件提供的接口建模。 對組件之間的依賴關(guān)系建模。 將邏輯設(shè)計映射成物理實現(xiàn)。 對建模的結(jié)果進行精化和細化。共七十六頁實例(shl)-圖書館管理系統(tǒng)組件圖使用Rose繪制(huzh)組件圖的步驟: 創(chuàng)建組件圖 添加組件 增加組件的細節(jié) 指定組件的類型。 指定組件語言。 為組件添加聲明。 增加組件之間的依賴。共七十六頁實例(shl)-圖書館管理系統(tǒng)組件圖組件(z jin)圖工具欄按鈕簡介:

19、共七十六頁實例(shl)-圖書館管理系統(tǒng)組件圖圖書館管理系統(tǒng)的業(yè)務(wù)對象(duxing)的組件圖共七十六頁部署(b sh)圖共七十六頁定 義部署圖是描述計算機、外部硬件設(shè)備及它們構(gòu)成的物理分布結(jié)構(gòu)。部署圖包含兩個部分:節(jié)點和連接。簡單的單機系統(tǒng)部署圖包含一臺計算機及其外部設(shè)備(wi b sh bi),所有組件都部署在這個節(jié)點上在網(wǎng)絡(luò)支持和系統(tǒng)中,部署圖不僅描述每個分布的節(jié)點,還描述組件在節(jié)點上的分布。共七十六頁節(jié) 點節(jié)點代表一個運行時計算機系統(tǒng)中的硬件資源。節(jié)點通常擁有一些內(nèi)存,并具有處理能力。例如(lr)一臺計算機、一個工作站等其它計算設(shè)備都屬于節(jié)點。共七十六頁自定義構(gòu)造型圖標共七十六頁節(jié)點(

20、ji din)中的構(gòu)件當某些構(gòu)件駐留在某個節(jié)點(ji din)時,可以在該節(jié)點(ji din)的內(nèi)部描述這些構(gòu)件。對于一張部署圖而言,最有價值的信息就是節(jié)點上的內(nèi)容,也就是安裝在節(jié)點中的構(gòu)件。共七十六頁連 接節(jié)點之間最常見的關(guān)系就是關(guān)聯(lián)關(guān)系(用一根實線表示(biosh)),在部署圖中,稱之為“連接”,表示(biosh)兩個節(jié)點之間的物理連接。共七十六頁如何繪制(huzh) 部署圖繪制系統(tǒng)部署(b sh)圖,可以參照如下步驟進行: (1)對系統(tǒng)中的節(jié)點建模; (2)對節(jié)點間的關(guān)系建模; (3)對系統(tǒng)中的構(gòu)件建模,這些構(gòu)件來自構(gòu)件圖; (4)對構(gòu)件間的關(guān)系建模; (5)對建模的結(jié)果進行精化和細化。

21、共七十六頁案 例以一個IC卡考勤系統(tǒng)的例子來說明部署圖的繪制過程。確定所需的節(jié)點及節(jié)點間的連接關(guān)系(1)IC卡讀卡器:提供給員工刷卡用,它收集刷卡的事件信息,傳給應(yīng)用系統(tǒng),并存入數(shù)據(jù)庫中。(2)應(yīng)用服務(wù)器:用來負責(fz)從IC卡讀卡器重收集信息,并對管理人員提供員工設(shè)置、考勤查詢等功能。(3)數(shù)據(jù)庫服務(wù)器:用來存儲考勤數(shù)據(jù),由于該系統(tǒng)比較小,因此在物理上可以與應(yīng)用服務(wù)器合并。(4)客戶端軟件:提供給管理人員使用,連接應(yīng)用服務(wù)器,完成相應(yīng)操作。另:客戶端與服務(wù)器的連接顯然應(yīng)該是通過網(wǎng)絡(luò)(假設(shè)是百兆以太網(wǎng)),而服務(wù)器與IC卡讀寫器則是通過串口(RS-232C).共七十六頁案例(n l)共七十六頁案 例2. 根據(jù)實現(xiàn)描述節(jié)點 結(jié)合(jih)具體的實現(xiàn)來描述每個節(jié)點,通過約束以及構(gòu)件來表示他們內(nèi)部的結(jié)構(gòu)與特點。假設(shè)該系統(tǒng)使用的是Delphi+Access開發(fā)的。(1)客戶端:需要使用Windows操作系統(tǒng),安裝客戶端軟件(假設(shè)名為KaoQin.exe)。(2)服務(wù)器:包

溫馨提示

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

評論

0/150

提交評論