版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
掇取軟件體系結(jié)構(gòu)研究綜述任繼永1(甘肅工業(yè)職業(yè)技術學院信息工程系甘肅天水741025)摘要:論文在分析了目前典型的軟件體系結(jié)構(gòu)概念之后,給出了軟件體系結(jié)構(gòu)的定義和作用。通過總結(jié)軟件體系結(jié)構(gòu)領域的若干研究活動,提出了軟件體系結(jié)構(gòu)在軟件工程中的重要性,并介紹了軟件體系結(jié)構(gòu)的研究現(xiàn)狀和發(fā)展方向。作為總結(jié),給出了軟件體系結(jié)構(gòu)領域最有前途的發(fā)展趨勢。關鍵字:軟件體系結(jié)構(gòu);軟件體系結(jié)構(gòu)建模;軟件生命周期模型;ATAM。0引言六十年代的軟件危機使得人們開始重視軟件工程的研究。起初,人們把軟件設計的重點放在數(shù)據(jù)結(jié)構(gòu)和算法的選擇上,隨著軟件系統(tǒng)規(guī)模越來越大、越來越復雜,整個系統(tǒng)的結(jié)構(gòu)和規(guī)格說明顯得越來越重要。軟件危機的程度日益加劇,現(xiàn)有的軟件工程方法對此顯得力不從心。對于大規(guī)模的復雜軟件系統(tǒng)來說,對總體的系統(tǒng)結(jié)構(gòu)設計和規(guī)格說明比起對計算的算法和數(shù)據(jù)結(jié)構(gòu)的選擇已經(jīng)變得明顯重要得多。在此種背景下,人們認識到軟件體系結(jié)構(gòu)的重要性,并認為對軟件體系結(jié)構(gòu)的系統(tǒng)、深入的研究將會成為提高軟件生產(chǎn)率和解決軟件維護問題的新的最有希望的途徑??梢宰鱾€簡單的比喻,結(jié)構(gòu)化程序設計時代是以磚、瓦、灰、沙、石、預制梁、柱、屋面板蓋平房和小樓,而面向?qū)ο髸r代以整面墻、整間房、一層樓梯的預制件蓋高樓大廈。構(gòu)件怎樣搭配才合理?體系結(jié)構(gòu)怎樣構(gòu)造容易?重要構(gòu)件有了更改后,如何保證整棟高樓不倒?每種應用領域需要什么構(gòu)件(醫(yī)院、工廠、旅館)?有哪些實用、美觀、強度、造價合理的構(gòu)件骨架使建造出來的建筑(即體系結(jié)構(gòu))更能滿足用戶的需求?如同土木工程進入到現(xiàn)代建筑學一樣,軟件也從傳統(tǒng)的軟件工程進入到現(xiàn)代面向?qū)ο蟮能浖こ?,研究整個軟件系統(tǒng)的體系結(jié)構(gòu),尋求建構(gòu)最快、成本最低、質(zhì)量最好的構(gòu)造過程。1軟件體系結(jié)構(gòu)1作者簡介:任繼永(1982-),男,漢族,甘肅工業(yè)職業(yè)技術學院講師,西安交通大學軟件學院在讀碩士研究生,研究方向為:軟件開發(fā),信息安全。1.1定義軟件體系結(jié)構(gòu)是描述軟件系統(tǒng)的一組模型的集合,它定義了軟件系統(tǒng)的組成,各組成部分相互間的關系,以及制約其設計與發(fā)展的原理和準則,對軟件系統(tǒng)的功能結(jié)構(gòu)、特性與運行方式進行了全面、系統(tǒng)的描述。1.2結(jié)構(gòu)模型研究軟件體系結(jié)構(gòu)的首要問題是如何表示軟件體系結(jié)構(gòu),即如何對軟件體系結(jié)構(gòu)建模。根據(jù)建模的側(cè)重點的不同,可以將軟件體系結(jié)構(gòu)的模型分為5種:結(jié)構(gòu)模型、框架模型、動態(tài)模型、過程模型和功能模型。在這5個模型中,最常用的是結(jié)構(gòu)模型和動態(tài)模型。這5種模型各有所長,也許將5種模型有機地統(tǒng)一在一起,形成一個完整的模型來刻畫軟件體系結(jié)構(gòu)更合適。例如,Kruchten在1995年提出了一個“4+1”的視角模型?!?+1”模型從5個不同的視角包括邏輯視角、過程視角、物理視角、開發(fā)視角和場景視角來描述軟件體系結(jié)構(gòu)。每一個視角只關心系統(tǒng)的一個側(cè)面,5個視角結(jié)合在一起才能夠反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部內(nèi)容?!?+1”模型如圖1所示。圖1:“4+1”模型1.3作用軟件體系結(jié)構(gòu)代表了系統(tǒng)的公共的高層次的抽象,是軟件生存期早期設計決策的成果,可以作為軟件系統(tǒng)的各相關利益方通信的手段,并能夠為開發(fā)人員提供了一種實現(xiàn)的約束。軟件體系結(jié)構(gòu)是達到系統(tǒng)目標特性的促進力量(或阻礙力量),選擇軟件體系結(jié)構(gòu)已經(jīng)在很大程度上決定了系統(tǒng)是否能夠達到其需求的質(zhì)量特性,如功能、性能、可靠性、維護性、可復用性、可適應性等,但軟件體系結(jié)構(gòu)并不能單獨保證系統(tǒng)所要求的功能與質(zhì)量。正確的軟件體系結(jié)構(gòu)是項目成功的必要條件,但不是充分條件。2軟件體系結(jié)構(gòu)的現(xiàn)狀目前,軟件體系結(jié)構(gòu)尚處在迅速發(fā)展之中,越來越多的研究人員正在把注意力投向軟件體系結(jié)構(gòu)的研究。用于對軟件體系進行規(guī)格描述的模型、標記法和工具仍很不正規(guī)。盡管這些不正規(guī)的模型是有用的,為使之更為精確和健壯,在很多方面的研究工作還需要繼續(xù)進行。關于軟件體系結(jié)構(gòu)的研究工作主要在國外展開的,國內(nèi)到目前為止對于軟件體系結(jié)構(gòu)的研究尚處在起步階段。軟件體系結(jié)構(gòu)在國內(nèi)未引起人們廣泛注意的原因主要有兩點:?軟件體系結(jié)構(gòu)從表面上看起來是一個老話題,似乎沒有新東西。?與國外相比,國內(nèi)對大型和超大型復雜軟件系統(tǒng)開發(fā)的經(jīng)歷相對較少,對軟件危機的災難性體會沒有國外深刻,因而對軟件體系結(jié)構(gòu)研究的重要性和必要性的認識還不很充分。2.1形成研究熱點,仍處于非形式化水平從軟件體系結(jié)構(gòu)研究的現(xiàn)狀來看,當前的研究和對軟件體系結(jié)構(gòu)的描述,在很大程度上來說還停留在非形式化的基礎上。軟件構(gòu)架師仍然缺乏必要的工具,這種工具應該是顯式描述的、有獨立性的形式化工具。在目前通用的軟件開發(fā)方法中,其描述通常是用非形式化的圖和文本,不能描述系統(tǒng)期望的存在于構(gòu)件之間的接口,不能描述不同的組成系統(tǒng)的組合關系的意義。難以被開發(fā)人員理解,更不能用來分析其一致性和完整性等特性。2.2軟件體系結(jié)構(gòu)的形式化方法研究軟件體系結(jié)構(gòu)研究如果僅僅停留在非形式化的框圖階段,已經(jīng)難以適應進一步發(fā)展的需要。為支持基于體系結(jié)構(gòu)的開發(fā),需要有形式化建模符號、體系結(jié)構(gòu)說明的分析與開發(fā)工具。從軟件體系結(jié)構(gòu)研究的現(xiàn)狀來看,在這一領域近來已經(jīng)有不少進展,其中比較有代表性的是美國卡耐基梅隆大學(CarnegieMellonUniversity)的RobertJ.Allen于1997年提出的Wright系統(tǒng)。Wright是-種結(jié)構(gòu)描述語言,該語言基于一種形式化的、抽象的系統(tǒng)模型,為描述和分析軟件體系結(jié)構(gòu)和結(jié)構(gòu)化方法提供了一種實用的工具。Wright主要側(cè)重于描述系統(tǒng)的軟件構(gòu)件和連接的結(jié)構(gòu)、配置和方法。它使用顯式的、獨立的連接模型來作為交互的方式,這使得該系統(tǒng)可以用邏輯謂詞符號系統(tǒng),而不依賴特定的系統(tǒng)實例來描述系統(tǒng)的抽象行為2.3發(fā)展基于體系結(jié)構(gòu)的軟件開發(fā)模型軟件開發(fā)模型是跨越整個軟件生存周期的系統(tǒng)開發(fā)、運行、維護所實施的全部工作和任務的結(jié)構(gòu)框架,給出了軟件開發(fā)活動各階段之間的關系。目前,常見的軟件開發(fā)模型大致可分為三種類型:(1)以軟件需求完全確定為前提的瀑布模型。(2)在軟件開發(fā)初始階段只能提供基本需求時采用的漸進式開發(fā)模型,如螺旋模型等。(3)以形式化開發(fā)方法為基礎的變換模型。所有開發(fā)方法都是要解決需求與實現(xiàn)之間的差距。但是,這三種類型的軟件開發(fā)模型都存在這樣或那樣的缺陷,不能很好地支持基于軟件體系結(jié)構(gòu)的開發(fā)過程。因此,研究人員在發(fā)展基于體系結(jié)構(gòu)的軟件開發(fā)模型方面做了一定的工作。例如,為了形象地表示體系結(jié)構(gòu)的生命周期,北京郵電大學的周瑩新博士建立了一個軟件體系結(jié)構(gòu)的生命周期模型,該模型如圖2所示。圖2:軟件體系結(jié)構(gòu)的生命周期模型2.4軟件產(chǎn)品線體系結(jié)構(gòu)的研究軟件體系結(jié)構(gòu)的開發(fā)是大型軟件系統(tǒng)開發(fā)的關鍵環(huán)節(jié)。體系結(jié)構(gòu)在軟件生產(chǎn)線的開發(fā)中具有至關重要的作用,在這種開發(fā)生產(chǎn)中,基于同一個軟件體系結(jié)構(gòu),可以創(chuàng)建具有不同功能的多個系統(tǒng)。在軟件產(chǎn)品族之間共享體系結(jié)構(gòu)和一組可重用的構(gòu)件,可以增加軟件工程和降低開發(fā)和維護成本。一個產(chǎn)品線代表著一組具有公共的系統(tǒng)需求集的軟件系統(tǒng),它們都是根據(jù)基本的用戶需求對標準的產(chǎn)品線構(gòu)架進行定制,將可重用構(gòu)件與系統(tǒng)獨有的部分集成而得到的。采用軟件生產(chǎn)線式模式進行軟件生產(chǎn),將產(chǎn)生巨型編程企業(yè)。但目前生產(chǎn)的軟件產(chǎn)品族大部分是處于同一領域的。3軟件體系結(jié)構(gòu)的研究熱點當前,體系結(jié)構(gòu)仍是一個非常新的研究領域,其概念還相當模糊。但軟件體系結(jié)構(gòu)作為軟件工程領域中的一個組成部分,已經(jīng)取得了長足的發(fā)展,受到大多數(shù)軟件系統(tǒng)設計和研究人員的重視。軟件體系結(jié)構(gòu)目前較活躍的研究方向包括:?軟件體系結(jié)構(gòu)形式基礎的研究;?針對軟件體系結(jié)構(gòu)描述中特有的問題研究新的專門的高級語言;?建立用于度量和評價軟件體系結(jié)構(gòu)的模型和方法;?建立面向?qū)iT領域的軟件體系結(jié)構(gòu)范型庫。?把軟件體系結(jié)構(gòu)從目前的直覺和經(jīng)驗狀態(tài)過渡到理論。3.1提供新的軟件體系結(jié)構(gòu)描述語言在提高軟件工程師對軟件系統(tǒng)的描述和理解能力中,雖然軟件體系結(jié)構(gòu)描述起著重要作用,但這些抽象的描述通常是非形式化的和隨意的。體系結(jié)構(gòu)設計經(jīng)常難以理解,難以適于進行形式化分析和模擬,缺乏相應的支持工具幫助構(gòu)架師完成設計工作。為了解決這個問題,用于描述和推理的形式化語言得以發(fā)展,這些語言就叫做體系結(jié)構(gòu)描述語言(ArchitectureDescriptionLanguage),ADLs求增加軟件體系結(jié)構(gòu)設計的可理解性和重用性。3.2對軟件體系結(jié)構(gòu)的專門知識的整理這方面的工作主要是對軟件工程師在軟件開發(fā)實踐中得來的各種體系結(jié)構(gòu)的原則、模式的整理和分類。例如,對軟件體系結(jié)構(gòu)風格的分類和比較,對體系結(jié)構(gòu)描述語言的綜合分析等。就目前看來,國內(nèi)對軟件體系結(jié)構(gòu)的研究主要集中在對軟件體系結(jié)構(gòu)的專門知識的整理上。3.3提供特定領域的體系結(jié)構(gòu)框架最近,開發(fā)特定的領域去為產(chǎn)品提供可重用框架日益受到關注。這些開發(fā)基于這樣的想法:可以提取相關系統(tǒng)中的共同方面,以便可以通過低成本地把這些共同的設計實例化來構(gòu)筑新系統(tǒng)。常見的例子有:(1)編譯器的標準分解。這個方法可以使一個本科生在一個學期時間內(nèi)構(gòu)造一個新的語言編譯系統(tǒng)。(2)標準化的通訊協(xié)議。這個可以使廠家通過在不同層次的抽象上提供服務來互相操縱。(3)第四代語言。利用4GL開發(fā)出商務信息處理的通用范式。(4)用戶界面工具和框架。這個方法為開發(fā)者提供了一個可重用框架以及象菜單、對話框這樣的可重用構(gòu)件的集合。軟件體系結(jié)構(gòu)充當一個理解系統(tǒng)構(gòu)件和它們之間關系的框架,特別是那些始終跨越時間和實現(xiàn)的屬性。這個理解對于現(xiàn)在系統(tǒng)的分析和未來系統(tǒng)的綜合很有必要。在分析和支持下,體系結(jié)構(gòu)抓住領域知識和實際的一致,促進設計的評估和構(gòu)件的實施,減少仿真和構(gòu)造原型。在綜合的支持下,體系結(jié)構(gòu)提供了建立系列產(chǎn)品的基礎,以可預測的方式利用領域知識構(gòu)造和維護模塊、子系統(tǒng)和系統(tǒng)。3.4提供軟件體系結(jié)構(gòu)的形式化基礎對體系結(jié)構(gòu)設計的推理的形式化表示使得體系結(jié)構(gòu)級的設計更好地被理解、被實現(xiàn)。它的目的是對體系結(jié)構(gòu)設計人員在實踐過程中總結(jié)出來的一些設計的經(jīng)驗和方法加以總結(jié)、概括,從而形成一個形式化的描述,形成一定的理論基礎:以代替當前的不精確的研究)。已提出一些形式化機制,如過程代數(shù)、偏序集合、化學抽象機等。希望對系統(tǒng)的非功能特性如性能、可維護性等給出形式特征,同時給出軟件體系結(jié)構(gòu)的理論。3.5建立評價軟件體系結(jié)構(gòu)的方法通過分析來預見軟件的質(zhì)量,通過分析來創(chuàng)建、選擇、評估與比較不同的體系結(jié)構(gòu)。例如,Kazman等人在2000年提出的ATAM(ArchitecturalTradeoffAnalysisMethod)方法。ATAM方法不但能夠揭示體系結(jié)構(gòu)如何滿足特定的質(zhì)量需求(例如性能和可修改性),而且還提供了分析這些質(zhì)量需求之間交互作用的方法。使用ATAM方法評價一個軟件體系結(jié)構(gòu)的目的是理解體系結(jié)構(gòu)設計滿足系統(tǒng)質(zhì)量需求的結(jié)果。采用ATAM方法的步驟如圖3所示,限于篇幅,在此不再詳細介紹具體步驟,有興趣的讀者可查閱有關ATAM方法的文獻。
I介紹AT酬方法I描述商業(yè)目標V描述體系結(jié)構(gòu)*二^1!I介紹AT酬方法I描述商業(yè)目標V描述體系結(jié)構(gòu)*二^1!標識體系結(jié)構(gòu)步驟I產(chǎn)生質(zhì)童屬性樹分析體系結(jié)構(gòu)步驟|描述和介紹階段調(diào)查和分析階段測試階段圖3采用方法的步驟軟件體系結(jié)構(gòu)研究作為軟件工程中一個正在興起的基礎研究領域,將軟件系統(tǒng)的結(jié)構(gòu)信息獨立于算法與數(shù)據(jù),創(chuàng)建滿足系統(tǒng)需要的結(jié)構(gòu),定義系統(tǒng)結(jié)構(gòu)方面的重要方面(如系統(tǒng)的負荷等),并提供系統(tǒng)開發(fā)的框架。同時,試圖在系統(tǒng)開發(fā)的早期階段研究系統(tǒng)實現(xiàn)時的若干重要的質(zhì)量屬性。目前,軟件體系結(jié)構(gòu)領域研究依然非?;钴S.如BarryBohem在南加州大學專門成立了軟件體系結(jié)構(gòu)研究組,曼徹斯特大學專門成立了軟件體系結(jié)構(gòu)研究所。同時,業(yè)界許多著名企業(yè)的研究中心也將軟件體系結(jié)構(gòu)作為重要的研究內(nèi)容。如由BM,Nokia,ABB等企業(yè)聯(lián)合一些大學研究嵌入式系統(tǒng)的體系結(jié)構(gòu)項目。國內(nèi)也有不少的機構(gòu)在從事軟件體系結(jié)構(gòu)方面的研究,如北京大學軟件工程研究所一直從事基于體系結(jié)構(gòu)軟件組裝的工業(yè)化生產(chǎn)方法與平臺的研究,北京郵電大學則研究了電信軟件的體系結(jié)構(gòu),國防科學技術大學推出的CORBA規(guī)范實現(xiàn)平臺為體系結(jié)構(gòu)研究提供了基礎設施所需的中間件技術。針對軟件體系結(jié)構(gòu)發(fā)展趨勢,Clements預測在未來的5?10年內(nèi)軟件體系結(jié)構(gòu)研究將圍繞如下5個方向展開:體系結(jié)構(gòu)創(chuàng)建與選擇;體系結(jié)構(gòu)表示;體系結(jié)構(gòu)分析;基于體系結(jié)構(gòu)開發(fā);體系結(jié)構(gòu)演化。而Perry在IFIP2000年世界計算機大會主題演講中認為,最為重要的3個研究方向是:體系結(jié)構(gòu)風格、體系結(jié)構(gòu)連接件和動態(tài)體系結(jié)構(gòu)。本人認為:基于體系結(jié)構(gòu)的實用軟件開發(fā)方法及相應的支撐環(huán)境將是軟件體系結(jié)構(gòu)研究的一個重要方向。參考文獻Perry,D.E.Softwareengineeringandsoftwarearchitecture.In:Feng,Yu-lin,ed.ProceedingsoftheInternationalConferenceonSoftware:TheoryandPractice.Beijing:ElectronicIndustryPress,2000.1~4.Boehm,B.Engineeringcontext(forsoftwarearchitecture),invitedtalk,In:GarlanD.,ed.Proceedingsofthe1stInternationalWorkshoponArchitectureforSoftwareSystemsSeattle.NewYork:ACMPress,1995.1~8.Perry,D.E.,Wolf,A.L.Foundationsforthestudyofsoftwarearchitecture.ACMSIGSOFTSoftwareEngineerNotes,1992,17(4):40~50.Kruchten,P.B.The4+1viewmod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作總結(jié)之電大行政管理畢業(yè)總結(jié)
- 房屋轉(zhuǎn)租的合同范本(35篇)
- 電鍍技術合作協(xié)議書(33篇)
- 小學生暑假最后一次國旗下講話范文(31篇)
- 廣西玉林市容縣部分學校2024屆九年級下學期中考一模數(shù)學試卷(含答案)
- C#程序設計案例教程 王明福 源代碼習題答案 第2章新
- 材料課件簡介緒論部分
- 西藏林芝市一中2025屆高考英語考前最后一卷預測卷含解析
- 慶陽市重點中學2025屆高考壓軸卷數(shù)學試卷含解析
- 2025屆江西省吉安一中、九江一中等八所重點中學高三第二次調(diào)研英語試卷含解析
- 水果收貨標準
- 專題09中國的自然環(huán)境-中考地理填充圖冊(解析版)
- 風電epc合同模板
- 高職單招政治試題及答案
- 地 理第三章地球的面貌復習課件-2024-2025學年湘教版地理七年級上冊
- 2024-2025學年小學美術一年級上冊(2024)桂美版(2024)教學設計合集
- 2024新人教版七年級上冊英語期中作文預測及范文
- 期末測試卷(一)(試題)2023-2024學年二年級上冊數(shù)學蘇教版
- 追覓科技在線測評題
- 《實踐是檢驗真理的唯一標準》名師教學課件
- 2024內(nèi)蒙古財經(jīng)大學輔導員公開招聘(列編招聘)3人及歷年高頻難、易錯點500題模擬試題附帶答案詳解
評論
0/150
提交評論