軟件體系結構1-軟件體系結構概述_第1頁
軟件體系結構1-軟件體系結構概述_第2頁
軟件體系結構1-軟件體系結構概述_第3頁
軟件體系結構1-軟件體系結構概述_第4頁
軟件體系結構1-軟件體系結構概述_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件體系結構(1)軟件體系結構概述胡軍副教授湖南大學SoftwareArchitecture目錄課程簡介1軟件體系結構的定義和發(fā)展綜述2軟件體系結構的發(fā)展方向32授課教師簡歷胡軍浙江大學計算機學院計算機科學與技術專業(yè)工學博士聯(lián)合國大學軟件研究所訪問學者英國南安普頓大學電子與計算機學院訪問學者主要研究方向為:多主體系統(tǒng);人工智能;軟件工程聯(lián)系方式辦公室:工會樓510or基地204Telmail:hujun111@QQ:478856953課程介紹教材及參考書張友生等編著,軟件體系結構原理、方法與實踐,清華大學出版社,2009。覃征等,軟件體系結構(第二版),清華大學出版社,2008。Ericfreeman,etc著,HeadFirst設計模式(中文版),中國電力出版社,2007。ErichGamma等著,設計模式:可復用面向對象軟件的基礎,機械工業(yè)出版社,2000。4教材5教材6課程介紹課程目標掌握軟件體系結構的概念、組成和相關領域國內外研究現(xiàn)狀。明確軟件體系結構劃分標準、設計原則。學習軟件體系結構構建模型、軟件體系結構風格與模式、軟件體系結構形式化描述方法、軟件體系結構評估方法、加強學生的面向對象設計開發(fā)思想、理解設計模式的概念、掌握常用的設計模式的使用方法,并掌握在實際系統(tǒng)開發(fā)過程中分析、設計、應用軟件體系結構思想的技能。7課程介紹課程安排(軟件體系結構部分)第一講:軟件體系結構概述第二講:軟件體系結構風格與模式第三講:軟件體系結構描述語言第四講:動態(tài)軟件體系結構第五講:基于體系結構的軟件開發(fā)、分析與測試第六講:軟件體系結構評估第七講:軟件產品線體系結構第八講:軟件體系結構研究的展望8課程介紹課程安排(軟件設計模式部分)第一講:設計模式入門、策略模式第二講:工廠方法和裝飾者模式第三講:模版方法和迭代器模式第四講:組合和抽象工廠模式第五講:生成器、單件、代理和中介模式第六講:適配器、橋接、觀察著和責任鏈模式第七講:備忘錄、MVC和命令模式第八講:狀態(tài)、解釋器和外觀模式第九講:原型、訪問者和享元模式9課程體系10軟件體系結構與設計軟件體系結構概念、描述軟件體系結構風格和模式軟件設計模式基于設計模式的軟件設計基于軟件體系結構的軟件開發(fā)軟件體系結構還有什么研究問題目錄課程簡介1軟件體系結構的定義和發(fā)展綜述2軟件體系結構的發(fā)展方向311研究背景什么是軟件軟件一般認為由三部分組成:程序:在運行時,能提供所希望的功能和性能的指令集。數據結構:使程序能夠正確運行的數據結構。文檔:描述程序研制過程、方法及使用的文檔。12研究背景軟件的特點抽象性:邏輯實體,可記錄,但看不到可復制性:與開發(fā)成本相比,復制成本很低無折舊受硬件制約未完全擺脫手工工藝開發(fā)費用高13研究背景計算機軟件發(fā)展的三個時期早期時代(60年代中期之前)程序設計階段硬件通用,軟件專用;程序規(guī)模小,編寫者和使用者為同一人(同組人)。第二代(60年代中期-70年代中期)

程序系統(tǒng)階段出現(xiàn)“軟件作坊”、產品軟件;“個體化”開發(fā)方法。第三代(70年代中期之后)軟件工程階段軟件開發(fā)成為一門新興的工程學科——軟件工程。14研究背景15程序設計程序系統(tǒng)軟件工程軟件范疇程序程序及說明書產品軟件(項目軟件)主要程序設計語言匯編及機器語言高級語言高級語言系統(tǒng)軟件工作范圍程序編寫設計、測試軟件生存期需求者程序設計者本人少數用戶市場用戶計算機軟件發(fā)展的三個時期及特點研究背景16程序設計程序系統(tǒng)軟件工程維護責任者程序設計者開發(fā)小組專職維護人員硬件特征價高、存儲量小、穩(wěn)定性差價低、速度、容量、穩(wěn)定性明顯提高向超高速、大容量、微型化發(fā)展軟件特征完全不受重視軟件技術的發(fā)展不滿足需要,出現(xiàn)軟件危機開發(fā)技術有進步,但未獲得突破性進展,軟件危機沒有完全擺脫計算機軟件發(fā)展的三個時期及特點研究背景我們需要的是軟件符合質量要求??!軟件需求是進行“質量”度量的基礎,與需求不符就是質量不高。通常有一組“隱含需求(implicitrequirements)”是不被提及的(如對維護性的需求)。如果軟件符合了明確的需求卻沒有滿足隱含需求,軟件質量仍然值得懷疑。17性能Performance可用性Usability可靠性Availability可擴展性Extensibility安全性Security功能性Functionality為什么需要軟件體系結構

隨著社會的巨大進步,計算機系統(tǒng)的整體發(fā)展,新技術的不斷涌現(xiàn),使計算機應用的需求迅速增加。而軟件費用的增加,高可靠性能下降,維護工作量增大,出現(xiàn)了嚴重的“軟件危機”。軟件危機已經持續(xù)了三十多年,表現(xiàn)為:軟件的產品質量難以保障軟件的開發(fā)效率難以提高18為什么需要軟件體系結構19軟件失敗SoftwareFailure最常見錯誤形式:變量取值超過允許范圍用戶使用軟件超載(Overload)現(xiàn)代系統(tǒng)的復雜性往往集中于軟件部分(complexity)代碼正確,設計錯誤(DesignError)其他軟件開發(fā)者不參與情況下操作系統(tǒng)以及硬件改變軟件失敗的原因2023/2/6研究背景解決問題的想法更好的管理(Bettermanagement)出眾的團隊組織(Differentteamorganizations)更好的語言和工具(Betterlanguages&tools)統(tǒng)一的編程規(guī)范(Uniformcodingconventions)

必須意識到:“軟件”≠編程,它有自己的生命周期(lifecycle)。大型軟件系統(tǒng)的開發(fā)與其它工程項目如建造橋梁、制造飛機、輪船等的開發(fā)是同理的。20研究背景21軟件質量問題對經濟的影響:美國NIST(國家商業(yè)標準和技術)報告,“由于軟件bug的普遍存在,使美國經濟每年損失$590.5億美元”,而Standish組織的數據是每年2000億美元改進軟件質量已經成為取得高投資回報率的直接途徑,質量低的公司只會被遺忘軟件質量問題對生命安全的威脅:1963年,美國金星探測火箭飛行失敗,造成經濟損失達一千萬美元,因為控制程序中的一個極小的錯誤,即將一逗號誤寫為一小數點!由于著陸系統(tǒng)的高度報警程序問題部分導致了1997年發(fā)生在關島的韓國客機空難,228人遇難。1996年,歐洲耗資高達7億美元的Ariane5火箭發(fā)射后解體爆炸,究其原因是慣性參考系統(tǒng)中的一個軟件設計錯誤,并由于認為這個軟件不會發(fā)生錯誤而缺乏充分的測試。......研究背景如果有什么東西可以在軟件開發(fā)之前用于描述軟件,并能進行質量分析,從而保證軟件質量就好了~軟件體系結構22軟件體系結構起源23結構設計師:設計圖紙管理人員:施工計劃施工人員:建造建筑物軟件體系結構思想來源于建筑業(yè)2023/2/6軟件體系結構起源24建立模型2023/2/6軟件體系結構起源25站點外表結構服務空間計劃結構設計2023/2/6軟件體系結構起源26最終的建筑2023/2/6鳥巢更多的建筑源自于體系結構設計27瑪雅阿茲特克金字塔瑞士保險公司大樓2023/2/6如果建筑的復雜度還不夠高,那么一個城市呢?282023/2/6軟件體系結構的本意29對于大規(guī)模的,分布的,需要協(xié)作的,需要交互的,需要監(jiān)測的,需要擴展的,需要演化的復雜軟件系統(tǒng)的規(guī)劃。2023/2/6軟件體系結構發(fā)展簡史程序設計語言的進化——抽象級別(Abstract

Level)30面向代碼段面向問題空間面向機器面向機器

是一種針對如何直接操作機器指令來使用計算機資源的抽象級別。面向代碼段將可復用的功能代碼總結和包裝以保證重用。如基本的數值計算,過程控制等。面向問題空間

是這樣一種抽象級別。它直接將問題空間中的實體以及實體的關系表達出來。如利用“類”來表示物理世界的實物。軟件體系結構發(fā)展簡史軟件開發(fā)的進化——關注點(Concern)311靈活使用機器使用的底層指令和數據(Primitiveinstructionsanddata)2提高開發(fā)效率、代碼可讀性、易維護性(Efficiencyandconvenience

incodereadingandmaintenance)3實現(xiàn)軟件產品線式生產(Software

Product

Line)軟件體系結構發(fā)展簡史1960年代,軟件危機爆發(fā)1968年,軟件工程被提出NATOsoftwareengineeringconference1968年,軟件體系結構思想被提出“TheStructureofthe‘THE’MultiprogrammingSystem”authoredbyEdsgerDijkstra(艾德勒戴克斯加,荷蘭)1975年,軟件體系結構思想被升華“Architectureisthecompleteanddetailedspecificationoftheuserinterface”

byFrederick

Brooks(弗蘭德里克布魯克斯,美國)32EdsgerDijkstraFrederickP.Brooks軟件體系結構發(fā)展簡史1972~1976年,現(xiàn)代軟件開發(fā)思想被提出informationhidingandusageofinterface(Parnas,1972)structureseparation

(Parnas,

1974)therelationshipsbetweensoftwarestructureanditsquality(Parnas,1976)戴維帕納斯,美國1991年,”SoftwareArchitecture”在正式文獻中被使用SoftwareArchitecture:IntegratingProcessandTechnology

authoredWalkerE.RoyceandWinstonW.Royce沃克羅伊斯;溫斯頓羅伊斯,美國33

DavidParnasWalkerE.Royce軟件體系結構發(fā)展簡史1993年,SoftwareArchitecture被定義,此定義成為軟件體系結構研究的公認基礎AnIntroductiontoSoftwareArchitectureauthoredbyDavidGarlanandMaryShaw20世紀90年代,軟件體系結構描述語言(ADL)興盛Darwin,Wright,C2,Rapide,MetaH,ACME,…20世紀90年代,軟件體系結構評估方法興起SAAM,ATAM,…2000年,IEEE1471-2000標準IEEERecommendedpracticeforarchitecturaldescriptionofsoftware-intensivesystems

34軟件體系結構發(fā)展簡史2000年,SoftwareArchitecture

Product

LineTheDesignandUseofSoftwareArchitectureauthoredbyBosch2003年,UML2.0發(fā)布2000年至今,動態(tài)軟件體系結構π-ADL,LIME,dynamic

Wright,…

35一些經典的文獻列表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一些經典的文獻列表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軟件體系結構發(fā)展簡史38MaryShaw瑪麗娋FrederickBrooks弗蘭德里克布魯克斯BarryBoehm拜瑞波姆CarlissBaldwin卡利斯鮑德溫NSF2007ScienceofDesignPrincipalInvestigators'(PI)Meeting軟件體系結構發(fā)展簡史39萌芽期發(fā)展期成熟期2023/2/6軟件體系結構發(fā)展簡史402023/2/6那么……41什么是軟件體系結構?汽車傳動系統(tǒng)設計42Xbox

360使用的三核處理器設計43波音787設計44航空母艦設計概念圖45操作系統(tǒng)體系結構(以Ubuntu

Linux為例)46軟件體系結構Lightning

Framework47軟件體系結構概述自NATO于1968年提出軟件工程概念以來,軟件工程界已經提出了一系列的理論、方法、語言和工具,解決了軟件開發(fā)過程中的若干問題.但是,軟件固有的復雜性、易變性和不可見性,使得軟件開發(fā)周期長、代價高和質量低的問題依然存在.大量實踐統(tǒng)計表明:大系統(tǒng)軟件開發(fā)中70%的錯誤是由需求和軟件設計階段引入的;而且錯誤在系統(tǒng)中存在的時間愈長則愈難發(fā)現(xiàn),解決這些錯誤的代價也愈高.為了提高軟件需求和軟件設計的質量,軟件工程界提出了需求分析工程技術和各種軟件建模技術.但是在需求與設計之間仍存在一條很難逾越的鴻溝,即缺乏能夠反映做決策的中間過程,從而很難有效地將需求轉換為相應的設計.為此,軟件體系結構概念應運而生,并試圖在軟件需求與軟件設計之間架起一座橋梁,著重解決軟件系統(tǒng)的結構和需求向實現(xiàn)平坦地過渡的問題.48軟件體系結構概述軟件體系結構基本概念就體系結構的本意而言,它是指建立系統(tǒng)時的構造范型、構造風格和構造模式,軟件體系結構對于軟件系統(tǒng)的構造所起的是指導性的作用,它拋開了軟件系統(tǒng)的功能細節(jié),著重于討論軟件系統(tǒng)的總體框架。49開發(fā)了5年,投入資金達300多億美元,歷史上代碼量最大,達到5000萬行,僅核心工程師就有9000人團隊的龐大軟件開發(fā)項目基于軟件體系結構的分析、評估、計劃、組織、開發(fā)、測試軟件體系結構概述對于一個軟件開發(fā)單位來說,選擇合適的體系結構是最重要的決策之一.良好的體系結構可以維系軟件系統(tǒng)的完整性,使得開發(fā)和維護工作不至于雜亂無章;還可以簡化軟件系統(tǒng)復雜性,讓眾多的開發(fā)單位的軟件工程師們能以并行方式開展工作.50軟件體系結構概述軟件體系結構基本概念廣義而言,軟件系統(tǒng)結構涉及多方面的內容:軟件的成份及系統(tǒng)框架;軟件成份的選擇,各成分之間的相互作用,軟件成份的進一步復合以及指導軟件復合過程的總體模式;系統(tǒng)的功能、性能、設計以及從多種方案及選項中進行選擇的決策??梢?,軟件體系結構更為關注的是系統(tǒng)結構及其成份,而方法論更關心系統(tǒng)的開發(fā)過程51軟件體系結構概述Perry和Wolf根據軟件生命周期各階段相應的實體、屬性、關系、主要產品和評估標準,將軟件開發(fā)過程分為如下階段:需求分析:主要根據用戶的需求,決定軟件的功能;體系結構設計:選擇構件、構件間相互關系以及對它們的約束,并以此為框架,為詳細設計奠定基礎;詳細設計:主要對系統(tǒng)進行模塊化和描述各個構件間的詳細接口、算法和數據結構類型等;實現(xiàn):使用程序設計語言實現(xiàn)設計方案的要求。52軟件體系結構概述軟件體系結構研究與傳統(tǒng)軟件工程方法學的不同之處在于:所關心的問題不同描述的著眼點不同抽象層次不同53從不同角度看太陽軟件體系結構的研究方法學院派測重于軟件體系結構形式化理論研究。注重抽象、規(guī)約和演算。實踐派將軟件體系結構設計、描述與表示同傳統(tǒng)的軟件系統(tǒng)建模視為一體,以體系結構作為整個軟件開發(fā)過程的核心。結合派試圖將以上二者結合以來,將形式化理論應用于實際項目中。54軟件體系結構定義長期以來,CMU-SEI在其網站上公開征集軟件體系結構的定義至今已有百余種。最近較有影響力的定義有:

卡耐基梅隆大學Bass等人于2003年在軟件構架實踐一書中提出,軟件體系結構為系統(tǒng)的結構(structureorstructures),包含軟件元素、軟件元素外部可見的屬性以及這些軟件元素之間的關系。55軟件體系結構定義軟件體系結構定義的發(fā)展演變IEEE610.12

,1990Vestal,1993Garlan,1993Gacek,1995Bosch,2000Perry,2000

IEEEStd1471-2000,200056軟件體系結構定義IEEE610.12(1990年)軟件工程標準詞匯定義:SA={component,connector,environment,

principle}.體系結構是以構件、構件之間的關系、構件與環(huán)境之間的關系為內容的某一系統(tǒng)的基本組織結構,以及指導上述內容設計與演化的原理。57Honeywell實驗室的Vestal在1993年提出了如下模型:SA={component,idioms/styles,commonpatternsofinteraction}.軟件由構件組成,構件之間通過通用的互操作模式相連。體系結構風格描述了一種通用的設計模式,可滿足特定系列的應用需求。58軟件體系結構定義卡耐基梅隆大學的Garlan于1993年對軟件體系結構做出了如下定義:

SA={Components,Connectors,Constraints}構件(Components)是功能單元,執(zhí)行預定義的服務并且與其他構件交互。連接器(Connectors)定義交互協(xié)議與策略。約束(Constraints)定義了系統(tǒng)必須服從的規(guī)則。59軟件體系結構定義而南加州大學的軟件工程研究中心的Gacek于1995年,提出了如下的概念:SA={Components,Connections,Constraints,StakeholderNeeds,Rationale}60軟件體系結構定義在此定義中,構件(component)與連接(connection)的設計將依照涉眾(Stakeholder)的需求。涉眾(Stakeholder)指參與軟件系統(tǒng)項目的人員,包括項目經理,程序員,市場營銷人員,消費者與使用者等。理念(Rationale)指權衡存在下的策略。該定義反映了對運行時結構的實際影響因素,是為了使軟件體系結構研究能將學術與實際應用聯(lián)系起來。61軟件體系結構定義瑞典Blekinge技術學院的Bosch在2000年則對軟件體系結構給出了如下的定義:Thearchitectureofasoftwaresystemisconcernedwiththetop-leveldecompositionofthesystemintoitsmaincomponents.

軟件系統(tǒng)的體系結構是對系統(tǒng)從頂層分解為主要構件的考量。decomposition62軟件體系結構定義在該定義中,軟件體系結構被認為是系統(tǒng)結構的唯一部署,僅關注單一的靜態(tài)結構。此外需要注意的是,這里的術語component的涵義有所不同,可以被認為是模塊——基本的執(zhí)行單元。63軟件體系結構定義2000年Texas大學的Perry&Wolf模型如下:SA={elements,form,rational}.64軟件體系結構定義該模型中,軟件體系結構是由一組元素(elements)構成。這組元素分成3類:處理元素(processingelements)、數據元素(dataelements)和連接元素(connectingelements)。軟件體系結構形式(form)是由專有特性(properties)和關系(relationship)組成。專有特性用于限制軟件體系結構元素的選擇,關系用于限制軟件體系結構元素組合的拓撲結構。在多個體系結構方案中選擇合適的體系結構方案往往基于一組準則(rational)。65軟件體系結構定義同樣在2000年發(fā)布的IEEEStd1471-2000,則對軟件體系結構做出了如下定義:軟件系統(tǒng)的基本組織,包含構件、構件之間、構件與環(huán)境之間的關系,以及相關的設計與演化原則等。不僅如此,該標準還對軟件體系結構所涉及的相關概念做出了詳細定義,例如需求者,架構師,系統(tǒng)涉眾等等。66IEEEStd1471-2000中的若干概念獲取者(acquirer):

Anorganizationthatprocuresasystem,softwareproduct,orsoftwareservicefromasupplier.(Theacquirercouldbeabuyer,customer,owner,user,orpurchaser.)軟件系統(tǒng)或軟件產品的接收方架構(architecting):

Theactivitiesofdefining,documenting,maintaining,improving,andcertifyingproperimplementationofanarchitecture.定義,編檔,維護,改進和驗證體系結構正確實現(xiàn)的一組活動67IEEEStd1471-2000中的若干概念架構師(architect):

Theperson,team,ororganizationresponsibleforsystemsarchitecture.負責軟件系統(tǒng)體系結構的個人,團隊或者組織體系結構描述(architecturaldescription):Acollectionofproductstodocumentanarchitecture.一組記錄軟件體系結構的文檔體系結構(architecture):Thefundamentalorganizationofasystemembodiedinitscomponents,theirrelationshipstoeachother,andtotheenvironment,andtheprinciplesguidingitsdesignandevolution.軟件系統(tǒng)中構件,構件之間的關系,構件與環(huán)境之間的關系,以及指導設計和演化的基本組織。68IEEEStd1471-2000中的若干概念生命周期模型(lifecyclemodel):Aframeworkcontainingtheprocesses,activities,andtasksinvolvedinthedevelopment,operation,andmaintenanceofasoftwareproduct,whichspansthelifeofthesystemfromthedefinitionofitsrequirementstotheterminationofitsuse.圍繞整個軟件開發(fā)過程進行的一組過程和活動,以周而復始的方式存在軟件系統(tǒng)(system):Acollectionofcomponentsorganizedtoaccomplishaspecificfunctionorsetoffunctions.組織起來完成某些特定功能的一組構件69IEEEStd1471-2000中的若干概念系統(tǒng)涉眾(systemstakeholder):Anindividual,team,ororganization(orclassesthereof)withinterestsin,orconcernsrelativeto,asystem.系統(tǒng)利益相關者視圖(view):

Arepresentationofawholesystemfromtheperspectiveofarelatedsetofconcerns.整個系統(tǒng)某個特定角度的表示70如何理解軟件體系結構71體系結構模型視圖2023/2/6軟件體系結構視角72DecompositionPerspectiveRuntimePerspective構件/連接器視圖73實現(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軟件體系結構的意義體系結構是風險承擔者進行交流的手段軟件體系結構代表了系統(tǒng)的公共的高層次的抽象。這樣,系統(tǒng)的大部分有關人員(即使不是全部)能把它作為建立一個互相理解的基礎,形成統(tǒng)一認識,互相交流。體系結構提供了一種共同語言來表達各種關注和協(xié)商,進而對大型復雜系統(tǒng)能進行理智的管理。這對項目最終的質量和使用有極大的影響。80軟件體系結構的意義體系結構是早期設計決策的體現(xiàn)軟件體系結構明確了對系統(tǒng)實現(xiàn)的約束條件軟件體系結構決定了開發(fā)和維護組織的組織結構軟件體系結構制約著系統(tǒng)的質量屬性通過研究軟件體系結構可能預測軟件的質量軟件體系結構使推理和控制更改更簡單軟件體系結構有助于循序漸進的原型設計軟件體系結構可以作為培訓的基礎81軟件體系結構的意義軟件體系結構是可傳遞和可重用的模型軟件體系結構級的重用意味著體系結構的決策能在具有相似需求的多個系統(tǒng)中發(fā)生影響,這比代碼級的重用要有更大的好處。82軟件產品生產線軟件工廠是一個以計算機為依托,并由計算機控制的程序編制環(huán)境,程序的制作、檢查和使用都應當在此環(huán)境中,并運用其中的工具來實現(xiàn)。建設軟件工廠是軟件工程化生產的大趨勢。其實現(xiàn)依賴于對體系結構、模型、方法、工具的研究。83軟件產品線84軟件生命周期(SoftwareLifeCycle)軟件生命周期軟件從開發(fā)啟動啟動開始到被放棄為止的過程85要經過若干迭代的過程軟件體系結構建模軟件體系結構建模的種類結構模型框架模型動態(tài)模型過程模型功能模型

86軟件體系結構建模軟件體系結構建模的種類結構模型這是一個最直觀、最普遍的建模方法。這種方法以體系結構的構件、連接件和其他概念來刻畫結構,并力圖通過結構來反映系統(tǒng)的重要語義內容,包括系統(tǒng)的配置、約束、隱含的假設條件、風格、性質等。研究結構模型的核心是體系結構描述語言。87軟件體系結構建模軟件體系結構建模的種類框架模型框架模型與結構模型類似,但它不太側重描述結構的細節(jié)而更側重于整體的結構。框架模型主要以一些特殊的問題為目標建立只針對和適應該問題的結構。

88軟件體系結構建模軟件體系結構建模的種類動態(tài)模型動態(tài)模型是對結構或框架模型的補充,研究系統(tǒng)的“大顆粒”的行為性質。例如,描述系統(tǒng)的重新配置或

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論