軟件體系結構

軟件體系結構

結構化元素
軟件體系結構是具有一定形式的結構化元素,即構件的集合,包括處理構件、數據構件和連接構件。處理構件負責對數據進行加工,數據構件是被加工的信息,連接構件把體系結構的不同部分組組合連接起來。這一定義注重區分處理構件、數據構件和連接構件,這一方法在其他的定義和方法中基本上得到保持。由于軟件系統具有的一些共通特性,這種模型可以在多個系統之間傳遞,特别是可以應用到具有相似質量屬性和功能需求的系統中,并能夠促進大規模軟件的系統級複用。
    中文名:軟件體系結構 外文名:Software Architecture 别名:北大青鳥APTECH(北京志遠訊傑)授權培訓中心 英文名:Jade-Bird ChangPing District 組成:處理構件、數據構件 定義:具有一定形式的結構化元素 校訓:嚴謹求實,科學創新 創建時間:2005年 ISBN:7302133166, 9787302133162 應用:軟件工程 類别:電腦培訓學校 頁數:307頁 現任校長:王希勇 作者:張友生 知名校友:李雄燮 跑跑的神話 品牌:清華大學出版社 學生人數:1000年 開本:16開 教師人數:100 出版日期:2006年11月1日 所屬地區:中國 北京 出版社:清華大學出版社 主要院系:網絡營銷、網絡工程、JAVA 語種:簡體中文

發展曆史

與最初的大型中央主機相适應,最初的軟件結構體系也是Mainframe結構,該結構下客戶、數據和程序被集中在主機上,通常隻有少量的GUI界面,對遠程數據庫的訪問比較困難。随着PC的廣泛應用,該結構逐漸在應用中被淘汰。

在80年代中期出現了Client/Server分布式計算結構,應用程序的處理在客戶(PC機)和服務器(Mainframe或Server)之間分擔;請求通常被關系型數據庫處理,PC機在接受到被處理的數據後實現顯示和業務邏輯;系統支持模塊化開發,通常有GUI界面。Client/Server結構因為其靈活性得到了極其廣泛的應用。但對于大型軟件系統而言,這種結構在系統的部署和擴展性方面還是存在着不足。

Internet的發展給傳統應用軟件的開發帶來了深刻的影響。基于Internet和Web的軟件和應用系統無疑需要更為開放和靈活的體系結構。随着越來越多的商業系統被搬上Internet,一種新的、更具生命力的體系結構被廣泛采用,這就是為我們所知的“三層/多層計算”。

。客戶層(client tier) 用戶接口和用戶請求的發出地,典型應用是網絡浏覽器和胖客戶(如Java程序)

。服務器層(server tier) 典型應用是Web服務器和運行業務代碼的應用程序服務器

。數據層(data tier) 典型應用是關系型數據庫和其他後端(back-end)數據資源, 如 Oracle和SAP、 R/3等

三層體系結構中,客戶(請求信息)、程序(處理請求)和數據(被操作)被物理地隔離。三層結構是個更靈活的體系結構,它把顯示邏輯從業務邏輯中分離出來,這就意味着業務代碼是獨立的,可以不關心怎樣顯示和在哪裡顯示。業務邏輯層現在處于中間層,不需要關心由哪種類型的客戶來顯示數據,也可以與後端系統保持相對獨立性,有利于系統擴展。三層結構具有更好的移植性,可以跨不同類型的平台工作,允許用戶請求在多個服務器間進行負載平衡。三層結構中安全性也更易于實現,因為應用程序已經同客戶隔離。應用程序服務器是三層/多層體系結構的組成部分,應用程序服務器位于中間層。

如圖所示,應用程序服務器運行于浏覽器和數據資源之間,一個簡單的實例是,顧客從浏覽器中輸入一個定單,web服務器将該請求發送給應用程序服務器,由應用程序服務器執行處理邏輯,并且獲取或更新後端用戶數據。

興起

六十年代的軟件危機使得人們開始重視軟件工程的研究。起初,人們把軟件設計的重點放在數據結構和算法的選擇上,随着軟件系統規模越來越大、越來越複雜,整個系統的結構和規格說明顯得越來越重要。軟件危機的程度日益加劇,現有的軟件工程方法對此顯得力不從心。對于大規模的複雜軟件系統來說,對總體的系統結構設計和規格說明比起對計算的算法和數據結構的選擇已經變得明顯重要得多。在此種背景下,人們認識到軟件體系結構的重要性,并認為對軟件體系結構的系統、深入的研究将會成為提高軟件生産率和解決軟件維護問題的新的最有希望的途徑。

自從軟件系統首次被分成許多模塊,模塊之間有相互作用,組合起來有整體的屬性,就具有了體系結構。好的開發者常常會使用一些體系結構模式作為軟件系統結構設計策略,但他們并沒有規範地、明确地表達出來,這樣就無法将他們的知識與别人交流。軟件體系結構是設計抽象的進一步發展,滿足了更好地理解軟件系統,更方便地開發更大、更複雜的軟件系統的需要。

事實上,軟件總是有體系結構的,不存在沒有體系結構的軟件。體系結構(Architecture)一詞在英文裡就是"建築"的意思。把軟件比作一座樓房,從整體上講,是因為它有基礎、主體和裝飾,即操作系統之上的基礎設施軟件、實現計算邏輯的主體應用程序、方便使用的用戶界面程序。從細節上來看每一個程序也是有結構的。早期的結構化程序就是以語句組成模塊,模塊的聚集和嵌套形成層層調用的程序結構,也就是體系結構。結構化程序的程序(表達)結構和(計算的)邏輯結構的一緻性及自頂向下開發方法自然而然地形成了體系結構。由于結構化程序設計時代程序規模不大,通過強調結構化程序設計方法學,自頂向下、逐步求精,并注意模塊的耦合性就可以得到相對良好的結構,所以,并未特别研究軟件體系結構。

我們可以作個簡單的比喻,結構化程序設計時代是以磚、瓦、灰、沙、石、預制梁、柱、屋面闆蓋平房和小樓,而面向對象時代以整面牆、整間房、一層樓梯的預制件蓋高樓大廈。構件怎樣搭配才合理?體系結構怎樣構造容易?重要構件有了更改後,如何保證整棟高樓不倒?每種應用領域需要什麼構件(醫院、工廠、旅館)?有哪些實用、美觀、強度、造價合理的構件骨架使建造出來的建築(即體系結構)更能滿足用戶的需求?如同土木工程進入到現代建築學一樣,軟件也從傳統的軟件工程進入到現代面向對象的軟件工程,研究整個軟件系統的體系結構,尋求建構最快、成本最低、質量最好的構造過程。

軟件體系結構雖脫胎于軟件工程,但其形成同時借鑒了計算機體系結構和網絡體系結構中很多寶貴的思想和方法,最近幾年軟件體系結構研究已完全獨立于軟件工程的研究,成為計算機科學的一個最新的研究方向和獨立學科分支。軟件體系結構研究的主要内容涉及軟件體系結構描述、軟件體系結構風格、軟件體系結構評價和軟件體系結構的形式化方法等。解決好軟件的重用、質量和維護問題,是研究軟件體系結構的根本目的。

應用現狀

形成研究熱點,仍處于非形式化水平

自20世紀90年代後期以來,軟件體系結構的研究成為一個熱點。廣大軟件工作者已經認識到軟件體系結構研究的重大意義和它對軟件系統設計開發的重要性,開展了很多研究和實踐工作。

從軟件體系結構研究的現狀來看,當前的研究和對軟件體系結構的描述,在很大程度上來說還停留在非形式化的基礎上。軟件構架師仍然缺乏必要的工具,這種工具應該是顯式描述的、有獨立性的形式化工具。

在目前通用的軟件開發方法中,其描述通常是用非形式化的圖和文本,不能描述系統期望的存在于構件之間的接口,不能描述不同的組成系統的組合關系的意義。難以被開發人員理解

,更不能用來分析其一緻性和完整性等特性。

當一個軟件系統中的構件之間幾乎以一種非形式化的方法描述時,系統的重用性也會受到影響,在設計一個系統結構過程中的努力很難移植到另一個系統中去。對系統構件和連接關系的結構化假設沒有得到顯式的、形式化的描述時,把這樣的系統構件移植到另一個系統中去将是有風險的,甚至是不可能的。

軟件體系結構的形式化方法研究

軟件體系結構研究如果僅僅停留在非形式化的框圖階段,已經難以适應進一步發展的需要。為支持基于體系結構的開發,需要有形式化建模符号、體系結構說明的分析與開發工具。從軟件體系結構研究的現狀來看,在這一領域近來已經有不少進展,其中比較有代表性的是美國卡耐基梅隆大學(Carnegie Mellon University)的Robert J.A11en于l997年提出的Wright系統。Wright是-種結構描述語言,該語言基于一種形式化的、抽象的系統模型,為描述和分析軟件體系結構和結構化方法提供了一種實用的工具。Wright主要側重于描述系統的軟件構件和連接的結構、配置和方法。它使用顯式的、獨立的連接模型來作為交互的方式,這使得該系統可以用邏輯謂詞符号系統,而不依賴特定的系統實例來描述系統的抽象行為。該系統還可以通過一組靜态檢查來判斷系統結構規格說明的一緻性和完整性。從這些特性的分析來說,Wright系統的确适用于對大型系統的描述和分析。

軟件體系結構的建模研究

研究軟件體系結構的首要問題是如何表示軟件體系結構,即如何對軟件體系結構建模。根據建模的側重點的不同,可以将軟件體系結構的模型分為5種:結構模型、框架模型、動态模型、過程模型和功能模型。在這5個模型中,最常用的是結構模型和動态模型。

(1)結構模型

這是一個最直觀、最普遍的建模方法。這種方法以體系結構的構件、連接件和其他概念來刻畫結構,并力圖通過結構來反映系統的重要語義内容,包括系統的配置、約束、隐含的假設條件、風格、性質。研究結構模型的核心是體系結構描述語言。

(2)框架模型

框架模型與結構模型類似,但它不太側重描述結構的細節而更側重于整體的結構。框架模型主要以一些特殊的問題為目标建立隻針對和适應該問題的結構。

(3)動态模型

動态模型是對結構或框架模型的補充,研究系統的"大顆粒"的行為性質。例如,描述系統的重新配置或演化。動态可能指系統總體結構的配置、建立或拆除通信通道或計算的過程。這類系統常是激勵型的。

(4)過程模型

過程模型研究構造系統的步驟和過程。因而結構是遵循某些過程腳本的結果。

(5)功能模型

該模型認為體系結構是由一組功能構件按層次組成,下層向上層提供服務。它可以看作是一種特殊的框架模型。

這5種模型各有所長,也許将5種模型有機地統一在一起,形成一個完整的模型來刻畫軟件體系結構更合适。例如,Kruchten在1995年提出了一個"4+1"的視角模型。"4+1"模型從5個不同的視角包括邏輯視角、過程視角、物理視角、開發視角和場景視角來描述軟件體系結構。每一個視角隻關心系統的一個側面,5個視角結合在一起才能夠反映系統的軟件體系結構的全部内容。"4+1"模型如圖1所示。

圖1 "4+1"模型

發展基于體系結構的軟件開發模型

軟件開發模型是跨越整個軟件生存周期的系統開發、運行、維護所實施的全部工作和任務的結構框架,給出了軟件開發活動各階段之間的關系。目前,常見的軟件開發模型大緻可分為三種類型:

(1)以軟件需求完全确定為前提的瀑布模型。

(2)在軟件開發初始階段隻能提供基本需求時采用的漸進式開發模型,如螺旋模型等。

(3)以形式化開發方法為基礎的變換模型。

所有開發方法都是要解決需求與實現之間的差距。但是,這三種類型的軟件開發模型都存在這樣或那樣的缺陷,不能很好地支持基于軟件體系結構的開發過程。因此,研究人員在發展基于體系結構的軟件開發模型方面做了一定的工作。例如,為了形象地表示體系結構的生命周期,北京郵電大學的周瑩新博士建立了一個軟件體系結構的生命周期模型,該模型如圖2所示。

圖2 軟件體系結構的生命周期模型

軟件産品線體系結構的研究

軟件體系結構的開發是大型軟件系統開發的關鍵環節。體系結構在軟件生産線的開發中具有至關重要的作用,在這種開發生産中,基于同一個軟件體系結構,可以創建具有不同功能的多個系統。在軟件産品族之間共享體系結構和一組可重用的構件,可以增加軟件工程和降低開發和維護成本。

一個産品線代表着一組具有公共的系統需求集的軟件系統,它們都是根據基本的用戶需求對标準的産品線構架進行定制,将可重用構件與系統獨有的部分集成而得到的。采用軟件生産線式模式進行軟件生産,将産生巨型編程企業。但目前生産的軟件産品族大部分是處于同一領域的。

體系風格

對軟件體系結構風格的研究和實踐促進了對設計的複用,一些經過實踐證實的解決方案也可以可靠地用于解決新的問題。體系結構風格的不變部分使不同的系統可以共享同一個實現代碼。隻要系統是使用常用的、規範的方法來組織,就可使别的設計者很容易地理解系統的體系結構。例如,如果某人把系統描述為"客戶/服務器"模式,則不必給出設計細節,我們立刻就會明白系統是如何組織和工作的。

下面是Garlan和Shaw對通用體系結構風格的分類:

(1)數據流風格:批處理序列;管道/過濾器

(2)調用/返回風格:主程序/子程序;面向對象風格;層次結構

(3)獨立構件風格:進程通訊;事件系統

(4)虛拟機風格:解釋器;基于規則的系統

(5)倉庫風格:數據庫系統;超文本系統;黑闆系統

限于篇幅,在本文中,我們将隻介紹幾種主要的和經典的體系結構風格和它們的優缺點。有關新出現的軟件體系結構風格,将在後續文章中進行介紹。

1、C2風格

C2體系結構風格可以概括為:通過連接件綁定在一起的按照一組規則運作的并行構件網絡。C2風格中的系統組織規則如下:

(1)系統中的構件和連接件都有一個頂部和一個底部;

(2)構件的頂部應連接到某連接件的底部,構件的底部則應連接到某連接件的頂部,而構件與構件之間的直接連接是不允許的;

(3)一個連接件可以和任意數目的其它構件和連接件連接;

(4)

當兩個連接件進行直接連接時,必須由其中?格的示意圖。圖中構件與連接件之間的連接體現了C2風格中構建系統的規則。

C2風格是最常用的一種軟件體系結構風格。從C2風格的組織規則和結構圖中,我們可以得出,C2風格具有以下特點:

(1)系統中的構件可實現應用需求,并能将任意複雜度的功能封裝在一起;

(2)所有構件之間的通訊是通過以連接件為中介的異步消息交換機制來實現的;

(3)構件相對獨立,構件之間依賴性較少。系統中不存在某些構件将在同一地址空間内執行,或某些構件共享特定控制線程之類的相關性假設。

2、管道/過濾器風格

在管道/過濾器風格的軟件體系結構中,每個構件都有一組輸入和輸出,構件讀輸入的數據流,經過内部處理,然後産生輸出數據流。這個過程通常通過對輸入流的變換及增量計算來完成,所以在輸入被完全消費之前,輸出便産生了。因此,這裡的構件被稱為過濾器,這種風格的連接件就象是數據流傳輸的管道,将一個過濾器的輸出傳到另一過濾器的輸入。此風格特别重要的過濾器必須是獨立的實體,它不能與其它的過濾器共享數據,而且一個過濾器不知道它上遊和下遊的标識。一個管道/過濾器網絡輸出的正确性并不依賴于過濾器進行增量計算過程的順序。

圖4是管道/過濾器風格的示意圖。一個典型的管道/過濾器體系結構的例子是以Unix shell編寫的程序。Unix既提供一種符号,以連接各組成部分(Unix的進程),又提供某種進程運行時機制以實現管道。另一個著名的例子是傳統的編譯器。傳統的編譯器一直被認為是一種管道系統,在該系統中,一個階段(包括詞法分析、語法分析、語義分析和代碼生成)的輸出是另一個階段的輸入。

管道/過濾器風格的軟件體系結構具有許多很好的特點:

(1)使得軟構件具有良好的隐蔽性和高内聚、低耦合的特點;

(2)允許設計者将整個系統的輸入/輸出行為看成是多個過濾器的行為的簡單合成;

(3)支持軟件重用。重要提供适合在兩個過濾器之間傳送的數據,任何兩個過濾器都可被連接起來;

(4)系統維護和增強系統性能簡單。新的過濾器可以添加到現有系統中來;舊的可以被改進的過濾器替換掉;

(5)允許對一些如吞吐量、死鎖等屬性的分析;

(6)支持并行執行。每個過濾器是作為一個單獨的任務完成,因此可與其它任務并行執行。

但是,這樣的系統也存在着若幹不利因素。

(1)通常導緻進程成為批處理的結構。這是因為雖然過濾器可增量式地處理數據,但它們是獨立的,所以設計者必須将每個過濾器看成一個完整的從輸入到輸出的轉換。

(2)不适合處理交互的應用。當需要增量地顯示改變時,這個問題尤為嚴重。

(3)因為在數據傳輸上沒有通用的标準,每個過濾器都增加了解析和合成數據的工作,這樣就導緻了系統性能下降,并增加了編寫過濾器的複雜性。

3、數據抽象和面向對象風格

抽象數據類型概念對軟件系統有着重要作用,目前軟件界已普遍轉向使用面向對象系統。這種風格建立在數據抽象和面向對象的基礎上,數據的表示方法和它們的相應操作封裝在一個抽象數據類型或對象中。這種風格的構件是對象,或者說是抽象數據類型的實例。對象是一種被稱作管理者的構件,因為它負責保持資源的完整性。對象是通過函數和過程的調用來交互的。

圖5是數據抽象和面向對象風格的示意圖。

面向對象的系統有許多的優點,并早已為人所知:

(1)因為對象對其它對象隐藏它的表示,所以可以改變一個對象的表示,而不影響其它的對象。

(2)設計者可将一些數據存取操作的問題分解成一些交互的代理程序的集合。

但是,面向對象的系統也存在着某些問題:

(1)為了使一個對象和另一個對象通過過程調用等進行交互,必須知道對象的标識。隻要一個對象的标識改變了,就必須修改所有其他明确調用它的對象。

(2)必須修改所有顯式調用它的其它對象,并消除由此帶來的一些副作用。例如,如果A使用了對象B,C也使用了對象B,那麼,C對B的使用所造成的對A的影響可能是料想不到的。

4、基于事件的隐式調用風格

基于事件的隐式調用風格的思想是構件不直接調用一個過程,而是觸發或廣播一個或多個事件。系統中的其它構件中的過程在一個或多個事件中注冊,當一個事件被觸發,系統自動調用在這個事件中注冊的所有過程,這樣,一個事件的觸發就導緻了另一模塊中的過程的調用。

從體系結構上說,這種風格的構件是一些模塊,這些模塊既可以是一些過程,又可以是一些事件的集合。過程可以用通用的方式調用,也可以在系統事件中注冊一些過程,當發生這些事件時,過程被調用。

基于事件的隐式調用風格的主要特點是事件的觸發者并不知道哪些構件會被這些事件影響。這樣不能假定構件的處理順序,甚至不知道哪些過程會被調用,因此,許多隐式調用的系統也包含顯式調用作為構件交互的補充形式。

支持基于事件的隐式調用的應用系統很多。例如,在編程環境中用于集成各種工具,在數據庫管理系統中确保數據的一緻性約束,在用戶界面系統中管理數據,以及在編輯器中支持語法檢查。例如在某系統中,編輯器和變量監視器可以登記相應Debugger的斷點事件。當Debugger在斷點處停下時,它聲明該事件,由系統自動調用處理程序,如編輯程序可以卷屏到斷點,變量監視器刷新變量數值。而Debugger本身隻聲明事件,并不關心哪些過程會啟動,也不關心這些過程做什麼處理。

隐式調用系統的主要優點有:

(1)為軟件重用提供了強大的支持。當需要将一個構件加入現存系統中時,隻需将它注冊到系統的事件中。

(2)為改進系統帶來了方便。當用一個構件代替另一個構件時,不會影響到其它構件的接口。

隐式調用系統的主要缺點有:

(1)構件放棄了對系統計算的控制。一個構件觸發一個事件時,不能确定其它構件是否會響應它。而且即使它知道事件注冊了哪些構件的構成,它也不能保證這些過程被 調用的順序。

(2)數據交換的問題。有時數據可被一個事件傳遞,但另一些情況下,基于事件的系統必須依靠一個共享的倉庫進行交互。在這些情況下,全局性能和資源管理便成了問題。

(3)既然過程的語義必須依賴于被觸發事件的上下文約束,關于正确性的推理存在問題。

5、層次系統風格

層次系統組織成一個層次結構,每一層為上層服務,并作為下層客戶。在一些層次系統中,除了一些精心挑選的輸出函數外,内部的層隻對相鄰的層可見。這樣的系統中構件在一些層實現了虛拟機(在另一些層次系統中層是部分不透明的)。連接件通過決定層間如何交互的協議來定義,拓撲約束包括對相鄰層間交互的約束。

這種風格支持基于可增加抽象層的設計。這樣,允許将一個複雜問題分解成一個增量步驟序列的實現。由于每一層最多隻影響兩層,同時隻要給相鄰層提供相同的接口,允許每層用不同的方法實現,同樣為軟件重用提供了強大的支持。

圖6是層次系統風格的示意圖。層次系統最廣泛的應用是分層通信協議。在這一應用領域中,每一層提供一個抽象的功能,作為上層通信的基礎。較低的層次定義低層的交互,最低層通常隻定義硬件物理連接。

層次系統有許多可取的屬性:

(1)支持基于抽象程度遞增的系統設計,使設計者可以把一個複雜系統按遞增的步驟進行分解;

(2)支持功能增強,因為每一層至多和相鄰的上下層交互,因此功能的改變最多影響相鄰的上下層;

(3)支持重用。隻要提供的服務接口定義不變,同?一組标準的接口,而允許各種不同的實現方法。

但是,層次系統也有其不足之處:

(1)并不是每個系統都可以很容易地劃分為分層的模式,甚至即使一個系統的邏輯結構是層次化的,出于對系統性能的考慮,系統設計師不得不把一些低級或高級的功能綜合起來;

(2)很難找到一個合适的、正确的層次抽象方法。

6、倉庫風格

在倉庫風格中,有兩種不同的構件:中央數據結構說明當前狀态,獨立構件在中央數據存貯上執行,倉庫與外構件間的相互作用在系統中會有大的變化。

控制原則的選取産生兩個主要的子類。若輸入流中某類時間觸發進程執行的選擇,則倉庫是一傳統型數據庫;另一方面,若中央數據結構的當前狀态觸發進程執行的選擇,則倉庫是一黑闆系統。

圖7是黑闆系統的組成。黑闆系統的傳統應用是信号處理領域,如語音和模式識别。另一應用是松耦合代理數據共享存取。

我們從圖4中可以看出,黑闆系統主要由三部分組成:

(1)知識源。知識源中包含獨立的、與應用程序相關的知識,知識源之間不直接進行通訊,它們之間的交互隻通過黑闆來完成。

(2)黑闆數據結構。黑闆數據是按照與應用程序相關的層次來組織的解決問題的數據,知識源通過不斷地改變黑闆數據來解決問題。

(3)控制。控制完全由黑闆的狀态驅動,黑闆狀态的改變決定使用的特定知識。

圖書

圖書信息

作者:(美)肖

出版社:清華大學出版社

出版時間: 2007

ISBN: 9787302145509

開本:16

定價: 29.80 元

内容簡介

軟件體系結構作為從軟件設計抽象出來的一門新興學科,目前已經成為軟件工程一個重要研究領域。本書作者MaryShaw和DavidGarlan作為軟件體系結構最早的研究者,在體系結構領域做出了大量先導性的工作。

本書共有8章:緒論、軟件體系結構風格、案例研究、共享信息系統、軟件體系結構描述、軟件體系結構的分析與評估、特定領域的軟件體系結構和流行的軟件體系結構等。本書第1-4章主要譯自MaryShaw和DavidGarlan的着作。根據目前軟件體系結構的現狀、以及編譯者多年的教學實踐經驗,在第1章和第5章加入了部分新的内容,并重新編寫了第6章、第7章和第8章。其中第6,7章是在參考了大量相關研究的基礎上,結合作者在圖書館領域的親身實踐編寫的。

本書可以作為計算機專業研究生和高年級本科生的軟件體系結構課程的教材或參考書,也可作為軟件開發人員的參考手冊。

目錄

第1章緒論

1.1什麼是軟件體系結構

1.2軟件體系結構研究的内容和範疇

1.3體系結構設計原則

1.4軟件體系結構研究的現狀

1.5全書的安排

第2章體系結構風格

2.1體系結構風格

2.2管道過濾器

2.3數據抽象和面向對象組織結構

2.4事件驅動,隐式調用

2.5分層系統

2.6知識庫

2.7解釋器

2.8過程控制

2.9其他常見的體系結構

2.10異構體系結構

第3章案例研究

3.1上下文關鍵字

3.2儀器軟件

3.3移動機器人

3.4定速巡航控制

3.5複合混合風格的三個案例

第4章共享信息系統

第5章軟件體系結構描述

第6章軟件體系結構的分析與評估

第7章特定領域的軟件體系結構

第8章流行的軟件體系結構

參考文獻

bn-qiange

相關詞條

相關搜索

其它詞條