軟件體系結(jié)構(gòu)1軟件體系結(jié)構(gòu)發(fā)展中的若干重要問題課件_第1頁
軟件體系結(jié)構(gòu)1軟件體系結(jié)構(gòu)發(fā)展中的若干重要問題課件_第2頁
軟件體系結(jié)構(gòu)1軟件體系結(jié)構(gòu)發(fā)展中的若干重要問題課件_第3頁
軟件體系結(jié)構(gòu)1軟件體系結(jié)構(gòu)發(fā)展中的若干重要問題課件_第4頁
軟件體系結(jié)構(gòu)1軟件體系結(jié)構(gòu)發(fā)展中的若干重要問題課件_第5頁
已閱讀5頁,還剩177頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件體系結(jié)構(gòu)(1)軟件體系結(jié)構(gòu)發(fā)展中的若干重要問題覃征 教授Software Architecture目 錄THU SAGroup課程簡(jiǎn)介1軟件體系結(jié)構(gòu)的定義和發(fā)展綜述2工業(yè)軟件體系結(jié)構(gòu)的主要分類3軟件體系結(jié)構(gòu)的發(fā)展方向4案例研究52課程介紹授課教師主講教授: 覃征辦公室 清華大學(xué)軟件學(xué)院 208室電話 62795399電子郵件 qingzh助教組邢劍寬 xjk05章晉學(xué) zhang-jx08THU SAGroup3課程介紹教材及參考書教材覃征等,軟件體系結(jié)構(gòu)(第二版),清華大學(xué)出版社,2008Qin Zheng et al.,Software Architecture,Springer Ve

2、rlag, 2008其它參考資料Len Bass,Paul Clements,Rick Kazman,Software Architecture in Practice 2nd ed, Addison Wesley, 2003Paul Clements, Rick Kazman, Mark Klein, Evaluating Software Architectures, 清華大學(xué)出版社, 2003Paul Clements, Linda Northrop, Software Product Line: Practices and Patterns, 清華大學(xué)出版社, 2003Christin

3、e Hofmeister, Robert Nord, Dilip Soni, Applied Software Architecture, Addison Wesley, 2000Jacobson, Software Reuse: Architecture, Process, and Organization for Business Success, Addison Wesley, 2000THU SAGroup4教材THU SAGroup5課程介紹課程目標(biāo)掌握軟件體系結(jié)構(gòu)的概念、組成和相關(guān)領(lǐng)域國內(nèi)外研究現(xiàn)狀。明確軟件體系結(jié)構(gòu)劃分標(biāo)準(zhǔn)、設(shè)計(jì)原則。學(xué)習(xí)軟件體系結(jié)構(gòu)構(gòu)建模型、軟件體系結(jié)構(gòu)組態(tài)分析

4、方法、軟件體系結(jié)構(gòu)形式化描述方法、軟件體系結(jié)構(gòu)集成開發(fā)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)方法幾個(gè)方面的知識(shí),并掌握在實(shí)際系統(tǒng)開發(fā)過程中分析、設(shè)計(jì)、應(yīng)用軟件體系結(jié)構(gòu)思想的技能。THU SAGroup6課程介紹課程成績(jī)平時(shí):40%課堂測(cè)試:10%(課堂提問、課堂考試、課堂報(bào)告)平時(shí)作業(yè):30%期末考查:60%考試形式:以45人為一個(gè)小組,共同完成一個(gè)規(guī)定題目的科技論文THU SAGroup7課程介紹課程安排第一講:軟件體系結(jié)構(gòu)發(fā)展中的若干重要問題( 3)第二講:軟件體系結(jié)構(gòu)風(fēng)格與模式( 9)第三講:軟件體系結(jié)構(gòu)組態(tài)分析與應(yīng)用(2*)第四講:軟件體系結(jié)構(gòu)形式化描述(6)第五講:CSP和軟件體系結(jié)構(gòu)描述語言(3*)第六

5、講:軟件體系結(jié)構(gòu)集成開發(fā)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)(3)第七講:柔性軟件體系結(jié)構(gòu)( 3*)第八講:軟件體系結(jié)構(gòu)研究的展望( 3)括號(hào)中為課時(shí)數(shù),帶星的為助教課THU SAGroup8課程體系THU SAGroup9什么是軟件體系結(jié)構(gòu)如何利用軟件體系結(jié)構(gòu)進(jìn)行宏觀設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)案例分析如何利用形式化基礎(chǔ)描述軟件體系結(jié)構(gòu)如何進(jìn)行軟件體系結(jié)構(gòu)開發(fā)什么是柔性軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)還有什么研究問題目 錄THU SAGroup課程簡(jiǎn)介1軟件體系結(jié)構(gòu)的定義和發(fā)展綜述2工業(yè)軟件體系結(jié)構(gòu)的主要分類3軟件體系結(jié)構(gòu)的發(fā)展方向4案例研究510研究背景什么是軟件軟件一般認(rèn)為由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和

6、性能的指令集。數(shù)據(jù)結(jié)構(gòu):使程序能夠正確運(yùn)行的數(shù)據(jù)結(jié)構(gòu)。文檔:描述程序研制過程、方法及使用的文檔。THU SAGroup11研究背景軟件的特點(diǎn)抽象性:邏輯實(shí)體,可記錄,但看不到可復(fù)制性:與開發(fā)成本相比,復(fù)制成本很低無折舊受硬件制約未完全擺脫手工工藝開發(fā)費(fèi)用高THU SAGroup12研究背景計(jì)算機(jī)軟件發(fā)展的三個(gè)時(shí)期早期時(shí)代(60年代中期之前)程序設(shè)計(jì)階段硬件通用,軟件專用;程序規(guī)模小,編寫者和使用者為同一人(同組人)。第二代(60年代中期-70年代中期)程序系統(tǒng)階段出現(xiàn)“軟件作坊”、產(chǎn)品軟件;“個(gè)體化”開發(fā)方法。第三代(70年代中期之后)軟件工程階段軟件開發(fā)成為一門新興的工程學(xué)科軟件工程。THU

7、 SAGroup13研究背景THU SAGroup14程序設(shè)計(jì)程序系統(tǒng)軟件工程軟件范疇程序程序及說明書產(chǎn)品軟件(項(xiàng)目軟件)主要程序設(shè)計(jì)語言匯編及機(jī)器語言高級(jí)語言高級(jí)語言系統(tǒng)軟件工作范圍程序編寫設(shè)計(jì)、測(cè)試軟件生存期需求者程序設(shè)計(jì)者本人少數(shù)用戶市場(chǎng)用戶計(jì)算機(jī)軟件發(fā)展的三個(gè)時(shí)期及特點(diǎn)研究背景THU SAGroup15程序設(shè)計(jì)程序系統(tǒng)軟件工程維護(hù)責(zé)任者程序設(shè)計(jì)者開發(fā)小組專職維護(hù)人員硬件特征價(jià)高、存儲(chǔ)量小、穩(wěn)定性差價(jià)低、速度、容量、穩(wěn)定性明顯提高向超高速、大容量、微型化發(fā)展軟件特征完全不受重視軟件技術(shù)的發(fā)展不滿足需要,出現(xiàn)軟件危機(jī)開發(fā)技術(shù)有進(jìn)步,但未獲得突破性進(jìn)展,軟件危機(jī)沒有完全擺脫計(jì)算機(jī)軟件發(fā)展的三

8、個(gè)時(shí)期及特點(diǎn)研究背景我們需要的是軟件符合質(zhì)量要求!軟件需求是進(jìn)行“質(zhì)量”度量的基礎(chǔ),與需求不符就是質(zhì)量不高。通常有一組“隱含需求(implicit requirements)”是不被提及的(如對(duì)維護(hù)性的需求)。如果軟件符合了明確的需求卻沒有滿足隱含需求,軟件質(zhì)量仍然值得懷疑。THU SAGroup16性能Performance可用性Usability可靠性Availability可擴(kuò)展性Extensibility安全性 Security功能性Functionality為什么需要軟件體系結(jié)構(gòu)隨著社會(huì)的巨大進(jìn)步,計(jì)算機(jī)系統(tǒng)的整體發(fā)展,新技術(shù)的不斷涌現(xiàn),使計(jì)算機(jī)應(yīng)用的需求迅速增加。而軟件費(fèi)用的增加,

9、高可靠性能下降,維護(hù)工作量增大,出現(xiàn)了嚴(yán)重的“軟件危機(jī)”。軟件危機(jī)已經(jīng)持續(xù)了三十多年,表現(xiàn)為:軟件的產(chǎn)品質(zhì)量難以保障軟件的開發(fā)效率難以提高THU SAGroup17為什么需要軟件體系結(jié)構(gòu)THU SAGroup18軟件失敗Software Failure最常見錯(cuò)誤形式:變量取值超過允許范圍用戶使用軟件超載(Overload)現(xiàn)代系統(tǒng)的復(fù)雜性往往集中于軟件部分(complexity)代碼正確,設(shè)計(jì)錯(cuò)誤(Design Error)其他軟件開發(fā)者不參與情況下操作系統(tǒng)以及硬件改變軟件失敗的原因研究背景解決問題的想法更好的管理 (Better management)出眾的團(tuán)隊(duì)組織(Different te

10、am organizations)更好的語言和工具(Better languages & tools)統(tǒng)一的編程 規(guī)范(Uniform coding conventions) 必須意識(shí)到:“軟件” 編程,它有自己的生命周期 (life cycle)。大型軟件系統(tǒng)的開發(fā)與其它工程項(xiàng)目如建造橋梁、制造飛機(jī)、輪船等的開發(fā)是同理的。THU SAGroup19研究背景THU SAGroup20軟件質(zhì)量問題對(duì)經(jīng)濟(jì)的影響:美國NIST(國家商業(yè)標(biāo)準(zhǔn)和技術(shù))報(bào)告,“由于軟件bug的普遍存在,使美國經(jīng)濟(jì)每年損失 $590.5億美元”,而Standish組織的數(shù)據(jù)是每年2000億美元改進(jìn)軟件質(zhì)量已經(jīng)成為取得高投資

11、回報(bào)率的直接途徑,質(zhì)量低的公司只會(huì)被遺忘軟件質(zhì)量問題對(duì)生命安全的威脅:1963 年, 美國金星探測(cè)火箭飛行失敗,造成經(jīng)濟(jì)損失達(dá)一千萬美元,因?yàn)榭刂瞥绦蛑械囊粋€(gè)極小的錯(cuò)誤, 即將一逗號(hào)誤寫為一小數(shù)點(diǎn)!由于著陸系統(tǒng)的高度報(bào)警程序問題部分導(dǎo)致了1997年發(fā)生在關(guān)島的韓國客機(jī)空難,228人遇難。1996 年, 歐洲耗資高達(dá)7 億美元的Ariane5 火箭發(fā)射后解體爆炸, 究其原因是慣性參考系統(tǒng)中的一個(gè)軟件設(shè)計(jì)錯(cuò)誤, 并由于認(rèn)為這個(gè)軟件不會(huì)發(fā)生錯(cuò)誤而缺乏充分的測(cè)試。研究背景如果有什么東西可以在軟件開發(fā)之前用于描述軟件,并能進(jìn)行質(zhì)量分析,從而保證軟件質(zhì)量就好了軟件體系結(jié)構(gòu)THU SAGroup21軟件體系

12、結(jié)構(gòu)起源THU SAGroup22結(jié)構(gòu)設(shè)計(jì)師:設(shè)計(jì)圖紙管理人員:施工計(jì)劃施工人員:建造建筑物軟件體系結(jié)構(gòu)思想來源于建筑業(yè)軟件體系結(jié)構(gòu)起源THU SAGroup23建立模型軟件體系結(jié)構(gòu)起源THU SAGroup24站點(diǎn)外表結(jié)構(gòu)服務(wù)空間計(jì)劃 結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)起源THU SAGroup25最終的建筑鳥巢更多的建筑源自于體系結(jié)構(gòu)設(shè)計(jì)THU SAGroup26瑪雅阿茲特克金字塔瑞士保險(xiǎn)公司大樓如果建筑的復(fù)雜度還不夠高,那么一個(gè)城市呢?THU SAGroup27軟件體系結(jié)構(gòu)的本意THU SAGroup28對(duì)于大規(guī)模的,分布的,需要協(xié)作的,需要交互的,需要監(jiān)測(cè)的,需要擴(kuò)展的,需要演化的復(fù)雜軟件系統(tǒng)的規(guī)劃

13、。軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史程序設(shè)計(jì)語言的進(jìn)化抽象級(jí)別(Abstract Level)THU SAGroup29面向代碼段面向問題空間面向機(jī)器面向機(jī)器 是一種針對(duì)如何直接操作機(jī)器指令來使用計(jì)算機(jī)資源的抽象級(jí)別。面向代碼段 將可復(fù)用的功能代碼總結(jié)和包裝以保證重用。如基本的數(shù)值計(jì)算,過程控制等。面向問題空間 是這樣一種抽象級(jí)別。它直接將問題空間中的實(shí)體以及實(shí)體的關(guān)系表達(dá)出來。如利用“類”來表示物理世界的實(shí)物。軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史軟件開發(fā)的進(jìn)化關(guān)注點(diǎn)(Concern)THU SAGroup301靈活使用機(jī)器使用的底層指令和數(shù)據(jù)(Primitive instructions and data)2提高開發(fā)效率

14、、代碼可讀性、易維護(hù)性(Efficiency and convenience in code reading and maintenance)3實(shí)現(xiàn)軟件產(chǎn)品線式生產(chǎn)(Software Product Line)軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史1960年代,軟件危機(jī)爆發(fā)1968年,軟件工程被提出NATO software engineering conference1968年,軟件體系結(jié)構(gòu)思想被提出“The Structure of the THE Multiprogramming System” authored by Edsger Dijkstra ( 艾德勒 戴克斯加,荷蘭)1975年,軟件體系結(jié)構(gòu)思

15、想被升華“Architecture is the complete and detailed specification of the user interface” by Frederick Brooks (弗蘭德里克 布魯克斯,美國)THU SAGroup31Edsger DijkstraFrederick P. Brooks軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史19721976年,現(xiàn)代軟件開發(fā)思想被提出information hiding and usage of interface(Parnas,1972)structure separation (Parnas, 1974)the relationsh

16、ips between software structure and its quality (Parnas,1976) 戴維 帕納斯,美國1991年,”Software Architecture”在正式文獻(xiàn)中被使用Software Architecture: Integrating Process and Technology authored Walker E. Royce and Winston W. Royce沃克 羅伊斯;溫斯頓 羅伊斯, 美國THU SAGroup32David ParnasWalker E. Royce軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史1993年, Software Archi

17、tecture被定義,此定義成為軟件體系結(jié)構(gòu)研究的公認(rèn)基礎(chǔ)An Introduction to Software Architecture authored by David Garlan and Mary Shaw20世紀(jì)90年代 ,軟件體系結(jié)構(gòu)描述語言(ADL)興盛Darwin, Wright, C2, Rapide, MetaH, ACME, 20世紀(jì)90年代,軟件體系結(jié)構(gòu)評(píng)估方法興起SAAM, ATAM, 2000年, IEEE1471-2000標(biāo)準(zhǔn)IEEE Recommended practice for architectural description of software-i

18、ntensive systemsTHU SAGroup33軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史2000年, Software Architecture Product LineThe Design and Use of Software Architecture authored by Bosch2003年,UML2.0 發(fā)布2000年至今,動(dòng)態(tài)軟件體系結(jié)構(gòu)-ADL,LIME, dynamic Wright, THU SAGroup34一些經(jīng)典的文獻(xiàn)列表M. Shaw and D. Garlan, “An Introduction to Software Architecture,” V. Ambriola

19、and G. Tortora, eds., Advances in Software Engineering and Knowledge Engineering, vol. 2, World Scientific Publishing, 1993, pp. 139D.E. Perry and A.L. Wolf, “Foundations for the Study of Software Architecture,” ACM Software Eng. Notes, vol. 17, no. 4, 1992, pp. 4052. D.L. Parnas, “On the Criteria t

20、o Be Used in Decomposing Systems into Modules,” Comm. ACM, vol. 15, no. 12, 1972, pp. 10531058. D.L. Parnas, “On the Design and Development of Program Families,” IEEE Trans. Software Eng., vol. 2, no. 1, 1976, pp. 19.D.L. Parnas, P. Clements, and D.M. Weiss, “The Modular Structure of Complex Systems

21、,” IEEE Trans. Software Eng., vol. 11, no. 3, 1985, pp. 259266.F. DeRemer and H. Kron, “Programming-in-the-Large versus Programming-in-the-Small,” Proc. Intl Conf. Reliable Software, ACM Press, 1975, pp. 114121. THU SAGroup35一些經(jīng)典的文獻(xiàn)列表D. Soni, R. Nord, and C. Hofmeister, “Software Architecture in Ind

22、ustrial Applications,” Proc. 17th Intl Conf. Software Eng. (ICSE 95), ACM Press, 1995, pp. 196207. P. Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, vol. 12, no. 6, 1995, pp. 4550. B.W. Lampson, “Hints for Computer System Design,” Operating Systems Rev., vol. 15, no. 5, 1983, pp. 334

23、8; reprinted in IEEE Software, vol. 1, no. 1, 1984, pp. 1128.J.A. Mills, “A Pragmatic View of the System Architect,” Comm. ACM, vol. 28, no. 7, 1985, pp. 708717.W.E. Royce and W. Royce, “Software Architecture: Integrating Process and Technology,” TRW Quest, vol. 14, no. 1, 1991, pp. 215. M. Shaw and

24、 P. Clements, “A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems,” Proc. 21st Intl Computer Software and Applications Conf. (COMPSAC 97), IEEE CS Press, 1997, pp. 613.M. Shaw, “The Coming-of-Age of Software Architecture Research,” Proc. 23rd Intl Conf

25、. Software Eng. (ICSE 01), IEEE CS Press, 2001, pp. 656664a.THU SAGroup36軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史THU SAGroup37Mary Shaw瑪麗 娋Frederick Brooks弗蘭德 里克 布魯克斯Barry Boehm拜瑞 波姆Carliss Baldwin卡利斯 鮑德溫NSF 2007 Science of Design Principal Investigators (PI) Meeting 軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史THU SAGroup38萌芽期發(fā)展期成熟期軟件體系結(jié)構(gòu)發(fā)展簡(jiǎn)史THU SAGroup39那么THU S

26、AGroup40什么是軟件體系結(jié)構(gòu)?汽車傳動(dòng)系統(tǒng)設(shè)計(jì)THU SAGroup41Xbox 360使用的三核處理器設(shè)計(jì)THU SAGroup42波音 787設(shè)計(jì)THU SAGroup43航空母艦設(shè)計(jì)概念圖THU SAGroup44操作系統(tǒng)體系結(jié)構(gòu)(以Ubuntu Linux為例)THU SAGroup45軟件體系結(jié)構(gòu)Lightning FrameworkTHU SAGroup46軟件體系結(jié)構(gòu)概述 自NATO于1968年提出軟件工程概念以來,軟件工程界已經(jīng)提出了一系列的理論、方法、語言和工具,解決了軟件開發(fā)過程中的若干問題.但是,軟件固有的復(fù)雜性、易變性和不可見性,使得軟件開發(fā)周期長(zhǎng)、代價(jià)高和質(zhì)量低

27、的問題依然存在.大量實(shí)踐統(tǒng)計(jì)表明:大系統(tǒng)軟件開發(fā)中70的錯(cuò)誤是由需求和軟件設(shè)計(jì)階段引入的;而且錯(cuò)誤在系統(tǒng)中存在的時(shí)間愈長(zhǎng)則愈難發(fā)現(xiàn),解決這些錯(cuò)誤的代價(jià)也愈高. 為了提高軟件需求和軟件設(shè)計(jì)的質(zhì)量,軟件工程界提出了需求分析工程技術(shù)和各種軟件建模技術(shù).但是在需求與設(shè)計(jì)之間仍存在一條很難逾越的鴻溝,即缺乏能夠反映做決策的中間過程,從而很難有效地將需求轉(zhuǎn)換為相應(yīng)的設(shè)計(jì).為此,軟件體系結(jié)構(gòu)概念應(yīng)運(yùn)而生,并試圖在軟件需求與軟件設(shè)計(jì)之間架起一座橋梁,著重解決軟件系統(tǒng)的結(jié)構(gòu)和需求向?qū)崿F(xiàn)平坦地過渡的問題. THU SAGroup47軟件體系結(jié)構(gòu)概述軟件體系結(jié)構(gòu)基本概念 就體系結(jié)構(gòu)的本意而言,它是指建立系統(tǒng)時(shí)的構(gòu)造

28、范型、構(gòu)造風(fēng)格和構(gòu)造模式,軟件體系結(jié)構(gòu)對(duì)于軟件系統(tǒng)的構(gòu)造所起的是指導(dǎo)性的作用,它拋開了軟件系統(tǒng)的功能細(xì)節(jié),著重于討論軟件系統(tǒng)的總體框架。THU SAGroup48開發(fā)了5年,投入資金達(dá)300多億美元,歷史上代碼量最大,達(dá)到5000萬行,僅核心工程師就有9000人團(tuán)隊(duì)的龐大軟件開發(fā)項(xiàng)目基于軟件體系結(jié)構(gòu)的分析、評(píng)估、計(jì)劃、組織、開發(fā)、測(cè)試軟件體系結(jié)構(gòu)概述對(duì)于一個(gè)軟件開發(fā)單位來說,選擇合適的體系結(jié)構(gòu)是最重要的決策之一良好的體系結(jié)構(gòu)可以維系軟件系統(tǒng)的完整性,使得開發(fā)和維護(hù)工作不至于雜亂無章;還可以簡(jiǎn)化軟件系統(tǒng)復(fù)雜性,讓眾多的開發(fā)單位的軟件工程師們能以并行方式開展工作.THU SAGroup49軟件體系

29、結(jié)構(gòu)概述軟件體系結(jié)構(gòu)基本概念廣義而言,軟件系統(tǒng)結(jié)構(gòu)涉及多方面的內(nèi)容:軟件的成份及系統(tǒng)框架;軟件成份的選擇,各成分之間的相互作用,軟件成份的進(jìn)一步復(fù)合以及指導(dǎo)軟件復(fù)合過程的總體模式;系統(tǒng)的功能、性能、設(shè)計(jì)以及從多種方案及選項(xiàng)中進(jìn)行選擇的決策。可見,軟件體系結(jié)構(gòu)更為關(guān)注的是系統(tǒng)結(jié)構(gòu)及其成份,而方法論更關(guān)心系統(tǒng)的開發(fā)過程THU SAGroup50軟件體系結(jié)構(gòu)概述Perry和Wolf根據(jù)軟件生命周期各階段相應(yīng)的實(shí)體、屬性、關(guān)系、主要產(chǎn)品和評(píng)估標(biāo)準(zhǔn),將軟件開發(fā)過程分為如下階段:需求分析:主要根據(jù)用戶的需求,決定軟件的功能;體系結(jié)構(gòu)設(shè)計(jì):選擇構(gòu)件、構(gòu)件間相互關(guān)系以及對(duì)它們的約束,并以此為框架,為詳細(xì)設(shè)計(jì)奠

30、定基礎(chǔ);詳細(xì)設(shè)計(jì):主要對(duì)系統(tǒng)進(jìn)行模塊化和描述各個(gè)構(gòu)件間的詳細(xì)接口、算法和數(shù)據(jù)結(jié)構(gòu)類型等;實(shí)現(xiàn):使用程序設(shè)計(jì)語言實(shí)現(xiàn)設(shè)計(jì)方案的要求。THU SAGroup51軟件體系結(jié)構(gòu)概述軟件體系結(jié)構(gòu)研究與傳統(tǒng)軟件工程方法學(xué)的不同之處在于: 所關(guān)心的問題不同 描述的著眼點(diǎn)不同 抽象層次不同 THU SAGroup52從不同角度看太陽軟件體系結(jié)構(gòu)的研究方法學(xué)院派測(cè)重于軟件體系結(jié)構(gòu)形式化理論研究。注重抽象、規(guī)約和演算。實(shí)踐派將軟件體系結(jié)構(gòu)設(shè)計(jì)、描述與表示同傳統(tǒng)的軟件系統(tǒng)建模視為一體,以體系結(jié)構(gòu)作為整個(gè)軟件開發(fā)過程的核心。結(jié)合派試圖將以上二者結(jié)合以來,將形式化理論應(yīng)用于實(shí)際項(xiàng)目中。THU SAGroup53軟件體系

31、結(jié)構(gòu)定義長(zhǎng)期以來,CMU-SEI在其網(wǎng)站上公開征集軟件體系結(jié)構(gòu)的定義至今已有百余種。最近較有影響力的定義有: 卡耐基梅隆大學(xué)Bass 等人于2003年在軟件構(gòu)架實(shí)踐一書中提出,軟件體系結(jié)構(gòu)為系統(tǒng)的結(jié)構(gòu)(structure or structures),包含軟件元素、軟件元素外部可見的屬性以及這些軟件元素之間的關(guān)系。軟件體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu)定義的發(fā)展演變IEEE 610.12 ,1990Vestal, 1993Garlan,1993Gacek, 1995Bosch, 2000Perry, 2000 IEEE Std1471-2000, 2000軟件體系結(jié)構(gòu)定義IEEE 610.12(1990

32、年)軟件工程標(biāo)準(zhǔn)詞匯定義:SA=component, connector, environment, principle.體系結(jié)構(gòu)是以構(gòu)件、構(gòu)件之間的關(guān)系、構(gòu)件與環(huán)境之間的關(guān)系為內(nèi)容的某一系統(tǒng)的基本組織結(jié)構(gòu),以及指導(dǎo)上述內(nèi)容設(shè)計(jì)與演化的原理。Honeywell實(shí)驗(yàn)室的Vestal在1993年提出了如下模型:SA=component, idioms/styles, common patterns of interaction.軟件由構(gòu)件組成,構(gòu)件之間通過通用的互操作模式相連。體系結(jié)構(gòu)風(fēng)格描述了一種通用的設(shè)計(jì)模式,可滿足特定系列的應(yīng)用需求。軟件體系結(jié)構(gòu)定義卡耐基梅隆大學(xué)的Garlan于1993年對(duì)

33、軟件體系結(jié)構(gòu)做出了如下定義: SA = Components, Connectors, Constraints構(gòu)件(Components)是功能單元,執(zhí)行預(yù)定義的服務(wù)并且與其他構(gòu)件交互。連接器( Connectors )定義交互協(xié)議與策略。約束(Constraints) 定義了系統(tǒng)必須服從的規(guī)則。軟件體系結(jié)構(gòu)定義而南加州大學(xué)的軟件工程研究中心的Gacek于1995年,提出了如下的概念:SA = Components, Connections, Constraints, Stakeholder Needs, Rationale軟件體系結(jié)構(gòu)定義在此定義中,構(gòu)件(component)與連接(conn

34、ection)的設(shè)計(jì)將依照涉眾(Stakeholder) 的需求。涉眾(Stakeholder)指參與軟件系統(tǒng)項(xiàng)目的人員,包括項(xiàng)目經(jīng)理,程序員,市場(chǎng)營(yíng)銷人員,消費(fèi)者與使用者等。理念(Rationale)指權(quán)衡存在下的策略。 該定義反映了對(duì)運(yùn)行時(shí)結(jié)構(gòu)的實(shí)際影響因素,是為了使軟件體系結(jié)構(gòu)研究能將學(xué)術(shù)與實(shí)際應(yīng)用聯(lián)系起來。軟件體系結(jié)構(gòu)定義瑞典Blekinge技術(shù)學(xué)院的Bosch在2000年則對(duì)軟件體系結(jié)構(gòu)給出了如下的定義: The architecture of a software system is concerned with the top-level decomposition of the

35、 system into its main components. 軟件系統(tǒng)的體系結(jié)構(gòu)是對(duì)系統(tǒng)從頂層分解為主要構(gòu)件的考量。decomposition軟件體系結(jié)構(gòu)定義在該定義中,軟件體系結(jié)構(gòu)被認(rèn)為是系統(tǒng)結(jié)構(gòu)的唯一部署,僅關(guān)注單一的靜態(tài)結(jié)構(gòu)。此外需要注意的是,這里的術(shù)語component的涵義有所不同,可以被認(rèn)為是模塊基本的執(zhí)行單元。軟件體系結(jié)構(gòu)定義2000年Texas大學(xué)的Perry & Wolf模型如下:SA=elements, form, rational.軟件體系結(jié)構(gòu)定義該模型中,軟件體系結(jié)構(gòu)是由一組元素(elements)構(gòu)成。這組元素分成3類:處理元素(processing eleme

36、nts)、數(shù)據(jù)元素(data elements)和連接元素(connecting elements)。軟件體系結(jié)構(gòu)形式(form)是由專有特性(properties)和關(guān)系(relationship)組成。專有特性用于限制軟件體系結(jié)構(gòu)元素的選擇,關(guān)系用于限制軟件體系結(jié)構(gòu)元素組合的拓?fù)浣Y(jié)構(gòu)。在多個(gè)體系結(jié)構(gòu)方案中選擇合適的體系結(jié)構(gòu)方案往往基于一組準(zhǔn)則(rational)。軟件體系結(jié)構(gòu)定義同樣在2000年發(fā)布的IEEE Std1471-2000,則對(duì)軟件體系結(jié)構(gòu)做出了如下定義:軟件系統(tǒng)的基本組織,包含構(gòu)件、構(gòu)件之間、構(gòu)件與環(huán)境之間的關(guān)系,以及相關(guān)的設(shè)計(jì)與演化原則等。不僅如此,該標(biāo)準(zhǔn)還對(duì)軟件體系結(jié)構(gòu)所

37、涉及的相關(guān)概念做出了詳細(xì)定義,例如需求者,架構(gòu)師,系統(tǒng)涉眾等等。IEEE Std1471-2000中的若干概念獲取者(acquirer): An organization that procures a system, software product, or software service from a supplier. (The acquirer could be a buyer, customer, owner, user, or purchaser.)軟件系統(tǒng)或軟件產(chǎn)品的接收方架構(gòu)(architecting): The activities of defining, documen

38、ting, maintaining, improving, and certifying proper implementation of an architecture.定義,編檔,維護(hù),改進(jìn)和驗(yàn)證體系結(jié)構(gòu)正確實(shí)現(xiàn)的一組活動(dòng)IEEE Std1471-2000中的若干概念架構(gòu)師(architect): The person, team, or organization responsible for systems architecture.負(fù)責(zé)軟件系統(tǒng)體系結(jié)構(gòu)的個(gè)人,團(tuán)隊(duì)或者組織體系結(jié)構(gòu)描述(architectural description ):A collection of produc

39、ts to document an architecture.一組記錄軟件體系結(jié)構(gòu)的文檔體系結(jié)構(gòu)(architecture): The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.軟件系統(tǒng)中構(gòu)件,構(gòu)件之間的關(guān)系,構(gòu)件與環(huán)境之間的關(guān)系,以及指導(dǎo)設(shè)計(jì)和演化的基本組織。IEEE Std1471-2

40、000中的若干概念生命周期模型(life cycle model): A framework containing the processes, activities, and tasks involved in the development, operation, and maintenance of a software product, which spans the life of the system from the definition of its requirements to the termination of its use.圍繞整個(gè)軟件開發(fā)過程進(jìn)行的一組過程和活動(dòng),

41、以周而復(fù)始的方式存在軟件系統(tǒng)(system): A collection of components organized to accomplish a specific function or set of functions.組織起來完成某些特定功能的一組構(gòu)件IEEE Std1471-2000中的若干概念系統(tǒng)涉眾(system stakeholder): An individual, team, or organization (or classes thereof) with interests in, or concerns relative to, a system.系統(tǒng)利益相關(guān)者視

42、圖(view): A representation of a whole system from the perspective of a related set of concerns.整個(gè)系統(tǒng)某個(gè)特定角度的表示如何理解軟件體系結(jié)構(gòu)THU SAGroup70體系結(jié)構(gòu)模型視圖軟件體系結(jié)構(gòu)視角THU SAGroup71Decomposition PerspectiveRuntime Perspective構(gòu)件/連接器視圖THU SAGroup72實(shí)現(xiàn)視圖THU SAGroup73部署視圖THU SAGroup74行為視圖THU SAGroup75Sequence Diagram (UML)行為視

43、圖THU SAGroup76Activity Diagram (UML)行為視圖THU SAGroup77State Diagram (UML)用例視圖THU SAGroup78軟件產(chǎn)品生產(chǎn)線軟件工廠是一個(gè)以計(jì)算機(jī)為依托,并由計(jì)算機(jī)控制的程序編制環(huán)境,程序的制作、檢查和使用都應(yīng)當(dāng)在此環(huán)境中,并運(yùn)用其中的工具來實(shí)現(xiàn)。 建設(shè)軟件工廠是軟件工程化生產(chǎn)的大趨勢(shì)。其實(shí)現(xiàn)依賴于對(duì)體系結(jié)構(gòu)、模型、方法、工具的研究。THU SAGroup79軟件產(chǎn)品線THU SAGroup80軟件生命周期(Software Life Cycle)軟件生命周期軟件從開發(fā)啟動(dòng)啟動(dòng)開始到被放棄為止的過程THU SAGroup81要

44、經(jīng)過若干迭代的過程主流軟件體系結(jié)構(gòu)描述語言ADL一覽ADL研發(fā)組織負(fù)責(zé)人典型工業(yè)應(yīng)用相關(guān)參考ACMECarnegie Mellon UniversityDavid GarlanACMELib ACMEStudio倫敦救護(hù)車派遣軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)A. Finkelstein and J. Dowell (1996); A Comedy of Errors: the London Ambulance Service case study; Proceedings of 8th International Workshop on Software Specification and Design

45、 (IWSSD-8), Schloss Velen, Germany, 22-23rd March 1996, 2-4; IEEE CS Press.D. Garlan, R. Monroe, and D. Wile, Acme: Architectural Description of Component-Based Systems, in Foundations of Component-Based Systems, G.T. Leavens and M. Sitaraman, Editors. 2000, Cambridge University Press. p. 47-68.Aeso

46、pCarnegie Mellon UniversityDavid GarlanC2University California, IrvineN. Medvidovic集成開發(fā)環(huán)境ARGOChiron-2 人機(jī)界面系統(tǒng)Taylor, R.N., et al., A component- and message-based architectural style for GUI software Ieee Transactions on Software Engineering, 1996. 22(6): p. 17.DarwinImperial College, London (帝國理工)Jef

47、f Kramer & Jeff MageeBadge人員定位系統(tǒng)R. Want, A. Hopper, V. Falcao, and J. Gibbons, The active badge location system, ACM Transactions on Information Systems, vol. 10, pp. 91-102, Jan. 1992. WrightCarnegie Mellon UniversityDavid Garlan1993年美國海軍武器控制系統(tǒng)AEGISR. Allen and D. Garlan. A case study in architectu

48、ral modelling: The AEGIS system. In Proc of the 8th Intl Workshop on SW Specification and Design (IWSSD-8), Mar. 1996R. Allen, A Formal Approach to Software Architecture. 1997, CMU: PhD Thesis.THU SAGroup82主流軟件體系結(jié)構(gòu)描述語言ADL一覽ADL研發(fā)組織負(fù)責(zé)人典型工業(yè)應(yīng)用相關(guān)參考MetaHHoneywell(霍尼維爾)公司技術(shù)中心Steve Vestal美國汽車工程師學(xué)會(huì)(SAE)開發(fā)標(biāo)準(zhǔn)參

49、加這個(gè)標(biāo)準(zhǔn)的有美國陸軍、美國海軍、波音公司、Raytheon公司和Rockwell公司等。RapideStandford UniversityDavid LuckhamNSAs Multilevel Systems Security Initiative (MISSI)Sparc V9 Instruction Set Architecture D.C. Luckham. Rapide: A Language and Toolset for Simulation of Distributed Systems by Partial Orderings of Events. Proceedings

50、of DIMACS Partial Order Methods Workshop IV. July 1996. Princeton University.SADLStanford Research InstituteMark MoriconiUniConCarnegie Mellon UniversityMary Shaw命名含義:UNIversal CONnectionWeaves美國Aerospace公司GorlickM.M. Gorlick and R.R. Razouk, Using Weaves for Software Construction and Analysis, Proc

51、. 13th Intl Conf. Software Eng.(ICSE13), pp. 23-34, May 1991.THU SAGroup83主流軟件體系結(jié)構(gòu)描述語言ADL一覽ADL研發(fā)組織負(fù)責(zé)人典型工業(yè)應(yīng)用相關(guān)參考KoalaR.van OmmeringR.van Ommering, F. van der Linden, J. Kramer, and J. Magee, The Koala Component Model for Consumer Electronics Software. IEEE Computer, March 2000: p. 78-85.ADLARSR. Bash

52、roushR. Bashroush, T.J. Brown, I. Spence, and P. Kilpatrick. ADLARS: An ArchitectureDescription Language for Software Product Lines. Proceedings of the 29th AnnualIEEE/NASA Software Engineering Workshop. April 2005. Greenbelt, Maryland, USA.ALIB. Rabih, S. Ivor, K. Peter and B. John, 2006:Towards Mo

53、re Flexible Architecture Description Languages for Industrial Applications, : Software Architecture, LNCS Vol.4344, pages 212-219-ADL歐盟F.QquendoArchWare 一個(gè)軟件體系結(jié)構(gòu)集成開發(fā)系統(tǒng)F. Oquendo. -ADL: An Architecture Description Language based on the Higher-Order Typed -Calculus for Specifying Dynamic and Mobile So

54、ftware Architectures. ACM Software Engineering Notes, 29, Mai 2004.Con MotoV. Gruhn and C. Schafer, 2004:An architecture description language for mobile distributed systems, Software Architecture, LNCS vol 3047, pages 212-218作者沒給這門語言起名字V.IssarnyAURA:an architectural framework for user mobility in ub

55、iquitous computing environments.V. Issarny, F. Tartanoglu, J. Liu, and F. Sailhan. Software Architecture for Mobile Distributed Computing. In Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA04), pages 201210. IEEE, 2004.THU SAGroup84軟件體系結(jié)構(gòu)研究中的不足缺乏統(tǒng)一的軟件體系結(jié)構(gòu)的概念,導(dǎo)致

56、體系結(jié)構(gòu)的研究范疇模糊ADL繁多,缺乏統(tǒng)一的ADL的支持軟件體系結(jié)構(gòu)研究缺乏統(tǒng)一的理論模型支持盡管提出了若干體系結(jié)構(gòu)語言與其相應(yīng)的理論模型,但還不能系統(tǒng)地解釋軟件體系結(jié)構(gòu)中的重要概念. THU SAGroup85軟件體系結(jié)構(gòu)研究中的不足有關(guān)軟件體系結(jié)構(gòu)性質(zhì)的研究尚不充分不能明確給出一個(gè)良體系結(jié)構(gòu)的屬性或判定標(biāo)準(zhǔn),沒有給出良軟件體系結(jié)構(gòu)的設(shè)計(jì)指導(dǎo)原則, 因而對(duì)于軟件開發(fā)實(shí)踐缺乏有力的促進(jìn)作用體系結(jié)構(gòu)發(fā)現(xiàn)方法研究相對(duì)欠缺由于系統(tǒng)維護(hù)、系統(tǒng)演進(jìn)、環(huán)境變化等因素,因此有必要從那些尚不在體系結(jié)構(gòu)規(guī)格說明的系統(tǒng)中逆向提取和恢復(fù)系統(tǒng)的體系結(jié)構(gòu)規(guī)格說明,即體系結(jié)構(gòu)逆向發(fā)現(xiàn).THU SAGroup86目 錄TH

57、U SAGroup課程簡(jiǎn)介1軟件體系結(jié)構(gòu)的定義和發(fā)展綜述2工業(yè)軟件體系結(jié)構(gòu)的主要分類3軟件體系結(jié)構(gòu)的發(fā)展方向4案例研究587軟件體系結(jié)構(gòu)主要分類4+1DoDAFMODAFTOGAFZachman FrameworkFEARM-ODPSOMFTHU SAGroup88軟件體系結(jié)構(gòu)的主要分類4+1由Philippe Kruchten設(shè)計(jì)主要特色:多視圖共同表達(dá)不同涉眾的觀點(diǎn)邏輯視圖(Logical View):表示系統(tǒng)功能開發(fā)視圖(Development View):表示開發(fā)分工和任務(wù) 管理 進(jìn)程視圖(Process View):表示系統(tǒng)進(jìn)程,線程,分布等信息物理視圖(Physical View)

58、:表示系統(tǒng)物理部署情況場(chǎng)景(Scenarios):用一些場(chǎng)景、用例來描述系統(tǒng)各個(gè)部分之間,以及與環(huán)境之間的交互 。THU SAGroup89軟件體系結(jié)構(gòu)分類4+1THU SAGroup90軟件體系結(jié)構(gòu)分類4+1:邏輯視圖THU SAGroup91軟件體系結(jié)構(gòu)分類4+1:開發(fā)視圖THU SAGroup92軟件體系結(jié)構(gòu)分類4+1:進(jìn)程視圖THU SAGroup93軟件體系結(jié)構(gòu)分類4+1:物理視圖THU SAGroup94軟件體系結(jié)構(gòu)分類4+1:場(chǎng)景THU SAGroup95軟件體系結(jié)構(gòu)分類DoDAF:Department of Defense Architecture Framework由美國國防

59、部使用的體系結(jié)構(gòu)描述標(biāo)準(zhǔn),最初被稱為C4ISR(Command, Control, Communications, Computers, Intelligence, Surveillance and Reconnaissance)在此基礎(chǔ)之上引伸出NAF (NATO Architecture Framework)MODAF (Ministry of Defence (United Kingdom) Architecture Framework )特點(diǎn)圍繞共享數(shù)據(jù)庫建立系統(tǒng)描述對(duì)系統(tǒng)信息交互分級(jí)THU SAGroup96軟件體系結(jié)構(gòu)分類DoDAF概覽THU SAGroup97軟件體系結(jié)構(gòu)分類Do

60、DAF視圖分類:All View:提供全局概要性信息AV-1 Overview and Summary Information AV-2 Integrated DictionaryTHU SAGroup98軟件體系結(jié)構(gòu)分類DoDAF視圖分類Operational View:提供活動(dòng)和任務(wù)的相關(guān)信息OV-1 High Level Operational Concept Graphic OV-2 Operational Node Connectivity DescriptionOV-3 Operational Information Exchange Matrix OV-4 Organizatio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論