版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章軟件體系結(jié)構(gòu)風(fēng)格(fēnggé)
1清華大學(xué)出版社共六十四頁(yè)內(nèi)容提要(nèirónɡtíyào)5.1 軟件體系結(jié)構(gòu)風(fēng)格概述5.2 軟件體系結(jié)構(gòu)基本風(fēng)格解析5.2.1 管道-過(guò)濾器 5.2.2 數(shù)據(jù)抽象與面向?qū)ο箫L(fēng)格 5.2.3 基于事件的隱式調(diào)用風(fēng)格5.2.4分層系統(tǒng)風(fēng)格5.2.5倉(cāng)庫(kù)風(fēng)格和黑板(hēibǎn)風(fēng)格5.2.6模型-視圖-控制器(MVC)風(fēng)格5.2.7解釋器風(fēng)格5.2.8C2風(fēng)格5.3 案例研究5.3.1 案例1:上下文關(guān)鍵字 5.3.2 案例2:儀器軟件 5.3.3 平臺(tái)層PaaS和應(yīng)用程序?qū)覵aaS 2清華大學(xué)出版社共六十四頁(yè)5.4 客戶/服務(wù)器風(fēng)格5.5 三層C/S結(jié)構(gòu)風(fēng)格5.5.1 三層C/S結(jié)構(gòu)的優(yōu)點(diǎn)5.5.2 實(shí)例:某石油管理局勞動(dòng)管理信息系統(tǒng)5.6B/S風(fēng)格5.7 C/S與B/S混合結(jié)構(gòu)風(fēng)格5.8 正交軟件體系結(jié)構(gòu)風(fēng)格5.8.1 正交軟件體系結(jié)構(gòu)的概念5.8.2 正交軟件體系結(jié)構(gòu)的優(yōu)點(diǎn)5.8.3 正交軟件體系結(jié)構(gòu)的實(shí)例5.9 基于層次消息總線的體系結(jié)構(gòu)風(fēng)格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)件動(dòng)態(tài)行為5.9.6 運(yùn)行時(shí)刻的系統(tǒng)演化3清華大學(xué)出版社共六十四頁(yè)5.10 異構(gòu)結(jié)構(gòu)風(fēng)格5.10.1 使用(shǐyòng)異構(gòu)結(jié)構(gòu)的原因5.10.2 異構(gòu)體系結(jié)構(gòu)的實(shí)例5.10.3 異構(gòu)組合匹配問(wèn)題5.11 小結(jié)4清華大學(xué)出版社共六十四頁(yè)5.1 軟件體系結(jié)構(gòu)風(fēng)格(fēnggé)概述
軟件體系結(jié)構(gòu)風(fēng)格,是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用(guànyòng)模式。體系結(jié)構(gòu)風(fēng)格定義一個(gè)系統(tǒng)家族,即一個(gè)體系結(jié)構(gòu)定義一個(gè)詞匯表和一組約束。詞匯表中包含了一些構(gòu)件和連接件類型,而這組約束指出系統(tǒng)是如何將這些構(gòu)件和連接件組合起來(lái)的。體系結(jié)構(gòu)風(fēng)格,反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語(yǔ)義特征,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。按這種方式理解,軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語(yǔ)表和一組指導(dǎo)構(gòu)建系統(tǒng)的規(guī)則。5清華大學(xué)出版社共六十四頁(yè)5.2 軟件體系結(jié)構(gòu)基本(jīběn)風(fēng)格解析
5.2.1 管道(guǎndào)-過(guò)濾器適用于對(duì)有序數(shù)據(jù)進(jìn)行一系列已經(jīng)定義的相互計(jì)算的應(yīng)用程序。管道過(guò)濾器模式下,每個(gè)功能模塊都有一組輸入和輸出。功能模塊從輸入集合讀入數(shù)據(jù)流,并在輸出集合產(chǎn)生輸出數(shù)據(jù)流,即功能模塊對(duì)輸入數(shù)據(jù)流進(jìn)行增量計(jì)算得到輸出數(shù)據(jù)流。管道過(guò)濾器模式下,功能模塊稱作過(guò)濾器(filter);功能模塊間的連接可以看作輸入、輸出數(shù)據(jù)流之間的通路,所以稱作管道(pipe)。6清華大學(xué)出版社共六十四頁(yè)圖5-1管道(guǎndào)–過(guò)濾器風(fēng)格的體系結(jié)構(gòu)
7清華大學(xué)出版社共六十四頁(yè)采用管道-過(guò)濾器模式建立的系統(tǒng)主要有以下幾個(gè)(jǐɡè)優(yōu)點(diǎn):(1)由于每個(gè)構(gòu)件的行為不受其他構(gòu)件的影響,因此,整個(gè)(zhěnggè)系統(tǒng)的行為比較易于理解。設(shè)計(jì)者可以將系統(tǒng)抽象成一個(gè)“黑匣子”,其輸入是系統(tǒng)中第一個(gè)過(guò)濾器的輸入管道,輸出是系統(tǒng)中最后一個(gè)過(guò)濾器的輸出管道,而其內(nèi)部各功能模塊的具體實(shí)現(xiàn)對(duì)用戶完全透明。(2)支持功能模塊的復(fù)用。任意兩個(gè)過(guò)濾器只要在相互的輸入、輸出管道格式上達(dá)成一致,就可以連接在一起。過(guò)濾器A和過(guò)濾器B只要對(duì)管道C中傳輸?shù)臄?shù)據(jù)格式達(dá)成一致就可以實(shí)現(xiàn)互連,其中過(guò)濾器A并不關(guān)心過(guò)濾器B如何處理管道C的內(nèi)容,而過(guò)濾器B也不知道管道C的內(nèi)容究竟是如何產(chǎn)生的,即在管道過(guò)濾器模式中,過(guò)濾器之間僅需很少的信息交換就可以完成互連。8清華大學(xué)出版社共六十四頁(yè)(3)具有較強(qiáng)的可維護(hù)性與可擴(kuò)展性??删S護(hù)性體現(xiàn)在系統(tǒng)過(guò)濾器部件的更新或升級(jí)。由于技術(shù)改進(jìn)等原因(yuányīn),過(guò)濾器A的實(shí)現(xiàn)發(fā)生了改變,采用新技術(shù)開發(fā)的過(guò)濾器D具有和A完全相同的輸入、輸出管道接口,這時(shí)可以直接將A替換為D,而無(wú)須對(duì)系統(tǒng)中的其他過(guò)濾器或管道進(jìn)行任何修改。9清華大學(xué)出版社共六十四頁(yè)圖5-2管道-過(guò)濾器支持(zhīchí)功能模塊復(fù)用圖5-3管道(guǎndào)-過(guò)濾器的可擴(kuò)展性10清華大學(xué)出版社共六十四頁(yè)(4)支持特殊的分析:如吞吐量計(jì)算和死鎖檢測(cè)等。利用管道-過(guò)濾器模式圖,可以很容易地得到系統(tǒng)的資源使用(shǐyòng)與請(qǐng)求狀態(tài)圖,然后,根據(jù)操作系統(tǒng)原理等相關(guān)理論中的死鎖檢測(cè)方法就可以分析出系統(tǒng)目前所處的狀態(tài),是否存在死鎖可能及如何消除死鎖等問(wèn)題。(5)支持并發(fā)執(zhí)行。基于管道-過(guò)濾器模式的系統(tǒng)存在很多并行的過(guò)濾器,這樣的系統(tǒng)在實(shí)際運(yùn)行時(shí),可以將存在并發(fā)可能的多個(gè)過(guò)濾器看作多個(gè)并發(fā)的任務(wù)并行執(zhí)行,從而大大提高了系統(tǒng)的整體效率,加快了處理速度。當(dāng)然,在調(diào)度并行任務(wù)的時(shí)候,必須有相應(yīng)的并行算法作基礎(chǔ),否則,可能導(dǎo)致系統(tǒng)功能的混亂。11清華大學(xué)出版社共六十四頁(yè)5.2.2數(shù)據(jù)抽象與面向?qū)ο箫L(fēng)格(fēnggé)
圖5-4數(shù)據(jù)抽象與面向?qū)ο箫L(fēng)格(fēnggé)的體系結(jié)構(gòu)12清華大學(xué)出版社共六十四頁(yè)面向?qū)ο蟮南到y(tǒng)有許多優(yōu)點(diǎn),并早已為人所知:
(1)因?yàn)閷?duì)象對(duì)其他對(duì)象隱藏它的表示,所以可以改變一個(gè)對(duì)象的表示,而不影響其他的對(duì)象。(2)設(shè)計(jì)者可將一些數(shù)據(jù)存取操作的問(wèn)題,分解成一些交互的代理程序的集合。但是,面向?qū)ο蟮南到y(tǒng)也存在著某些問(wèn)題。
(1)為了使一個(gè)對(duì)象和另一個(gè)對(duì)象通過(guò)過(guò)程調(diào)用等進(jìn)行交互,必須知道對(duì)象的標(biāo)識(shí),只要一個(gè)對(duì)象的標(biāo)識(shí)改變了,就必須修改所有其他明確(míngquè)調(diào)用它的對(duì)象。(2)必須修改所有顯式調(diào)用它的其他對(duì)象,并消除由此帶來(lái)的一些副作用。例如,如果A使用了對(duì)象B,C也使用了對(duì)象B,那么C對(duì)B的使用所造成的對(duì)A的影響,可能是預(yù)想不到的。13清華大學(xué)出版社共六十四頁(yè)5.2.3基于事件的隱式調(diào)用(diàoyòng)風(fēng)格
基于事件的隱式調(diào)用風(fēng)格(fēnggé)的思想是構(gòu)件不直接調(diào)用一個(gè)過(guò)程,而是觸發(fā)或廣播一個(gè)或多個(gè)事件。系統(tǒng)中的其他構(gòu)件中的過(guò)程在一個(gè)或多個(gè)事件中注冊(cè),當(dāng)一個(gè)事件被觸發(fā),系統(tǒng)自動(dòng)調(diào)用在這個(gè)事件中注冊(cè)的所有過(guò)程,這樣,一個(gè)事件的觸發(fā)就導(dǎo)致了另一模塊中的過(guò)程的調(diào)用。14清華大學(xué)出版社共六十四頁(yè)隱式調(diào)用系統(tǒng)的主要優(yōu)點(diǎn)(yōudiǎn)有以下兩點(diǎn):為軟件重用提供了強(qiáng)大的支持。當(dāng)需要將一個(gè)構(gòu)件加入現(xiàn)存系統(tǒng)時(shí),只需將它注冊(cè)到系統(tǒng)的事件中。為改進(jìn)系統(tǒng)帶來(lái)了方便(fāngbiàn)。當(dāng)用一個(gè)構(gòu)件代替另一個(gè)構(gòu)件時(shí),不會(huì)影響到其他構(gòu)件的接口。15清華大學(xué)出版社共六十四頁(yè)隱式調(diào)用系統(tǒng)的主要缺點(diǎn)(quēdiǎn)有以下幾方面:
●構(gòu)件放棄了對(duì)系統(tǒng)計(jì)算的控制。一個(gè)構(gòu)件觸發(fā)一個(gè)事件時(shí).不能確定其他構(gòu)件是否會(huì)響應(yīng)它。而且即使它知道事件注冊(cè)了哪些構(gòu)件的過(guò)程,它也不能保證這些過(guò)程被調(diào)用的順序。
●數(shù)據(jù)交換的問(wèn)題。有時(shí)數(shù)據(jù)可被一個(gè)事件傳遞,但在另一些情況下,基于事件的系統(tǒng)必須(bìxū)依靠一個(gè)共享的倉(cāng)庫(kù)進(jìn)行交互。在這些情況下,全局性能和資源管理便成了問(wèn)題。
●既然過(guò)程的語(yǔ)義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理就存在問(wèn)題。16清華大學(xué)出版社共六十四頁(yè)5.2.4 分層系統(tǒng)(xìtǒng)風(fēng)格
一個(gè)(yīɡè)分層風(fēng)格的系統(tǒng)按照層次結(jié)構(gòu)組織,每一層向它的上層提供服務(wù),同時(shí)又是它的下層客戶;在某些系統(tǒng)中,除了鄰接的層,一個(gè)(yīɡè)內(nèi)部層次對(duì)于其他外部層次是隱藏的,對(duì)體系結(jié)構(gòu)的約束包括把系統(tǒng)內(nèi)的交互限制在鄰接層次之間。交互只在相鄰的層間發(fā)生;同時(shí),這些交互按照一定協(xié)議進(jìn)行。連接件可以用層次間的交互協(xié)議來(lái)定義。每個(gè)獨(dú)立層都要防止較高層直接訪問(wèn)較低層。每一層次是由不同的部件構(gòu)成的實(shí)體集合。層內(nèi)的部件可以交互。相鄰層的部件可直接從上向下調(diào)用,還可以設(shè)計(jì)統(tǒng)一的層調(diào)用接口對(duì)層進(jìn)行保護(hù)。17清華大學(xué)出版社共六十四頁(yè)圖5-5分層模型(móxíng)18清華大學(xué)出版社共六十四頁(yè)5.2.5 倉(cāng)庫(kù)風(fēng)格(fēnggé)和黑板風(fēng)格(fēnggé)
倉(cāng)庫(kù)風(fēng)格的體系結(jié)構(gòu)由兩個(gè)構(gòu)件組成:一個(gè)中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu),它表示當(dāng)前狀態(tài);一個(gè)獨(dú)立構(gòu)件的集合,它對(duì)中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作。對(duì)于系統(tǒng)中數(shù)據(jù)和狀態(tài)的控制方法有兩種:一個(gè)傳統(tǒng)的方法是,由輸入事務(wù)選擇進(jìn)行何種處理,并把執(zhí)行結(jié)果作為當(dāng)前狀態(tài)存儲(chǔ)到中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)中,這時(shí),倉(cāng)庫(kù)是一個(gè)傳統(tǒng)的數(shù)據(jù)庫(kù)體系結(jié)構(gòu);另一種方法是,由中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)決定進(jìn)行何種處理。這時(shí),倉(cāng)庫(kù)是一個(gè)黑板體系結(jié)構(gòu)。即黑板體系結(jié)構(gòu)是倉(cāng)庫(kù)體系結(jié)構(gòu)的特殊化。19清華大學(xué)出版社共六十四頁(yè)(1)適應(yīng)的設(shè)計(jì)(shèjì)問(wèn)題(2)解決方案20清華大學(xué)出版社共六十四頁(yè)“黑板”模式類似于這樣一個(gè)情形,即讓專家們坐在真實(shí)黑板前并一起工作來(lái)解決一個(gè)問(wèn)題。每個(gè)專家獨(dú)立評(píng)估解法的當(dāng)前狀態(tài),并可在任何時(shí)間到黑板上添加、更改或刪除(shānchú)信息。人們往往要決定接下來(lái)誰(shuí)去訪問(wèn)黑板。在黑板模式中,如果可用的組件超過(guò)一個(gè),仲裁者(moderator)組件決定程序執(zhí)行的順序。圖5-6黑板(hēibǎn)風(fēng)格的體系結(jié)構(gòu)21清華大學(xué)出版社共六十四頁(yè)從圖5-6中不難看出,一個(gè)標(biāo)準(zhǔn)的黑板型倉(cāng)庫(kù)模式系統(tǒng)(xìtǒng)通常包括3個(gè)組成部分:(1)知識(shí)源:(2)中央數(shù)據(jù)單元:(3)控制單元:22清華大學(xué)出版社共六十四頁(yè)黑板(hēibǎn)風(fēng)格的體系結(jié)構(gòu)的優(yōu)點(diǎn)有:
◆便于多客戶共享大量數(shù)據(jù),它們不用關(guān)心數(shù)據(jù)是何時(shí)出現(xiàn)的、誰(shuí)提供的、怎樣提供的?!艏缺阌谔砑有碌淖鳛橹R(shí)源代理的應(yīng)用程序,也便于擴(kuò)展共享的黑板數(shù)據(jù)結(jié)構(gòu)?!艨芍赜玫闹R(shí)源。知識(shí)源是某類任務(wù)(rènwu)的獨(dú)立專家。黑板體系結(jié)構(gòu)有助于使它們可重用。重用的先決條件是知識(shí)源和所基于的黑板系統(tǒng)理解相同的協(xié)議和數(shù)據(jù),或者在這方面相當(dāng)接近而不排斥協(xié)議或數(shù)據(jù)的自適應(yīng)程序。◆支持容錯(cuò)性和健壯性。在黑板體系結(jié)構(gòu)中,所有的結(jié)果都只是假設(shè)。只有那些被數(shù)據(jù)和其他假設(shè)強(qiáng)烈支持的才能生存。這提供了對(duì)噪聲數(shù)據(jù)和不確定結(jié)論的容忍。23清華大學(xué)出版社共六十四頁(yè)黑板風(fēng)格(fēnggé)的體系結(jié)構(gòu)的缺點(diǎn)有:不同的知識(shí)源代理對(duì)于共享數(shù)據(jù)結(jié)構(gòu)要達(dá)成一致,而且,這也造成對(duì)黑板數(shù)據(jù)結(jié)構(gòu)的修改較為困難。需要一定的同步(tóngbù)鎖機(jī)制保證數(shù)據(jù)結(jié)構(gòu)的完整性和一致性,增大了系統(tǒng)復(fù)雜度。測(cè)試?yán)щy。由于黑板系統(tǒng)的計(jì)算沒(méi)有依據(jù)一個(gè)確定的算法,所以其結(jié)果常常不可再現(xiàn)。此外,錯(cuò)誤假設(shè)也是求解過(guò)程的一部分。不能保證有好的求解方案。一個(gè)黑板系統(tǒng)往往只能正確解決所給任務(wù)的某一百分比。難以建立一個(gè)好的控制策略??刂撇呗圆荒芤砸环N直接方式設(shè)計(jì),而需要一種試驗(yàn)的方法。24清華大學(xué)出版社共六十四頁(yè)低效。黑板系統(tǒng)在拒絕錯(cuò)誤假設(shè)中要承受多余的計(jì)算開銷。但是(dànshì),如果沒(méi)有確定的算法存在,那么與根本不存在的系統(tǒng)相比,低效總比沒(méi)有強(qiáng)。開發(fā)成本高。絕大多數(shù)黑板系統(tǒng)要花幾年時(shí)間來(lái)進(jìn)化。我們把這歸因于病態(tài)結(jié)構(gòu)問(wèn)題。25清華大學(xué)出版社共六十四頁(yè)5.2.6模型-視圖(shìtú)-控制器(MVC)風(fēng)格
1.MVC模式(móshì)
MVC由TrygveReenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中,是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ)。MVC結(jié)構(gòu)是為那些需要為同樣的數(shù)據(jù)提供多個(gè)視圖的應(yīng)用程序而設(shè)計(jì)的,它很好地實(shí)現(xiàn)了數(shù)據(jù)層與表示層的分離。作為一種開發(fā)模型,MVC通常用于分布式應(yīng)用系統(tǒng)的設(shè)計(jì)和分析中,以及用于確定系統(tǒng)各部分間的組織關(guān)系。對(duì)于界面設(shè)計(jì)可變性的需求,MVC(Model–View–Controller)把交互系統(tǒng)的組成分解成模型、視圖、控制器三種部件。26清華大學(xué)出版社共六十四頁(yè)2. MVC中的模型、視圖(shìtú)和控制類MVC中的模型、視圖和控制類如圖5-7所示。(1)模型類(2)視圖類(3)控制類27清華大學(xué)出版社共六十四頁(yè)模型類數(shù)據(jù)結(jié)構(gòu)關(guān)系變化-傳播注冊(cè)關(guān)系內(nèi)部數(shù)據(jù)和邏輯計(jì)算向視圖和控制器通知數(shù)據(jù)變化(a)視圖類顯示形式顯示模式控制從模型獲得數(shù)據(jù)視圖更新操作(b)控制類狀態(tài)事件控制控制視圖更新(c)28清華大學(xué)出版社共六十四頁(yè)3. MVC的實(shí)現(xiàn)實(shí)現(xiàn)基于MVC的應(yīng)用需要完成(wánchéng)以下工作,如圖5-8所示:圖5-8MVC的實(shí)現(xiàn)(shíxiàn)29清華大學(xué)出版社共六十四頁(yè)(1)分析應(yīng)用(yìngyòng)問(wèn)題,對(duì)系統(tǒng)進(jìn)行分離(2)設(shè)計(jì)和實(shí)現(xiàn)每個(gè)視圖(3)設(shè)計(jì)和實(shí)現(xiàn)每個(gè)控制器(4)使用可安裝和卸載的控制器30清華大學(xué)出版社共六十四頁(yè)5.2.7 解釋器風(fēng)格(fēnggé)
解釋器風(fēng)格通常被用于建立一種虛擬機(jī)以彌合程序的語(yǔ)義與作為計(jì)算引擎的硬件的間隙。由于解釋器實(shí)際上創(chuàng)建了一個(gè)軟件虛擬出來(lái)的機(jī)器,所以這種風(fēng)格又常常被稱為虛擬機(jī)風(fēng)格。(例如:程序設(shè)計(jì)(chénɡxùshèjì)語(yǔ)言的編譯器,比如Java、Smalltalk等;基于規(guī)則的系統(tǒng),比如專家系統(tǒng)領(lǐng)域的Prolog等;腳本語(yǔ)言,比如Awk、Perl等。)31清華大學(xué)出版社共六十四頁(yè)圖5-9解釋器風(fēng)格(fēnggé)的體系結(jié)構(gòu)32清華大學(xué)出版社共六十四頁(yè)解釋器風(fēng)格的優(yōu)點(diǎn)如下:有助于應(yīng)用程序的可移植性與程序設(shè)計(jì)語(yǔ)言的跨平臺(tái)能力(nénglì);可以對(duì)未實(shí)現(xiàn)的硬件進(jìn)行仿真。解釋器風(fēng)格的缺點(diǎn),
是額外的間接層次帶來(lái)的系統(tǒng)性能的下降。33清華大學(xué)出版社共六十四頁(yè)5.2.8 C2風(fēng)格(fēnggé)
C2體系結(jié)構(gòu)風(fēng)格可以概括為通過(guò)連接件綁定在一起的、按照(ànzhào)一組規(guī)則運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)。圖5-10C2風(fēng)格的體系結(jié)構(gòu)34清華大學(xué)出版社共六十四頁(yè)C2風(fēng)格,是最常用的一種軟件體系結(jié)構(gòu)風(fēng)格。從C2風(fēng)格的組織規(guī)則和結(jié)構(gòu)圖中可以得出,C2風(fēng)格具有以下特點(diǎn):
系統(tǒng)中的構(gòu)件可實(shí)現(xiàn)(shíxiàn)應(yīng)用需求,并能將任意復(fù)雜度的功能封裝在一起。所有構(gòu)件之間的通信是通過(guò)以連接件為中介的異步消息交換機(jī)制來(lái)實(shí)現(xiàn)的。構(gòu)件相對(duì)獨(dú)立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)。35清華大學(xué)出版社共六十四頁(yè)5.3 案例(ànlì)研究
5.3.1 案例1:上下文關(guān)鍵字(a)解決方案1:使用(shǐyòng)共享數(shù)據(jù)的主程序/子程序圖5-11KWIC:共享數(shù)據(jù)解決方案36清華大學(xué)出版社共六十四頁(yè)(b)解決方案2:抽象數(shù)據(jù)類型37清華大學(xué)出版社共六十四頁(yè)(c)解決方案3:隱式調(diào)用(diàoyòng)(d)解決方案4:管道過(guò)濾器
圖5-14KWIC:管道(guǎndào)過(guò)濾器方案38清華大學(xué)出版社共六十四頁(yè)(e)各種方案(fāngàn)的比較共享數(shù)據(jù)抽象數(shù)據(jù)類型隱式調(diào)用管道過(guò)濾器算法變更--++數(shù)據(jù)表示變更-+--功能變更+-++性能++--重用++-+39清華大學(xué)出版社共六十四頁(yè)5.3.2 案例2:儀器(yíqì)軟件
1. 面向?qū)ο竽P?móxíng)圖5-16示波器:面向?qū)ο竽P?0清華大學(xué)出版社共六十四頁(yè)2. 分層模型(móxíng)圖5-17示波器分層模型(móxíng)41清華大學(xué)出版社共六十四頁(yè)3. 管道(guǎndào)過(guò)濾器模型圖5-18一個(gè)(yīɡè)管道過(guò)濾器模型42清華大學(xué)出版社共六十四頁(yè)4. 改進(jìn)后的管道(guǎndào)過(guò)濾器模型圖5-19示波器:改造(gǎizào)后的管道過(guò)濾器模型43清華大學(xué)出版社共六十四頁(yè)5.4 客戶(kèhù)/服務(wù)器風(fēng)格
客戶/服務(wù)器(Client/Server,C/S)計(jì)算技術(shù)在信息產(chǎn)業(yè)中占有(zhànyǒu)重要的地位。網(wǎng)絡(luò)計(jì)算經(jīng)歷了從基于宿主機(jī)的計(jì)算模型到客戶/服務(wù)器計(jì)算模型的演變。圖5-20C/S體系結(jié)構(gòu)示意圖44清華大學(xué)出版社共六十四頁(yè)5.5 三層C/S結(jié)構(gòu)(jiégòu)風(fēng)格
C/S體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作與事務(wù)處理能力,模型思想簡(jiǎn)單,易于人們理解和接受,但隨著企業(yè)規(guī)模的日益(rìyì)擴(kuò)大,軟件的復(fù)雜程度不斷提高,傳統(tǒng)的二層C/S結(jié)構(gòu)存在諸多局限,三層C/S體系結(jié)構(gòu)應(yīng)運(yùn)而生。其結(jié)構(gòu)如圖5-21所示。圖5-21三層C/S結(jié)構(gòu)示意圖45清華大學(xué)出版社共六十四頁(yè)圖5-22三層C/S結(jié)構(gòu)(jiégòu)的一般處理流程46清華大學(xué)出版社共六十四頁(yè)1. 表示層2.功能(gōngnéng)層3.數(shù)據(jù)層圖5-23三層C/S物理結(jié)構(gòu)(jiégòu)比較47清華大學(xué)出版社共六十四頁(yè)5.6 B/S風(fēng)格(fēnggé)B/S軟件體系結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著(suízhe)Internet技術(shù)的興起,對(duì)C/S體系結(jié)構(gòu)進(jìn)行改進(jìn)后一種結(jié)構(gòu)。在B/S體系結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。它利用瀏覽器技術(shù),結(jié)合瀏覽器的多種腳本語(yǔ)言并通過(guò)瀏覽器就實(shí)現(xiàn)了原來(lái)需要復(fù)雜的專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,是一種全新的軟件體系結(jié)構(gòu)。B/S軟件體系結(jié)構(gòu)圖如圖5-27所示。48清華大學(xué)出版社共六十四頁(yè)圖5-27瀏覽器/服務(wù)器體系結(jié)構(gòu)圖49清華大學(xué)出版社共六十四頁(yè)B/S與C/S混合軟件體系結(jié)構(gòu)是一種典型的異構(gòu)體系結(jié)構(gòu)。B/S軟件體系結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S體系結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在B/S體系結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),部分事務(wù)邏輯(luójí)在前端實(shí)現(xiàn),但是主要事務(wù)邏輯(luójí)在服務(wù)器端實(shí)現(xiàn)。5.7 C/S與B/S混合結(jié)構(gòu)風(fēng)格(fēnggé)
50清華大學(xué)出版社共六十四頁(yè)5.8 正交軟件體系結(jié)構(gòu)風(fēng)格(fēnggé)
5.8.1 正交軟件體系結(jié)構(gòu)的概念正交(orthogonal)軟件體系結(jié)構(gòu),由組織層和線索的構(gòu)件構(gòu)成。層是由一組具有相同抽象級(jí)別的構(gòu)件構(gòu)成的。線索是子系統(tǒng)的特例,它由完成不同層次功能的構(gòu)件組成(通過(guò)相互調(diào)用來(lái)關(guān)聯(lián)),每一條線索完成整個(gè)(zhěnggè)系統(tǒng)中相對(duì)獨(dú)立的一部分功能。每一條線索的實(shí)現(xiàn)與其他線索的實(shí)現(xiàn)無(wú)關(guān)或關(guān)聯(lián)很少,在同一層中的構(gòu)件之間是不存在相互調(diào)用的。51清華大學(xué)出版社共六十四頁(yè)正交軟件體系結(jié)構(gòu)的主要特征如下:(1)正交軟件體系結(jié)構(gòu)由完成不同功能的n(n>1)個(gè)線索(子系統(tǒng))組成。(2)系統(tǒng)具有m(m>1)個(gè)不同抽象(chōuxiàng)級(jí)別的層。(3)線索之間是相互獨(dú)立的(正交的)。(4)系統(tǒng)有一個(gè)公共驅(qū)動(dòng)層(一般為最高層,和公共數(shù)據(jù)結(jié)構(gòu)(一般為最低層)。52清華大學(xué)出版社共六十四頁(yè)圖5-28正交軟件體系結(jié)構(gòu)框架(kuànɡjià)53清華大學(xué)出版社共六十四頁(yè)5.8.2 正交軟件體系結(jié)構(gòu)的優(yōu)點(diǎn)(1)結(jié)構(gòu)清晰,易于理解。(2)易修改(xiūgǎi),可維護(hù)性強(qiáng)。(3)可移植性強(qiáng),重用粒度大。
5.8.3 正交軟件體系結(jié)構(gòu)的實(shí)例54清華大學(xué)出版社共六十四頁(yè)5.9 基于層次(céngcì)消息總線的體系結(jié)構(gòu)風(fēng)格
圖5-33HMB風(fēng)格(fēnggé)的系統(tǒng)示意圖55清華大學(xué)出版社共六十四頁(yè)5.9.1 構(gòu)件(gòujiàn)模型圖5-34HMB風(fēng)格的構(gòu)件(gòujiàn)模型56清華大學(xué)出版社共六十四頁(yè)5.9.2 構(gòu)件接口(jiēkǒu)5.9.3 消息總線圖5-35消息(xiāoxi)總線的結(jié)構(gòu)57清華大學(xué)出版社共六十四頁(yè)5.9.4 構(gòu)件靜態(tài)(jìngtài)結(jié)構(gòu)圖5-36系統(tǒng)/復(fù)合構(gòu)件的靜態(tài)(jìngtài)結(jié)構(gòu)示意圍58清華大學(xué)出版社共六十四頁(yè)5.9.5 構(gòu)件動(dòng)態(tài)行為5.9.6 運(yùn)行時(shí)刻的系統(tǒng)演化(1)動(dòng)態(tài)增加或刪除構(gòu)件(2)動(dòng)態(tài)改變構(gòu)件響應(yīng)的消息類型(lèixíng)(3)消息過(guò)濾59清華大學(xué)出版社共六十四頁(yè)5.10 異構(gòu)結(jié)構(gòu)(jiégòu)風(fēng)格
5.10.1 使用異構(gòu)結(jié)構(gòu)的原因
前面介紹和討論了一些所謂的“純”體系結(jié)構(gòu),但隨著軟件系統(tǒng)規(guī)模的擴(kuò)大,系統(tǒng)也越來(lái)越復(fù)雜,所有的系統(tǒng)不可能都在單一的標(biāo)準(zhǔn)的結(jié)構(gòu)上
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬教新版必修1物理下冊(cè)階段測(cè)試試卷含答案
- 2025年北師大新版高三生物下冊(cè)月考試卷含答案
- 2025年中圖版七年級(jí)科學(xué)下冊(cè)月考試卷
- 2024版?zhèn)€人購(gòu)房借款擔(dān)保合同
- 二零二五年度液化石油氣購(gòu)銷合同3篇
- 2025年人教新課標(biāo)六年級(jí)語(yǔ)文上冊(cè)階段測(cè)試試卷
- 二零二五年度紅磚行業(yè)技術(shù)交流合同技術(shù)合作項(xiàng)目協(xié)議3篇
- 2025年人教版九年級(jí)生物下冊(cè)階段測(cè)試試卷含答案
- 二手車交易合同2024版:售后服務(wù)明確版一
- 2025年彩鋼板房拆除與施工現(xiàn)場(chǎng)臨時(shí)用電安全協(xié)議3篇
- 挑戰(zhàn)杯生命科學(xué)獲獎(jiǎng)作品范例
- 微信如何進(jìn)行視頻聊天
- T∕CNFMA B003-2018 林火防撲機(jī)械 以汽油機(jī)為動(dòng)力的便攜式化學(xué)泡沫滅火機(jī)
- 醫(yī)院崗位設(shè)置與人員編制標(biāo)準(zhǔn)
- 全貼合OCA工藝簡(jiǎn)介
- 部編版八上語(yǔ)文古代詩(shī)歌鑒賞對(duì)比閱讀(含答案)
- 帶壓堵漏夾具及規(guī)范化設(shè)計(jì)和選擇
- 單人簡(jiǎn)易呼吸球囊操作流程1
- 標(biāo)書密封條格式模板大全(共33頁(yè))
- 鐵路交通事故分類表
- 維修確認(rèn)單(共4頁(yè))
評(píng)論
0/150
提交評(píng)論