《軟件體系結(jié)構(gòu)教程》課件第2章軟件體系結(jié)構(gòu)概述_第1頁
《軟件體系結(jié)構(gòu)教程》課件第2章軟件體系結(jié)構(gòu)概述_第2頁
《軟件體系結(jié)構(gòu)教程》課件第2章軟件體系結(jié)構(gòu)概述_第3頁
《軟件體系結(jié)構(gòu)教程》課件第2章軟件體系結(jié)構(gòu)概述_第4頁
《軟件體系結(jié)構(gòu)教程》課件第2章軟件體系結(jié)構(gòu)概述_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程內(nèi)

軟件重用與構(gòu)件技術(shù)

軟件體系結(jié)構(gòu)概論

軟件體系結(jié)構(gòu)的風格

軟件體系結(jié)構(gòu)描述

軟件體系結(jié)構(gòu)設(shè)計

基于體系結(jié)構(gòu)的軟件開發(fā)過程

軟件體系結(jié)構(gòu)評估

基于服務(wù)的體系結(jié)構(gòu)

特定領(lǐng)域的軟件體系結(jié)構(gòu)

軟件體系結(jié)構(gòu)集成開發(fā)環(huán)境2.1軟件體系結(jié)構(gòu)的定義2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)2.3軟件體系結(jié)構(gòu)的視角2.4軟件體系結(jié)構(gòu)的研究意義2.5軟件體系結(jié)構(gòu)的發(fā)展歷程2.6軟件體系結(jié)構(gòu)的研究現(xiàn)狀及發(fā)展方向2.7本章小結(jié)第2章軟件體系結(jié)構(gòu)概論第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義1IEEE610.12-1990軟件工程標準詞匯中的定義體系結(jié)構(gòu)是以構(gòu)件、構(gòu)件之間的關(guān)系、構(gòu)件與環(huán)境之間的關(guān)系為內(nèi)容的某一系統(tǒng)的基本組織以及指導上述內(nèi)容設(shè)計與演化的原理。即:軟件體系結(jié)構(gòu)={構(gòu)件,連接件,環(huán)境,原理}。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義2Booch&Rumbaugh&Jacobson的定義體系結(jié)構(gòu)是一系列重要決策的集合,這些決策與以下內(nèi)容相關(guān):軟件的組織、構(gòu)成系統(tǒng)的結(jié)構(gòu)元素及其接口的選擇,這些元素在相互協(xié)作中明確表現(xiàn)出的行為、這些結(jié)構(gòu)元素和行為元素進一步組合構(gòu)成的更大規(guī)模的子系統(tǒng),和引導這一組織(包括這些元素及其接口、它們的協(xié)作、它們的組合)的體系結(jié)構(gòu)風格。即軟件體系結(jié)構(gòu)={組織,元素,子系統(tǒng),風格}。

第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義3Bass的定義程序或計算系統(tǒng)的軟件體系結(jié)構(gòu)是系統(tǒng)的一個或多個結(jié)構(gòu),包括軟件構(gòu)件、構(gòu)件的外部可視屬性和構(gòu)件之間的關(guān)系。首先,體系結(jié)構(gòu)定義了構(gòu)件,描述了構(gòu)件間如何交互,這意味著體系結(jié)構(gòu)略去了那些僅與某構(gòu)件自身有關(guān)的信息。同時,這個定義明確指出系統(tǒng)可以包含多個結(jié)構(gòu)。這個定義還意味著每一個軟件系統(tǒng)都有一個體系結(jié)構(gòu),因為每個軟件系統(tǒng)都是由若干構(gòu)件及其之間的關(guān)系構(gòu)成的。只要一個構(gòu)件的行為可以被其它構(gòu)件觀察或辨明,這個構(gòu)件就是體系結(jié)構(gòu)的一部分。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義4Shaw的定義

Shaw對當時的各種軟件體系結(jié)構(gòu)觀點做了如下的分類。(1)結(jié)構(gòu)模型:結(jié)構(gòu)模型認為,軟件體系結(jié)構(gòu)由構(gòu)件、構(gòu)件之間的連接和一些其它方面組成。這些方面包括如下幾類。配置,風格。約束,語義。分析,屬性。原理,需求。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義(2)框架模型:框架模型的觀點與結(jié)構(gòu)模型相似,但其重點在于整個系統(tǒng)的連貫結(jié)構(gòu)(這種結(jié)構(gòu)通常是唯一的),這與重視其組成恰好相反。框架模型常以某種特定領(lǐng)域或某類問題為目標。(3)動態(tài)模型:動態(tài)模型強調(diào)系統(tǒng)的行為質(zhì)量?!皠討B(tài)”可以有多種含義。它可以是指整個系統(tǒng)配置的變化,也可以是指禁止預先激活了的通信或交互,還可以是指計算中表現(xiàn)出的動態(tài)特性,如改變數(shù)據(jù)的值。(4)過程模型:過程模型關(guān)注系統(tǒng)結(jié)構(gòu)的構(gòu)建及其步驟和過程。在這一觀點下,體系結(jié)構(gòu)是所進行的一系列過程的結(jié)果。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義5Garlan&Shaw的模型軟件體系結(jié)構(gòu)={構(gòu)件,連接件,約束}。(1)構(gòu)件(component)可以是一組代碼,如程序的模塊,也可以是一個獨立的程序,如數(shù)據(jù)庫服務(wù)器。構(gòu)件是相關(guān)對象的集合,運行后實現(xiàn)某計算邏輯。它們或是結(jié)構(gòu)相關(guān)或是邏輯相關(guān)。構(gòu)件相對獨立,僅通過接口與外部相互作用,可作為獨立單元嵌入到不同應用系統(tǒng)中。構(gòu)件的定制和規(guī)范化對于實現(xiàn)構(gòu)件的重用有重要意義。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義(2)連接件(connector)可以是過程調(diào)用、管道、遠程過程調(diào)用等,用于表示構(gòu)件之間的相互作用,它把不同的構(gòu)件連接起來構(gòu)成體系結(jié)構(gòu)的一部分。連接件也是一組對象。它一般表現(xiàn)為框架式對象或轉(zhuǎn)換式對象(調(diào)用遠程構(gòu)件資源),例如“樁”、“代理”對象等。(3)約束(constrain)一般為對象連接時的規(guī)則,或指明構(gòu)件連接的姿態(tài)和條件。例如,上層構(gòu)件可要求下層構(gòu)件的服務(wù),反之不行;兩個對象不得以遞歸方式發(fā)送消息;代碼復制遷移的一致性約束;在什么條件下此種連接無效等。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義6Perry&Wolf的模型軟件體系結(jié)構(gòu)是一組具有特定形式的體系結(jié)構(gòu)元素(elements)。這組元素分為3類:負責完成數(shù)據(jù)加工的處理元素(processingelements)、被加工的數(shù)據(jù)元素(dataelements)和用于把體系結(jié)構(gòu)的不同部分組合連接到一起的連接元素(connectingelements)。軟件體系結(jié)構(gòu)形式由專有特性和關(guān)系組成。專有特性用于限制軟件體系結(jié)構(gòu)元素的選擇,關(guān)系用于限制軟件體系結(jié)構(gòu)元素組合的拓撲結(jié)構(gòu)。在多個體系結(jié)構(gòu)方案中選擇合適的體系結(jié)構(gòu)方案往往基于一組準則。即軟件體系結(jié)構(gòu)={元素,形式,準則}。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義7Garlan&Perry的定義1995年,DavidGarlan和DewnePerry在IEEE軟件工程學報上所做的特約評論中提出:軟件體系結(jié)構(gòu)是一個程序或系統(tǒng)各構(gòu)件的結(jié)構(gòu)、它們的相互關(guān)系,以及進行設(shè)計的原則和指導方針,這些原則和方針隨時間變化而變化。

第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義定義8Boehm的模型軟件體系結(jié)構(gòu)包括系統(tǒng)構(gòu)件、連接件、約束的集合,反映不同人員需求的集合,以及準則的集合。其中,這些準則能夠說明由構(gòu)件、連接件和約束所定義的系統(tǒng)在實現(xiàn)時是如何滿足系統(tǒng)不同人員需求的。即軟件體系結(jié)構(gòu)={構(gòu)件,連接件,約束,不同人員的需求,準則}。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義根據(jù)國內(nèi)普遍認可的看法,可以將體系結(jié)構(gòu)定義為構(gòu)件、連接件和約束。軟件體系結(jié)構(gòu),指可預制和可重構(gòu)的軟件框架結(jié)構(gòu)。構(gòu)件是可預制和可重用的軟件部件,是組成體系結(jié)構(gòu)的基本計算單元或數(shù)據(jù)存儲單元;連接件也是可預制和可重用的構(gòu)件部件,是構(gòu)件之間的連接單元;構(gòu)件和連接件之間的關(guān)系用約束來描述。這樣就可以把軟件體系結(jié)構(gòu)寫成:體系結(jié)構(gòu)(architecture)=構(gòu)件(components)+連接件(connectors)+約束(constraints)第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義除了構(gòu)件、連接件和約束3個最基本的組成元素,軟件體系結(jié)構(gòu)還包括端口(port)和角色(role)兩種元素。構(gòu)件作為一個封裝的實體,僅通過其接口與外部環(huán)境交互,而構(gòu)件的接口由一組端口組成,每個端口表示了構(gòu)件和外部環(huán)境的交互點。連接件作為建模軟件體系結(jié)構(gòu)的主要實體,同樣也有接口。連接件的接口由一組角色組成,連接的每個角色定義了該連接表示的交互的參與者。圖2-1形式化地描述了軟件體系結(jié)構(gòu)的基本概念。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義軟件體系結(jié)構(gòu)構(gòu)件連接件約束端口角色通用風格管道-過濾器層次系統(tǒng)解釋器1*1*1*…圖2-1軟件體系結(jié)構(gòu)的基本概念第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義其中:軟件體系結(jié)構(gòu)∷=軟件體系模型|軟件體系風格軟件體系模型∷={構(gòu)件,連接件,約束}構(gòu)件∷={端口1,端口2,……,端口n}連接件∷={角色1,角色2,……,角色m}約束∷={(端口i,角色j),……}體系結(jié)構(gòu)風格∷={管道-過濾器,層次系統(tǒng),客戶/服務(wù)器,……,解釋器}第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義1、構(gòu)件

在體系結(jié)構(gòu)中,構(gòu)件可以有不同的粒度。一個構(gòu)件可以小到只有一個過程,也可以大到包含一個應用程序。常見的構(gòu)件有:服務(wù)器、數(shù)據(jù)庫、中間件、程序包、過程、子程序、進程、函數(shù)、對象、類庫等。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義2、連接件連接件是用來建立構(gòu)件間的交互的體系結(jié)構(gòu)構(gòu)造模塊。構(gòu)件之間的交互包括消息或信號量的傳遞,功能或方法調(diào)用,數(shù)據(jù)的傳送和轉(zhuǎn)換,構(gòu)件之間的同步關(guān)系、依賴關(guān)系等。在最簡單的情況下,構(gòu)件之間可以直接完成交互,這時體系結(jié)構(gòu)中的連接件就退化為直接連接。在比較復雜的情況下,構(gòu)件間交互的處理和維持都需要連接件來實現(xiàn)。常見的連接件有管道(在管道-過濾器結(jié)構(gòu)中)、通信協(xié)議或通信機制(在客戶/服務(wù)器結(jié)構(gòu)中)等。第2章軟件體系結(jié)構(gòu)概論2.1軟件體系結(jié)構(gòu)的定義3、約束(配置,連接關(guān)系)體系結(jié)構(gòu)的約束描述了系統(tǒng)集成的方式和設(shè)計的約束。這一條反映了體系結(jié)構(gòu)研究和設(shè)計實現(xiàn)的本質(zhì)。除了要滿足應用系統(tǒng)的各種功能需求外,還需要保證系統(tǒng)的設(shè)計質(zhì)量的要求,同時,還可能受系統(tǒng)設(shè)計限制的制約。體系結(jié)構(gòu)必須能滿足特定關(guān)鍵需求,這是體系結(jié)構(gòu)最主要的功能之一。1、電燈開關(guān)控制系統(tǒng)的架構(gòu)假定由燈泡、電池、電線和開關(guān)構(gòu)成了一個最簡單的“系統(tǒng)”,如圖所示。燈泡、電池、開關(guān)是這個系統(tǒng)的“構(gòu)件”,電線是連接燈泡和開關(guān)這兩個構(gòu)件的連接件,什么情況下燈泡亮,什么情況下滅,是開關(guān)與燈泡之間的連接關(guān)系。第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)圖2-3燈泡、電線與開關(guān)構(gòu)成的系統(tǒng)2、汽車系統(tǒng)的架構(gòu)汽車的架構(gòu)有:(1)構(gòu)件(構(gòu)成汽車的各主要部件,如發(fā)動機、輪胎、變速箱、大梁等);(2)部件的相互聯(lián)系(輪胎與發(fā)動機之間靠什么連接在一起);(3)部件之間的關(guān)系(汽車的動力是怎么由發(fā)動機傳遞到輪胎的,轉(zhuǎn)速又是怎么通過齒輪箱控制的)。第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)小程序的架構(gòu)分析VC++“歡迎”程序運行“歡迎”程序,當使用者單擊菜單欄上的“歡迎”菜單項時,程序會彈出一個對話框,并顯示一句歡迎詞:“你好!歡迎進入VisualC++6.0的世界!”,單擊“確定”按鈕可以關(guān)閉對話框。下面從例子中讓大家體會架構(gòu)的存在。第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)(1)創(chuàng)建項目啟動VC++6.0,選擇“文件”|“新建”命令,打開“新建”對話框。選擇“工程”選項卡,選中MFCAppWizard(exe)選項,填寫工程名稱為MenuAccess,指定工作區(qū)位置,選擇“創(chuàng)建新的工作區(qū)”,單擊“確定”按鈕。(2)創(chuàng)建窗口在MFC應用程序向?qū)?步驟1中,向?qū)釂枺耗阋獎?chuàng)建的應用程序類型是?有三個選項:單文檔界面、多文檔界面和基于對話框的應用程序。選擇“單文檔”,并選擇(打鉤)“文檔/查看架構(gòu)支持”,最后單擊“完成”按鈕。(3)完成程序至此,利用MFC向?qū)В瓿闪藨贸绦蚩蚣艿膭?chuàng)建。如果直接編譯這個程序,就完全可以運行了。第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)

下一步的編程工作,就是在這個框架的基礎(chǔ)上,添加一個按鈕,以及相應響應按鈕事件的處理函數(shù)——顯示“歡迎”文字。(4)添加按鈕打開工作區(qū)的ResourceView選項,展開Menu和IDR_MAINFRAME,就可以看到如圖2-5所示的“歡迎”程序主菜單(此時,還沒有添加“歡迎”按鈕)。圖2-5“歡迎”小程序的主菜單(添加前)第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)在菜單“幫助”右邊的空白處,點擊鼠標右鍵,在彈出的快捷菜單中,選擇“屬性”,在新出現(xiàn)的“菜單項目-屬性”對話框中的“標明”處,填寫新菜單項的顯示標題——“歡迎”,取消選擇“彈出”,在ID欄里,為菜單取一個名字“ID_MENUACCE”,按Enter鍵,完成新按鈕的創(chuàng)建,結(jié)果如圖2-6所示,此時可以看到,已添加了一個“歡迎”按鈕。圖2-6“歡迎”小程序的主菜單(添加后)1、從程序設(shè)計角度看,這一步是創(chuàng)建了一個行為觸發(fā)器——按鈕,而從架構(gòu)設(shè)計和實現(xiàn)角度看,這里創(chuàng)建了一個新的構(gòu)件——“歡迎”按鈕,這個構(gòu)件是“歡迎”程序的核心構(gòu)件。2、創(chuàng)建消息映射為“歡迎”菜單項添加對應的消息處理函數(shù),建立了菜單項與處理函數(shù)之間的連接。從架構(gòu)角度看,這就是構(gòu)成架構(gòu)的第二個要素——建立構(gòu)件之間的“連接”。Windows的消息機制,是Windows應用中,菜單項構(gòu)件與對應處理函數(shù)構(gòu)件之間建立聯(lián)系的“連接件”。第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)3、編寫處理函數(shù)編寫顯示“歡迎”的代碼。從架構(gòu)角度,這一步是完成另一個構(gòu)件——“處理函數(shù)”。同時,在處理函數(shù)模塊中,實現(xiàn)架構(gòu)概念的第三個要素:構(gòu)件之間的“交互協(xié)議”,交互協(xié)議的具體內(nèi)容,應體現(xiàn)在菜單項的內(nèi)容、傳遞的消息內(nèi)容和對應的處理函數(shù)三者之中。但是,在這個例子中,菜單項構(gòu)件、消息連接、處理構(gòu)件三者之間的“交互”非常簡單,幾乎不需要協(xié)議,就是“你單擊,我顯示”。第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)第2章軟件體系結(jié)構(gòu)概論2.2從身邊的架構(gòu)感受軟件體系結(jié)構(gòu)小程序的架構(gòu)設(shè)計和實現(xiàn)總結(jié):創(chuàng)建新按鈕是創(chuàng)建新的構(gòu)件(處理函數(shù)是另一構(gòu)件);建立消息映射是建立構(gòu)件之間的連接;處理函數(shù)則根據(jù)對按鈕、消息、處理三者之間的“協(xié)議”,編寫相應代碼。創(chuàng)建架構(gòu)的過程,即使這么簡單的程序,也包括了架構(gòu)構(gòu)成三要素的“構(gòu)件”、“連接”、“協(xié)議”的全部內(nèi)容:按鈕、處理函數(shù)——構(gòu)件消息機制——連接件按鈕、消息、處理函數(shù)的關(guān)系——連接關(guān)系架構(gòu)描述在不同階段,依據(jù)層次和細節(jié)的不同,視角也不同,一般可分為概略型、需求型和設(shè)計型。概略型是上層宏觀的描述,反映系統(tǒng)最上層的構(gòu)件和連接關(guān)系,如通常所說的C/S、B/S架構(gòu)等。需求型是對概略結(jié)構(gòu)的深入表達,以滿足用戶功能和非功能需求的表達為主。如可支持不同業(yè)務(wù)需求的框架結(jié)構(gòu)等,Struts架構(gòu)就是典型的針對基于Web應用的架構(gòu)。第2章軟件體系結(jié)構(gòu)概論2.3軟件架構(gòu)的視角設(shè)計型從設(shè)計實現(xiàn)的角度,對需求型進行更深入的描述表達,需要從不同的側(cè)面/視圖,設(shè)計系統(tǒng)的各個層面,對各個構(gòu)件和連接結(jié)構(gòu)進行描述。在這個層面上的描述,將直接為系統(tǒng)實現(xiàn)和性能分析服務(wù)。MFC就是典型的面向設(shè)計和實現(xiàn)的架構(gòu)。第2章軟件體系結(jié)構(gòu)概論2.3軟件架構(gòu)的視角軟件架構(gòu)的作用在不同階段,架構(gòu)發(fā)揮著不同的作用:(1)在項目規(guī)劃階段:架構(gòu)是項目可行性、工程復雜度、計劃進度、投資規(guī)模和風險預測的依據(jù)(概略型)。(2)在需求分析階段:架構(gòu)是開發(fā)團隊與用戶進行需求交互溝通的表達形式和結(jié)果(需求型)。(3)在系統(tǒng)設(shè)計階段:架構(gòu)是系統(tǒng)設(shè)計分解和實現(xiàn)、驗證的基礎(chǔ)。第2章軟件體系結(jié)構(gòu)概論2.3軟件架構(gòu)的視角(4)在項目實施階段:架構(gòu)是工作分工、人員安排、組織協(xié)調(diào)、績效管理的依據(jù)。(5)在項目測試階段:架構(gòu)是性能測試和評審的依據(jù)。(6)在維護升級階段:架構(gòu)是保證系統(tǒng)整體合理性、正確性、性能和可控的維護成本的前提下,軟件系統(tǒng)修改、擴充、升級的基礎(chǔ)模型。第2章軟件體系結(jié)構(gòu)概論2.3軟件架構(gòu)的視角第2章軟件體系結(jié)構(gòu)概論2.4軟件體系結(jié)構(gòu)的研究意義軟件體系結(jié)構(gòu)是軟件系統(tǒng)的高級抽象,體現(xiàn)了系統(tǒng)開發(fā)中最早做出的決策。它體現(xiàn)了根本性的系統(tǒng)設(shè)計思路,對系統(tǒng)起著最為深遠的影響。體系結(jié)構(gòu)在明確了系統(tǒng)的各個組成部分的同時,也限定了各部分間的交互方式。這將進一步影響到開發(fā)資源的配置和開發(fā)團隊的組織等其它方方面面的開發(fā)活動,并影響著最終的軟件產(chǎn)品質(zhì)量。在大型軟件系統(tǒng)中,軟件體系結(jié)構(gòu)是決定系統(tǒng)能否順利實現(xiàn)的關(guān)鍵因素之一,不當?shù)捏w系結(jié)構(gòu)會給整個系統(tǒng)帶來災難性的后果。良好的體系結(jié)構(gòu)對于軟件系統(tǒng)的重要意義在軟件生命周期中的各個階段都有體現(xiàn),這主要有如下4個方面。第2章軟件體系結(jié)構(gòu)概論2.4軟件體系結(jié)構(gòu)的研究意義1、對系統(tǒng)分析的意義一方面,借助于軟件體系結(jié)構(gòu)進行描述,可以使問題得以進一步抽象,使整個系統(tǒng)更易于被系統(tǒng)分析設(shè)計人員把握,更清晰地認識系統(tǒng),完善對系統(tǒng)的理解。另一方面,它能夠幫助軟件系統(tǒng)的各有關(guān)權(quán)益方(客戶、用戶、項目管理人員、設(shè)計開發(fā)人員以及測試人員等)形成統(tǒng)一認識,互相交流。體系結(jié)構(gòu)代表了系統(tǒng)的公共的高層次的抽象,是大家都關(guān)心的一個重要因素。它作為項目參與人員共同使用的語言,具有很強的描述能力,起到了難以替代的溝通作用。

第2章軟件體系結(jié)構(gòu)概論2.4軟件體系結(jié)構(gòu)的研究意義2、對軟件開發(fā)的意義軟件體系結(jié)構(gòu)代表了系統(tǒng)早期的設(shè)計決策。與開發(fā)、設(shè)計、編碼或運行服務(wù)及維護階段相比,早期設(shè)計決策的處理難度最大,對系統(tǒng)的生命期的影響也最大。同時,軟件體系結(jié)構(gòu)也難于改變,會對整個系統(tǒng)開發(fā)活動造成深遠影響。系統(tǒng)的后繼開發(fā)工作要遵循體系結(jié)構(gòu)所描述的設(shè)計決策,也會反映到開發(fā)工作的分解,以及項目的人員組織。第2章軟件體系結(jié)構(gòu)概論2.4軟件體系結(jié)構(gòu)的研究意義3、對軟件重用的意義體系結(jié)構(gòu)技術(shù)的研究,使軟件重用從代碼重用發(fā)展到設(shè)計重用和過程重用,實現(xiàn)多層次的軟件重用。面向體系結(jié)構(gòu)的開發(fā)方法常常注意構(gòu)件的組合與裝配,而不一定把編程作為主要活動。有效地利用標準構(gòu)件,或是識別并重用系統(tǒng)內(nèi)部的構(gòu)件,或是購買第三方構(gòu)件,只要這些構(gòu)件與當前體系結(jié)構(gòu)相容,都能減少開發(fā)中的重復勞動和系統(tǒng)中的重復代碼。體系結(jié)構(gòu)起了組織產(chǎn)品的構(gòu)件、接口及運行的作用。

第2章軟件體系結(jié)構(gòu)概論2.4軟件體系結(jié)構(gòu)的研究意義體系結(jié)構(gòu)良好的軟件系統(tǒng)中,不僅構(gòu)件庫能夠重用,還可以在更高層次上實現(xiàn)軟件子系統(tǒng)乃至軟件系統(tǒng)框架的重用。軟件體系結(jié)構(gòu)級的重用意味著體系結(jié)構(gòu)的決策能在具有相似需求的多個系統(tǒng)中發(fā)生影響,這比代碼級的重用要有更大的好處。通過對體系結(jié)構(gòu)的抽象可以使設(shè)計者能夠?qū)σ恍嵺`證明有效的體系結(jié)構(gòu)構(gòu)件進行重用,從而提高設(shè)計效率和可靠性。

第2章軟件體系結(jié)構(gòu)概論2.4軟件體系結(jié)構(gòu)的研究意義4、對系統(tǒng)演化的意義對軟件系統(tǒng)的演化過程中,維護人員需要不斷地進行調(diào)整、修改、增加新的功能或構(gòu)件等工作。解決好系統(tǒng)演化階段的開發(fā)問題具有重要意義。軟件體系結(jié)構(gòu)決定著系統(tǒng)構(gòu)件的劃分和交互方式。一方面,在設(shè)計系統(tǒng)的體系結(jié)構(gòu)之初,就應當充分考慮到將來可能的系統(tǒng)演化;另一方面,在進行系統(tǒng)演化階段的開發(fā)時,由于體系結(jié)構(gòu)充分地刻畫了當前系統(tǒng),清晰地描述了構(gòu)件及其相互關(guān)系和整個系統(tǒng)的框架,所以應當充分利用。第2章軟件體系結(jié)構(gòu)概論2.4軟件體系結(jié)構(gòu)的研究意義以現(xiàn)有體系結(jié)構(gòu)為基礎(chǔ),把握需要進行的系統(tǒng)變動,在系統(tǒng)范圍內(nèi)綜合考慮,有助于確定系統(tǒng)維護的最優(yōu)方案,更好地控制軟件質(zhì)量和維護成本。軟件體系結(jié)構(gòu)可以把可能發(fā)生的變動分為3類:局部的、非局部的和體系結(jié)構(gòu)級的。局部的是指只要修改單個構(gòu)件本身。非局部的是指要修改幾個構(gòu)件,但不影響基礎(chǔ)體系結(jié)構(gòu)的變動。而體系結(jié)構(gòu)級是指會影響各部分的相互關(guān)系,甚至要改動整個系統(tǒng)。軟件架構(gòu)師的作用在軟件企業(yè)中,軟件架構(gòu)師作為一種專門的職業(yè)獨立出來,成為與軟件項目經(jīng)理并列的技術(shù)領(lǐng)導者。典型地,如比爾.蓋茨將自己的職位界定為微軟首席軟件架構(gòu)師(ChiefSoftwareArchitect)。軟件開發(fā)項目需要一些人在軟件構(gòu)建時扮演軟件架構(gòu)師的角色,就像構(gòu)建建筑時傳統(tǒng)的建筑師角色一樣。建筑師的作用來看一個缺少建筑師設(shè)計的經(jīng)典例子。溫徹斯特神秘屋是美國加州的SanJose的一個旅游景點。這座神秘屋是由一個叫做薩拉·溫徹斯特的寡婦在19世紀末投資建造的,她的丈夫威廉·溫徹斯特是美國著名的“溫徹斯特步槍”的發(fā)明者,當丈夫溫徹斯特和他們的一名女嬰突然去世后,悲痛欲絕的薩拉去拜訪了一名“占星者”,這名“占星者”對她稱,她丈夫發(fā)明的步槍造成了許多人的死亡,因此她的家受到了那些槍下亡魂的“詛咒”。避開這個詛咒的唯一方法是建造一座大廈,給那些鬼魂居住,只要不停地建造,鬼魂就不會來打擾她。她迅速地請了147個建筑工人(但是沒有建筑師),開始建造這座大廈。從1884年到1922年,38年時間中,薩拉不停地建造“溫徹斯特神秘屋”,房子一間間不斷增加,倒塌、又不斷重建,直到1922年,享年82歲的莎拉夫人壽終正寢,“溫徹斯特神秘屋”才停止建造,直到如今仍保持著當時的規(guī)模。這幢巨宅,共擁有160個房間,10000個窗,2000個門,52個天窗,47個暖爐,40個樓梯間,60個居室,6個廚房,3部電梯,3個地下室,還有未完成的浴室及莎拉自己設(shè)計的一個安樂椅等等。這座建筑沒有建筑藍圖,完全憑房主的一時興致。這座巨宅從外表看起來,房子造型典雅,古色古香,然而房屋里面的設(shè)計卻怪得令人不可思議。屋中門窗多得嚇人,有時連地板上也會突然開出一扇窗戶,不知情者一不小心可能就會從這扇窗戶中掉下去;而房間中有的門打開后,前面并無出路,只有一堵冷冰冰的水泥墻;而有的門打開后,前面卻是一片虛空,空空如也,人一不小心就會從高處跌落到樓底下的花園中。西方人嫌棄的13,成了這個房子的特色。首先是門庭,門庭是用混凝土特制的角石排成13列而成,十分隱蔽幽深。最具標志性的是莎拉的“降神術(shù)間”,這是只有莎拉一個人可以進入的房間,房間里空空蕩蕩,壁上卻依次掛有13件外套,這是為暗夜中來訪的幽靈準備的。在這個降神術(shù)間,設(shè)置了三個出口,一個開在天花板上,一個開在窗戶上,一個是門卻不能直接開啟。同樣奢華精美的是莎拉的大舞蹈室,它的聲響優(yōu)美動聽,連使用的粘合劑和小釘都是特別的。室內(nèi)的吸音裝置一律用13塊輕型質(zhì)板拼接而成。用瓦斯作能源的枝形花燈一律是13枝,用彩色玻璃鑲嵌的窗扉上,刻有一句據(jù)說是莎士比亞的戲劇臺詞,出處、含意,尚無人找到和解出。軟件體系結(jié)構(gòu)的作用軟件體系結(jié)構(gòu)的作用,在系統(tǒng)設(shè)計層面上主要體現(xiàn)在:1、表達系統(tǒng)的功能需求是如何被實現(xiàn)的2、表達系統(tǒng)的關(guān)鍵質(zhì)量屬性需求是如何被實現(xiàn)的軟件體系結(jié)構(gòu)的作用最近這些年,從業(yè)界開始,已經(jīng)越來越強調(diào)“基于關(guān)鍵質(zhì)量屬性需求的架構(gòu)設(shè)計”這一架構(gòu)設(shè)計的根本出發(fā)點和考慮因素,而不是僅關(guān)注功能需求的架構(gòu)實現(xiàn)。第2章軟件體系結(jié)構(gòu)概論2.5軟件體系結(jié)構(gòu)的發(fā)展歷程軟件工程作為一門獨立的學科,其發(fā)展已逾40年。無論從應用規(guī)??催€是從技術(shù)水平看,計算機軟件產(chǎn)業(yè)所經(jīng)歷的發(fā)展都是迅猛的。這體現(xiàn)在諸多方面。首先,軟件系統(tǒng)的應用領(lǐng)域從實驗室滲透到了人類社會的各個角落。其次,軟件系統(tǒng)的規(guī)模也迅速增長。在軟件應用規(guī)模和應用領(lǐng)域迅速擴大的同時,軟件開發(fā)技術(shù)也在發(fā)生著根本性的變革。軟件體系結(jié)構(gòu)也經(jīng)歷了與之相對應的一系列變革,由最初的模糊概念發(fā)展成為一門日益成熟的技術(shù)。

軟件體系結(jié)構(gòu)的發(fā)展史

第1章軟件體系結(jié)構(gòu)概論“無體系結(jié)構(gòu)”設(shè)計階段萌芽階段以匯編語言進行小規(guī)模應用程序開發(fā)為特征以描述系統(tǒng)的高層抽象結(jié)構(gòu)為中心,不關(guān)心具體的建模細節(jié),劃分了體系結(jié)構(gòu)模型與傳統(tǒng)軟件結(jié)構(gòu)的界限,該階段以Kruchten提出的“4+1”模型為標志出現(xiàn)了從不同側(cè)面描述系統(tǒng)的結(jié)構(gòu)模型,以UML為典型代表。出現(xiàn)了程序結(jié)構(gòu)設(shè)計主題,以控制流圖和數(shù)據(jù)流圖構(gòu)成軟件結(jié)構(gòu)為特征高級階段初期階段2.5軟件體系結(jié)構(gòu)的發(fā)展歷程第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向軟件體系結(jié)構(gòu)研究現(xiàn)狀軟件體系結(jié)構(gòu)作為軟件工程研究領(lǐng)域的一部分,已經(jīng)取得了長足的發(fā)展,受到大多數(shù)軟件系統(tǒng)設(shè)計和研究人員的重視。但當前,體系結(jié)構(gòu)仍是一個處在不斷發(fā)展中的新研究領(lǐng)域,許多定義還不夠統(tǒng)一,歸納現(xiàn)有體系結(jié)構(gòu)的研究活動,主要的討論和研究大致集中在以下幾個方面。

第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向1、軟件體系結(jié)構(gòu)描述研究構(gòu)建軟件體系結(jié)構(gòu)的目的之一就是建立一個可供各種人員交流的平臺,并且要具備系統(tǒng)架構(gòu)級的可重用性。因此如何恰當、準確地對軟件體系結(jié)構(gòu)進行描述是至關(guān)重要的。這種描述應當能夠為各種人員提供不同的視圖以滿足其不同的要求;同時,當要構(gòu)建新的應用或?qū)眠M行系統(tǒng)級更改時,這種描述應該能夠快速提供可重用的系統(tǒng)架構(gòu)視圖或系統(tǒng)模塊視圖。這方面的研究包括軟件體系結(jié)構(gòu)描述語言、使用“4+1”模型描述軟件體系結(jié)構(gòu)、使用UML描述軟件體系結(jié)構(gòu)等方面的研究。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向(1)軟件體系結(jié)構(gòu)描述語言現(xiàn)有的一些軟件體系結(jié)構(gòu)描述方法采用非形式化的方法,難以對體系結(jié)構(gòu)進行形式化分析和模擬,缺乏相應的支持工具幫助設(shè)計師完成設(shè)計工作。為了解決這個問題,用于描述和推理的形式化語言得以發(fā)展,這些語言就叫做體系結(jié)構(gòu)描述語言(ADL)。ADL尋求增加軟件體系結(jié)構(gòu)設(shè)計的可理解性和重用性。系統(tǒng)設(shè)計師可以利用ADL所提供的特性進行軟件系統(tǒng)概念體系結(jié)構(gòu)建模。ADL提供了具體的語法與刻畫體系結(jié)構(gòu)的概念框架。它使得系統(tǒng)開發(fā)者能夠很好地描述他們設(shè)計的體系結(jié)構(gòu),以便與他人交流,能夠用提供的工具對許多實例進行分析。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向研究人員已經(jīng)設(shè)計出了若干種ADL,典型的有Aesop、MetaH、C2、Rapide、SADL、UniCon和Wright等,盡管它們都描述軟件體系結(jié)構(gòu),卻有不同的特點:Aesop支持體系結(jié)構(gòu)風格的應用;MetaH為設(shè)計者提供了關(guān)于實時電子控制軟件系統(tǒng)的設(shè)計指導;C2支持基于消息傳遞風格的用戶界面系統(tǒng)的描述;Rapide支持體系結(jié)構(gòu)設(shè)計的模擬并提供了分析模擬結(jié)果的工具;SADL提供了關(guān)于體系結(jié)構(gòu)加細的形式化基礎(chǔ);UniCon支持異構(gòu)的構(gòu)件和連接件類型并提供了關(guān)于體系結(jié)構(gòu)的高層編譯器;Wright支持體系結(jié)構(gòu)構(gòu)件之間交互的說明和分析。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向這些ADL及它們的支持工具、描述方法和形式各不相同,強調(diào)了體系結(jié)構(gòu)不同的側(cè)面,對體系結(jié)構(gòu)的研究和應用起到了重要的作用,但也有負面的影響。每一種ADL都以獨立的形式存在,描述語法不同且互不兼容。同時又有許多共同的特征,這使設(shè)計人員很難選擇一種合適的ADL;大部分ADL都是領(lǐng)域相關(guān)的,不利于對不同領(lǐng)域的體系結(jié)構(gòu)進行分析;一些ADL在某些方面大同小異,有很多冗余的部分。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向針對這些不足,已出現(xiàn)一些交換語言,其目標是提供一個公共形式把各種語言綜合起來,以此來綜合不同的體系結(jié)構(gòu)描述。ACME就是其中較有影響的一個。另外一個研究熱點是開發(fā)基于XML的體系結(jié)構(gòu)描述語言。XML是可擴展標記語言,它簡單并易于實現(xiàn),因此被工業(yè)界廣泛使用。若能用XML來表示軟件體系結(jié)構(gòu),必能極大推動軟件體系結(jié)構(gòu)領(lǐng)域的研究成果在軟件產(chǎn)業(yè)界的應用。由于XML在體系結(jié)構(gòu)描述上的許多優(yōu)點,研究者們已經(jīng)開發(fā)出了不同的基于XML的體系結(jié)構(gòu)描述語言,如XADL2.0、XBA、XCOBA等。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向(2)使用“4+1”模型描述軟件體系結(jié)構(gòu)Kruchten提出的“4+1”模型是當前軟件體系結(jié)構(gòu)描述的一個經(jīng)典范例,該模型由邏輯視圖、開發(fā)視圖、過程視圖和物理視圖組成,并通過場景將這4個視圖有機地結(jié)合起來,比較細致地描述了需求和體系結(jié)構(gòu)之間的關(guān)系?!?+1”模型實際上使得有不同需求的人員能夠得到他們對于軟件體系結(jié)構(gòu)想要了解的東西。系統(tǒng)工程師先從物理視圖,然后從過程視圖靠近體系結(jié)構(gòu)。最終使用者、客戶、數(shù)據(jù)專家從邏輯視圖看體系結(jié)構(gòu);項目經(jīng)理、軟件配置人員從開發(fā)視圖看體系結(jié)構(gòu)。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向(3)使用UML描述軟件體系結(jié)構(gòu)Medividovic總結(jié)了用UML描述體系結(jié)構(gòu)的三種途徑:不改變UML用法而直接對體系結(jié)構(gòu)建模;利用UML支持的擴充機制擴展UML的元模型對體系結(jié)構(gòu)建模概念的支持;對UML進行擴充,增加體系結(jié)構(gòu)建模元素。本書第4章介紹了不改變UML用法而直接對體系結(jié)構(gòu)建模的方法。UML的靜態(tài)建模機制包括用例圖、類圖、對象圖、包、構(gòu)件圖和部署圖。UML的動態(tài)建模機制包括順序圖、協(xié)作圖、狀態(tài)圖、活動圖。分別可以使用UML對構(gòu)件交互模式進行靜態(tài)建模和動態(tài)建模。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向2、軟件體系結(jié)構(gòu)設(shè)計研究這方面的研究包括體系結(jié)構(gòu)風格研究、體系結(jié)構(gòu)設(shè)計原理、設(shè)計模式和設(shè)計方法研究。(1)體系結(jié)構(gòu)風格研究體系結(jié)構(gòu)設(shè)計研究的重點內(nèi)容之一就是體系結(jié)構(gòu)風格的研究。人們在開發(fā)不同系統(tǒng)時,會逐漸發(fā)現(xiàn)一類系統(tǒng)的體系結(jié)構(gòu)上有許多共性,于是抽取出這些共性構(gòu)成一些富有代表性和被廣泛接受的體系結(jié)構(gòu)風格。所以說體系結(jié)構(gòu)風格是用來刻畫具有相似結(jié)構(gòu)和語義性質(zhì)的一類系統(tǒng)族的。它定義一組構(gòu)件、連接件的類型以及它們之間應該如何連接的約束。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向一個系統(tǒng)不一定只具有一種風格,在不同層次或抽象級別上,可具有多種風格。雖然系統(tǒng)組織方式可以是無窮的,但如果能用少量的風格類型表達出較多的系統(tǒng)組織方式,不僅可以縮短系統(tǒng)分析設(shè)計的時間,還能大大提高大規(guī)模軟件重用的機會。Garlan和Shaw給出了對通用體系結(jié)構(gòu)風格的分類:(1)數(shù)據(jù)流風格;(2)調(diào)用/返回風格;(3)獨立構(gòu)件風格;(4)虛擬機風格;(5)倉庫風格。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向(2)體系結(jié)構(gòu)設(shè)計模式設(shè)計模式的概念最早是由美國的一位叫做ChristopherAlexander的建筑理論家提出來的,他試圖找到一種結(jié)構(gòu)化、可重用的方法,以在圖紙上捕捉到建筑物的基本要素。后來被作為總結(jié)軟件設(shè)計,特別是面向?qū)ο笤O(shè)計的實踐和經(jīng)驗而提出。在幾十年的軟件設(shè)計研究和實踐中,設(shè)計人員和程序員積累了大量的實際經(jīng)驗,發(fā)現(xiàn)并提出了大量在眾多應用中普遍存在的軟件結(jié)構(gòu)和結(jié)構(gòu)關(guān)系,模式被用于軟件體系結(jié)構(gòu)設(shè)計中。利用設(shè)計模式可以方便地重用成功的設(shè)計和結(jié)構(gòu)。設(shè)計模式幫助設(shè)計師選擇可使系統(tǒng)重用的設(shè)計方案,避免選擇危害到可重用性的方案。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向(3)體系結(jié)構(gòu)設(shè)計方法生成一個滿足軟件需求的體系結(jié)構(gòu)的過程即為體系結(jié)構(gòu)設(shè)計。體系結(jié)構(gòu)設(shè)計過程的本質(zhì)在于:將系統(tǒng)分解成相應的組成成分(如構(gòu)件、連接件),并將這些成分重新組裝成一個系統(tǒng)。常用的體系結(jié)構(gòu)設(shè)計方法有4類,分別為制品驅(qū)動(artifact-driven)的方法,用例驅(qū)動(use-case-driven)的方法,模式驅(qū)動(pattern-driven)的方法和領(lǐng)域驅(qū)動(domain-driven)的方法。每種方法在過程的順序上、在概念的特定內(nèi)容上有所不同,但最后都生成對體系結(jié)構(gòu)的描述。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向(4)基于關(guān)鍵質(zhì)量屬性需求的體系結(jié)構(gòu)設(shè)計基于關(guān)鍵質(zhì)量屬性的體系結(jié)構(gòu)設(shè)計是目前業(yè)界在軟件體系結(jié)構(gòu)設(shè)計中非常關(guān)注的一個重要方向,它更多地指向滿足實際體系結(jié)構(gòu)設(shè)計的核心目標和本質(zhì)需求,因而,發(fā)展出所謂的屬性驅(qū)動的體系結(jié)構(gòu)設(shè)計方法(ADD,AttributeDrivenDesign)。后面在介紹了關(guān)鍵質(zhì)量屬性需求的概念之后,簡單討論了幾種常見的關(guān)鍵質(zhì)量屬性需求及對軟件體系結(jié)構(gòu)的影響和對策?;贏DD方法的關(guān)鍵,首先是了解和理解關(guān)鍵需求的背景和場景,找對方法和對策,然后從模塊分解、體系結(jié)構(gòu)布局、協(xié)同設(shè)計三個體系結(jié)構(gòu)設(shè)計的基本要素入手,設(shè)計出滿足關(guān)鍵需求的架構(gòu),并加以實現(xiàn)。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向3、基于體系結(jié)構(gòu)的軟件開發(fā)方法在引入了體系結(jié)構(gòu)的軟件開發(fā)中,應用系統(tǒng)的構(gòu)造過程變?yōu)椤皢栴}定義→軟件需求→軟件體系結(jié)構(gòu)→軟件設(shè)計→軟件實現(xiàn)”,可以認為軟件體系結(jié)構(gòu)架起了軟件需求與軟件設(shè)計之間的一座橋梁。而在由軟件體系結(jié)構(gòu)到實現(xiàn)的過程中,借助一定的中間件技術(shù)與軟件總線技術(shù),軟件體系結(jié)構(gòu)易于映射成相應的實現(xiàn)。Bass等人提出了一種基于體系結(jié)構(gòu)的軟件開發(fā)過程,該過程包括6個步驟:導出體系結(jié)構(gòu)需求;設(shè)計體系結(jié)構(gòu);文檔化體系結(jié)構(gòu);分析體系結(jié)構(gòu);實現(xiàn)體系結(jié)構(gòu);維護體系結(jié)構(gòu)。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向4、軟件體系結(jié)構(gòu)評估軟件體系結(jié)構(gòu)的設(shè)計是整個軟件開發(fā)過程中關(guān)鍵的一步。對于當今世界上龐大而復雜的系統(tǒng)來說,沒有一個合適的體系結(jié)構(gòu)而要有一個成功的軟件設(shè)計幾乎是不可想象的。不同類型的系統(tǒng)需要不同的體系結(jié)構(gòu),甚至一個系統(tǒng)的不同子系統(tǒng)也需要不同的體系結(jié)構(gòu)。體系結(jié)構(gòu)的選擇是一個軟件系統(tǒng)設(shè)計成敗的關(guān)鍵。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向但是,怎樣才能知道為軟件系統(tǒng)所選用的體系結(jié)構(gòu)是否恰當?如何確保按照所選用的體系結(jié)構(gòu)能順利地開發(fā)出成功的軟件產(chǎn)品呢?要回答這些問題,需要使用專門的方法對軟件體系結(jié)構(gòu)進行分析和評估。常用的軟件體系結(jié)構(gòu)評估方法有軟件體系結(jié)構(gòu)分析方法(SoftwareArchitectureAnalysisMethod,SAAM)和體系結(jié)構(gòu)權(quán)衡分析方法(ArchitectureTradeoffAnalysisMethod,ATAM)。第2章軟件體系結(jié)構(gòu)概論2.6研究現(xiàn)狀和發(fā)展方向它們都是基于場景的軟件體系結(jié)構(gòu)評估方法,這類評估方法分

溫馨提示

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

評論

0/150

提交評論