軟件體系結(jié)構(gòu)SA概論_第1頁
軟件體系結(jié)構(gòu)SA概論_第2頁
軟件體系結(jié)構(gòu)SA概論_第3頁
軟件體系結(jié)構(gòu)SA概論_第4頁
軟件體系結(jié)構(gòu)SA概論_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟件體系結(jié)構(gòu)(SA)概論8/6/202211、SA基礎(chǔ)SA基礎(chǔ);SA的地位;SA技術(shù)現(xiàn)狀及發(fā)展趨勢;SA建模;8/6/20222研究背景20世紀(jì)60年代末開始出現(xiàn)的“軟件危機”軟件組件和軟件重用的推動關(guān)于SA研究的興起8/6/20223關(guān)于軟件危機軟件的先天不足1968年在原西德加密施(Garmish)召開的國際軟件工程會議上被人們普遍認(rèn)識到。軟件工程的尷尬8/6/20224從軟件危機談起軟件危機的表現(xiàn)軟件成本日益增長開發(fā)進度難以控制軟件質(zhì)量差軟件維護困難8/6/20225軟件危機的原因用戶需求不明確缺乏正確的理論指導(dǎo)軟件規(guī)模越來越大軟件復(fù)雜度越來越高8/6/20226如何克服軟件危機人們面臨

2、的不光是技術(shù)問題,更重要的是管理問題。管理不善必然導(dǎo)致失敗。 用現(xiàn)代工程的概念、原理、技術(shù)和方法進行計算機軟件的開發(fā)、管理和維護。軟件工程因此而誕生。它在軟件開發(fā)方法、工具、管理等方面的應(yīng)用大大緩解了軟件危機造成的被動局面。 8/6/20227軟件工程軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。包括三個要素:方法。軟件工程方法為軟件開發(fā)提供了如何做的技術(shù),是完成軟件工程項目的技術(shù)手段;工具。軟件工具是人類在開發(fā)軟件的活動中智力和體力的擴展和延伸,為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境;過程。軟件工程的過程則是將軟件工程的方法和工具綜合起來以達(dá)到合

3、理、及時地進行計算機軟件開發(fā)的目的。8/6/20228組件與軟件重用軟件重用指在兩次或多次不同的軟件開發(fā)過程中重復(fù)使用相同或相近軟件元素的過程。軟件元素包括程序代碼、測試用例、設(shè)計文檔、設(shè)計過程、需求分析文檔甚至領(lǐng)域知識。這種可重用的元素稱作軟組件,可重用的軟件元素越大,其重用的粒度就越大。8/6/20229軟件重用的好處可以減少軟件開發(fā)活動中大量的重復(fù)性工作,從而:提高軟件生產(chǎn)率降低開發(fā)成本縮短開發(fā)周期由于軟組件大都經(jīng)過嚴(yán)格的質(zhì)量認(rèn)證,并在實際運行環(huán)境中得到校驗,因此,重用軟組件有助于改善軟件質(zhì)量。大量使用軟組件,軟件的靈活性和標(biāo)準(zhǔn)化程度也可望得到提高。 8/6/202210軟件組件直觀的理

4、解組件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確辯識的系統(tǒng);是語義描述、通訊接口和實現(xiàn)代碼的復(fù)合體。是具有一定的功能,能夠獨立工作或能同其它組件裝配起來協(xié)調(diào)工作的程序體,組件的使用同他的開發(fā)、生產(chǎn)無關(guān)。8/6/202211軟件組件與類從抽象程度來看面向?qū)ο蠹夹g(shù)已達(dá)到了類級重用(代碼重用),是類封裝。重用粒度太小,不足以解決異構(gòu)互操作和效率更高的重用。組件將抽象的程度提到一個更高的層次,它對一組類的組合進行封裝,并代表完成一個或多個功能的特定服務(wù),也為用戶提供了多個接口。組件隱藏了具體的實現(xiàn),只用接口提供服務(wù)。 8/6/202212組件技術(shù)的三個主流組件技術(shù)發(fā)展迅速

5、,已形成三個主要流派:IBM支持的CORBA Sun的Java平臺Microsoft的COM+。 8/6/202213組件的分類如果把軟件系統(tǒng)看成是組件的集合,那么從組件的外部形態(tài)來看,構(gòu)成一個系統(tǒng)的組件可分為5類:獨立而成熟的組件有限制的組件適應(yīng)性組件裝配的組件可修改的組件8/6/202214組件的分類獨立而成熟的組件得到了實際運行環(huán)境的多次檢驗,它們隱藏了所有接口,用戶只需用規(guī)定好的命令進行使用。如數(shù)據(jù)庫管理系統(tǒng)和操作系統(tǒng)等。有限制的組件它們提供了接口,指出了使用的條件和前提,這種組件在裝配時,會產(chǎn)生資源沖突、覆蓋等影響,在使用時需要加以測試。例如,各種面向?qū)ο髮ο蟪绦蛟O(shè)計語言中的基礎(chǔ)類庫

6、等。8/6/202215組件的分類適應(yīng)性組件用封裝和接口技術(shù),把不兼容性、資源沖突等進行了處理,可直接使用在各種環(huán)境中。例如ActiveX等。裝配的組件已經(jīng)裝配在操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)或信息系統(tǒng)不同層次上,使用膠水代碼(Blue Code)就可以進行連接使用。軟件商提供的多數(shù)軟件產(chǎn)品都屬這一類。8/6/202216組件的分類可修改的組件可修改的組件可以進行版本替換。如果對原組件修改錯誤、增加新功能,可以利用重新“包裝”或?qū)懡涌趤韺崿F(xiàn)組件的替換。這種組件在應(yīng)用系統(tǒng)開發(fā)中使用得比較多。8/6/202217組件的獲取組件獲取可以有多種不同的途徑:從現(xiàn)有組件中獲得符合要求的組件,直接使用或作適應(yīng)性修

7、改,得到可重用的組件;通過遺傳工程,將具有潛在重用價值的組件提取出來,得到可重用的組件;從市場上購買現(xiàn)成的商業(yè)組件,即COTS組件;開發(fā)新的符合要求的組件。8/6/202218SA的興起1960s的軟件危機引發(fā)了軟件工程的研究。早期的軟件工程將軟件設(shè)計的重點放在數(shù)據(jù)結(jié)構(gòu)和算法的選擇上。如今,系統(tǒng)的結(jié)構(gòu)和規(guī)格說明顯得更重要軟件危機的程度日益加劇,現(xiàn)有的軟件工程方法顯得力不從心。對于大規(guī)模復(fù)雜軟件系統(tǒng)來說,系統(tǒng)結(jié)構(gòu)設(shè)計和規(guī)格說明比算法和數(shù)據(jù)結(jié)構(gòu)的選擇更重要。對SA的系統(tǒng)和深入的研究將會成為提高軟件生產(chǎn)率和解決軟件維護問題的最有希望的途徑之一。8/6/202219SA不是空穴來風(fēng)自從軟件系統(tǒng)首次被分

8、成許多模塊,模塊之間有相互作用,組合起來有整體的屬性,就具有了體系結(jié)構(gòu)。好的開發(fā)者常常會使用一些體系結(jié)構(gòu)模式作為軟件系統(tǒng)結(jié)構(gòu)設(shè)計策略,但他們并沒有規(guī)范地、明確地表達(dá)出來,這樣就無法將他們的知識與別人交流。SA是設(shè)計抽象的進一步發(fā)展,滿足了更好地理解軟件系統(tǒng),更方便地開發(fā)更大、更復(fù)雜的軟件系統(tǒng)的需要。8/6/202220軟件與建筑的類比軟件總是有體系結(jié)構(gòu)的,不存在沒有體系結(jié)構(gòu)的軟件。如同一座建筑物,軟件也有它的:基礎(chǔ)(操作系統(tǒng)之上的基礎(chǔ)設(shè)施軟件)主體(實現(xiàn)計算邏輯的主體應(yīng)用程序)裝飾(方便使用的用戶界面程序)等。8/6/202221對應(yīng)于建筑的軟件構(gòu)建過程預(yù)設(shè)計階段初步了解設(shè)計輪廓域分析階段詳細(xì)

9、了解明確的需求圖解設(shè)計階段外觀設(shè)計(GUI等)原型設(shè)計開發(fā)階段完善設(shè)計用戶證實項目文檔階段技術(shù)文檔技術(shù)路線的確定人員配合域合約簽訂階段確定標(biāo)的招標(biāo)構(gòu)件階段監(jiān)督項目實施需求的變更設(shè)計后構(gòu)建階段培訓(xùn)維護8/6/202222軟件與結(jié)構(gòu)化程序設(shè)計從細(xì)節(jié)上來看,每一個程序也是有結(jié)構(gòu)的。早期的結(jié)構(gòu)化程序就是以語句組成模塊,模塊的聚集和嵌套形成層層調(diào)用的程序結(jié)構(gòu),這也是SA的表現(xiàn)形式之一。結(jié)構(gòu)化程序的程序(表達(dá))結(jié)構(gòu)和(計算的)邏輯結(jié)構(gòu)的一致性及自頂向下開發(fā)方法自然而然地形成了體系結(jié)構(gòu)。由于結(jié)構(gòu)化程序設(shè)計時代程序規(guī)模不大,通過強調(diào)結(jié)構(gòu)化程序設(shè)計方法學(xué),自頂向下、逐步求精,并注意模塊的耦合性就可以得到相對良好

10、的結(jié)構(gòu),所以,并未特別研究SA。 8/6/202223SA、建筑、結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計時代是以磚、瓦、灰、沙、石、預(yù)制梁、柱、屋面板蓋平房和小樓面向?qū)ο髸r代以整面墻、整間房、一層樓梯的預(yù)制件蓋高樓大廈。這些大粒度的框架設(shè)計與復(fù)用就成為SA的基本特征之一;8/6/202224SA現(xiàn)代軟件工程的發(fā)展組件怎樣搭配才合理?體系結(jié)構(gòu)怎樣構(gòu)造容易?重要組件有了更改后,如何保證整棟高樓不倒?每種應(yīng)用領(lǐng)域需要什么組件(醫(yī)院、工廠、旅館)?有哪些實用、美觀、強度、造價合理的組件骨架使建造出來的建筑(即體系結(jié)構(gòu))更能滿足用戶的需求?軟件從傳統(tǒng)的軟件工程進入到現(xiàn)代面向?qū)ο蟮能浖こ?,研究整個軟件系統(tǒng)的體系結(jié)

11、構(gòu),尋求建構(gòu)最快、成本最低、質(zhì)量最好的構(gòu)造過程。8/6/202225對SA的研究SA雖脫胎于軟件工程,但其形成同時借鑒了計算機體系結(jié)構(gòu)和網(wǎng)絡(luò)體系結(jié)構(gòu)中很多寶貴的思想和方法,最近幾年SA研究已完全獨立于軟件工程的研究,成為計算機科學(xué)的一個最新的研究方向和獨立學(xué)科分支。SA研究的主要內(nèi)容涉及SA描述、SA風(fēng)格、SA評價和SA的形式化方法等。解決好軟件的重用、質(zhì)量和維護問題,是研究SA的根本目的。8/6/202226SA的定義雖然SA已經(jīng)在軟件工程領(lǐng)域中有著廣泛的應(yīng)用,但迄今為止還沒有一個被大家所公認(rèn)的定義。許多專家學(xué)者從不同角度和不同側(cè)面對SA進行了刻畫,較為典型的定義有: 8/6/202227B

12、ooch、Rumbaugh和Jacobson的定義SA組織,元素,子系統(tǒng),風(fēng)格SA是一系列重要決策的集合即:SA與軟件組織、系統(tǒng)的結(jié)構(gòu)元素、接口的選擇、元素的行為及子系統(tǒng)及風(fēng)格密切相關(guān)8/6/202228Perry和Wolf的定義SA元素,形式,準(zhǔn)則SA是具有一定形式的結(jié)構(gòu)化元素的集合,包括處理組件、數(shù)據(jù)組件和連接組件。處理組件負(fù)責(zé)對數(shù)據(jù)進行加工,數(shù)據(jù)組件是被加工的信息,連接組件把體系結(jié)構(gòu)的不同部分組組合連接起來。這一定義注重區(qū)分處理組件、數(shù)據(jù)組件和連接組件,這一方法在其他的定義和方法中基本上得到保持。 8/6/202229Shaw和Garlan的定義SA構(gòu)件,連接件,約束SA是軟件設(shè)計過程中

13、的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計。體系結(jié)構(gòu)問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計元素分配特定功能,設(shè)計元素的組織,規(guī)模和性能,在各設(shè)計方案間進行選擇等。SA處理算法與數(shù)據(jù)結(jié)構(gòu)之上的關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計和描述方面的一些問題,如:全局組織和全局控制結(jié)構(gòu)、關(guān)于通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計組件功能定義,物理分布與合成,設(shè)計方案的選擇、評估與實現(xiàn)等。 8/6/202230Kruchten的定義SA有四個角度,它們從不同方面對系統(tǒng)進行描述:概念角度:描述系統(tǒng)的主要組件及它們之間的關(guān)系模塊角度:包含功能分解與層次結(jié)構(gòu);運行角度:描述了一個系統(tǒng)的動態(tài)結(jié)構(gòu);代

14、碼角度:描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。8/6/202231Hayes Roth的定義SA是一個抽象的系統(tǒng)規(guī)范,主要包括用其行為來描述的功能組件和組件之間的相互連接、接口和關(guān)系。8/6/202232Garlan和Perry的定義1995年,在IEEE軟件工程學(xué)報上, David Garlan和Dewne Perry定義:SA是一個程序系統(tǒng)各組件的結(jié)構(gòu)、它們之間的相互關(guān)系以及進行設(shè)計的原則和隨時間進化的指導(dǎo)方針。8/6/202233Boehm的定義SA構(gòu)件,連接件,約束、不同人員的需求、準(zhǔn)則Barry Boehm和他的學(xué)生的定義:一個SA包括:一個軟件和系統(tǒng)組件,互聯(lián)及約束的集合;一個

15、系統(tǒng)需求說明的集合;一個基本原理用以說明這一組件,互聯(lián)和約束能夠滿足系統(tǒng)需求。8/6/202234Bass的定義1997年,Bass,Ctements和Kazman在使用SA一書中給出如下的定義:一個程序或計算機系統(tǒng)的SA包括一個或一組軟件組件、軟件組件的外部的可見特性及其相互關(guān)系。其中,軟件外部的可見特性是指軟件組件提供的服務(wù)、性能、特性、錯誤處理、共享資源使用等。8/6/202235IEEE610.12-1990定義SA構(gòu)件,連接件,環(huán)境、原理8/6/202236我們的定義(理解)SA是軟件系統(tǒng)的一個結(jié)構(gòu)、行為和屬性的高級抽象,它由構(gòu)成系統(tǒng)的元素的描述、元素間的相互作用、指導(dǎo)元素集成的模式

16、以及這些模式的約束所組成。SA不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),也顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對應(yīng)關(guān)系,提供了一些設(shè)計決策的基本原理。 8/6/202237SA的基本概念圖軟件體系結(jié)構(gòu)構(gòu)件連接件約束端口角色通用風(fēng)格管道/過濾器分層解釋器1*1*1*8/6/202238SA的基本概念圖SA:=軟件體系模型|軟件體系風(fēng)格軟件體系模型:=(構(gòu)件,連接件,約束構(gòu)件:=端口1,端口2端口n連接件:=角色1,角色2角色m約束:=(端口i,角色j)軟件體系風(fēng)格:=管道過濾器、客戶服務(wù)器解釋器8/6/202239SA的發(fā)展與現(xiàn)狀SA尚處在迅速發(fā)展之中,越來越多的研究人員正在把注意力投向SA的研究。用

17、于對SA進行規(guī)格描述的模型、標(biāo)記法和工具仍很不正規(guī)。為使之更為精確和健壯,很多的研究工作都在進行中。 8/6/202240SA的發(fā)展歷程無體系結(jié)構(gòu)設(shè)計階段萌芽階段初級階段高級階段綜合階段8/6/202241SA的發(fā)展歷程無體系結(jié)構(gòu)設(shè)計階段1946年的ENIAC,軟件問世1950s的Fortran、COBOL出現(xiàn)、1960s ALGOL出現(xiàn)以匯編語言為基本的設(shè)計語言系統(tǒng)規(guī)模很小,很少考慮SA,也基本不存在軟件系統(tǒng)建模問題8/6/202242SA的萌芽階段標(biāo)志事件1968年的NATO會議上,軟件工程的概念首次出現(xiàn)軟件開發(fā)方法、開發(fā)模型、開發(fā)工具等研究開始1970s的PASCAL語言出現(xiàn)結(jié)構(gòu)化軟件開

18、發(fā)技術(shù)圍繞項目提出了費用估算、文檔復(fù)審等方法和工具數(shù)據(jù)結(jié)構(gòu)、程序模塊化等特征出現(xiàn)軟件工程方法及CASE工具出現(xiàn)SA已經(jīng)成為系統(tǒng)開發(fā)的一個明確概念由于軟件規(guī)模不大,結(jié)構(gòu)化程序設(shè)計方法基本能滿足要求,SA的問題不是主要問題8/6/202243SA的初級階段標(biāo)志事件1980s,面向?qū)ο蠹夹g(shù)出現(xiàn)Booch、Coad/Yourdon、OMT及Jacobson等方法得到廣泛的認(rèn)可Booch方法提出:類視圖、對象視圖、狀態(tài)遷移圖、交互作用圖、模塊圖、進程圖等UML提出:功能模型、靜態(tài)模型、動態(tài)模型、配置模型等1994年的UML,綜合了Booch、OMT和Jacobson等方法的特點,統(tǒng)一了符號體系OMG于1

19、997年正式采納UML1.1作為建模語言規(guī)范抽象數(shù)據(jù)類型和面相對象技術(shù)使SA研究得到重視類庫的構(gòu)造、分布式應(yīng)用系統(tǒng)的設(shè)計規(guī)模、復(fù)雜性高的系統(tǒng)等,對SA的研究都提出了要求8/6/202244SA的高級階段標(biāo)志事件1990s基于構(gòu)件的軟件開發(fā)出現(xiàn)軟件開發(fā)目標(biāo)強調(diào):自適應(yīng)性、互操作性、可擴展性和可重用性強調(diào)采用構(gòu)件化技術(shù)和體系結(jié)構(gòu)技術(shù)構(gòu)件的實現(xiàn)與語言無關(guān)以Kruchten的“41”模型為標(biāo)志基于構(gòu)件和SA的開發(fā)方法中,開發(fā)模式也發(fā)生了相應(yīng)的變化軟件開發(fā)算法體系結(jié)構(gòu)軟件開發(fā)構(gòu)件開發(fā)基于構(gòu)件的構(gòu)件組裝SA的研究成為軟件工程的重要研究領(lǐng)域,并最終成為一門學(xué)科8/6/202245國內(nèi)外研究現(xiàn)狀關(guān)于SA的研究

20、工作主要在國外國內(nèi)對SA的研究尚處在起步階段原因主要有兩點: SA表面上看起來是一個老話題,似乎沒有新東西。與國外相比,國內(nèi)對大型和超大型復(fù)雜軟件系統(tǒng)開發(fā)的經(jīng)歷相對較少,對軟件危機的災(zāi)難性體會沒有國外深刻,對SA研究的重要性和必要性認(rèn)識不足。8/6/202246應(yīng)用現(xiàn)狀形成研究熱點,仍處于非形式化水平自20世紀(jì)90后期以來,SA的研究成為一個熱點。從SA研究的現(xiàn)狀來看,當(dāng)前的研究還停留在非形式化的基礎(chǔ)上。軟件構(gòu)架師仍然缺乏必要的工具,這種工具應(yīng)該是顯式描述的、有獨立性的形式化工具。在目前通用的軟件開發(fā)方法中,描述通常是用非形式化的圖和文本不能描述系統(tǒng)期望的存在于組件之間的接口,不能描述不同的組

21、成系統(tǒng)的組合關(guān)系的意義。難以被開發(fā)人員理解,更不能用來分析其一致性和完整性等特性。8/6/202247SA的非形式化描述在目前通用的軟件開發(fā)方法中,描述通常是用非形式化的圖和文本不能描述系統(tǒng)期望的存在于組件之間的接口,不能描述不同的組成系統(tǒng)的組合關(guān)系的意義。難以被開發(fā)人員理解,更不能用來分析其一致性和完整性等特性。當(dāng)一個軟件系統(tǒng)中的組件之間幾乎以一種非形式化的方法描述時,系統(tǒng)的重用性也會受到影響,在設(shè)計一個系統(tǒng)結(jié)構(gòu)過程中的努力很難移植到另一個系統(tǒng)中去。對系統(tǒng)組件和連接關(guān)系的結(jié)構(gòu)化假設(shè)沒有得到顯式的、形式化的描述時,把這樣的系統(tǒng)組件移植到另一個系統(tǒng)中去將是有風(fēng)險的,甚至是不可能的。 8/6/20

22、2248SA的形式化方法研究SA研究如果僅僅停留在非形式化的框圖階段,已經(jīng)難以適應(yīng)進一步發(fā)展的需要。為支持基于體系結(jié)構(gòu)的開發(fā),需要有形式化建模符號、體系結(jié)構(gòu)說明的分析與開發(fā)工具。8/6/202249SA的形式化描述系統(tǒng)Wright美國卡耐基梅隆大學(xué)的Robert JA11en于l997年提出的Wright系統(tǒng)。Wright是-種結(jié)構(gòu)描述語言,該語言基于一種形式化的、抽象的系統(tǒng)模型,為描述和分析SA和結(jié)構(gòu)化方法提供了一種實用的工具。Wright主要側(cè)重于描述系統(tǒng)的軟件組件和連接的結(jié)構(gòu)、配置和方法。它使用顯式的、獨立的連接模型來作為交互的方式,這使得該系統(tǒng)可以用邏輯謂詞符號系統(tǒng),而不依賴特定的系統(tǒng)

23、實例來描述系統(tǒng)的抽象行為。Wright系統(tǒng)還可以通過一組靜態(tài)檢查來判斷系統(tǒng)結(jié)構(gòu)規(guī)格說明的一致性和完整性。Wright系統(tǒng)的確適用于對大型系統(tǒng)的描述和分析。8/6/202250SA的建模研究研究SA的首要問題是如何表示SA,即如何對SA建模。根據(jù)建模的側(cè)重點的不同,可以將SA的模型分為5種:結(jié)構(gòu)模型框架模型動態(tài)模型過程模型功能模型。在這5個模型中,最常用的是結(jié)構(gòu)模型和動態(tài)模型。8/6/202251SA的結(jié)構(gòu)模型是一個最直觀、最普遍的建模方法。以體系結(jié)構(gòu)的組件、連接件和其他概念來刻畫結(jié)構(gòu),并力圖通過結(jié)構(gòu)來反映系統(tǒng)的重要語義內(nèi)容,包括系統(tǒng)的配置、約束、隱含的假設(shè)條件、風(fēng)格、性質(zhì)。研究結(jié)構(gòu)模型的核心是

24、體系結(jié)構(gòu)描述語言。8/6/202252SA的框架模型框架模型與結(jié)構(gòu)模型類似,但它不太側(cè)重描述結(jié)構(gòu)的細(xì)節(jié)而更側(cè)重于整體的結(jié)構(gòu)??蚣苣P椭饕砸恍┨厥獾膯栴}為目標(biāo)建立只針對和適應(yīng)該問題的結(jié)構(gòu)。 8/6/202253SA的動態(tài)模型動態(tài)模型是對結(jié)構(gòu)或框架模型的補充,研究系統(tǒng)的“大顆粒”的行為性質(zhì)。例如:描述系統(tǒng)的重新配置或演化。動態(tài)可能指系統(tǒng)總體結(jié)構(gòu)的配置、建立或拆除通信通道或計算的過程。這類系統(tǒng)常是激勵型的。8/6/202254SA過程模型過程模型研究構(gòu)造系統(tǒng)的步驟和過程。結(jié)構(gòu)是遵循某些過程腳本的結(jié)果。8/6/202255SA的功能模型該模型認(rèn)為體系結(jié)構(gòu)是由一組功能組件按層次組成,下層向上層提供服務(wù)

25、。它可以看作是一種特殊的框架模型。8/6/202256SA的“ 4+1”視角模型 這5種模型各有所長,也許將5種模型有機地統(tǒng)一在一起,形成一個完整的模型來刻畫SA更合適。Kruchten在1995年提出了一個“4+1”的視角模型?!?+1”模型從5個不同的視角包括邏輯視角、過程視角、物理視角、開發(fā)視角和場景視角來描述SA。每一個視角只關(guān)心系統(tǒng)的一個側(cè)面,5個視角結(jié)合在一起才能夠反映系統(tǒng)的SA的全部內(nèi)容。8/6/202257SA的4+1模型圖8/6/202258基于SA的軟件開發(fā)模型研究軟件開發(fā)模型是跨越整個軟件生存周期的系統(tǒng)開發(fā)、運行、維護所實施的全部工作和任務(wù)的結(jié)構(gòu)框架,給出了軟件開發(fā)活動各

26、階段之間的關(guān)系。常見的軟件開發(fā)模型大致可分為三種類型:以軟件需求完全確定為前提的瀑布模型。在軟件開發(fā)初始階段只能提供基本需求時采用的漸進式開發(fā)模型,如螺旋模型等。以形式化開發(fā)方法為基礎(chǔ)的變換模型。8/6/202259SA與軟件開發(fā)模型所有開發(fā)方法都要解決需求與實現(xiàn)之間的差距。這三種類型的軟件開發(fā)模型都存在這樣或那樣的缺陷,不能很好地支持基于SA的開發(fā)過程。需要在基于SA的軟件開發(fā)模型方面做研究,例如:為了形象地表示體系結(jié)構(gòu)的生命周期,北郵的周瑩新博士建立了一個SA的生命周期模型。8/6/202260SA的生命周期模型SA的終結(jié)SA提供評價和度量需要演化或擴展?SA的演化SA的非形式化描述SA的

27、性質(zhì)分析SA的規(guī)范描述SA的實施需要求精否?SA的求精SA求精的驗證SA的形式化基礎(chǔ)(數(shù)學(xué)模型)NOYESYESNOSA的生命周期模型8/6/202261軟件產(chǎn)品線體系結(jié)構(gòu)的研究SA的研究是大型軟件系統(tǒng)開發(fā)的關(guān)鍵環(huán)節(jié)。SA在軟件生產(chǎn)線的開發(fā)中至關(guān)重要:基于同一個SA,可以創(chuàng)建不同功能的多個系統(tǒng)。在軟件產(chǎn)品族之間共享體系結(jié)構(gòu)和一組可重用的組件,可提高效率并降低開發(fā)和維護成本。一個產(chǎn)品線代表著一組具有公共的系統(tǒng)需求集的軟件系統(tǒng),它們都是根據(jù)基本的用戶需求對標(biāo)準(zhǔn)的產(chǎn)品線構(gòu)架進行定制,將可重用組件與系統(tǒng)獨有的部分集成而得到的。采用軟件生產(chǎn)線式模式進行軟件生產(chǎn),將產(chǎn)生巨型編程企業(yè)(?)。8/6/2022

28、62SA的研究熱點關(guān)于SA的研究很新,其概念還相當(dāng)模糊。作為軟件工程研究的一個組成部分, 對SA的研究已經(jīng)取得了長足的發(fā)展。對SA的研究包括如下幾個方面:SA形式基礎(chǔ)的研究;針對SA描述中特有的問題研究新的專門的高級語言;建立用于度量和評價SA的模型和方法;建立面向?qū)iT領(lǐng)域的SA范型庫。把SA從目前的直覺和經(jīng)驗狀態(tài)過渡到理論。8/6/202263提供新的SA描述語言在提高軟件工程師對軟件系統(tǒng)的描述和理解能力中,雖然SA描述起著重要作用,但這些抽象的描述通常是非形式化的和隨意的。體系結(jié)構(gòu)設(shè)計經(jīng)常難以理解,難以適于進行形式化分析和模擬,缺乏相應(yīng)的支持工具幫助構(gòu)架師完成設(shè)計工作。為了解決這個問題,用

29、于描述和推理的形式化語言得以發(fā)展,這些語言就叫做體系結(jié)構(gòu)描述語言ADL(Architecture Description Language)8/6/202264關(guān)于ADLsADL是這樣一種語言,系統(tǒng)構(gòu)架師可以利用它所提供的特性進行軟件系統(tǒng)概念體系結(jié)構(gòu)建模。ADL提供了具體的語法與刻畫體系結(jié)構(gòu)的概念框架。ADLs使得系統(tǒng)開發(fā)者能夠很好地描述他們設(shè)計的體系結(jié)構(gòu),以便與人交流,能夠用提供的工具對許多實例進行分析。8/6/202265關(guān)于ADLsADLs尋求增加SA設(shè)計的可理解性和重用性。ADLs的目的就是提供一種規(guī)范化的體系結(jié)構(gòu)描述,使體系結(jié)構(gòu)的自動化分析變得可能。目前近二十種ADLs,比較有影響力

30、的有C2、UniCon、MetaH、Aesop、SADL、Rapide、Wright等。這些語言能對體系結(jié)構(gòu)連接器進行第一級抽象,能描述模型的結(jié)構(gòu)和內(nèi)部組件之間的交互作用,也引入了一些新的系統(tǒng)分析模式。8/6/202266對SA的專門知識的整理主要是對軟件工程師在軟件開發(fā)實踐中得來的各種體系結(jié)構(gòu)的原則、模式的整理和分類。對SA風(fēng)格的分類和比較對體系結(jié)構(gòu)描述語言的綜合分析等目前,國內(nèi)對SA的研究主要集中在對SA的專門知識的整理上。8/6/202267提供特定領(lǐng)域的體系結(jié)構(gòu)框架開發(fā)特定的領(lǐng)域,為產(chǎn)品提供可重用框架日益受到關(guān)注。在特定的領(lǐng)域中可以提取相關(guān)系統(tǒng)中的共同方面,以便可以通過低成本地把這些共

31、同的設(shè)計實例化來構(gòu)筑新系統(tǒng)。例如:編譯器的標(biāo)準(zhǔn)分解。這個方法可以使一個本科生在一個學(xué)期時間內(nèi)構(gòu)造一個新的語言編譯系統(tǒng)。標(biāo)準(zhǔn)化的通訊協(xié)議。這個可以使廠家通過在不同層次的抽象上提供服務(wù)來互相操縱。第四代語言。利用4GL開發(fā)出商務(wù)信息處理的通用范式。用戶界面工具和框架。這個方法為開發(fā)者提供了一個可重用框架以及象菜單、對話框這樣的可重用組件的集合。8/6/202268提供特定領(lǐng)域的體系結(jié)構(gòu)框架在這里,SA充當(dāng)一個理解系統(tǒng)組件和它們之間關(guān)系的框架,特別是那些始終跨越時間和實現(xiàn)的屬性。這對于現(xiàn)在系統(tǒng)的分析和未來系統(tǒng)的綜合很有必要。在分析的支持下,體系結(jié)構(gòu)抓住領(lǐng)域知識和實際的一致,促進設(shè)計的評估和組件的實施,減少模擬和構(gòu)造原型。在綜合的支持下,體系結(jié)構(gòu)提供了建立系列產(chǎn)品的基礎(chǔ),以可預(yù)測的方式利用領(lǐng)域知識構(gòu)造和維護模塊、子系統(tǒng)和系統(tǒng)。 8/6/202269提供SA的形式化基礎(chǔ)對體系結(jié)構(gòu)設(shè)計的推理的形式化表示使得體系結(jié)構(gòu)級的設(shè)計更好地被理解、被實現(xiàn)。其目的是對體系結(jié)構(gòu)設(shè)計人員在實踐過程中總結(jié)出來的一些設(shè)計的經(jīng)驗和方法加以總結(jié)、概括,從而形成一個形式化的描述,形成一定的理論基礎(chǔ)(以代替當(dāng)前的不精確的研究)?,F(xiàn)有的一些形式化機制:如過程代數(shù)、偏序集合、化學(xué)抽象機等。希望對系統(tǒng)的非功能特性如性能、可維護性等給出形式特征,同時給出SA的理論。

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論