版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件體系結(jié)構(gòu)(1)軟件體系結(jié)構(gòu)概述胡軍副教授湖南大學(xué)SoftwareArchitecture目錄課程簡介1軟件體系結(jié)構(gòu)的定義和發(fā)展綜述2軟件體系結(jié)構(gòu)的發(fā)展方向32授課教師簡歷胡軍浙江大學(xué)計(jì)算機(jī)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)工學(xué)博士聯(lián)合國大學(xué)軟件研究所訪問學(xué)者英國南安普頓大學(xué)電子與計(jì)算機(jī)學(xué)院訪問學(xué)者主要研究方向?yàn)椋憾嘀黧w系統(tǒng);人工智能;軟件工程聯(lián)系方式辦公室:工會(huì)樓510or基地204Telmail:hujun111@QQ:478856953課程介紹教材及參考書張友生等編著,軟件體系結(jié)構(gòu)原理、方法與實(shí)踐,清華大學(xué)出版社,2009。覃征等,軟件體系結(jié)構(gòu)(第二版),清華大學(xué)出版社,2008。Ericfreeman,etc著,HeadFirst設(shè)計(jì)模式(中文版),中國電力出版社,2007。ErichGamma等著,設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ),機(jī)械工業(yè)出版社,2000。4教材5教材6課程介紹課程目標(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)風(fēng)格與模式、軟件體系結(jié)構(gòu)形式化描述方法、軟件體系結(jié)構(gòu)評(píng)估方法、加強(qiáng)學(xué)生的面向?qū)ο笤O(shè)計(jì)開發(fā)思想、理解設(shè)計(jì)模式的概念、掌握常用的設(shè)計(jì)模式的使用方法,并掌握在實(shí)際系統(tǒng)開發(fā)過程中分析、設(shè)計(jì)、應(yīng)用軟件體系結(jié)構(gòu)思想的技能。7課程介紹課程安排(軟件體系結(jié)構(gòu)部分)第一講:軟件體系結(jié)構(gòu)概述第二講:軟件體系結(jié)構(gòu)風(fēng)格與模式第三講:軟件體系結(jié)構(gòu)描述語言第四講:動(dòng)態(tài)軟件體系結(jié)構(gòu)第五講:基于體系結(jié)構(gòu)的軟件開發(fā)、分析與測試第六講:軟件體系結(jié)構(gòu)評(píng)估第七講:軟件產(chǎn)品線體系結(jié)構(gòu)第八講:軟件體系結(jié)構(gòu)研究的展望8課程介紹課程安排(軟件設(shè)計(jì)模式部分)第一講:設(shè)計(jì)模式入門、策略模式第二講:工廠方法和裝飾者模式第三講:模版方法和迭代器模式第四講:組合和抽象工廠模式第五講:生成器、單件、代理和中介模式第六講:適配器、橋接、觀察著和責(zé)任鏈模式第七講:備忘錄、MVC和命令模式第八講:狀態(tài)、解釋器和外觀模式第九講:原型、訪問者和享元模式9課程體系10軟件體系結(jié)構(gòu)與設(shè)計(jì)軟件體系結(jié)構(gòu)概念、描述軟件體系結(jié)構(gòu)風(fēng)格和模式軟件設(shè)計(jì)模式基于設(shè)計(jì)模式的軟件設(shè)計(jì)基于軟件體系結(jié)構(gòu)的軟件開發(fā)軟件體系結(jié)構(gòu)還有什么研究問題目錄課程簡介1軟件體系結(jié)構(gòu)的定義和發(fā)展綜述2軟件體系結(jié)構(gòu)的發(fā)展方向311研究背景什么是軟件軟件一般認(rèn)為由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集。數(shù)據(jù)結(jié)構(gòu):使程序能夠正確運(yùn)行的數(shù)據(jù)結(jié)構(gòu)。文檔:描述程序研制過程、方法及使用的文檔。12研究背景軟件的特點(diǎn)抽象性:邏輯實(shí)體,可記錄,但看不到可復(fù)制性:與開發(fā)成本相比,復(fù)制成本很低無折舊受硬件制約未完全擺脫手工工藝開發(fā)費(fèi)用高13研究背景計(jì)算機(jī)軟件發(fā)展的三個(gè)時(shí)期早期時(shí)代(60年代中期之前)程序設(shè)計(jì)階段硬件通用,軟件專用;程序規(guī)模小,編寫者和使用者為同一人(同組人)。第二代(60年代中期-70年代中期)
程序系統(tǒng)階段出現(xiàn)“軟件作坊”、產(chǎn)品軟件;“個(gè)體化”開發(fā)方法。第三代(70年代中期之后)軟件工程階段軟件開發(fā)成為一門新興的工程學(xué)科——軟件工程。14研究背景15程序設(shè)計(jì)程序系統(tǒng)軟件工程軟件范疇程序程序及說明書產(chǎn)品軟件(項(xiàng)目軟件)主要程序設(shè)計(jì)語言匯編及機(jī)器語言高級(jí)語言高級(jí)語言系統(tǒng)軟件工作范圍程序編寫設(shè)計(jì)、測試軟件生存期需求者程序設(shè)計(jì)者本人少數(shù)用戶市場用戶計(jì)算機(jī)軟件發(fā)展的三個(gè)時(shí)期及特點(diǎn)研究背景16程序設(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ā)展的三個(gè)時(shí)期及特點(diǎn)研究背景我們需要的是軟件符合質(zhì)量要求??!軟件需求是進(jìn)行“質(zhì)量”度量的基礎(chǔ),與需求不符就是質(zhì)量不高。通常有一組“隱含需求(implicitrequirements)”是不被提及的(如對(duì)維護(hù)性的需求)。如果軟件符合了明確的需求卻沒有滿足隱含需求,軟件質(zhì)量仍然值得懷疑。17性能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)用的增加,高可靠性能下降,維護(hù)工作量增大,出現(xiàn)了嚴(yán)重的“軟件危機(jī)”。軟件危機(jī)已經(jīng)持續(xù)了三十多年,表現(xiàn)為:軟件的產(chǎn)品質(zhì)量難以保障軟件的開發(fā)效率難以提高18為什么需要軟件體系結(jié)構(gòu)19軟件失敗SoftwareFailure最常見錯(cuò)誤形式:變量取值超過允許范圍用戶使用軟件超載(Overload)現(xiàn)代系統(tǒng)的復(fù)雜性往往集中于軟件部分(complexity)代碼正確,設(shè)計(jì)錯(cuò)誤(DesignError)其他軟件開發(fā)者不參與情況下操作系統(tǒng)以及硬件改變軟件失敗的原因2023/2/6研究背景解決問題的想法更好的管理(Bettermanagement)出眾的團(tuán)隊(duì)組織(Differentteamorganizations)更好的語言和工具(Betterlanguages&tools)統(tǒng)一的編程規(guī)范(Uniformcodingconventions)
必須意識(shí)到:“軟件”≠編程,它有自己的生命周期(lifecycle)。大型軟件系統(tǒng)的開發(fā)與其它工程項(xiàng)目如建造橋梁、制造飛機(jī)、輪船等的開發(fā)是同理的。20研究背景21軟件質(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)成為取得高投資回報(bào)率的直接途徑,質(zhì)量低的公司只會(huì)被遺忘軟件質(zhì)量問題對(duì)生命安全的威脅:1963年,美國金星探測火箭飛行失敗,造成經(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ò)誤而缺乏充分的測試。......研究背景如果有什么東西可以在軟件開發(fā)之前用于描述軟件,并能進(jìn)行質(zhì)量分析,從而保證軟件質(zhì)量就好了~軟件體系結(jié)構(gòu)22軟件體系結(jié)構(gòu)起源23結(jié)構(gòu)設(shè)計(jì)師:設(shè)計(jì)圖紙管理人員:施工計(jì)劃施工人員:建造建筑物軟件體系結(jié)構(gòu)思想來源于建筑業(yè)2023/2/6軟件體系結(jié)構(gòu)起源24建立模型2023/2/6軟件體系結(jié)構(gòu)起源25站點(diǎn)外表結(jié)構(gòu)服務(wù)空間計(jì)劃結(jié)構(gòu)設(shè)計(jì)2023/2/6軟件體系結(jié)構(gòu)起源26最終的建筑2023/2/6鳥巢更多的建筑源自于體系結(jié)構(gòu)設(shè)計(jì)27瑪雅阿茲特克金字塔瑞士保險(xiǎn)公司大樓2023/2/6如果建筑的復(fù)雜度還不夠高,那么一個(gè)城市呢?282023/2/6軟件體系結(jié)構(gòu)的本意29對(duì)于大規(guī)模的,分布的,需要協(xié)作的,需要交互的,需要監(jiān)測的,需要擴(kuò)展的,需要演化的復(fù)雜軟件系統(tǒng)的規(guī)劃。2023/2/6軟件體系結(jié)構(gòu)發(fā)展簡史程序設(shè)計(jì)語言的進(jìn)化——抽象級(jí)別(Abstract
Level)30面向代碼段面向問題空間面向機(jī)器面向機(jī)器
是一種針對(duì)如何直接操作機(jī)器指令來使用計(jì)算機(jī)資源的抽象級(jí)別。面向代碼段將可復(fù)用的功能代碼總結(jié)和包裝以保證重用。如基本的數(shù)值計(jì)算,過程控制等。面向問題空間
是這樣一種抽象級(jí)別。它直接將問題空間中的實(shí)體以及實(shí)體的關(guān)系表達(dá)出來。如利用“類”來表示物理世界的實(shí)物。軟件體系結(jié)構(gòu)發(fā)展簡史軟件開發(fā)的進(jìn)化——關(guān)注點(diǎn)(Concern)311靈活使用機(jī)器使用的底層指令和數(shù)據(jù)(Primitiveinstructionsanddata)2提高開發(fā)效率、代碼可讀性、易維護(hù)性(Efficiencyandconvenience
incodereadingandmaintenance)3實(shí)現(xiàn)軟件產(chǎn)品線式生產(chǎn)(Software
Product
Line)軟件體系結(jié)構(gòu)發(fā)展簡史1960年代,軟件危機(jī)爆發(fā)1968年,軟件工程被提出NATOsoftwareengineeringconference1968年,軟件體系結(jié)構(gòu)思想被提出“TheStructureofthe‘THE’MultiprogrammingSystem”authoredbyEdsgerDijkstra(艾德勒戴克斯加,荷蘭)1975年,軟件體系結(jié)構(gòu)思想被升華“Architectureisthecompleteanddetailedspecificationoftheuserinterface”
byFrederick
Brooks(弗蘭德里克布魯克斯,美國)32EdsgerDijkstraFrederickP.Brooks軟件體系結(jié)構(gòu)發(fā)展簡史1972~1976年,現(xiàn)代軟件開發(fā)思想被提出informationhidingandusageofinterface(Parnas,1972)structureseparation
(Parnas,
1974)therelationshipsbetweensoftwarestructureanditsquality(Parnas,1976)戴維帕納斯,美國1991年,”SoftwareArchitecture”在正式文獻(xiàn)中被使用SoftwareArchitecture:IntegratingProcessandTechnology
authoredWalkerE.RoyceandWinstonW.Royce沃克羅伊斯;溫斯頓羅伊斯,美國33
DavidParnasWalkerE.Royce軟件體系結(jié)構(gòu)發(fā)展簡史1993年,SoftwareArchitecture被定義,此定義成為軟件體系結(jié)構(gòu)研究的公認(rèn)基礎(chǔ)AnIntroductiontoSoftwareArchitectureauthoredbyDavidGarlanandMaryShaw20世紀(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)IEEERecommendedpracticeforarchitecturaldescriptionofsoftware-intensivesystems
34軟件體系結(jié)構(gòu)發(fā)展簡史2000年,SoftwareArchitecture
Product
LineTheDesignandUseofSoftwareArchitectureauthoredbyBosch2003年,UML2.0發(fā)布2000年至今,動(dòng)態(tài)軟件體系結(jié)構(gòu)π-ADL,LIME,dynamic
Wright,…
35一些經(jīng)典的文獻(xiàn)列表M.ShawandD.Garlan,“AnIntroductiontoSoftwareArchitecture,”V.AmbriolaandG.Tortora,eds.,AdvancesinSoftwareEngineeringandKnowledgeEngineering,vol.2,WorldScientificPublishing,1993,pp.1–39D.E.PerryandA.L.Wolf,“FoundationsfortheStudyofSoftwareArchitecture,”ACMSoftwareEng.Notes,vol.17,no.4,1992,pp.40–52.D.L.Parnas,“OntheCriteriatoBeUsedinDecomposingSystemsintoModules,”Comm.ACM,vol.15,no.12,1972,pp.1053–1058.D.L.Parnas,“OntheDesignandDevelopmentofProgramFamilies,”IEEETrans.SoftwareEng.,vol.2,no.1,1976,pp.1–9.D.L.Parnas,P.Clements,andD.M.Weiss,“TheModularStructureofComplexSystems,”IEEETrans.SoftwareEng.,vol.11,no.3,1985,pp.259–266.F.DeRemerandH.Kron,“Programming-in-the-LargeversusProgramming-in-the-Small,”Proc.Int’lConf.ReliableSoftware,ACMPress,1975,pp.114–121.
36一些經(jīng)典的文獻(xiàn)列表D.Soni,R.Nord,andC.Hofmeister,“SoftwareArchitectureinIndustrialApplications,”Proc.17thInt’lConf.SoftwareEng.(ICSE95),ACMPress,1995,pp.196–207.P.Kruchten,“The4+1ViewModelofArchitecture,”IEEESoftware,vol.12,no.6,1995,pp.45–50.B.W.Lampson,“HintsforComputerSystemDesign,”O(jiān)peratingSystemsRev.,vol.15,no.5,1983,pp.33–48;reprintedinIEEESoftware,vol.1,no.1,1984,pp.11–28.J.A.Mills,“APragmaticViewoftheSystemArchitect,”Comm.ACM,vol.28,no.7,1985,pp.708–717.W.E.RoyceandW.Royce,“SoftwareArchitecture:IntegratingProcessandTechnology,”TRWQuest,vol.14,no.1,1991,pp.2–15.M.ShawandP.Clements,“AFieldGuidetoBoxology:PreliminaryClassificationofArchitecturalStylesforSoftwareSystems,”Proc.21stInt’lComputerSoftwareandApplicationsConf.(COMPSAC97),IEEECSPress,1997,pp.6–13.M.Shaw,“TheComing-of-AgeofSoftwareArchitectureResearch,”Proc.23rdInt’lConf.SoftwareEng.(ICSE01),IEEECSPress,2001,pp.656–664a.37軟件體系結(jié)構(gòu)發(fā)展簡史38MaryShaw瑪麗娋FrederickBrooks弗蘭德里克布魯克斯BarryBoehm拜瑞波姆CarlissBaldwin卡利斯鮑德溫NSF2007ScienceofDesignPrincipalInvestigators'(PI)Meeting軟件體系結(jié)構(gòu)發(fā)展簡史39萌芽期發(fā)展期成熟期2023/2/6軟件體系結(jié)構(gòu)發(fā)展簡史402023/2/6那么……41什么是軟件體系結(jié)構(gòu)?汽車傳動(dòng)系統(tǒng)設(shè)計(jì)42Xbox
360使用的三核處理器設(shè)計(jì)43波音787設(shè)計(jì)44航空母艦設(shè)計(jì)概念圖45操作系統(tǒng)體系結(jié)構(gòu)(以Ubuntu
Linux為例)46軟件體系結(jié)構(gòu)Lightning
Framework47軟件體系結(jié)構(gòu)概述自NATO于1968年提出軟件工程概念以來,軟件工程界已經(jīng)提出了一系列的理論、方法、語言和工具,解決了軟件開發(fā)過程中的若干問題.但是,軟件固有的復(fù)雜性、易變性和不可見性,使得軟件開發(fā)周期長、代價(jià)高和質(zhì)量低的問題依然存在.大量實(shí)踐統(tǒng)計(jì)表明:大系統(tǒng)軟件開發(fā)中70%的錯(cuò)誤是由需求和軟件設(shè)計(jì)階段引入的;而且錯(cuò)誤在系統(tǒng)中存在的時(shí)間愈長則愈難發(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)平坦地過渡的問題.48軟件體系結(jié)構(gòu)概述軟件體系結(jié)構(gòu)基本概念就體系結(jié)構(gòu)的本意而言,它是指建立系統(tǒng)時(shí)的構(gòu)造范型、構(gòu)造風(fēng)格和構(gòu)造模式,軟件體系結(jié)構(gòu)對(duì)于軟件系統(tǒng)的構(gòu)造所起的是指導(dǎo)性的作用,它拋開了軟件系統(tǒng)的功能細(xì)節(jié),著重于討論軟件系統(tǒng)的總體框架。49開發(fā)了5年,投入資金達(dá)300多億美元,歷史上代碼量最大,達(dá)到5000萬行,僅核心工程師就有9000人團(tuán)隊(duì)的龐大軟件開發(fā)項(xiàng)目基于軟件體系結(jié)構(gòu)的分析、評(píng)估、計(jì)劃、組織、開發(fā)、測試軟件體系結(jié)構(gòu)概述對(duì)于一個(gè)軟件開發(fā)單位來說,選擇合適的體系結(jié)構(gòu)是最重要的決策之一.良好的體系結(jié)構(gòu)可以維系軟件系統(tǒng)的完整性,使得開發(fā)和維護(hù)工作不至于雜亂無章;還可以簡化軟件系統(tǒng)復(fù)雜性,讓眾多的開發(fā)單位的軟件工程師們能以并行方式開展工作.50軟件體系結(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ā)過程51軟件體系結(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ì)奠定基礎(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ì)方案的要求。52軟件體系結(jié)構(gòu)概述軟件體系結(jié)構(gòu)研究與傳統(tǒng)軟件工程方法學(xué)的不同之處在于:所關(guān)心的問題不同描述的著眼點(diǎn)不同抽象層次不同53從不同角度看太陽軟件體系結(jié)構(gòu)的研究方法學(xué)院派測重于軟件體系結(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)目中。54軟件體系結(jié)構(gòu)定義長期以來,CMU-SEI在其網(wǎng)站上公開征集軟件體系結(jié)構(gòu)的定義至今已有百余種。最近較有影響力的定義有:
卡耐基梅隆大學(xué)Bass等人于2003年在軟件構(gòu)架實(shí)踐一書中提出,軟件體系結(jié)構(gòu)為系統(tǒng)的結(jié)構(gòu)(structureorstructures),包含軟件元素、軟件元素外部可見的屬性以及這些軟件元素之間的關(guān)系。55軟件體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu)定義的發(fā)展演變IEEE610.12
,1990Vestal,1993Garlan,1993Gacek,1995Bosch,2000Perry,2000
IEEEStd1471-2000,200056軟件體系結(jié)構(gòu)定義IEEE610.12(1990年)軟件工程標(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ì)與演化的原理。57Honeywell實(shí)驗(yàn)室的Vestal在1993年提出了如下模型:SA={component,idioms/styles,commonpatternsofinteraction}.軟件由構(gòu)件組成,構(gòu)件之間通過通用的互操作模式相連。體系結(jié)構(gòu)風(fēng)格描述了一種通用的設(shè)計(jì)模式,可滿足特定系列的應(yīng)用需求。58軟件體系結(jié)構(gòu)定義卡耐基梅隆大學(xué)的Garlan于1993年對(duì)軟件體系結(jié)構(gòu)做出了如下定義:
SA={Components,Connectors,Constraints}構(gòu)件(Components)是功能單元,執(zhí)行預(yù)定義的服務(wù)并且與其他構(gòu)件交互。連接器(Connectors)定義交互協(xié)議與策略。約束(Constraints)定義了系統(tǒng)必須服從的規(guī)則。59軟件體系結(jié)構(gòu)定義而南加州大學(xué)的軟件工程研究中心的Gacek于1995年,提出了如下的概念:SA={Components,Connections,Constraints,StakeholderNeeds,Rationale}60軟件體系結(jié)構(gòu)定義在此定義中,構(gòu)件(component)與連接(connection)的設(shè)計(jì)將依照涉眾(Stakeholder)的需求。涉眾(Stakeholder)指參與軟件系統(tǒng)項(xiàng)目的人員,包括項(xiàng)目經(jīng)理,程序員,市場營銷人員,消費(fèi)者與使用者等。理念(Rationale)指權(quán)衡存在下的策略。該定義反映了對(duì)運(yùn)行時(shí)結(jié)構(gòu)的實(shí)際影響因素,是為了使軟件體系結(jié)構(gòu)研究能將學(xué)術(shù)與實(shí)際應(yīng)用聯(lián)系起來。61軟件體系結(jié)構(gòu)定義瑞典Blekinge技術(shù)學(xué)院的Bosch在2000年則對(duì)軟件體系結(jié)構(gòu)給出了如下的定義:Thearchitectureofasoftwaresystemisconcernedwiththetop-leveldecompositionofthesystemintoitsmaincomponents.
軟件系統(tǒng)的體系結(jié)構(gòu)是對(duì)系統(tǒng)從頂層分解為主要構(gòu)件的考量。decomposition62軟件體系結(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í)行單元。63軟件體系結(jié)構(gòu)定義2000年Texas大學(xué)的Perry&Wolf模型如下:SA={elements,form,rational}.64軟件體系結(jié)構(gòu)定義該模型中,軟件體系結(jié)構(gòu)是由一組元素(elements)構(gòu)成。這組元素分成3類:處理元素(processingelements)、數(shù)據(jù)元素(dataelements)和連接元素(connectingelements)。軟件體系結(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)。65軟件體系結(jié)構(gòu)定義同樣在2000年發(fā)布的IEEEStd1471-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)所涉及的相關(guān)概念做出了詳細(xì)定義,例如需求者,架構(gòu)師,系統(tǒng)涉眾等等。66IEEEStd1471-2000中的若干概念獲取者(acquirer):
Anorganizationthatprocuresasystem,softwareproduct,orsoftwareservicefromasupplier.(Theacquirercouldbeabuyer,customer,owner,user,orpurchaser.)軟件系統(tǒng)或軟件產(chǎn)品的接收方架構(gòu)(architecting):
Theactivitiesofdefining,documenting,maintaining,improving,andcertifyingproperimplementationofanarchitecture.定義,編檔,維護(hù),改進(jìn)和驗(yàn)證體系結(jié)構(gòu)正確實(shí)現(xiàn)的一組活動(dòng)67IEEEStd1471-2000中的若干概念架構(gòu)師(architect):
Theperson,team,ororganizationresponsibleforsystemsarchitecture.負(fù)責(zé)軟件系統(tǒng)體系結(jié)構(gòu)的個(gè)人,團(tuán)隊(duì)或者組織體系結(jié)構(gòu)描述(architecturaldescription):Acollectionofproductstodocumentanarchitecture.一組記錄軟件體系結(jié)構(gòu)的文檔體系結(jié)構(gòu)(architecture):Thefundamentalorganizationofasystemembodiedinitscomponents,theirrelationshipstoeachother,andtotheenvironment,andtheprinciplesguidingitsdesignandevolution.軟件系統(tǒng)中構(gòu)件,構(gòu)件之間的關(guān)系,構(gòu)件與環(huán)境之間的關(guān)系,以及指導(dǎo)設(shè)計(jì)和演化的基本組織。68IEEEStd1471-2000中的若干概念生命周期模型(lifecyclemodel):Aframeworkcontainingtheprocesses,activities,andtasksinvolvedinthedevelopment,operation,andmaintenanceofasoftwareproduct,whichspansthelifeofthesystemfromthedefinitionofitsrequirementstotheterminationofitsuse.圍繞整個(gè)軟件開發(fā)過程進(jìn)行的一組過程和活動(dòng),以周而復(fù)始的方式存在軟件系統(tǒng)(system):Acollectionofcomponentsorganizedtoaccomplishaspecificfunctionorsetoffunctions.組織起來完成某些特定功能的一組構(gòu)件69IEEEStd1471-2000中的若干概念系統(tǒng)涉眾(systemstakeholder):Anindividual,team,ororganization(orclassesthereof)withinterestsin,orconcernsrelativeto,asystem.系統(tǒng)利益相關(guān)者視圖(view):
Arepresentationofawholesystemfromtheperspectiveofarelatedsetofconcerns.整個(gè)系統(tǒng)某個(gè)特定角度的表示70如何理解軟件體系結(jié)構(gòu)71體系結(jié)構(gòu)模型視圖2023/2/6軟件體系結(jié)構(gòu)視角72DecompositionPerspectiveRuntimePerspective構(gòu)件/連接器視圖73實(shí)現(xiàn)視圖742023/2/6部署視圖752023/2/6行為視圖76SequenceDiagram(UML)2023/2/6行為視圖77ActivityDiagram(UML)2023/2/6行為視圖78State
Diagram
(UML)2023/2/6用例視圖792023/2/6軟件體系結(jié)構(gòu)的意義體系結(jié)構(gòu)是風(fēng)險(xiǎn)承擔(dān)者進(jìn)行交流的手段軟件體系結(jié)構(gòu)代表了系統(tǒng)的公共的高層次的抽象。這樣,系統(tǒng)的大部分有關(guān)人員(即使不是全部)能把它作為建立一個(gè)互相理解的基礎(chǔ),形成統(tǒng)一認(rèn)識(shí),互相交流。體系結(jié)構(gòu)提供了一種共同語言來表達(dá)各種關(guān)注和協(xié)商,進(jìn)而對(duì)大型復(fù)雜系統(tǒng)能進(jìn)行理智的管理。這對(duì)項(xiàng)目最終的質(zhì)量和使用有極大的影響。80軟件體系結(jié)構(gòu)的意義體系結(jié)構(gòu)是早期設(shè)計(jì)決策的體現(xiàn)軟件體系結(jié)構(gòu)明確了對(duì)系統(tǒng)實(shí)現(xiàn)的約束條件軟件體系結(jié)構(gòu)決定了開發(fā)和維護(hù)組織的組織結(jié)構(gòu)軟件體系結(jié)構(gòu)制約著系統(tǒng)的質(zhì)量屬性通過研究軟件體系結(jié)構(gòu)可能預(yù)測軟件的質(zhì)量軟件體系結(jié)構(gòu)使推理和控制更改更簡單軟件體系結(jié)構(gòu)有助于循序漸進(jìn)的原型設(shè)計(jì)軟件體系結(jié)構(gòu)可以作為培訓(xùn)的基礎(chǔ)81軟件體系結(jié)構(gòu)的意義軟件體系結(jié)構(gòu)是可傳遞和可重用的模型軟件體系結(jié)構(gòu)級(jí)的重用意味著體系結(jié)構(gòu)的決策能在具有相似需求的多個(gè)系統(tǒng)中發(fā)生影響,這比代碼級(jí)的重用要有更大的好處。82軟件產(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í)現(xiàn)依賴于對(duì)體系結(jié)構(gòu)、模型、方法、工具的研究。83軟件產(chǎn)品線84軟件生命周期(SoftwareLifeCycle)軟件生命周期軟件從開發(fā)啟動(dòng)啟動(dòng)開始到被放棄為止的過程85要經(jīng)過若干迭代的過程軟件體系結(jié)構(gòu)建模軟件體系結(jié)構(gòu)建模的種類結(jié)構(gòu)模型框架模型動(dòng)態(tài)模型過程模型功能模型
86軟件體系結(jié)構(gòu)建模軟件體系結(jié)構(gòu)建模的種類結(jié)構(gòu)模型這是一個(gè)最直觀、最普遍的建模方法。這種方法以體系結(jié)構(gòu)的構(gòu)件、連接件和其他概念來刻畫結(jié)構(gòu),并力圖通過結(jié)構(gòu)來反映系統(tǒng)的重要語義內(nèi)容,包括系統(tǒng)的配置、約束、隱含的假設(shè)條件、風(fēng)格、性質(zhì)等。研究結(jié)構(gòu)模型的核心是體系結(jié)構(gòu)描述語言。87軟件體系結(jié)構(gòu)建模軟件體系結(jié)構(gòu)建模的種類框架模型框架模型與結(jié)構(gòu)模型類似,但它不太側(cè)重描述結(jié)構(gòu)的細(xì)節(jié)而更側(cè)重于整體的結(jié)構(gòu)??蚣苣P椭饕砸恍┨厥獾膯栴}為目標(biāo)建立只針對(duì)和適應(yīng)該問題的結(jié)構(gòu)。
88軟件體系結(jié)構(gòu)建模軟件體系結(jié)構(gòu)建模的種類動(dòng)態(tài)模型動(dòng)態(tài)模型是對(duì)結(jié)構(gòu)或框架模型的補(bǔ)充,研究系統(tǒng)的“大顆粒”的行為性質(zhì)。例如,描述系統(tǒng)的重新配置或
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋買賣合同全文模板
- 舊機(jī)器銷售合同樣本
- 房產(chǎn)中介加盟合同范本
- 房屋建筑施工合同模板示例
- 2024股權(quán)減資協(xié)議書
- 2024年簡單室內(nèi)裝修合同
- 地方頻道節(jié)目播出權(quán)購買合同樣本
- 城區(qū)二手住宅租賃合同
- 2024年公司股東合伙人的協(xié)議書
- 成都市物業(yè)服務(wù)合同示例
- 《針織學(xué)》期末考試試卷附答案
- 風(fēng)電場地質(zhì)勘察設(shè)計(jì)方案
- 特種設(shè)備使用登記表(范本)
- (完整版)5以內(nèi)的加減法(可直接打印)
- 橫河UT35A-32A-操作手冊(cè)
- 計(jì)算機(jī)網(wǎng)絡(luò)(第三版)課件(完整版)
- 新疆準(zhǔn)東經(jīng)濟(jì)技術(shù)開發(fā)區(qū)西部固廢處置場項(xiàng)目環(huán)評(píng)報(bào)告書
- GB∕T 36008-2018 機(jī)器人與機(jī)器人裝備 協(xié)作機(jī)器人
- 《紅樓夢》指導(dǎo)第二課 命名
- (新版)保衛(wèi)管理員考試題庫(含答案)
- 關(guān)于建立企業(yè)干部職工末等調(diào)整和不勝任退出機(jī)制的實(shí)施方案
評(píng)論
0/150
提交評(píng)論