軟件體系結(jié)構(gòu)第5章_第1頁
軟件體系結(jié)構(gòu)第5章_第2頁
軟件體系結(jié)構(gòu)第5章_第3頁
軟件體系結(jié)構(gòu)第5章_第4頁
軟件體系結(jié)構(gòu)第5章_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章軟件體系結(jié)構(gòu)風格(fēnggé)

1清華大學出版社共六十四頁內(nèi)容提要(nèirónɡtíyào)5.1 軟件體系結(jié)構(gòu)風格概述5.2 軟件體系結(jié)構(gòu)基本風格解析5.2.1 管道-過濾器 5.2.2 數(shù)據(jù)抽象與面向?qū)ο箫L格 5.2.3 基于事件的隱式調(diào)用風格5.2.4分層系統(tǒng)風格5.2.5倉庫風格和黑板(hēibǎn)風格5.2.6模型-視圖-控制器(MVC)風格5.2.7解釋器風格5.2.8C2風格5.3 案例研究5.3.1 案例1:上下文關(guān)鍵字 5.3.2 案例2:儀器軟件 5.3.3 平臺層PaaS和應用程序?qū)覵aaS 2清華大學出版社共六十四頁5.4 客戶/服務器風格5.5 三層C/S結(jié)構(gòu)風格5.5.1 三層C/S結(jié)構(gòu)的優(yōu)點5.5.2 實例:某石油管理局勞動管理信息系統(tǒng)5.6B/S風格5.7 C/S與B/S混合結(jié)構(gòu)風格5.8 正交軟件體系結(jié)構(gòu)風格5.8.1 正交軟件體系結(jié)構(gòu)的概念5.8.2 正交軟件體系結(jié)構(gòu)的優(yōu)點5.8.3 正交軟件體系結(jié)構(gòu)的實例5.9 基于層次消息總線的體系結(jié)構(gòu)風格5.9.1 構(gòu)件模型5.9.2 構(gòu)件接口(jiēkǒu)5.9.3 消息總線5.9.4 構(gòu)件靜態(tài)結(jié)構(gòu)5.9.5 構(gòu)件動態(tài)行為5.9.6 運行時刻的系統(tǒng)演化3清華大學出版社共六十四頁5.10 異構(gòu)結(jié)構(gòu)風格5.10.1 使用(shǐyòng)異構(gòu)結(jié)構(gòu)的原因5.10.2 異構(gòu)體系結(jié)構(gòu)的實例5.10.3 異構(gòu)組合匹配問題5.11 小結(jié)4清華大學出版社共六十四頁5.1 軟件體系結(jié)構(gòu)風格(fēnggé)概述

軟件體系結(jié)構(gòu)風格,是描述某一特定應用領(lǐng)域中系統(tǒng)組織方式的慣用(guànyòng)模式。體系結(jié)構(gòu)風格定義一個系統(tǒng)家族,即一個體系結(jié)構(gòu)定義一個詞匯表和一組約束。詞匯表中包含了一些構(gòu)件和連接件類型,而這組約束指出系統(tǒng)是如何將這些構(gòu)件和連接件組合起來的。體系結(jié)構(gòu)風格,反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語義特征,并指導如何將各個模塊和子系統(tǒng)有效地組織成一個完整的系統(tǒng)。按這種方式理解,軟件體系結(jié)構(gòu)風格定義了用于描述系統(tǒng)的術(shù)語表和一組指導構(gòu)建系統(tǒng)的規(guī)則。5清華大學出版社共六十四頁5.2 軟件體系結(jié)構(gòu)基本(jīběn)風格解析

5.2.1 管道(guǎndào)-過濾器適用于對有序數(shù)據(jù)進行一系列已經(jīng)定義的相互計算的應用程序。管道過濾器模式下,每個功能模塊都有一組輸入和輸出。功能模塊從輸入集合讀入數(shù)據(jù)流,并在輸出集合產(chǎn)生輸出數(shù)據(jù)流,即功能模塊對輸入數(shù)據(jù)流進行增量計算得到輸出數(shù)據(jù)流。管道過濾器模式下,功能模塊稱作過濾器(filter);功能模塊間的連接可以看作輸入、輸出數(shù)據(jù)流之間的通路,所以稱作管道(pipe)。6清華大學出版社共六十四頁圖5-1管道(guǎndào)–過濾器風格的體系結(jié)構(gòu)

7清華大學出版社共六十四頁采用管道-過濾器模式建立的系統(tǒng)主要有以下幾個(jǐɡè)優(yōu)點:(1)由于每個構(gòu)件的行為不受其他構(gòu)件的影響,因此,整個(zhěnggè)系統(tǒng)的行為比較易于理解。設(shè)計者可以將系統(tǒng)抽象成一個“黑匣子”,其輸入是系統(tǒng)中第一個過濾器的輸入管道,輸出是系統(tǒng)中最后一個過濾器的輸出管道,而其內(nèi)部各功能模塊的具體實現(xiàn)對用戶完全透明。(2)支持功能模塊的復用。任意兩個過濾器只要在相互的輸入、輸出管道格式上達成一致,就可以連接在一起。過濾器A和過濾器B只要對管道C中傳輸?shù)臄?shù)據(jù)格式達成一致就可以實現(xiàn)互連,其中過濾器A并不關(guān)心過濾器B如何處理管道C的內(nèi)容,而過濾器B也不知道管道C的內(nèi)容究竟是如何產(chǎn)生的,即在管道過濾器模式中,過濾器之間僅需很少的信息交換就可以完成互連。8清華大學出版社共六十四頁(3)具有較強的可維護性與可擴展性??删S護性體現(xiàn)在系統(tǒng)過濾器部件的更新或升級。由于技術(shù)改進等原因(yuányīn),過濾器A的實現(xiàn)發(fā)生了改變,采用新技術(shù)開發(fā)的過濾器D具有和A完全相同的輸入、輸出管道接口,這時可以直接將A替換為D,而無須對系統(tǒng)中的其他過濾器或管道進行任何修改。9清華大學出版社共六十四頁圖5-2管道-過濾器支持(zhīchí)功能模塊復用圖5-3管道(guǎndào)-過濾器的可擴展性10清華大學出版社共六十四頁(4)支持特殊的分析:如吞吐量計算和死鎖檢測等。利用管道-過濾器模式圖,可以很容易地得到系統(tǒng)的資源使用(shǐyòng)與請求狀態(tài)圖,然后,根據(jù)操作系統(tǒng)原理等相關(guān)理論中的死鎖檢測方法就可以分析出系統(tǒng)目前所處的狀態(tài),是否存在死鎖可能及如何消除死鎖等問題。(5)支持并發(fā)執(zhí)行。基于管道-過濾器模式的系統(tǒng)存在很多并行的過濾器,這樣的系統(tǒng)在實際運行時,可以將存在并發(fā)可能的多個過濾器看作多個并發(fā)的任務并行執(zhí)行,從而大大提高了系統(tǒng)的整體效率,加快了處理速度。當然,在調(diào)度并行任務的時候,必須有相應的并行算法作基礎(chǔ),否則,可能導致系統(tǒng)功能的混亂。11清華大學出版社共六十四頁5.2.2數(shù)據(jù)抽象與面向?qū)ο箫L格(fēnggé)

圖5-4數(shù)據(jù)抽象與面向?qū)ο箫L格(fēnggé)的體系結(jié)構(gòu)12清華大學出版社共六十四頁面向?qū)ο蟮南到y(tǒng)有許多優(yōu)點,并早已為人所知:

(1)因為對象對其他對象隱藏它的表示,所以可以改變一個對象的表示,而不影響其他的對象。(2)設(shè)計者可將一些數(shù)據(jù)存取操作的問題,分解成一些交互的代理程序的集合。但是,面向?qū)ο蟮南到y(tǒng)也存在著某些問題。

(1)為了使一個對象和另一個對象通過過程調(diào)用等進行交互,必須知道對象的標識,只要一個對象的標識改變了,就必須修改所有其他明確(míngquè)調(diào)用它的對象。(2)必須修改所有顯式調(diào)用它的其他對象,并消除由此帶來的一些副作用。例如,如果A使用了對象B,C也使用了對象B,那么C對B的使用所造成的對A的影響,可能是預想不到的。13清華大學出版社共六十四頁5.2.3基于事件的隱式調(diào)用(diàoyòng)風格

基于事件的隱式調(diào)用風格(fēnggé)的思想是構(gòu)件不直接調(diào)用一個過程,而是觸發(fā)或廣播一個或多個事件。系統(tǒng)中的其他構(gòu)件中的過程在一個或多個事件中注冊,當一個事件被觸發(fā),系統(tǒng)自動調(diào)用在這個事件中注冊的所有過程,這樣,一個事件的觸發(fā)就導致了另一模塊中的過程的調(diào)用。14清華大學出版社共六十四頁隱式調(diào)用系統(tǒng)的主要優(yōu)點(yōudiǎn)有以下兩點:為軟件重用提供了強大的支持。當需要將一個構(gòu)件加入現(xiàn)存系統(tǒng)時,只需將它注冊到系統(tǒng)的事件中。為改進系統(tǒng)帶來了方便(fāngbiàn)。當用一個構(gòu)件代替另一個構(gòu)件時,不會影響到其他構(gòu)件的接口。15清華大學出版社共六十四頁隱式調(diào)用系統(tǒng)的主要缺點(quēdiǎn)有以下幾方面:

●構(gòu)件放棄了對系統(tǒng)計算的控制。一個構(gòu)件觸發(fā)一個事件時.不能確定其他構(gòu)件是否會響應它。而且即使它知道事件注冊了哪些構(gòu)件的過程,它也不能保證這些過程被調(diào)用的順序。

●數(shù)據(jù)交換的問題。有時數(shù)據(jù)可被一個事件傳遞,但在另一些情況下,基于事件的系統(tǒng)必須(bìxū)依靠一個共享的倉庫進行交互。在這些情況下,全局性能和資源管理便成了問題。

●既然過程的語義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理就存在問題。16清華大學出版社共六十四頁5.2.4 分層系統(tǒng)(xìtǒng)風格

一個(yīɡè)分層風格的系統(tǒng)按照層次結(jié)構(gòu)組織,每一層向它的上層提供服務,同時又是它的下層客戶;在某些系統(tǒng)中,除了鄰接的層,一個(yīɡè)內(nèi)部層次對于其他外部層次是隱藏的,對體系結(jié)構(gòu)的約束包括把系統(tǒng)內(nèi)的交互限制在鄰接層次之間。交互只在相鄰的層間發(fā)生;同時,這些交互按照一定協(xié)議進行。連接件可以用層次間的交互協(xié)議來定義。每個獨立層都要防止較高層直接訪問較低層。每一層次是由不同的部件構(gòu)成的實體集合。層內(nèi)的部件可以交互。相鄰層的部件可直接從上向下調(diào)用,還可以設(shè)計統(tǒng)一的層調(diào)用接口對層進行保護。17清華大學出版社共六十四頁圖5-5分層模型(móxíng)18清華大學出版社共六十四頁5.2.5 倉庫風格(fēnggé)和黑板風格(fēnggé)

倉庫風格的體系結(jié)構(gòu)由兩個構(gòu)件組成:一個中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu),它表示當前狀態(tài);一個獨立構(gòu)件的集合,它對中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)進行操作。對于系統(tǒng)中數(shù)據(jù)和狀態(tài)的控制方法有兩種:一個傳統(tǒng)的方法是,由輸入事務選擇進行何種處理,并把執(zhí)行結(jié)果作為當前狀態(tài)存儲到中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)中,這時,倉庫是一個傳統(tǒng)的數(shù)據(jù)庫體系結(jié)構(gòu);另一種方法是,由中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)的當前狀態(tài)決定進行何種處理。這時,倉庫是一個黑板體系結(jié)構(gòu)。即黑板體系結(jié)構(gòu)是倉庫體系結(jié)構(gòu)的特殊化。19清華大學出版社共六十四頁(1)適應的設(shè)計(shèjì)問題(2)解決方案20清華大學出版社共六十四頁“黑板”模式類似于這樣一個情形,即讓專家們坐在真實黑板前并一起工作來解決一個問題。每個專家獨立評估解法的當前狀態(tài),并可在任何時間到黑板上添加、更改或刪除(shānchú)信息。人們往往要決定接下來誰去訪問黑板。在黑板模式中,如果可用的組件超過一個,仲裁者(moderator)組件決定程序執(zhí)行的順序。圖5-6黑板(hēibǎn)風格的體系結(jié)構(gòu)21清華大學出版社共六十四頁從圖5-6中不難看出,一個標準的黑板型倉庫模式系統(tǒng)(xìtǒng)通常包括3個組成部分:(1)知識源:(2)中央數(shù)據(jù)單元:(3)控制單元:22清華大學出版社共六十四頁黑板(hēibǎn)風格的體系結(jié)構(gòu)的優(yōu)點有:

◆便于多客戶共享大量數(shù)據(jù),它們不用關(guān)心數(shù)據(jù)是何時出現(xiàn)的、誰提供的、怎樣提供的。◆既便于添加新的作為知識源代理的應用程序,也便于擴展共享的黑板數(shù)據(jù)結(jié)構(gòu)?!艨芍赜玫闹R源。知識源是某類任務(rènwu)的獨立專家。黑板體系結(jié)構(gòu)有助于使它們可重用。重用的先決條件是知識源和所基于的黑板系統(tǒng)理解相同的協(xié)議和數(shù)據(jù),或者在這方面相當接近而不排斥協(xié)議或數(shù)據(jù)的自適應程序?!糁С秩蒎e性和健壯性。在黑板體系結(jié)構(gòu)中,所有的結(jié)果都只是假設(shè)。只有那些被數(shù)據(jù)和其他假設(shè)強烈支持的才能生存。這提供了對噪聲數(shù)據(jù)和不確定結(jié)論的容忍。23清華大學出版社共六十四頁黑板風格(fēnggé)的體系結(jié)構(gòu)的缺點有:不同的知識源代理對于共享數(shù)據(jù)結(jié)構(gòu)要達成一致,而且,這也造成對黑板數(shù)據(jù)結(jié)構(gòu)的修改較為困難。需要一定的同步(tóngbù)鎖機制保證數(shù)據(jù)結(jié)構(gòu)的完整性和一致性,增大了系統(tǒng)復雜度。測試困難。由于黑板系統(tǒng)的計算沒有依據(jù)一個確定的算法,所以其結(jié)果常常不可再現(xiàn)。此外,錯誤假設(shè)也是求解過程的一部分。不能保證有好的求解方案。一個黑板系統(tǒng)往往只能正確解決所給任務的某一百分比。難以建立一個好的控制策略??刂撇呗圆荒芤砸环N直接方式設(shè)計,而需要一種試驗的方法。24清華大學出版社共六十四頁低效。黑板系統(tǒng)在拒絕錯誤假設(shè)中要承受多余的計算開銷。但是(dànshì),如果沒有確定的算法存在,那么與根本不存在的系統(tǒng)相比,低效總比沒有強。開發(fā)成本高。絕大多數(shù)黑板系統(tǒng)要花幾年時間來進化。我們把這歸因于病態(tài)結(jié)構(gòu)問題。25清華大學出版社共六十四頁5.2.6模型-視圖(shìtú)-控制器(MVC)風格

1.MVC模式(móshì)

MVC由TrygveReenskaug提出,首先被應用在SmallTalk-80環(huán)境中,是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ)。MVC結(jié)構(gòu)是為那些需要為同樣的數(shù)據(jù)提供多個視圖的應用程序而設(shè)計的,它很好地實現(xiàn)了數(shù)據(jù)層與表示層的分離。作為一種開發(fā)模型,MVC通常用于分布式應用系統(tǒng)的設(shè)計和分析中,以及用于確定系統(tǒng)各部分間的組織關(guān)系。對于界面設(shè)計可變性的需求,MVC(Model–View–Controller)把交互系統(tǒng)的組成分解成模型、視圖、控制器三種部件。26清華大學出版社共六十四頁2. MVC中的模型、視圖(shìtú)和控制類MVC中的模型、視圖和控制類如圖5-7所示。(1)模型類(2)視圖類(3)控制類27清華大學出版社共六十四頁模型類數(shù)據(jù)結(jié)構(gòu)關(guān)系變化-傳播注冊關(guān)系內(nèi)部數(shù)據(jù)和邏輯計算向視圖和控制器通知數(shù)據(jù)變化(a)視圖類顯示形式顯示模式控制從模型獲得數(shù)據(jù)視圖更新操作(b)控制類狀態(tài)事件控制控制視圖更新(c)28清華大學出版社共六十四頁3. MVC的實現(xiàn)實現(xiàn)基于MVC的應用需要完成(wánchéng)以下工作,如圖5-8所示:圖5-8MVC的實現(xiàn)(shíxiàn)29清華大學出版社共六十四頁(1)分析應用(yìngyòng)問題,對系統(tǒng)進行分離(2)設(shè)計和實現(xiàn)每個視圖(3)設(shè)計和實現(xiàn)每個控制器(4)使用可安裝和卸載的控制器30清華大學出版社共六十四頁5.2.7 解釋器風格(fēnggé)

解釋器風格通常被用于建立一種虛擬機以彌合程序的語義與作為計算引擎的硬件的間隙。由于解釋器實際上創(chuàng)建了一個軟件虛擬出來的機器,所以這種風格又常常被稱為虛擬機風格。(例如:程序設(shè)計(chénɡxùshèjì)語言的編譯器,比如Java、Smalltalk等;基于規(guī)則的系統(tǒng),比如專家系統(tǒng)領(lǐng)域的Prolog等;腳本語言,比如Awk、Perl等。)31清華大學出版社共六十四頁圖5-9解釋器風格(fēnggé)的體系結(jié)構(gòu)32清華大學出版社共六十四頁解釋器風格的優(yōu)點如下:有助于應用程序的可移植性與程序設(shè)計語言的跨平臺能力(nénglì);可以對未實現(xiàn)的硬件進行仿真。解釋器風格的缺點,

是額外的間接層次帶來的系統(tǒng)性能的下降。33清華大學出版社共六十四頁5.2.8 C2風格(fēnggé)

C2體系結(jié)構(gòu)風格可以概括為通過連接件綁定在一起的、按照(ànzhào)一組規(guī)則運作的并行構(gòu)件網(wǎng)絡(luò)。圖5-10C2風格的體系結(jié)構(gòu)34清華大學出版社共六十四頁C2風格,是最常用的一種軟件體系結(jié)構(gòu)風格。從C2風格的組織規(guī)則和結(jié)構(gòu)圖中可以得出,C2風格具有以下特點:

系統(tǒng)中的構(gòu)件可實現(xiàn)(shíxiàn)應用需求,并能將任意復雜度的功能封裝在一起。所有構(gòu)件之間的通信是通過以連接件為中介的異步消息交換機制來實現(xiàn)的。構(gòu)件相對獨立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)。35清華大學出版社共六十四頁5.3 案例(ànlì)研究

5.3.1 案例1:上下文關(guān)鍵字(a)解決方案1:使用(shǐyòng)共享數(shù)據(jù)的主程序/子程序圖5-11KWIC:共享數(shù)據(jù)解決方案36清華大學出版社共六十四頁(b)解決方案2:抽象數(shù)據(jù)類型37清華大學出版社共六十四頁(c)解決方案3:隱式調(diào)用(diàoyòng)(d)解決方案4:管道過濾器

圖5-14KWIC:管道(guǎndào)過濾器方案38清華大學出版社共六十四頁(e)各種方案(fāngàn)的比較共享數(shù)據(jù)抽象數(shù)據(jù)類型隱式調(diào)用管道過濾器算法變更--++數(shù)據(jù)表示變更-+--功能變更+-++性能++--重用++-+39清華大學出版社共六十四頁5.3.2 案例2:儀器(yíqì)軟件

1. 面向?qū)ο竽P?móxíng)圖5-16示波器:面向?qū)ο竽P?0清華大學出版社共六十四頁2. 分層模型(móxíng)圖5-17示波器分層模型(móxíng)41清華大學出版社共六十四頁3. 管道(guǎndào)過濾器模型圖5-18一個(yīɡè)管道過濾器模型42清華大學出版社共六十四頁4. 改進后的管道(guǎndào)過濾器模型圖5-19示波器:改造(gǎizào)后的管道過濾器模型43清華大學出版社共六十四頁5.4 客戶(kèhù)/服務器風格

客戶/服務器(Client/Server,C/S)計算技術(shù)在信息產(chǎn)業(yè)中占有(zhànyǒu)重要的地位。網(wǎng)絡(luò)計算經(jīng)歷了從基于宿主機的計算模型到客戶/服務器計算模型的演變。圖5-20C/S體系結(jié)構(gòu)示意圖44清華大學出版社共六十四頁5.5 三層C/S結(jié)構(gòu)(jiégòu)風格

C/S體系結(jié)構(gòu)具有強大的數(shù)據(jù)操作與事務處理能力,模型思想簡單,易于人們理解和接受,但隨著企業(yè)規(guī)模的日益(rìyì)擴大,軟件的復雜程度不斷提高,傳統(tǒng)的二層C/S結(jié)構(gòu)存在諸多局限,三層C/S體系結(jié)構(gòu)應運而生。其結(jié)構(gòu)如圖5-21所示。圖5-21三層C/S結(jié)構(gòu)示意圖45清華大學出版社共六十四頁圖5-22三層C/S結(jié)構(gòu)(jiégòu)的一般處理流程46清華大學出版社共六十四頁1. 表示層2.功能(gōngnéng)層3.數(shù)據(jù)層圖5-23三層C/S物理結(jié)構(gòu)(jiégòu)比較47清華大學出版社共六十四頁5.6 B/S風格(fēnggé)B/S軟件體系結(jié)構(gòu),即Browser/Server(瀏覽器/服務器)結(jié)構(gòu),是隨著(suízhe)Internet技術(shù)的興起,對C/S體系結(jié)構(gòu)進行改進后一種結(jié)構(gòu)。在B/S體系結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),部分事務邏輯在前端實現(xiàn),但是主要事務邏輯在服務器端實現(xiàn)。它利用瀏覽器技術(shù),結(jié)合瀏覽器的多種腳本語言并通過瀏覽器就實現(xiàn)了原來需要復雜的專用軟件才能實現(xiàn)的強大功能,是一種全新的軟件體系結(jié)構(gòu)。B/S軟件體系結(jié)構(gòu)圖如圖5-27所示。48清華大學出版社共六十四頁圖5-27瀏覽器/服務器體系結(jié)構(gòu)圖49清華大學出版社共六十四頁B/S與C/S混合軟件體系結(jié)構(gòu)是一種典型的異構(gòu)體系結(jié)構(gòu)。B/S軟件體系結(jié)構(gòu),即Browser/Server(瀏覽器/服務器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S體系結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在B/S體系結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),部分事務邏輯(luójí)在前端實現(xiàn),但是主要事務邏輯(luójí)在服務器端實現(xiàn)。5.7 C/S與B/S混合結(jié)構(gòu)風格(fēnggé)

50清華大學出版社共六十四頁5.8 正交軟件體系結(jié)構(gòu)風格(fēnggé)

5.8.1 正交軟件體系結(jié)構(gòu)的概念正交(orthogonal)軟件體系結(jié)構(gòu),由組織層和線索的構(gòu)件構(gòu)成。層是由一組具有相同抽象級別的構(gòu)件構(gòu)成的。線索是子系統(tǒng)的特例,它由完成不同層次功能的構(gòu)件組成(通過相互調(diào)用來關(guān)聯(lián)),每一條線索完成整個(zhěnggè)系統(tǒng)中相對獨立的一部分功能。每一條線索的實現(xiàn)與其他線索的實現(xiàn)無關(guān)或關(guān)聯(lián)很少,在同一層中的構(gòu)件之間是不存在相互調(diào)用的。51清華大學出版社共六十四頁正交軟件體系結(jié)構(gòu)的主要特征如下:(1)正交軟件體系結(jié)構(gòu)由完成不同功能的n(n>1)個線索(子系統(tǒng))組成。(2)系統(tǒng)具有m(m>1)個不同抽象(chōuxiàng)級別的層。(3)線索之間是相互獨立的(正交的)。(4)系統(tǒng)有一個公共驅(qū)動層(一般為最高層,和公共數(shù)據(jù)結(jié)構(gòu)(一般為最低層)。52清華大學出版社共六十四頁圖5-28正交軟件體系結(jié)構(gòu)框架(kuànɡjià)53清華大學出版社共六十四頁5.8.2 正交軟件體系結(jié)構(gòu)的優(yōu)點(1)結(jié)構(gòu)清晰,易于理解。(2)易修改(xiūgǎi),可維護性強。(3)可移植性強,重用粒度大。

5.8.3 正交軟件體系結(jié)構(gòu)的實例54清華大學出版社共六十四頁5.9 基于層次(céngcì)消息總線的體系結(jié)構(gòu)風格

圖5-33HMB風格(fēnggé)的系統(tǒng)示意圖55清華大學出版社共六十四頁5.9.1 構(gòu)件(gòujiàn)模型圖5-34HMB風格的構(gòu)件(gòujiàn)模型56清華大學出版社共六十四頁5.9.2 構(gòu)件接口(jiēkǒu)5.9.3 消息總線圖5-35消息(xiāoxi)總線的結(jié)構(gòu)57清華大學出版社共六十四頁5.9.4 構(gòu)件靜態(tài)(jìngtài)結(jié)構(gòu)圖5-36系統(tǒng)/復合構(gòu)件的靜態(tài)(jìngtài)結(jié)構(gòu)示意圍58清華大學出版社共六十四頁5.9.5 構(gòu)件動態(tài)行為5.9.6 運行時刻的系統(tǒng)演化(1)動態(tài)增加或刪除構(gòu)件(2)動態(tài)改變構(gòu)件響應的消息類型(lèixíng)(3)消息過濾59清華大學出版社共六十四頁5.10 異構(gòu)結(jié)構(gòu)(jiégòu)風格

5.10.1 使用異構(gòu)結(jié)構(gòu)的原因

前面介紹和討論了一些所謂的“純”體系結(jié)構(gòu),但隨著軟件系統(tǒng)規(guī)模的擴大,系統(tǒng)也越來越復雜,所有的系統(tǒng)不可能都在單一的標準的結(jié)構(gòu)上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論