軟件體系結(jié)構(gòu)Lec11_第1頁(yè)
軟件體系結(jié)構(gòu)Lec11_第2頁(yè)
軟件體系結(jié)構(gòu)Lec11_第3頁(yè)
軟件體系結(jié)構(gòu)Lec11_第4頁(yè)
軟件體系結(jié)構(gòu)Lec11_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件體系結(jié)構(gòu)Lec11第1頁(yè)/共55頁(yè)教科書(shū)和參考書(shū)教科書(shū):軟件架構(gòu)實(shí)踐(第2版),L.Bass.P.Clements.andR.Kazman,車(chē)立紅譯,清華大學(xué)出版社(2004)參考書(shū):軟件構(gòu)架編檔,PaulClements,FelixBachmann等著,朱崇高譯,清華大學(xué)出版社(2004)軟件體系結(jié)構(gòu)——一門(mén)初露端倪學(xué)科的展望,;M.ShawandD.Garlan,PrenticeHall,1996清華大學(xué)出版社(1998),科學(xué)出版社(2003)2023/4/306:592第2頁(yè)/共55頁(yè)2023/4/306:593第3頁(yè)/共55頁(yè)2023/4/306:594第4頁(yè)/共55頁(yè)體系結(jié)構(gòu)(Architecture)的定義IEEE的定義體系結(jié)構(gòu)是以組件、組件之間的關(guān)系、組件與環(huán)境之間的關(guān)系為內(nèi)容的某一系統(tǒng)的基本組織結(jié)構(gòu)以及指導(dǎo)上述內(nèi)容設(shè)計(jì)與演化的原理。對(duì)Softwarearchitecture的常見(jiàn)中文翻譯軟件體系結(jié)構(gòu)軟件架構(gòu)軟件構(gòu)架2023/4/306:595第5頁(yè)/共55頁(yè)軟件體系結(jié)構(gòu)(構(gòu)架)研究的問(wèn)題結(jié)構(gòu)性問(wèn)題系統(tǒng)的組織,由哪些組件構(gòu)成全局性的控制結(jié)構(gòu)通訊、同步或訪(fǎng)問(wèn)的協(xié)議將功能分配到不同的系統(tǒng)組成部分設(shè)計(jì)元素的組成系統(tǒng)的物理分布可擴(kuò)展性、性能2023/4/306:596第6頁(yè)/共55頁(yè)軟件構(gòu)架的主要內(nèi)容軟件構(gòu)架的主要內(nèi)容包括對(duì)系統(tǒng)組成元素的描述這些元素相互之間的交互系統(tǒng)組成的模式模式的約束所以在軟件構(gòu)架中,系統(tǒng)以組件和組件之間的交互進(jìn)行定義。當(dāng)前的系統(tǒng)同時(shí)可以作為更高層設(shè)計(jì)的一個(gè)系統(tǒng)組件。2023/4/306:597第7頁(yè)/共55頁(yè)軟件構(gòu)架的描述對(duì)軟件系統(tǒng)而言,有一個(gè)合適的體系結(jié)構(gòu)是長(zhǎng)期成功的保證。當(dāng)前對(duì)于軟件構(gòu)架的描述是非正式的因人而異針對(duì)特定系統(tǒng)的通常由框圖和線(xiàn)條以及相關(guān)的解釋所組成2023/4/306:598第8頁(yè)/共55頁(yè)

一些典型的構(gòu)架描述“Camlelot采用了C/S結(jié)構(gòu)并且使用遠(yuǎn)程方法調(diào)用(RPC)””系統(tǒng)設(shè)計(jì)中采用了抽象分層和模塊分解的方法“”我們采用了一種分布式的、面向?qū)ο蟮姆椒ㄟM(jìn)行信息管理。“”將傳統(tǒng)的順序編譯器改造成并發(fā)編譯器的最簡(jiǎn)單的方法是將不同的編譯階段在多個(gè)處理上并發(fā)執(zhí)行。“2023/4/306:599第9頁(yè)/共55頁(yè)軟件設(shè)計(jì)的層次軟件設(shè)計(jì)可以發(fā)生在多個(gè)不同的層次,在每一層我們都會(huì)發(fā)現(xiàn)相應(yīng)的組件以及由這些組件組成更大的組件的組合機(jī)制。二進(jìn)制執(zhí)行文件層位模式代碼層編程語(yǔ)言的原語(yǔ)、操作符;記錄、數(shù)組、過(guò)程;構(gòu)架層模塊2023/4/306:5910第10頁(yè)/共55頁(yè)需求:做什么概要設(shè)計(jì),總體,架構(gòu),:怎么做?分模塊——功能劃分,接口定義,模式,詳細(xì)設(shè)計(jì):算法設(shè)計(jì),數(shù)據(jù)設(shè)計(jì)實(shí)現(xiàn):編碼,測(cè)試2023/4/306:5911第11頁(yè)/共55頁(yè)工程學(xué)科的演化手工制造生產(chǎn)商業(yè)制造科學(xué)專(zhuān)業(yè)工程2023/4/306:5912第12頁(yè)/共55頁(yè)工程學(xué)科的演化(2)手工制造商業(yè)制造工程制造有天賦的業(yè)余者直覺(jué)/蠻勁無(wú)計(jì)劃的進(jìn)展偶然的交流對(duì)原材料的浪費(fèi)為使用而制造熟練的手工藝者已成型的一套流程經(jīng)驗(yàn)的提煉技巧訓(xùn)練關(guān)注成本和收益為銷(xiāo)售而制造受教育的職業(yè)人員理論和分析科學(xué)指導(dǎo)下的進(jìn)展職業(yè)教育科學(xué)分析原料使用市場(chǎng)根據(jù)產(chǎn)品細(xì)分2023/4/306:5913第13頁(yè)/共55頁(yè)科學(xué)與工程的記錄周期

業(yè)界傳說(shuō)臨時(shí)解決方案正式記錄新問(wèn)題模型與理論

改進(jìn)的實(shí)踐2023/4/306:5914第14頁(yè)/共55頁(yè)軟件工程的演化手工制造生產(chǎn)商業(yè)制造科學(xué)專(zhuān)業(yè)工程1965-70算法、數(shù)據(jù)一些獨(dú)立的案例(算

法、數(shù)據(jù)結(jié)構(gòu)、編譯器

構(gòu)造1980s軟件開(kāi)發(fā)方法學(xué)2023/4/306:5915第15頁(yè)/共55頁(yè)SoftwareArchitectureinPractice

第一章構(gòu)架商業(yè)周期2023/4/306:5916第16頁(yè)/共55頁(yè)構(gòu)架由什么決定?構(gòu)架是否由系統(tǒng)需求決定?將一份需求說(shuō)明書(shū)給兩個(gè)不同的架構(gòu)師,他們是否能夠設(shè)計(jì)出同樣的架構(gòu)?軟件構(gòu)架是技術(shù)、商業(yè)和社會(huì)等諸多因素共同作用的結(jié)果。2023/4/306:5917第17頁(yè)/共55頁(yè)構(gòu)架從哪里來(lái)?影響構(gòu)架的因素主要包括:系統(tǒng)涉眾(stakeholder)開(kāi)發(fā)組織構(gòu)架師的素質(zhì)和經(jīng)驗(yàn)技術(shù)環(huán)境2023/4/306:5918第18頁(yè)/共55頁(yè)2023/4/306:5919第19頁(yè)/共55頁(yè)系統(tǒng)涉眾(stakeholder)管理者:成本要低,人人都得干活營(yíng)銷(xiāo)人員:特性突出、投放市場(chǎng)快、成本低、可與同類(lèi)產(chǎn)品匹敵終端用戶(hù):行為、性能、安全性、可靠性、易用性維護(hù)人員:可修改性強(qiáng)客戶(hù):成本低、及時(shí)交付、不要頻繁修改…2023/4/306:5920第20頁(yè)/共55頁(yè)2023/4/306:5921第21頁(yè)/共55頁(yè)2023/4/306:5922第22頁(yè)/共55頁(yè)開(kāi)發(fā)組織除了通過(guò)需求表示的組織目標(biāo)外,構(gòu)架還受開(kāi)發(fā)組織的結(jié)構(gòu)或本質(zhì)的影響對(duì)現(xiàn)存構(gòu)架的重用對(duì)某一個(gè)基礎(chǔ)設(shè)施進(jìn)行長(zhǎng)期的商業(yè)投資以實(shí)現(xiàn)某些戰(zhàn)略目標(biāo)開(kāi)發(fā)組織本身的結(jié)構(gòu)也會(huì)影響構(gòu)架的形成2023/4/306:5923第23頁(yè)/共55頁(yè)構(gòu)架師的素質(zhì)和經(jīng)驗(yàn)構(gòu)架師先前的一些經(jīng)驗(yàn)、教育、培訓(xùn)以及所接觸到過(guò)的成功構(gòu)架模式都會(huì)影響到他們對(duì)某種構(gòu)架的選擇。2023/4/306:5924第24頁(yè)/共55頁(yè)17世紀(jì)上半葉,北歐新教勢(shì)力與中歐天主教勢(shì)力發(fā)生了一場(chǎng)“三十年戰(zhàn)爭(zhēng)”,作為北歐新教勢(shì)力的代表,瑞典的軍事力量達(dá)到鼎盛時(shí)期。1625年,號(hào)稱(chēng)“北方颶風(fēng)”的瑞典國(guó)王古斯塔夫斯.阿道弗斯(GustavsAdolphus)決心建造一艘史無(wú)前例的巨型新戰(zhàn)艦——瓦薩(Vasa)戰(zhàn)艦。瓦薩戰(zhàn)艦確實(shí)是一艘令人望而生畏的戰(zhàn)艦:艦長(zhǎng)70米,載員300人,在三層的甲板上共裝有64門(mén)重炮,火力之強(qiáng)讓人難以置信。

2023/4/306:5925第25頁(yè)/共55頁(yè)1628年8月10日,這艘巨大的戰(zhàn)艦終于完工。在斯德哥爾摩,瓦薩戰(zhàn)艦舉行了盛大的下水典禮。禮炮聲中,戰(zhàn)艦揚(yáng)帆起航,乘風(fēng)前進(jìn)。在1萬(wàn)多名圍觀(guān)者的目光注視下,忽然,瓦薩號(hào)奇怪地?fù)u晃了一下,便向左舷傾斜。海水從炮孔處涌入船艙,戰(zhàn)艦迅速翻入水中,幾分鐘后,這艘雄偉戰(zhàn)艦的處女航——也是唯一的一次航行結(jié)束了。瓦薩戰(zhàn)艦在它壯麗的起航時(shí)刻,帶著全身飄揚(yáng)的彩旗,沉沒(méi)于它誕生的港口。

2023/4/306:5926第26頁(yè)/共55頁(yè)人們對(duì)瓦薩的沉沒(méi)做出了各種各樣的分析,最后的主要結(jié)論是:該艦制造工藝精良,但“比例嚴(yán)重失調(diào)”,也就是說(shuō),該戰(zhàn)艦的架構(gòu)存在缺陷。

瓦薩的沉沒(méi)早已成為往事。然而,300多年后的今天,在企業(yè)信息系統(tǒng)領(lǐng)域,類(lèi)似“瓦薩”這樣的故事卻比比皆是。處在工業(yè)高度發(fā)達(dá)的今天,在機(jī)械、電子、建筑、車(chē)船制造等各個(gè)領(lǐng)域,作為學(xué)科和工業(yè)的基石—“架構(gòu)體系”早已形成完整的理論和方法體系,但是,與這些成熟的工業(yè)領(lǐng)域相比,與企業(yè)信息系統(tǒng)相關(guān)的架構(gòu)體系,幾乎還處在原始和蒙昧的狀態(tài)。

2023/4/306:5927第27頁(yè)/共55頁(yè)理解架構(gòu):瓦薩戰(zhàn)艦的故事1625年,瑞典國(guó)王古斯塔夫斯.阿道弗斯(GustavsAdolphus)決心建造一艘史無(wú)前例的巨型新戰(zhàn)艦

——瓦薩(Vasa)戰(zhàn)艦。瓦薩戰(zhàn)艦確實(shí)是一艘令人望而生畏的戰(zhàn)艦:艦長(zhǎng)70米,載員300人,在三層的甲板上共裝有64門(mén)重炮,火力超強(qiáng)。2023/4/306:5928第28頁(yè)/共55頁(yè)瓦薩戰(zhàn)艦的處女航1628年8月10日,這艘巨大的戰(zhàn)艦終于完工。在斯德哥爾摩的王宮前,瓦薩戰(zhàn)艦舉行了盛大的下水典禮。在1萬(wàn)多名圍觀(guān)者的目光注視下,忽然,瓦薩號(hào)奇怪地?fù)u晃了一下,便向左舷傾斜。海水涌入船艙,戰(zhàn)艦迅速翻入水中。幾分鐘后,這艘雄偉戰(zhàn)艦的處女航——也是唯一的一次航行結(jié)束了。瓦薩戰(zhàn)艦在它壯麗的起航時(shí)刻,帶著全身飄揚(yáng)的彩旗,沉沒(méi)于它誕生的港口。2023/4/306:5929第29頁(yè)/共55頁(yè)瓦薩戰(zhàn)艦為什么沉沒(méi)?人們對(duì)瓦薩的沉沒(méi)做出了分析,最后的主要結(jié)論是:該艦制造工藝精良,但“比例嚴(yán)重失調(diào)”,也就是說(shuō),該戰(zhàn)艦的架構(gòu)存在缺陷。2023/4/306:5930第30頁(yè)/共55頁(yè)信息系統(tǒng)的“瓦薩”問(wèn)題同樣,在今天的企事業(yè)信息系統(tǒng)領(lǐng)域,“瓦薩”問(wèn)題——“架構(gòu)”成為需要解決的關(guān)鍵問(wèn)題。2023/4/306:5931第31頁(yè)/共55頁(yè)2023/4/306:5932第32頁(yè)/共55頁(yè)技術(shù)環(huán)境技術(shù)環(huán)境可以看作是對(duì)構(gòu)架師素質(zhì)和經(jīng)驗(yàn)的特殊反映代表某個(gè)時(shí)代的構(gòu)架師的普遍素質(zhì)和經(jīng)驗(yàn)比如:在當(dāng)今的技術(shù)環(huán)境下,如果構(gòu)架師對(duì)信息系統(tǒng)的設(shè)計(jì)不考慮使用基于WEB的,面向?qū)ο蟮暮椭С种虚g件的方法是很難想像的2023/4/306:5933第33頁(yè)/共55頁(yè)2023/4/306:5934第34頁(yè)/共55頁(yè)構(gòu)架所受的影響構(gòu)架師所受的影響涉眾開(kāi)發(fā)組織需求(質(zhì)量屬性)構(gòu)架師(小組)構(gòu)架系統(tǒng)構(gòu)架師的經(jīng)驗(yàn)2023/4/306:5935第35頁(yè)/共55頁(yè)構(gòu)架商業(yè)周期(ABC)構(gòu)架師所受的影響涉眾開(kāi)發(fā)組織需求(質(zhì)量屬性)構(gòu)架師(小組)構(gòu)架系統(tǒng)構(gòu)架師的經(jīng)驗(yàn)2023/4/306:5936第36頁(yè)/共55頁(yè)ABC——構(gòu)架的反影響力構(gòu)架會(huì)影響開(kāi)發(fā)組織的結(jié)構(gòu)構(gòu)架會(huì)影響開(kāi)發(fā)組織的目標(biāo)構(gòu)架會(huì)影響客戶(hù)對(duì)一個(gè)系統(tǒng)的要求構(gòu)建系統(tǒng)的過(guò)程豐富了整個(gè)開(kāi)發(fā)團(tuán)隊(duì)的經(jīng)驗(yàn),從而將影響設(shè)計(jì)師對(duì)后繼系統(tǒng)的設(shè)計(jì)一些系統(tǒng)會(huì)影響并實(shí)際改變軟件工程的環(huán)境,也就是系統(tǒng)開(kāi)發(fā)人員學(xué)習(xí)或?qū)嵺`的技術(shù)環(huán)境2023/4/306:5937第37頁(yè)/共55頁(yè)2023/4/306:5938第38頁(yè)/共55頁(yè)2023/4/306:5939第39頁(yè)/共55頁(yè)2023/4/306:5940第40頁(yè)/共55頁(yè)DataBanker2023/4/306:5941第41頁(yè)/共55頁(yè)2023/4/306:5942第42頁(yè)/共55頁(yè)第二章什么是軟件構(gòu)架

2023/4/306:5943第43頁(yè)/共55頁(yè)構(gòu)架概念的澄清控制處理(CP)特征損失模型(MODP)回響模型(MODR)噪音模型(MODN)這是一個(gè)構(gòu)架(描述)嗎?水下聲學(xué)模擬系統(tǒng)2023/4/306:5944第44頁(yè)/共55頁(yè)構(gòu)架定義LenBass,PaulClements等人對(duì)構(gòu)架所做的定義:某一個(gè)軟件或計(jì)算系統(tǒng)的軟件構(gòu)架是該系統(tǒng)的一個(gè)或多個(gè)結(jié)構(gòu),它由軟件元素、這些元素的外觀(guān)可見(jiàn)屬性以及這些元素之間的關(guān)系組成。2023/4/306:5945第45頁(yè)/共55頁(yè)構(gòu)架含義(1)1.構(gòu)架定義了軟件元素構(gòu)架必須省略元素中與其交互無(wú)關(guān)的某些信息接口VS.內(nèi)部實(shí)現(xiàn)2.系統(tǒng)可能而且確實(shí)由多個(gè)結(jié)構(gòu)組成其中任何一個(gè)結(jié)構(gòu)并不能與構(gòu)架等同結(jié)構(gòu)的多重性是理解軟件構(gòu)架的關(guān)鍵2023/4/306:5946第46頁(yè)/共55頁(yè)構(gòu)架的含義(2)3.具有軟件的每個(gè)計(jì)算系統(tǒng)都有一個(gè)軟件構(gòu)架每個(gè)軟件系統(tǒng)都可以看成由若干個(gè)元素及其相互聯(lián)系構(gòu)成系統(tǒng)構(gòu)架VS.構(gòu)架描述4.如果某個(gè)元素的行為可以從其它元素的角度觀(guān)察到,這個(gè)元素的行為就是構(gòu)架的內(nèi)容這種行為使各元素的交互成為可能,是構(gòu)架的一部分5.構(gòu)架的存在與構(gòu)架的優(yōu)劣無(wú)關(guān)2023/4/306:5947第47頁(yè)/共55頁(yè)構(gòu)架的其他定義構(gòu)架是一種高層設(shè)計(jì)

構(gòu)架是系統(tǒng)的總體結(jié)構(gòu)

構(gòu)架是以組件、組件之間的關(guān)系、組件與環(huán)境之間的關(guān)系為內(nèi)容的某一系統(tǒng)的基本組織結(jié)構(gòu)以及指導(dǎo)上述內(nèi)容設(shè)計(jì)與演化的原理

構(gòu)架是組件和連接器2023/4/306:5948第48頁(yè)/共55頁(yè)構(gòu)架模式、參考模型和參考構(gòu)架構(gòu)架模式是對(duì)元素和關(guān)系類(lèi)型以及一組對(duì)其使用方式的限制的描述參考模型是一種考慮數(shù)據(jù)流的功能劃分參考架構(gòu)是映射到軟件元素(它們相互使用,共同實(shí)現(xiàn)在參考模型中的定義的功能)及元素之間數(shù)據(jù)流上的參考模型(這些都是理解架構(gòu)中的元素的一些有用的概念)2023/4/306:5949第49頁(yè)/共55頁(yè)2023/4/30

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論