版權(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)Software
Architecture軟件體系結(jié)構(gòu)課程組2課程簡(jiǎn)介
軟件體系結(jié)構(gòu)的主題是針對(duì)復(fù)雜軟件系統(tǒng)的高層結(jié)構(gòu)、組織單元之間的相互關(guān)系的描述,以及圍繞這種描述開(kāi)展的各項(xiàng)活動(dòng),如設(shè)計(jì)、評(píng)估、實(shí)現(xiàn)、管理等。
《軟件體系結(jié)構(gòu)》課程是軟件工程專(zhuān)業(yè)核心課程,在該課程32學(xué)時(shí)的學(xué)習(xí)中,同學(xué)們將學(xué)習(xí)軟件體系結(jié)構(gòu)的基本概念、原則和方法。同時(shí),通過(guò)實(shí)際軟件項(xiàng)目設(shè)計(jì)任務(wù)驅(qū)動(dòng)學(xué)生運(yùn)用理論知識(shí)主動(dòng)思考架構(gòu)方案,引導(dǎo)學(xué)生應(yīng)用輔助工具完成系統(tǒng)架構(gòu)設(shè)計(jì)、評(píng)估和實(shí)現(xiàn)。體驗(yàn)軟件架構(gòu)師在軟件項(xiàng)目全生命周期的任務(wù)、角色,搭建軟件體系結(jié)構(gòu)“學(xué)與用”的橋梁。任務(wù)導(dǎo)向以面引點(diǎn)案例驅(qū)動(dòng)體驗(yàn)探究3課程大綱軟件體系結(jié)構(gòu)緒論軟件體系結(jié)構(gòu)風(fēng)格數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格調(diào)用/返回體系結(jié)構(gòu)風(fēng)格以數(shù)據(jù)為中心體系結(jié)構(gòu)風(fēng)格虛擬機(jī)體系結(jié)構(gòu)風(fēng)格事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格軟件體系結(jié)構(gòu)建模和文檔化質(zhì)量屬性及質(zhì)量屬性策略可用性及其策略性能及其策略可修改性及其策略安全性及其策略可測(cè)試性及其策略易用性及其策略軟件體系結(jié)構(gòu)評(píng)估綜合應(yīng)用案例總結(jié)及展望4課程大綱軟件體系結(jié)構(gòu)1.緒論軟件體系結(jié)構(gòu)風(fēng)格2.數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格3.調(diào)用/返回體系結(jié)構(gòu)風(fēng)格4.以數(shù)據(jù)為中心體系結(jié)構(gòu)風(fēng)格5.虛擬機(jī)體系結(jié)構(gòu)風(fēng)格6.事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格7.軟件體系結(jié)構(gòu)建模和文檔化質(zhì)量屬性及質(zhì)量屬性策略8.可用性及其策略9.性能及其策略10.可修改性及其策略11.安全性及其策略12.可測(cè)試性及其策略13.易用性及其策略14.軟件體系結(jié)構(gòu)評(píng)估15.綜合應(yīng)用案例16.總結(jié)及展望5課程目標(biāo)理解體系結(jié)構(gòu)定義熟悉體系結(jié)構(gòu)風(fēng)格準(zhǔn)確描述一個(gè)體系結(jié)構(gòu)制定、選擇體系結(jié)構(gòu)方案為特定應(yīng)用定制體系結(jié)構(gòu)利用現(xiàn)有工具加速開(kāi)發(fā)過(guò)程構(gòu)建滿(mǎn)足特定體系結(jié)構(gòu)要求的中等規(guī)模軟件系統(tǒng)6軟件體系結(jié)構(gòu)
讓我們開(kāi)始
軟件體系結(jié)構(gòu)(Software
Architecture)……緒論Introduction主講人:李青山教授8
什么是Architecture?Architecture的辭典定義Architecture9Architecture圣·瑪利亞百花大教堂
構(gòu)建Architecture?瑞典的瓦薩戰(zhàn)艦10案例一圣·瑪利亞百花大教堂1296年,佛羅倫薩開(kāi)始動(dòng)工修建一座“具有無(wú)與倫比之華美和尊榮的圣殿,足以使任何教堂都相形見(jiàn)絀”的圣·瑪利亞百花大教堂。然而,大教堂在蓋好本體后,圓頂部分依然空了50年無(wú)法完工。直到1418年,這座夢(mèng)想中的建筑仍未完成。WHY?沒(méi)有鋼筋、混凝土等現(xiàn)代建材的時(shí)代,如何筑成全世界最巨大的石砌磚造圓頂?少了鷹架和電動(dòng)吊車(chē),該怎么把37000噸的大理石安穩(wěn)放置在50米的高空中?沒(méi)人提供的巨大拱頂和圓頂,以及其中設(shè)備的設(shè)計(jì)方案。以當(dāng)時(shí)的經(jīng)驗(yàn),面對(duì)這類(lèi)建筑體系結(jié)構(gòu),設(shè)計(jì)師無(wú)法在美觀和安全之間做出任何妥協(xié)。需求建筑體系結(jié)構(gòu)11案例二瑞典瓦薩戰(zhàn)艦
1620年代,瑞典與波蘭交戰(zhàn)。瑞典國(guó)王下令建造一艘巨型戰(zhàn)艦,長(zhǎng)70m,載員300人,兩層甲板,64門(mén)重炮,以盡快結(jié)束戰(zhàn)爭(zhēng)。建造期間,國(guó)王得知了丹麥建成雙層炮艦的消息,于是在戰(zhàn)艦骨架已經(jīng)基本搭好之后,他又決定,為原計(jì)劃修建單層炮艦的“瓦薩”號(hào)增加一個(gè)槍械甲板,把它改建成“雙層”炮艦,使得“瓦薩”號(hào)擁有了雙排、64門(mén)艦炮,全長(zhǎng)達(dá)到了69米,成為當(dāng)時(shí)裝備最齊全、武裝程度最高的戰(zhàn)船。1628年,Vasa戰(zhàn)艦建造完成,在下水鳴放了幾響禮炮之后,很快沉入水中。WHY?雖然Vasa戰(zhàn)艦制造工藝精良,但船體比例嚴(yán)重失調(diào),體系結(jié)構(gòu)存在致命缺陷。設(shè)計(jì)師在無(wú)前人設(shè)計(jì)經(jīng)驗(yàn)的基礎(chǔ)上,既要執(zhí)行暴躁國(guó)王的“功能性”需求,又要考慮“非功能性”要求(如安全性、可靠性、造價(jià)等)。面對(duì)諸多相互沖突的約束條件,做出了錯(cuò)誤的權(quán)衡,對(duì)一些不可能實(shí)現(xiàn)的要求做了妥協(xié)。需求建筑體系結(jié)構(gòu)12軟件體系結(jié)構(gòu)的動(dòng)機(jī)建筑體系結(jié)構(gòu)軟件體系結(jié)構(gòu)需求復(fù)雜、變化頻繁功能模塊規(guī)模大功能性/非功能性要求高總體的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)比計(jì)算算法和數(shù)據(jù)結(jié)構(gòu)的選擇更為重要大規(guī)模復(fù)雜軟件系統(tǒng)13本節(jié)內(nèi)容軟件體系結(jié)構(gòu)的發(fā)展史1軟件體系結(jié)構(gòu)定義2軟件體系結(jié)構(gòu)的研究活動(dòng)3軟件體系結(jié)構(gòu)的作用414~60年代70~80年代90年代2000年代2010年代高級(jí)語(yǔ)言編譯器出現(xiàn);C語(yǔ)言誕生;COBOL語(yǔ)言誕生集成開(kāi)發(fā)環(huán)境出現(xiàn);軟件工程誕生面向過(guò)程開(kāi)發(fā)結(jié)構(gòu)化程序出現(xiàn);程序驗(yàn)證方法出現(xiàn)形式化方法出現(xiàn)面向服務(wù)開(kāi)發(fā)軟件構(gòu)件化出現(xiàn);J2EE誕生,CORBA誕生搜狐、阿里等成立智能化軟件開(kāi)發(fā)程序自動(dòng)生成;軟件庫(kù)挖掘協(xié)作化工業(yè)化工程化時(shí)代特征時(shí)期開(kāi)發(fā)模式個(gè)人小組企業(yè)眾包面向?qū)ο箝_(kāi)發(fā)C++/Java/C#誕生;UML出現(xiàn);軟件質(zhì)量管控體系(COCOMO);互聯(lián)網(wǎng)誕生現(xiàn)代云與移動(dòng)服務(wù)開(kāi)發(fā)云計(jì)算出現(xiàn)并流行智能機(jī)流行,移動(dòng)服務(wù)出現(xiàn)系統(tǒng)=子程序+子程序構(gòu)件+連接對(duì)象+對(duì)象服務(wù)+服務(wù)總線算法+數(shù)據(jù)結(jié)構(gòu)軟件體系結(jié)構(gòu)的發(fā)展史15~60年代70~80年代90年代2000年代2010年代高級(jí)語(yǔ)言編譯器出現(xiàn);C語(yǔ)言誕生;COBOL語(yǔ)言誕生集成開(kāi)發(fā)環(huán)境出現(xiàn);軟件工程誕生面向過(guò)程開(kāi)發(fā)結(jié)構(gòu)化程序出現(xiàn);程序驗(yàn)證方法出現(xiàn)形式化方法出現(xiàn)面向服務(wù)開(kāi)發(fā)軟件構(gòu)件化出現(xiàn);J2EE誕生,CORBA誕生搜狐、阿里等成立智能化軟件開(kāi)發(fā)程序自動(dòng)生成;軟件庫(kù)挖掘協(xié)作化工業(yè)化工程化時(shí)代特征時(shí)期開(kāi)發(fā)模式個(gè)人小組企業(yè)眾包面向?qū)ο箝_(kāi)發(fā)C++/Java/C#誕生;UML出現(xiàn);軟件質(zhì)量管控體系(COCOMO);互聯(lián)網(wǎng)誕生現(xiàn)代云與移動(dòng)服務(wù)開(kāi)發(fā)云計(jì)算出現(xiàn)并流行智能機(jī)流行,移動(dòng)服務(wù)出現(xiàn)理論完善及普及應(yīng)用“無(wú)體系結(jié)構(gòu)”概念和理論體系形成系統(tǒng)=子程序+子程序構(gòu)件+連接對(duì)象+對(duì)象服務(wù)+服務(wù)總線算法+數(shù)據(jù)結(jié)構(gòu)軟件體系結(jié)構(gòu)的發(fā)展史16軟件體系結(jié)構(gòu)的發(fā)展史1968北大西洋公約組織(NATO)會(huì)議上第一次出現(xiàn)詞語(yǔ)“Software
Architecture(軟件體系結(jié)構(gòu)/軟件架構(gòu))”體系結(jié)構(gòu)出現(xiàn)(1968)概念體系和理論體系形成理論完善和普及應(yīng)用17軟件體系結(jié)構(gòu)的發(fā)展史1968北大西洋公約組織(NATO)會(huì)議上第一次出現(xiàn)詞語(yǔ)“Software
Architecture(軟件體系結(jié)構(gòu)/軟件架構(gòu))”軟件體系結(jié)構(gòu)的定義逐漸明確;相關(guān)體系結(jié)構(gòu)書(shū)籍出版;體系結(jié)構(gòu)風(fēng)格、描述方法、演化及重用等研究方向成為軟件工程領(lǐng)域的研究熱點(diǎn)。體系結(jié)構(gòu)出現(xiàn)(1968)概念體系和理論體系形成理論完善和普及應(yīng)用18軟件體系結(jié)構(gòu)的發(fā)展史1968北大西洋公約組織(NATO)會(huì)議上第一次出現(xiàn)詞語(yǔ)“Software
Architecture(軟件體系結(jié)構(gòu)/軟件架構(gòu))”軟件體系結(jié)構(gòu)的定義逐漸明確;相關(guān)體系結(jié)構(gòu)書(shū)籍出版;體系結(jié)構(gòu)風(fēng)格、描述方法、演化及重用等研究方向成為軟件工程領(lǐng)域的研究熱點(diǎn)。體系結(jié)構(gòu)出現(xiàn)(1968)概念體系和理論體系形成理論完善和普及應(yīng)用1999年,1st
IFIP軟件架構(gòu)會(huì)議召開(kāi);Markup架構(gòu)描述語(yǔ)言提出,支持廣泛的架構(gòu)模型共享;軟件產(chǎn)品線被提出,吸引了大量的大型企業(yè)的關(guān)注;IEEE1471-2000發(fā)布,為軟件架構(gòu)的普及應(yīng)用制定了標(biāo)準(zhǔn)化規(guī)范。19本節(jié)內(nèi)容軟件體系結(jié)構(gòu)的發(fā)展史1軟件體系結(jié)構(gòu)定義2軟件體系結(jié)構(gòu)的研究活動(dòng)3軟件體系結(jié)構(gòu)的作用4系統(tǒng)草圖構(gòu)件集合設(shè)計(jì)決策…定義駁雜多端組成派決策派組成派關(guān)注于軟件本身,將軟件體系結(jié)構(gòu)看做構(gòu)件和交互的集合。有哪些部分組成,如何組成,強(qiáng)調(diào)整體結(jié)構(gòu)和配置決策派關(guān)注于軟件架構(gòu)中的實(shí)體(人),將軟件體系結(jié)構(gòu)視為一系列重要設(shè)計(jì)決策的集合。人員意志和決策,注重架構(gòu)風(fēng)格和模式的選擇軟件體系結(jié)構(gòu)定義1992年,DE.Perry與AL.Wolf對(duì)軟件架構(gòu)進(jìn)行了闡述,認(rèn)為軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素。這一定義在大多數(shù)定義中被廣泛繼承?!綪erryandWolf,1992】
Asetofarchitectural(or,ifyouwill,design)elementsthathaveaparticularform.PerryandWolfdistinguishbetween
processingelements,dataelements,andconnectingelements,andthistaxonomybyandlargepersiststhroughmostotherdefinitionsandapproaches.
元素(elements)是指具有一定形式的結(jié)構(gòu)化元素。包括處理元素(processingelements)、數(shù)據(jù)元素(dataelements)和連接元素(connectingelements)。處理元素負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行加工數(shù)據(jù)元素是被加工的信息連接元素把體系結(jié)構(gòu)的不同部分組合連接起來(lái)軟件體系結(jié)構(gòu)定義-組成派定義1993年,DGarlan,MShaw提出軟件架構(gòu)包括component、connector和constraint三大要素。【
DGarlan,MShaw,1993】...beyondthealgorithmsanddatastructuresofthecomputation;designingandspecifyingtheoverallsystemstructureemergesasanewkindofproblem.Structuralissuesincludegrossorganizationandglobalcontrolstructure;protocolsforcommunication,synchronization,anddataaccess;assignmentoffunctionalitytodesignelements;
physicaldistribution;
composition
ofdesignelements;scalingandperformance;andselection
amongdesignalternatives.“
軟件設(shè)計(jì)過(guò)程中的一個(gè)層次,超越了計(jì)算過(guò)程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。組件(component)可以是一組代碼,也可以是獨(dú)立的程序;連接件(connector)用于表示組件之間的相互關(guān)系,可以是過(guò)程調(diào)用、管道和消息等;約束(constraint)為組件連接時(shí)的條件。軟件體系結(jié)構(gòu)定義-組成派定義
2011年,ISO/IEC/IEEE標(biāo)準(zhǔn)中定義軟件架構(gòu)是某一系統(tǒng)的基本組織結(jié)構(gòu),其內(nèi)容包括軟件構(gòu)件,構(gòu)件間的聯(lián)系,構(gòu)件與其環(huán)境間的聯(lián)系,以及指導(dǎo)上述內(nèi)容設(shè)計(jì)與演化的原理。。。【ISO/IEC/IEEE,2011】ABSTRACTISO/IEC/IEEE42010:2011addressesthecreation,analysisandsustainmentofarchitecturesofsystemsthroughtheuseofarchitecturedescriptions.Aconceptualmodelofarchitecturedescriptionisestablished.Therequiredcontentsofanarchitecturedescriptionarespecified.Architectureviewpoints,architectureframeworksandarchitecturedescriptionlanguagesareintroducedforcodifyingconventionsandcommonpracticesofarchitecturedescription.Therequiredcontentofarchitectureviewpoints,architectureframeworksandarchitecturedescriptionlanguagesisspecified.AnnexesprovidethemotivationandbackgroundforkeyconceptsandterminologyandexamplesofapplyingISO/IEC/IEEE42010:2011.
軟件體系結(jié)構(gòu)定義-組成派定義
1999年,
Booch,RumbaughandJacobson從另一個(gè)角度對(duì)軟件架構(gòu)的概念進(jìn)行了全新的詮釋?zhuān)J(rèn)為架構(gòu)是一系列重要決策的集合?!綛ooch,1999】Anarchitectureisthesetofimportant
decisionsabouttheorganizationofasoftwaresystem,theselectionofthestructuralelementsandtheirinterfacesbywhichthesystemiscomposed,togetherwiththeirbehaviorasspecifiedinthecollaborationsamongthoseelements,thecompositionofthesestructuralandbehavioralelementsintoprogressivelylargersubsystems,andthe
architecturalstyle
thatguidesthisorganizationcomposition.—theseelementsandtheirinterfaces,theircollaborations,andtheircomposition.
一系列重要決策的集合關(guān)于:軟件系統(tǒng)的組織;組成系統(tǒng)的結(jié)構(gòu)元素和它們之間的接口,及這些元素相互協(xié)作時(shí)所體現(xiàn)的行為;如何組合這些元素,使它們逐漸合成為更大的子系統(tǒng);指導(dǎo)這一軟件系統(tǒng)組織的架構(gòu)風(fēng)格。軟件體系結(jié)構(gòu)定義-決策派定義【Anton,2005】軟件架構(gòu)是架構(gòu)層次上所有設(shè)計(jì)決策的集合體,這些設(shè)計(jì)決策與以下內(nèi)容有關(guān):架構(gòu)改造的影響、原理、設(shè)計(jì)準(zhǔn)則、設(shè)計(jì)約束以及附加需求。
【Kruchten,2006】軟件體系結(jié)構(gòu)是設(shè)計(jì)決策+設(shè)計(jì)(設(shè)計(jì)決策的推理過(guò)程)。
軟件體系結(jié)構(gòu)定義-決策派定義在Booch定義的基礎(chǔ)上,其他決策派定義產(chǎn)生。VivekKhare認(rèn)為軟件架構(gòu)是設(shè)計(jì)和構(gòu)建軟件應(yīng)用的科學(xué)和藝術(shù),這些軟件應(yīng)用滿(mǎn)足生命周期中用戶(hù)的各種需求。
AakashAhmad認(rèn)為軟件架構(gòu)是包含設(shè)計(jì)、演化、構(gòu)建配置的推理和構(gòu)件互連關(guān)系的高層抽象結(jié)構(gòu)。
AndreasRausch認(rèn)為軟件架構(gòu)是一個(gè)針對(duì)軟件改變的框架。
MuthuRajagopal認(rèn)為軟件架構(gòu)是能夠有效組合在一起的軟件和硬件構(gòu)件的集合,這些構(gòu)件組合后能滿(mǎn)足預(yù)期需求。
軟件體系結(jié)構(gòu)定義-其他定義業(yè)界還存在一些其他觀點(diǎn),從獨(dú)特的角度詮釋軟件體系結(jié)構(gòu)【CMU,2018】
基于DGarlan,MShaw的定義,我們可將軟件體系結(jié)構(gòu)的定義理解為:
軟件體系結(jié)構(gòu)=組件+連接件+約束
SoftwareArchitecture=Components+Connectors+Constrains組件:具有某種功能的可重用的軟件模塊單元,表示了系統(tǒng)中主要的計(jì)算單元和數(shù)據(jù)存儲(chǔ)。連接件:表示了組件之間的交互,簡(jiǎn)單的連接件有:管道(pipe)、過(guò)程調(diào)用(procedure-call)、事件廣播(eventbroadcast)等。復(fù)雜的連接件有:客戶(hù)-服務(wù)器(client-server)通信協(xié)議,數(shù)據(jù)庫(kù)和應(yīng)用之間SQL連接等。約束:表示了組件和連接件的拓?fù)溥壿嫼图s束(constraint)。軟件體系結(jié)構(gòu)定義-總結(jié)28軟件體系結(jié)構(gòu)的發(fā)展史1軟件體系結(jié)構(gòu)定義2軟件體系結(jié)構(gòu)的研究活動(dòng)3軟件體系結(jié)構(gòu)的目標(biāo)與作用4本節(jié)內(nèi)容29軟件體系結(jié)構(gòu)的研究活動(dòng)-從建筑體系結(jié)構(gòu)看起基本的建筑單元都有哪些?有哪些實(shí)用、美觀、強(qiáng)度、造價(jià)合理、可復(fù)用的大粒度建筑單元,使建造出來(lái)的建筑更能滿(mǎn)足用戶(hù)的需求?建筑模塊怎樣搭配才合理?有哪些典型的建筑風(fēng)格?每種典型建筑(醫(yī)院、工廠、旅館)的典型結(jié)構(gòu)是什么樣子?需要什么樣的構(gòu)件?如何繪制建筑體系結(jié)構(gòu)的圖紙?如何快速節(jié)省的將圖紙變?yōu)閷?shí)物(即施工過(guò)程)?建筑完成之后,如何對(duì)其進(jìn)行恰當(dāng)程度的修改?重要模塊有了更改后,如何保證整棟建筑質(zhì)量不受影響?如何根據(jù)圖紙進(jìn)行質(zhì)量評(píng)估?30軟件體系結(jié)構(gòu)的研究活動(dòng)-軟件體系結(jié)構(gòu)要解決的問(wèn)題軟件的基本構(gòu)造單元是什么?這些構(gòu)造單元之間如何連接?最終形成何種樣式的拓?fù)浣Y(jié)構(gòu)?典型應(yīng)用領(lǐng)域的典型體系結(jié)構(gòu)是什么樣子?如何進(jìn)行軟件體系結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)?如果對(duì)已經(jīng)存在的軟件體系結(jié)構(gòu)進(jìn)行修改?使用何種工具來(lái)支持軟件體系結(jié)構(gòu)的設(shè)計(jì)?如何對(duì)軟件體系結(jié)構(gòu)進(jìn)行描述、分析和驗(yàn)證?31軟件體系結(jié)構(gòu)的研究活動(dòng)-軟件體系結(jié)構(gòu)的研究?jī)?nèi)容軟件體系結(jié)構(gòu)的建模與表示(Architecture
ModelingandDocumenting)軟件體系結(jié)構(gòu)風(fēng)格的研究(SoftwareArchitectureStyles)體系結(jié)構(gòu)描述語(yǔ)言(Architecture
DescriptionLanguage,ADL)軟件體系結(jié)構(gòu)的評(píng)價(jià)方法(Architecture
Evaluation)軟件產(chǎn)品線及特定領(lǐng)域軟件框架的研究(ProductlineandDSSA)動(dòng)態(tài)軟件體系結(jié)構(gòu)。。。動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)——來(lái)源32自適應(yīng)過(guò)程面臨瓶頸軟件體系結(jié)構(gòu)1軟件體系結(jié)構(gòu)為考察自適應(yīng)系統(tǒng)提供了全面、系統(tǒng)、易于理解的模型軟件體系結(jié)構(gòu)有助于對(duì)自適應(yīng)系統(tǒng)動(dòng)態(tài)演化的正確和有效評(píng)估基于體系結(jié)構(gòu)的軟件自適應(yīng)基于體系結(jié)構(gòu)的自適應(yīng)系統(tǒng)動(dòng)態(tài)演化,就是將軟件變化映射為體系結(jié)構(gòu)變化。軟件體系結(jié)構(gòu)以實(shí)體顯性表示,作為系統(tǒng)動(dòng)態(tài)演化的依據(jù)。21現(xiàn)有自適應(yīng)框架調(diào)整層次單一?,F(xiàn)有方法忽略了變化間關(guān)聯(lián)關(guān)系及變化對(duì)系統(tǒng)的潛在影響。32現(xiàn)有方法忽略變化特征與系統(tǒng)結(jié)構(gòu)特點(diǎn)。為解決軟件運(yùn)行環(huán)境開(kāi)放性、動(dòng)態(tài)性、多變性等引起系統(tǒng)頻繁變化的問(wèn)題,對(duì)軟件提出了自適應(yīng)性要求。軟件體系結(jié)構(gòu)通過(guò)實(shí)體關(guān)聯(lián)描述組件間的交互關(guān)系,其被整個(gè)運(yùn)行環(huán)境共享,因此可作為觸發(fā)條件驅(qū)動(dòng)軟件系統(tǒng)自適應(yīng)演化,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行監(jiān)控,實(shí)現(xiàn)全局的適應(yīng)。軟件體系結(jié)構(gòu)的研究活動(dòng)-動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)——過(guò)程33基于體系結(jié)構(gòu)的軟件自適應(yīng)需要引入基本體系結(jié)構(gòu)生成器,負(fù)責(zé)從實(shí)際運(yùn)行的系統(tǒng)中不斷提取最新的軟件體系結(jié)構(gòu)信息,把系統(tǒng)自身的動(dòng)態(tài)調(diào)整在體系結(jié)構(gòu)的抽象層面上得以表達(dá),引入演化執(zhí)行管理器負(fù)責(zé)在實(shí)際系統(tǒng)上執(zhí)行在軟件體系結(jié)構(gòu)層面表述的動(dòng)態(tài)調(diào)整命令,實(shí)現(xiàn)軟件自適應(yīng)演化。運(yùn)行系統(tǒng)狀態(tài)管理器分析判斷模型管理器規(guī)劃決策器演化執(zhí)行管理器數(shù)據(jù)庫(kù)知識(shí)管理器基本體系結(jié)構(gòu)用戶(hù)管理需求變化自適應(yīng)層系統(tǒng)層用戶(hù)層設(shè)計(jì)制定或在線擴(kuò)展目標(biāo)知識(shí)庫(kù)領(lǐng)域信息庫(kù)效用信息庫(kù)軟件體系結(jié)構(gòu)自適應(yīng)動(dòng)態(tài)演化軟件體系結(jié)構(gòu)的研究活動(dòng)-動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)典型框架——RAINBOW34Rainbow框架由卡內(nèi)基·梅隆大學(xué)(CMU)的SWCheng團(tuán)隊(duì)于2004年提出,使用了基于外部模型的控制閉環(huán)來(lái)實(shí)現(xiàn)自適應(yīng)調(diào)整。該方法使用軟件體系結(jié)構(gòu)模型動(dòng)態(tài)監(jiān)控系統(tǒng),對(duì)系統(tǒng)約束規(guī)則及運(yùn)行性能綜合分析,通過(guò)系統(tǒng)API重構(gòu)基礎(chǔ)設(shè)施,應(yīng)用于多種典型系統(tǒng)中自適應(yīng)調(diào)整穩(wěn)定性提升明顯。RAINBOW框架架構(gòu)設(shè)計(jì)圖體系結(jié)構(gòu)層系統(tǒng)層自適應(yīng)引擎約束評(píng)估器自適應(yīng)執(zhí)行模型管理器策略性能操作規(guī)則映射基礎(chǔ)設(shè)施重構(gòu)目標(biāo)系統(tǒng)API在典型系統(tǒng)Znn中自適應(yīng)過(guò)程響應(yīng)時(shí)間對(duì)比圖(右)在Libra視頻會(huì)議系統(tǒng)中多客戶(hù)自適應(yīng)過(guò)程穩(wěn)定性測(cè)試圖(左)軟件體系結(jié)構(gòu)的研究活動(dòng)-動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)典型框架——自適應(yīng)軟件體系結(jié)構(gòu)方法35自適應(yīng)軟件體系結(jié)構(gòu)方法(SASA)由北京大學(xué)梅宏院士于2008年提出,該方法首先根據(jù)需求規(guī)約設(shè)計(jì)體系結(jié)構(gòu),并依據(jù)需求規(guī)約選擇與自適應(yīng)相關(guān)的質(zhì)量場(chǎng)景,然后按照體系結(jié)構(gòu)分析方法選擇適當(dāng)?shù)恼{(diào)整方案,最后根據(jù)方案對(duì)系統(tǒng)進(jìn)行構(gòu)件添加刪除和重配置等調(diào)整,實(shí)現(xiàn)軟件動(dòng)態(tài)演化??烧{(diào)整的軟件系統(tǒng)自適應(yīng)支撐機(jī)制具有適應(yīng)性的軟件系統(tǒng)適應(yīng)性軟件體系結(jié)構(gòu)應(yīng)用程序體系結(jié)構(gòu)自適應(yīng)策略需求規(guī)約基于場(chǎng)景的自適應(yīng)分析和自適應(yīng)調(diào)整方案的確定體系結(jié)構(gòu)設(shè)計(jì)部署分析/調(diào)整SASA框架圖元素動(dòng)作具體調(diào)整動(dòng)作構(gòu)件添加和刪除創(chuàng)建或釋放容器實(shí)例替換替換整個(gè)構(gòu)件;替換構(gòu)件契約;釋放舊實(shí)例,并且創(chuàng)新新的實(shí)例構(gòu)件的約束添加、刪除、替換相應(yīng)的截取器連接子協(xié)議添加和刪除添加或刪除相應(yīng)的發(fā)送者和接收者,為傳輸層協(xié)議添加刪除傳輸者對(duì)協(xié)議的調(diào)整調(diào)整協(xié)議的實(shí)現(xiàn)配置重配置上述調(diào)整的不同組合體系結(jié)構(gòu)層次的調(diào)整軟件體系結(jié)構(gòu)的研究活動(dòng)-動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)未來(lái)工作36目前,基于體系結(jié)構(gòu)的自適應(yīng)軟件動(dòng)態(tài)演化技術(shù)以成功應(yīng)用于多種大型復(fù)雜系統(tǒng)(如電子商務(wù)系統(tǒng)、CPS系統(tǒng)等)。未來(lái),結(jié)合最新理念擴(kuò)寬研究思路,與新興技術(shù)交叉融合實(shí)現(xiàn)廣泛應(yīng)用。電子商務(wù)系統(tǒng)物理信息融和系統(tǒng)擴(kuò)寬研究思路,應(yīng)對(duì)不確定性交叉融合新技術(shù),應(yīng)對(duì)群體自適應(yīng)強(qiáng)化學(xué)習(xí)統(tǒng)計(jì)分析概率理論社群智能數(shù)據(jù)流推理PBAAM框架MADAM框架技術(shù)成熟,應(yīng)用廣泛推動(dòng)發(fā)展,展望未來(lái)應(yīng)用軟件體系結(jié)構(gòu)的研究活動(dòng)-動(dòng)態(tài)演化自適應(yīng)體系結(jié)構(gòu)37本節(jié)內(nèi)容軟件體系結(jié)構(gòu)的發(fā)展史1軟件體系結(jié)構(gòu)定義2軟件體系結(jié)構(gòu)的研究活動(dòng)3軟件體系結(jié)構(gòu)的作用438項(xiàng)目規(guī)劃考慮項(xiàng)目的規(guī)模、復(fù)雜度、可行性等;需求分析利用SA,支持用戶(hù)、項(xiàng)目負(fù)責(zé)人、系統(tǒng)架構(gòu)師、程序員、測(cè)試人員之間進(jìn)行交流和協(xié)商;從不同視角審查備選的SA,對(duì)得出的意見(jiàn)進(jìn)行綜合,找出合理的平衡方案;從用戶(hù)角度考慮未來(lái)的需求變化,并使SA能夠提前支持這些變化;軟件實(shí)現(xiàn)各開(kāi)發(fā)團(tuán)隊(duì)按照SA規(guī)定的“構(gòu)件及其之間的相互關(guān)系”進(jìn)行開(kāi)發(fā),保證最終得到的系統(tǒng)與最初的SA一致;維護(hù)與升級(jí)把SA文檔作為維護(hù)和升級(jí)的重要依據(jù)。軟件設(shè)計(jì)參考經(jīng)典SA風(fēng)格,設(shè)計(jì)系統(tǒng)體系結(jié)構(gòu)模型,推敲其存在的缺陷和替代方案,并進(jìn)行評(píng)估;進(jìn)而逐步細(xì)化SA,并對(duì)定型后的SA作文檔化工作;測(cè)試與評(píng)審根據(jù)SA的約束條件,對(duì)軟件的質(zhì)量屬性進(jìn)行測(cè)試。軟件生命周期軟件體系結(jié)構(gòu)作用軟件體系結(jié)構(gòu)的作用-軟件生命周期中的作用39軟件體系結(jié)構(gòu)的作用-SAisveryimportant
借用艾茲格·迪科斯徹的話:
“…thelargertheproject,themoreessentialthestructuring!”
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 金華2025年浙江金華義烏郵政管理局勞務(wù)派遣人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 福州2025年福建福州市臺(tái)江區(qū)機(jī)關(guān)-事業(yè)單位招聘筆試歷年參考題庫(kù)附帶答案詳解
- 溫州2025年浙江溫州文成縣教育局縣城學(xué)校選調(diào)教師筆試歷年參考題庫(kù)附帶答案詳解
- 廣東2025年廣東輕工職業(yè)技術(shù)學(xué)院大學(xué)外聘專(zhuān)職人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 合肥2025年安徽合肥肥西縣招聘幼兒園教師及管理人員50人筆試歷年參考題庫(kù)附帶答案詳解
- 亳州2025年安徽亳州蒙城縣中小學(xué)新任教師招聘200人筆試歷年參考題庫(kù)附帶答案詳解
- 中央2025年中國(guó)外文出版發(fā)行事業(yè)局所屬企事業(yè)單位招聘13人筆試歷年參考題庫(kù)附帶答案詳解
- 2026年國(guó)際商務(wù)談判技巧國(guó)際市場(chǎng)策略與文化差異研究題目
- 2026年財(cái)經(jīng)專(zhuān)業(yè)知識(shí)題庫(kù)中級(jí)會(huì)計(jì)師
- 2026年會(huì)計(jì)職稱(chēng)考試企業(yè)會(huì)計(jì)準(zhǔn)則應(yīng)用題解析及案例
- 雷波縣糧油貿(mào)易總公司 2026年面向社會(huì)公開(kāi)招聘?jìng)淇伎荚囋囶}及答案解析
- 療養(yǎng)院?jiǎn)T工勞動(dòng)保護(hù)制度
- 2026浙江溫州市蒼南縣城市投資集團(tuán)有限公司招聘19人考試參考試題及答案解析
- 2026年廣州中考化學(xué)創(chuàng)新題型特訓(xùn)試卷(附答案可下載)
- 2025司法鑒定人資格考試考點(diǎn)試題及答案
- 保健用品生產(chǎn)管理制度
- 檔案計(jì)件工資管理制度
- 浙江省杭州市拱墅區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- DB11∕T 695-2025 建筑工程資料管理規(guī)程
- 產(chǎn)科護(hù)理中的人文關(guān)懷與溝通藝術(shù)
- 2025年廣電營(yíng)銷(xiāo)考試題庫(kù)
評(píng)論
0/150
提交評(píng)論