版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
詳解軟件體系結(jié)構(gòu)的現(xiàn)狀及發(fā)展方向來源:希賽網(wǎng)作者:張友生軟件體系結(jié)構(gòu)的現(xiàn)狀如何呢?軟件體系結(jié)構(gòu)的發(fā)展趨勢又是什么呢?這就是本文要介紹的內(nèi)容。目前,軟件體系結(jié)構(gòu)尚處在迅速發(fā)展之中,越來越多的研究人員正在把注意力投向軟件體系結(jié)構(gòu)的研究。用于對軟件體系進(jìn)行規(guī)格描述的模型、標(biāo)記法和工具仍很不正規(guī)。盡管這些不正規(guī)的模型是有用的,為使之更為精確和健壯,在很多方面的研究工作還需要繼續(xù)進(jìn)行。關(guān)于軟件體系結(jié)構(gòu)的研究工作主要在國外展開的,國內(nèi)到目前為止對于軟件體系結(jié)構(gòu)的研究尚處在起步階段。軟件體系結(jié)構(gòu)在國內(nèi)未引起人們廣泛注意的原因主要有兩點(diǎn):軟件體系結(jié)構(gòu)從表面上看起來是一個(gè)老話題,似乎沒有新東西。與國外相比,國內(nèi)對大型和超大型復(fù)雜軟件系統(tǒng)開發(fā)的經(jīng)歷相對較少,對軟件危機(jī)的災(zāi)難性體會沒有國外深刻,因而對軟件體系結(jié)構(gòu)研究的重要性和必要性的認(rèn)識還不很充分。一、應(yīng)用現(xiàn)狀1、形成研究熱點(diǎn),仍處于非形式化水平自20世紀(jì)90年代后期以來,軟件體系結(jié)構(gòu)的研究成為一個(gè)熱點(diǎn)。廣大軟件工作者已經(jīng)認(rèn)識到軟件體系結(jié)構(gòu)研究的重大意義和它對軟件系統(tǒng)設(shè)計(jì)開發(fā)的重要性,開展了很多研究和實(shí)踐工作。從軟件體系結(jié)構(gòu)研究的現(xiàn)狀來看,當(dāng)前的研究和對軟件體系結(jié)構(gòu)的描述,在很大程度上來說還停留在非形式化的基礎(chǔ)上。軟件構(gòu)架師仍然缺乏必要的工具,這種工具應(yīng)該是顯式描述的、有獨(dú)立性的形式化工具。在目前通用的軟件開發(fā)方法中,其描述通常是用非形式化的圖和文本,不能描述系統(tǒng)期望的存在于構(gòu)件之間的接口,不能描述不同的組成系統(tǒng)的組合關(guān)系的意義。難以被開發(fā)人員理解,更不能用來分析其一致性和完整性等特性。當(dāng)一個(gè)軟件系統(tǒng)中的構(gòu)件之間幾乎以一種非形式化的方法描述時(shí),系統(tǒng)的重用性也會受到影響,在設(shè)計(jì)一個(gè)系統(tǒng)結(jié)構(gòu)過程中的努力很難移植到另一個(gè)系統(tǒng)中去。對系統(tǒng)構(gòu)件和連接關(guān)系的結(jié)構(gòu)化假設(shè)沒有得到顯式的、形式化的描述時(shí),把這樣的系統(tǒng)構(gòu)件移植到另一個(gè)系統(tǒng)中去將是有風(fēng)險(xiǎn)的,甚至是不可能的。2、軟件體系結(jié)構(gòu)的形式化方法研究軟件體系結(jié)構(gòu)研究如果僅僅停留在非形式化的框圖階段,已經(jīng)難以適應(yīng)進(jìn)一步發(fā)展的需要。為支持基于體系結(jié)構(gòu)的開發(fā),需要有形式化建模符號、體系結(jié)構(gòu)說明的分析與開發(fā)工具。從軟件體系結(jié)構(gòu)研究的現(xiàn)狀來看,在這一領(lǐng)域近來已經(jīng)有不少進(jìn)展,其中比較有代表性的是美國卡耐基梅隆大學(xué)(CarnegieMellonUniversity)的RobertJ.Alien于1997年提出的Wright系統(tǒng)。Wright是-種結(jié)構(gòu)描述語言,該語言基于一種形式化的、抽象的系統(tǒng)模型,為描述和分析軟件體系結(jié)構(gòu)和結(jié)構(gòu)化方法提供了一種實(shí)用的工具°Wright主要側(cè)重于描述系統(tǒng)的軟件構(gòu)件和連接的結(jié)構(gòu)、配置和方法。它使用顯式的、獨(dú)立的連接模型來作為交互的方式,這使得該系統(tǒng)可以用邏輯謂詞符號系統(tǒng),而不依賴特定的系統(tǒng)實(shí)例來描述系統(tǒng)的抽象行為。該系統(tǒng)還可以通過一組靜態(tài)檢查來判斷系統(tǒng)結(jié)構(gòu)規(guī)格說明的一致性和完整性。從這些特性的分析來說,Wright系統(tǒng)的確適用于對大型系統(tǒng)的描述和分析。3、軟件體系結(jié)構(gòu)的建模研究研究軟件體系結(jié)構(gòu)的首要問題是如何表示軟件體系結(jié)構(gòu),即如何對軟件體系結(jié)構(gòu)建模。根據(jù)建模的側(cè)重點(diǎn)的不同,可以將軟件體系結(jié)構(gòu)的模型分為5種:結(jié)構(gòu)模型、框架模型、動(dòng)態(tài)模型、過程模型和功能模型。在這5個(gè)模型中,最常用的是結(jié)構(gòu)模型和動(dòng)態(tài)模型。(1) 結(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)描述語言。(2) 框架模型框架模型與結(jié)構(gòu)模型類似,但它不太側(cè)重描述結(jié)構(gòu)的細(xì)節(jié)而更側(cè)重于整體的結(jié)構(gòu)。框架模型主要以一些特殊的問題為目標(biāo)建立只針對和適應(yīng)該問題的結(jié)構(gòu)。(3) 動(dòng)態(tài)模型動(dòng)態(tài)模型是對結(jié)構(gòu)或框架模型的補(bǔ)充,研究系統(tǒng)的"大顆粒"的行為性質(zhì)。例如,描述系統(tǒng)的重新配置或演化。動(dòng)態(tài)可能指系統(tǒng)總體結(jié)構(gòu)的配置、建立或拆除通信通道或計(jì)算的過程。這類系統(tǒng)常是激勵(lì)型的。(4) 過程模型過程模型研究構(gòu)造系統(tǒng)的步驟和過程。因而結(jié)構(gòu)是遵循某些過程腳本的結(jié)果。(5) 功能模型該模型認(rèn)為體系結(jié)構(gòu)是由一組功能構(gòu)件按層次組成,下層向上層提供服務(wù)。它可以看作是一種特殊的框架模型。這5種模型各有所長,也許將5種模型有機(jī)地統(tǒng)一在一起,形成一個(gè)完整的模型來刻畫軟件體系結(jié)構(gòu)更合適。例如,Kruchten在1995年提出了一個(gè)“4+1”的視角模型?!?+1”模型從5個(gè)不同的視角包括邏輯視角、過程視角、物理視角、開發(fā)視角和場景視角來描述軟件體系結(jié)構(gòu)。每一個(gè)視角只關(guān)心系統(tǒng)的一個(gè)側(cè)面,5個(gè)視角結(jié)合在一起才能夠反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部內(nèi)容。“4+1”模型如圖1所示。圖1:“4+1”模型4、發(fā)展基于體系結(jié)構(gòu)的軟件開發(fā)模型軟件開發(fā)模型是跨越整個(gè)軟件生存周期的系統(tǒng)開發(fā)、運(yùn)行、維護(hù)所實(shí)施的全部工作和任務(wù)的結(jié)構(gòu)框架,給出了軟件開發(fā)活動(dòng)各階段之間的關(guān)系。目前,常見的軟件開發(fā)模型大致可分為三種類型:(1) 以軟件需求完全確定為前提的瀑布模型。(2) 在軟件開發(fā)初始階段只能提供基本需求時(shí)采用的漸進(jìn)式開發(fā)模型,如螺旋模型等。(3) 以形式化開發(fā)方法為基礎(chǔ)的變換模型。所有開發(fā)方法都是要解決需求與實(shí)現(xiàn)之間的差距。但是,這三種類型的軟件開發(fā)模型都存在這樣或那樣的缺陷,不能很好地支持基于軟件體系結(jié)構(gòu)的開發(fā)過程。因此,研究人員在發(fā)展基于體系結(jié)構(gòu)的軟件開發(fā)模型方面做了一定的工作。例如,為了形象地表示體系結(jié)構(gòu)的生命周期,北京郵電大學(xué)的周瑩新博士建立了一個(gè)軟件體系結(jié)構(gòu)的生命周期模型,該模型如圖2所示。需饕潰化或擴(kuò)展否體泵結(jié)構(gòu)的乍形式化描建傳系結(jié)枸的形式從基謝(數(shù)辛模型)體系結(jié)構(gòu)捷供]評價(jià)和度星體系結(jié)柚的性質(zhì)分新體系結(jié)橫的規(guī)范描述體系結(jié)掏或梢的驗(yàn)證r體系結(jié)枸的求藉體系結(jié)構(gòu)的終結(jié)沽系結(jié)植的潘化需饕潰化或擴(kuò)展否體泵結(jié)構(gòu)的乍形式化描建傳系結(jié)枸的形式從基謝(數(shù)辛模型)體系結(jié)構(gòu)捷供]評價(jià)和度星體系結(jié)柚的性質(zhì)分新體系結(jié)橫的規(guī)范描述體系結(jié)掏或梢的驗(yàn)證r體系結(jié)枸的求藉體系結(jié)構(gòu)的終結(jié)沽系結(jié)植的潘化體系踣榕的實(shí)施j圖2:軟件體系結(jié)構(gòu)的生命周期模型5、軟件產(chǎn)品線體系結(jié)構(gòu)的研究軟件體系結(jié)構(gòu)的開發(fā)是大型軟件系統(tǒng)開發(fā)的關(guān)鍵環(huán)節(jié)。體系結(jié)構(gòu)在軟件生產(chǎn)線的開發(fā)中具有至關(guān)重要的作用,在這種開發(fā)生產(chǎn)中,基于同一個(gè)軟件體系結(jié)構(gòu),可以創(chuàng)建具有不同功能的多個(gè)系統(tǒng)。在軟件產(chǎn)品族之間共享體系結(jié)構(gòu)和一組可重用的構(gòu)件,可以增加軟件工程和降低開發(fā)和維護(hù)成本。一個(gè)產(chǎn)品線代表著一組具有公共的系統(tǒng)需求集的軟件系統(tǒng),它們都是根據(jù)基本的用戶需求對標(biāo)準(zhǔn)的產(chǎn)品線構(gòu)架進(jìn)行定制,將可重用構(gòu)件與系統(tǒng)獨(dú)有的部分集成而得到的。采用軟件生產(chǎn)線式模式進(jìn)行軟件生產(chǎn),將產(chǎn)生巨型編程企業(yè)。但目前生產(chǎn)的軟件產(chǎn)品族大部分是處于同一領(lǐng)域的。二、研究熱點(diǎn)當(dāng)前,體系結(jié)構(gòu)仍是一個(gè)非常新的研究領(lǐng)域,其概念還相當(dāng)模糊。但軟件體系結(jié)構(gòu)作為軟件工程領(lǐng)域中的一個(gè)組成部分,已經(jīng)取得了長足的發(fā)展,受到大多數(shù)軟件系統(tǒng)設(shè)計(jì)和研究人員的重視。軟件體系結(jié)構(gòu)目前較活躍的研究方向包括:(1)軟件體系結(jié)構(gòu)形式基礎(chǔ)的研究;(2)針對軟件體系結(jié)構(gòu)描述中特有的問題研究新的專門的高級語言;(3)建立用于度量和評價(jià)軟件體系結(jié)構(gòu)的模型和方法;(4)建立面向?qū)iT領(lǐng)域的軟件體系結(jié)構(gòu)范型庫。(5)把軟件體系結(jié)構(gòu)從目前的直覺和經(jīng)驗(yàn)狀態(tài)過渡到理論。1、提供新的軟件體系結(jié)構(gòu)描述語言在提高軟件工程師對軟件系統(tǒng)的描述和理解能力中,雖然軟件體系結(jié)構(gòu)描述起著重要作用,但這些抽象的描述通常是非形式化的和隨意的。體系結(jié)構(gòu)設(shè)計(jì)經(jīng)常難以理解,難以適于進(jìn)行形式化分析和模擬,缺乏相應(yīng)的支持工具幫助構(gòu)架師完成設(shè)計(jì)工作。為了解決這個(gè)問題,用于描述和推理的形式化語言得以發(fā)展,這些語言就叫做體系結(jié)構(gòu)描述語言(ArchitectureDescriptionLanguage),ADLs尋求增加軟件體系結(jié)構(gòu)設(shè)計(jì)的可理解性和重用性。ADL是這樣一種語言,系統(tǒng)構(gòu)架師可以利用它所提供的特性進(jìn)行軟件系統(tǒng)概念體系結(jié)構(gòu)建模。ADL提供了具體的語法與刻畫體系結(jié)構(gòu)的概念框架。ADLs使得系統(tǒng)開發(fā)者能夠很好地描述他們設(shè)計(jì)的體系結(jié)構(gòu),以便與人交流,能夠用提供的工具對許多實(shí)例進(jìn)行分析。這種描述語言的目的就是提供一種規(guī)范化的體系結(jié)構(gòu)描述,從而使得體系結(jié)構(gòu)的自動(dòng)化分析變得可能。研究人員已經(jīng)設(shè)計(jì)出了近二十種ADLs,比較有影響力的有C2、UniCon、MetaH、Aesop、SADL、Rapide、Wright等。這些語言能夠?qū)w系結(jié)構(gòu)連接器進(jìn)行第一級抽象,同時(shí)還能描述模型的結(jié)構(gòu)和內(nèi)部構(gòu)件之間的交互作用,并且還引入了一些新的系統(tǒng)分析模式。2、 對軟件體系結(jié)構(gòu)的專門知識的整理這方面的工作主要是對軟件工程師在軟件開發(fā)實(shí)踐中得來的各種體系結(jié)構(gòu)的原則、模式的整理和分類。例如,對軟件體系結(jié)構(gòu)風(fēng)格的分類和比較,對體系結(jié)構(gòu)描述語言的綜合分析等。就目前看來,國內(nèi)對軟件體系結(jié)構(gòu)的研究主要集中在對軟件體系結(jié)構(gòu)的專門知識的整理上。3、 提供特定領(lǐng)域的體系結(jié)構(gòu)框架最近,開發(fā)特定的領(lǐng)域去為產(chǎn)品提供可重用框架日益受到關(guān)注。這些開發(fā)基于這樣的想法:可以提取相關(guān)系統(tǒng)中的共同方面,以便可以通過低成本地把這些共同的設(shè)計(jì)實(shí)例化來構(gòu)筑新系統(tǒng)。常見的例子有:(1)編譯器的標(biāo)準(zhǔn)分解。這個(gè)方法可以使一個(gè)本科生在一個(gè)學(xué)期時(shí)間內(nèi)構(gòu)造一個(gè)新的語言編譯系統(tǒng)。(2) 標(biāo)準(zhǔn)化的通訊協(xié)議。這個(gè)可以使廠家通過在不同層次的抽象上提供服務(wù)來互相操縱。(3) 第四代語言。利用4GL開發(fā)出商務(wù)信息處理的通用范式。(4) 用戶界面工具和框架。這個(gè)方法為開發(fā)者提供了一個(gè)可重用框架以及象菜單、對話框這樣的可重用構(gòu)件的集合。軟件體系結(jié)構(gòu)充當(dāng)一個(gè)理解系統(tǒng)構(gòu)件和它們之間關(guān)系的框架,特別是那些始終跨越時(shí)間和實(shí)現(xiàn)的屬性。這個(gè)理解對于現(xiàn)在系統(tǒng)的分析和未來系統(tǒng)的綜合很有必要。在分析和支持下,體系結(jié)構(gòu)抓住領(lǐng)域知識和實(shí)際的一致,促進(jìn)設(shè)計(jì)的評估和構(gòu)件的實(shí)施,減少仿真和構(gòu)造原型。在綜合的支持下,體系結(jié)構(gòu)提供了建立系列產(chǎn)品的基礎(chǔ),以可預(yù)測的方式利用領(lǐng)域知識構(gòu)造和維護(hù)模塊、子系統(tǒng)和系統(tǒng)。4、提供軟件體系結(jié)構(gòu)的形式化基礎(chǔ)對體系結(jié)構(gòu)設(shè)計(jì)的推理的形式化表示使得體系結(jié)構(gòu)級的設(shè)計(jì)更好地被理解、被實(shí)現(xiàn)。它的目的是對體系結(jié)構(gòu)設(shè)計(jì)人員在實(shí)踐過程中總結(jié)出來的一些設(shè)計(jì)的經(jīng)驗(yàn)和方法加以總結(jié)、概括,從而形成一個(gè)形式化的描述,形成一定的理論基礎(chǔ)(以代替當(dāng)前的不精確的研究)。已提出一些形式化機(jī)制,如過程代數(shù)、偏序集合、化學(xué)抽象機(jī)等。希望對系統(tǒng)的非功能特性如性能、可維護(hù)性等給出形式特征,同時(shí)給出軟件體系結(jié)構(gòu)的理論。5、建立評價(jià)軟件體系結(jié)構(gòu)的方法通過分析來預(yù)見軟件的質(zhì)量,通過分析來創(chuàng)建、選擇、評估與比較不同的體系結(jié)構(gòu)。例如,Kazman等人在2000年提出的ATAM(ArchitecturalTradeoffAnalysisMethod)方法。ATAM方法不但能夠揭示體系結(jié)構(gòu)如何滿足特定的質(zhì)量需求(例如性能和可修改性),而且還提供了分析這些質(zhì)量需求之間交互作用的方法。使用ATAM方法評價(jià)一個(gè)軟件體系結(jié)構(gòu)的目的是理解體系結(jié)構(gòu)設(shè)計(jì)滿足系統(tǒng)質(zhì)量需求的結(jié)果。采用ATAM方法的步驟如圖3所示,限于篇幅,在此不再詳細(xì)介紹具體步驟,有興趣的讀者可查閱有關(guān)ATAM方法的文獻(xiàn)。
圖3采用直TH圖3采用直TH方袪的歩異描述和介紹階段調(diào)查和分析階段測試階段圖3:采用ATAM方法的步驟三、發(fā)展方向1、各種ADLs之間的信息互換現(xiàn)有的ADLs大多是與領(lǐng)域相關(guān)的,所以不利于對不同領(lǐng)域體系結(jié)構(gòu)的說明。但這些針對不同領(lǐng)域的ADLs在某些方面又大同小異,造成資源的冗余。其實(shí),大多數(shù)ADLs具有一系列的共同概念。如何用一種公共形式把各種語言綜合起來,使得能夠交換各種體系結(jié)構(gòu)描述信息,將是今后軟件體系結(jié)構(gòu)研究和實(shí)踐的重點(diǎn)之一。2、設(shè)計(jì)工具和環(huán)境軟件體系結(jié)構(gòu)設(shè)計(jì)既然作為軟件工程的一部分,它的計(jì)算機(jī)輔助實(shí)現(xiàn)手段是相當(dāng)重要的。我們應(yīng)當(dāng)開發(fā)出一些軟件工具來實(shí)現(xiàn)體系結(jié)構(gòu)的描述和分析,開發(fā)階段轉(zhuǎn)換工具,以實(shí)現(xiàn)階段成果的自動(dòng)轉(zhuǎn)換,例如,把需求規(guī)格說明自動(dòng)轉(zhuǎn)換為構(gòu)件等。目前關(guān)于這方面的研究成果很少,特別是可以應(yīng)用到實(shí)際項(xiàng)目開發(fā)中的工具和環(huán)境就更少。3、體系結(jié)構(gòu)再工程當(dāng)今軟件系
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銅熔劑行業(yè)深度研究報(bào)告
- 2025年氣壓容積泵項(xiàng)目可行性研究報(bào)告
- 自考培訓(xùn)行業(yè)發(fā)展概況及行業(yè)投資潛力預(yù)測報(bào)告
- 健康管理股權(quán)投資居間合同
- 智能化裝修保修合同模板
- 旅行團(tuán)包機(jī)運(yùn)輸合同
- 2025年度知識產(chǎn)權(quán)許可合同的標(biāo)的為新型專利2篇
- 2025年文化藝術(shù)節(jié)舞臺租賃及舞臺藝術(shù)指導(dǎo)合同3篇
- 2025年新型設(shè)備融資租賃合同大全5篇
- 2025年度銷售合同發(fā)票管理臺賬模板(企業(yè)定制)2篇
- 公路工程施工現(xiàn)場安全檢查手冊
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機(jī)跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 禮品(禮金)上交登記臺賬
- 北師大版七年級數(shù)學(xué)上冊教案(全冊完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 2023高中物理步步高大一輪 第五章 第1講 萬有引力定律及應(yīng)用
- 青少年軟件編程(Scratch)練習(xí)題及答案
- 浙江省公務(wù)員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學(xué)
- 全統(tǒng)定額工程量計(jì)算規(guī)則1994
評論
0/150
提交評論