《軟件體系結(jié)構(gòu)L》PPT課件.ppt
《《軟件體系結(jié)構(gòu)L》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《軟件體系結(jié)構(gòu)L》PPT課件.ppt(54頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、軟件體系結(jié)構(gòu),主講老師:周立新,2020年7月21日1時20分,1,教科書和參考書,教科書: 軟件架構(gòu)實(shí)踐(第2版),L.Bass.P.Clements.and R.Kazman, 車立紅譯,清華大學(xué)出版社(2004) 參考書: 軟件構(gòu)架編檔,Paul Clements, Felix Bachmann等著,朱崇高 譯,清華大學(xué)出版社(2004) 軟件體系結(jié)構(gòu)一門初露端倪學(xué)科的展望,;M.Shaw and D.Garlan, Prentice Hall, 1996清華大學(xué)出版社(1998),科學(xué)出版社(2003),2020年7月21日1時20分,2,2020年7月21日1時20分,3,2020年
2、7月21日1時20分,4,體系結(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è)計與演化的原理。 對Software architecture的常見中文翻譯 軟件體系結(jié)構(gòu) 軟件架構(gòu) 軟件構(gòu)架,2020年7月21日1時20分,5,軟件體系結(jié)構(gòu)(構(gòu)架)研究的問題,結(jié)構(gòu)性問題 系統(tǒng)的組織,由哪些組件構(gòu)成 全局性的控制結(jié)構(gòu) 通訊、同步或訪問的協(xié)議 將功能分配到不同的系統(tǒng)組成部分 設(shè)計元素的組成 系統(tǒng)的物理分布 可擴(kuò)展性、性能,2020年7月21日1時20分,6,軟件構(gòu)架的主要內(nèi)容,軟件構(gòu)架的主要
3、內(nèi)容包括 對系統(tǒng)組成元素的描述 這些元素相互之間的交互 系統(tǒng)組成的模式 模式的約束 所以在軟件構(gòu)架中,系統(tǒng)以組件和組件之間的交互進(jìn)行定義。 當(dāng)前的系統(tǒng)同時可以作為更高層設(shè)計的一個系統(tǒng)組件。,2020年7月21日1時20分,7,軟件構(gòu)架的描述,對軟件系統(tǒng)而言,有一個合適的體系結(jié)構(gòu)是長期成功的保證。 當(dāng)前對于軟件構(gòu)架的描述是 非正式的 因人而異 針對特定系統(tǒng)的 通常由框圖和線條以及相關(guān)的解釋所組成,2020年7月21日1時20分,8,一些典型的構(gòu)架描述,“Camlelot采用了C/S結(jié)構(gòu)并且使用遠(yuǎn)程方法調(diào)用(RPC)” ”系統(tǒng)設(shè)計中采用了抽象分層和模塊分解的方法“ ”我們采用了一種分布式的、面向?qū)?/p>
4、象的方法進(jìn)行信息管理?!?”將傳統(tǒng)的順序編譯器改造成并發(fā)編譯器的最簡單的方法是將不同的編譯階段在多個處理上并發(fā)執(zhí)行?!?2020年7月21日1時20分,9,軟件設(shè)計的層次,軟件設(shè)計可以發(fā)生在多個不同的層次,在每一層我們都會發(fā)現(xiàn)相應(yīng)的組件以及由這些組件組成更大的組件的組合機(jī)制。 二進(jìn)制執(zhí)行文件層 位模式 代碼層 編程語言的原語、操作符; 記錄、數(shù)組、過程; 構(gòu)架層 模塊,2020年7月21日1時20分,10,,需求:做什么 概要設(shè)計,總體,架構(gòu),:怎么做? 分模塊功能劃分,接口定義,模式, 詳細(xì)設(shè)計:算法設(shè)計,數(shù)據(jù)設(shè)計 實(shí)現(xiàn):編碼,測試,2020年7月21日1時20分,11,工程學(xué)科的演化,,
5、,手工制造,生產(chǎn),商業(yè)制造,科學(xué),專業(yè)工程,2020年7月21日1時20分,12,工程學(xué)科的演化(2),2020年7月21日1時20分,13,科學(xué)與工程的記錄周期,業(yè)界傳說 臨時解決方案 正式記錄 新問題 模型與理論 改進(jìn)的實(shí)踐,,,,,,,2020年7月21日1時20分,14,軟件工程的演化,,手工制造,生產(chǎn),科學(xué),專業(yè)工程,1965-70 算法、數(shù)據(jù),一些獨(dú)立的案例(算法、數(shù)據(jù)結(jié)構(gòu)、編譯器構(gòu)造,1980s軟件開發(fā)方法學(xué),,,,2020年7月21日1時20分,15,Software Archi
6、tecture in Practice第一章 構(gòu)架商業(yè)周期,2020年7月21日1時20分,16,構(gòu)架由什么決定?,構(gòu)架是否由系統(tǒng)需求決定? 將一份需求說明書給兩個不同的架構(gòu)師,他們是否能夠設(shè)計出同樣的架構(gòu)? 軟件構(gòu)架是技術(shù)、商業(yè)和社會等諸多因素共同作用的結(jié)果。,2020年7月21日1時20分,17,構(gòu)架從哪里來?,影響構(gòu)架的因素主要包括: 系統(tǒng)涉眾(stakeholder) 開發(fā)組織 構(gòu)架師的素質(zhì)和經(jīng)驗(yàn) 技術(shù)環(huán)境,2020年7月21日1時20分,18,2020年7月21日1時20分,19,系統(tǒng)涉眾(stakeholder),管理者:成本要低,人人都得干活 營銷人員:特性突出、投放市場快、成本
7、低、可與同類產(chǎn)品匹敵 終端用戶:行為、性能、安全性、可靠性、易用性 維護(hù)人員:可修改性強(qiáng) 客戶:成本低、及時交付、不要頻繁修改 ,2020年7月21日1時20分,20,,2020年7月21日1時20分,21,,2020年7月21日1時20分,22,開發(fā)組織,除了通過需求表示的組織目標(biāo)外,構(gòu)架還受開發(fā)組織的結(jié)構(gòu)或本質(zhì)的影響 對現(xiàn)存構(gòu)架的重用 對某一個基礎(chǔ)設(shè)施進(jìn)行長期的商業(yè)投資以實(shí)現(xiàn)某些戰(zhàn)略目標(biāo) 開發(fā)組織本身的結(jié)構(gòu)也會影響構(gòu)架的形成,2020年7月21日1時20分,23,構(gòu)架師的素質(zhì)和經(jīng)驗(yàn),構(gòu)架師先前的一些經(jīng)驗(yàn)、教育、培訓(xùn)以及所接觸到過的成功構(gòu)架模式都會影響到他們對某種構(gòu)架的選擇。,2020年7月
8、21日1時20分,24,,17世紀(jì)上半葉,北歐新教勢力與中歐天主教勢力發(fā)生了一場“三十年戰(zhàn)爭”,作為北歐新教勢力的代表,瑞典的軍事力量達(dá)到鼎盛時期。1625年,號稱“北方颶風(fēng)”的瑞典國王古斯塔夫斯阿道弗斯(Gustavs Adolphus)決心建造一艘史無前例的巨型新戰(zhàn)艦瓦薩(Vasa)戰(zhàn)艦。瓦薩戰(zhàn)艦確實(shí)是一艘令人望而生畏的戰(zhàn)艦:艦長70米,載員300人,在三層的甲板上共裝有64門重炮,火力之強(qiáng)讓人難以置信。,2020年7月21日1時20分,25,,1628年8月10日,這艘巨大的戰(zhàn)艦終于完工。在斯德哥爾摩,瓦薩戰(zhàn)艦舉行了盛大的下水典禮。禮炮聲中,戰(zhàn)艦揚(yáng)帆起航,乘風(fēng)前進(jìn)。在1萬多名圍觀者的目光
9、注視下,忽然,瓦薩號奇怪地?fù)u晃了一下,便向左舷傾斜。海水從炮孔處涌入船艙,戰(zhàn)艦迅速翻入水中,幾分鐘后,這艘雄偉戰(zhàn)艦的處女航也是唯一的一次航行結(jié)束了。瓦薩戰(zhàn)艦在它壯麗的起航時刻,帶著全身飄揚(yáng)的彩旗,沉沒于它誕生的港口。,2020年7月21日1時20分,26,,人們對瓦薩的沉沒做出了各種各樣的分析,最后的主要結(jié)論是:該艦制造工藝精良,但“比例嚴(yán)重失調(diào)”,也就是說,該戰(zhàn)艦的架構(gòu)存在缺陷。瓦薩的沉沒早已成為往事。然而,300多年后的今天,在企業(yè)信息系統(tǒng)領(lǐng)域,類似“瓦薩”這樣的故事卻比比皆是。處在工業(yè)高度發(fā)達(dá)的今天,在機(jī)械、電子、建筑、車船制造等各個領(lǐng)域,作為學(xué)科和工業(yè)的基石“架構(gòu)體系”早已形成完整的理
10、論和方法體系,但是,與這些成熟的工業(yè)領(lǐng)域相比,與企業(yè)信息系統(tǒng)相關(guān)的架構(gòu)體系,幾乎還處在原始和蒙昧的狀態(tài)。,2020年7月21日1時20分,27,理解架構(gòu):瓦薩戰(zhàn)艦的故事,1625年,瑞典國王古斯塔夫斯阿道弗斯(Gustavs Adolphus)決心建造一艘史無前例的巨型新戰(zhàn)艦 瓦薩(Vasa)戰(zhàn)艦。 瓦薩戰(zhàn)艦確實(shí)是一艘令人望而生畏的戰(zhàn)艦:艦長70米,載員300人,在三層的甲板上共裝有64門重炮,火力超強(qiáng)。,2020年7月21日1時20分,28,瓦薩戰(zhàn)艦的處女航,1628年8月10日,這艘巨大的戰(zhàn)艦終于完工。在斯德哥爾摩的王宮前,瓦薩戰(zhàn)艦舉行了盛大的下水典禮。 在1萬多名圍觀者的目光注視下,忽
11、然,瓦薩號奇怪地?fù)u晃了一下,便向左舷傾斜。海水涌入船艙,戰(zhàn)艦迅速翻入水中。幾分鐘后,這艘雄偉戰(zhàn)艦的處女航也是唯一的一次航行結(jié)束了。瓦薩戰(zhàn)艦在它壯麗的起航時刻,帶著全身飄揚(yáng)的彩旗,沉沒于它誕生的港口。,2020年7月21日1時20分,29,瓦薩戰(zhàn)艦為什么沉沒?,人們對瓦薩的沉沒做出了分析,最后的主要結(jié)論是: 該艦制造工藝精良,但“比例嚴(yán)重失調(diào)”,也就是說,該戰(zhàn)艦的架構(gòu)存在缺陷。,2020年7月21日1時20分,30,信息系統(tǒng)的“瓦薩”問題,同樣,在今天的企事業(yè)信息系統(tǒng)領(lǐng)域,“瓦薩”問題“架構(gòu)”成為需要解決的關(guān)鍵問題。,2020年7月21日1時20分,31,,2020年7月21日1時20分,32,
12、技術(shù)環(huán)境,技術(shù)環(huán)境可以看作是對構(gòu)架師素質(zhì)和經(jīng)驗(yàn)的特殊反映 代表某個時代的構(gòu)架師的普遍素質(zhì)和經(jīng)驗(yàn) 比如:在當(dāng)今的技術(shù)環(huán)境下,如果構(gòu)架師對信息系統(tǒng)的設(shè)計不考慮使用基于WEB的,面向?qū)ο蟮暮椭С种虚g件的方法是很難想像的,2020年7月21日1時20分,33,2020年7月21日1時20分,34,構(gòu)架所受的影響,,,,,,,,,,,,構(gòu)架師所受的影響,涉眾,開發(fā)組織,需求(質(zhì)量屬性),構(gòu)架師(小組),構(gòu)架,系統(tǒng),構(gòu)架師的經(jīng)驗(yàn),2020年7月21日1時20分,35,構(gòu)架商業(yè)周期(ABC),,,,,,,,,,,,構(gòu)架師所受的影響,涉眾,開發(fā)組織,需求(質(zhì)量屬性),構(gòu)架師(小組),構(gòu)架,系統(tǒng),構(gòu)架師的經(jīng)驗(yàn),
13、2020年7月21日1時20分,36,ABC構(gòu)架的反影響力,構(gòu)架會影響開發(fā)組織的結(jié)構(gòu) 構(gòu)架會影響開發(fā)組織的目標(biāo) 構(gòu)架會影響客戶對一個系統(tǒng)的要求 構(gòu)建系統(tǒng)的過程豐富了整個開發(fā)團(tuán)隊的經(jīng)驗(yàn),從而將影響設(shè)計師對后繼系統(tǒng)的設(shè)計 一些系統(tǒng)會影響并實(shí)際改變軟件工程的環(huán)境,也就是系統(tǒng)開發(fā)人員學(xué)習(xí)或?qū)嵺`的技術(shù)環(huán)境,2020年7月21日1時20分,37,2020年7月21日1時20分,38,2020年7月21日1時20分,39,2020年7月21日1時20分,40,Data Banker,2020年7月21日1時20分,41,2020年7月21日1時20分,42,第二章 什么是軟件構(gòu)架,,2020年7月21日1時
14、20分,43,構(gòu)架概念的澄清,控制處理(CP),特征損失模型 (MODP),回響模型 (MODR),噪音模型 (MODN),,,,,,這是一個構(gòu)架(描述)嗎?,水下聲學(xué)模擬系統(tǒng),2020年7月21日1時20分,44,構(gòu)架定義,Len Bass, Paul Clements等人對構(gòu)架所做的定義: 某一個軟件或計算系統(tǒng)的軟件構(gòu)架是該系統(tǒng)的一個或多個結(jié)構(gòu),它由軟件元素、這些元素的外觀可見屬性以及這些元素之間的關(guān)系組成。,2020年7月21日1時20分,45,構(gòu)架含義(1),1.構(gòu)架定義了 軟件元素 構(gòu)架必須省略元素中與其交互無關(guān)的某些信息 接口VS.內(nèi)部實(shí)現(xiàn) 2.系統(tǒng)可能而且確實(shí)由多個結(jié)構(gòu)組成 其中
15、任何一個結(jié)構(gòu)并不能與構(gòu)架等同 結(jié)構(gòu)的多重性是理解軟件構(gòu)架的關(guān)鍵,2020年7月21日1時20分,46,構(gòu)架的含義(2),3.具有軟件的每個計算系統(tǒng)都有一個軟件構(gòu)架 每個軟件系統(tǒng)都可以看成由若干個元素及其相互聯(lián)系構(gòu)成 系統(tǒng)構(gòu)架VS.構(gòu)架描述 4.如果某個元素的行為可以從其它元素的角度觀察到,這個元素的行為就是構(gòu)架的內(nèi)容 這種行為使各元素的交互成為可能,是構(gòu)架的一部分 5.構(gòu)架的存在與構(gòu)架的優(yōu)劣無關(guān),2020年7月21日1時20分,47,構(gòu)架的其他定義,構(gòu)架是一種高層設(shè)計 構(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è)計與演
16、化的原理 構(gòu)架是組件和連接器,2020年7月21日1時20分,48,構(gòu)架模式、參考模型和參考構(gòu)架,構(gòu)架模式是對元素和關(guān)系類型以及一組對其使用方式的限制的描述 參考模型是一種考慮數(shù)據(jù)流的功能劃分 參考架構(gòu)是映射到軟件元素(它們相互使用,共同實(shí)現(xiàn)在參考模型中的定義的功能)及元素之間數(shù)據(jù)流上的參考模型 (這些都是理解架構(gòu)中的元素的一些有用的概念),2020年7月21日1時20分,49,2020年7月21日1時20分,50,構(gòu)架模式、參考模型和參考構(gòu)架的關(guān)系,參考模型,構(gòu)架模式,參考構(gòu)架,軟件構(gòu)架,,,,2020年7月21日1時20分,51,軟件構(gòu)架的作用,涉眾之間的交流 代碼級別的系統(tǒng)抽象程序員的交
17、流工具 構(gòu)架級別的系統(tǒng)的抽象包括程序員在內(nèi)的絕大多數(shù)系統(tǒng)涉眾都借助軟件體系結(jié)構(gòu)來進(jìn)行彼此理解、協(xié)商、達(dá)成共識或者相互溝通的基礎(chǔ)。 系統(tǒng)設(shè)計的前期決策 軟件構(gòu)架是我們所開發(fā)的軟件系統(tǒng)最早期設(shè)計決策的體現(xiàn),它們對軟件系統(tǒng)的后續(xù)開發(fā)、部署和維護(hù)具有相當(dāng)重要的影響。 構(gòu)架設(shè)計是能夠?qū)λ_發(fā)系統(tǒng)進(jìn)行分析的最早時間點(diǎn)。 可傳遞的系統(tǒng)級抽象 軟件構(gòu)架是關(guān)于系統(tǒng)構(gòu)造以及系統(tǒng)各個元素工作機(jī)制的相對較小、卻又能夠突出反映問題的模型。 這種模型可以在多個系統(tǒng)之間傳遞,特別是可以應(yīng)用到具有相似質(zhì)量屬性和功能需求的系統(tǒng)中,并能夠促進(jìn)大規(guī)模軟件的系統(tǒng)級復(fù)用。,2020年7月21日1時20分,52,2. What is Software Architecture,ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description,2020年7月21日1時20分,53,Architecture metamodel,,2020年7月21日1時20分,54,
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第7課時圖形的位置練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第1課時圖形的認(rèn)識與測量1平面圖形的認(rèn)識練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊4比例1比例的意義和基本性質(zhì)第3課時解比例練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第7課時圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊1負(fù)數(shù)第1課時負(fù)數(shù)的初步認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)上冊期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊易錯清單十二課件新人教版
- 標(biāo)準(zhǔn)工時講義
- 2021年一年級語文上冊第六單元知識要點(diǎn)習(xí)題課件新人教版
- 2022春一年級語文下冊課文5識字測評習(xí)題課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時數(shù)學(xué)思考1練習(xí)課件新人教版