天天看點

章六 軟體體系結構的研究與展望

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1476014

章六 軟體體系結構的研究與展望

計算機的軟體領域主要研究計算機使用的環境技術,包括系統軟體、使用者程式設計環境與工具、應用軟體等。

計算機硬體能夠快速發展的原因之一是工業化程度比較好,很多內建電路按照功能做成标準器件,因而好的功能塊會保留下來并不斷改進。

軟體的友好性主要取決于使用者界面的設計和人機互動流程的品質。

1、目前軟體體系結構的研究方向

軟體體系由構成系統的元素的描述、元素的互相作用、指導元素內建的模式以及這些模式的限制組成。

一個特定的系統是用一些構件的集合和構件之間的互動來定義的。

軟體體系結構不僅指定了系統的組織結構和拓撲結構,并且顯示了系統需求和構成系統的元素之間的對應關系,提供了一些設計決策的基本原理。

軟體體系結構級的設計包括軟體系統結構、全局控制結構、通訊協定、同步機制和資料存取、為設計元素配置設定功能、設計元素的組合、軟體系統的實體分布、力度和性能以及多種方案的選擇。

在體系結構級,相關的系統級典型問題包括:容量、吞吐量、一緻性和構件相容性等一系列問題。

目前,在軟體體系結構領域主要緻力于子產品接口語言、特定領域的體系結構、軟體重用、軟體模式的規範化、軟體體系結構描述語言、軟體體系結構設計的形式化基礎和設計環境的研究。

2、主要的研究方向分為4類:

(1)提供新的軟體體系結構設計語言,使得系統開發者能夠很好的描述他們設計的結構,以便與人交流,能夠用提供的工具對許多執行個體進行分析。

(2)對軟體體系結構的專門知識的整理。

(3)提供特定領域的體系結構架構。

(4)提供軟體體系結構的形式化基礎。

3、IEEE在軟體體系結構方面的标準

2000年,計算機協會通過了IEEE1471标準,該标準為準确地體系化描述實踐提供了統一的檔案。促成IEEE1471準許的決定過程示範了該标準是如何來解決概念性問題的,并且強調了在标準形成過程中解決這些各種問題所涉及到的困難。

4、五個核心概念和互相關系為IEEE1471版本的通過提供了基本原則:

(1)每個系統具有一個體系結構,但一個體系結構不是一個系統;

(2)體系結構與體系結構描述不是一回事;

(3)體系結構标準、描述、及開發過程可以不同,并且可以單獨地進行研究;

(4)體系結構描述本身是多見解的;

(5)把一個對象的總體概念從其詳述中分離開是撰寫體系結構标準的一個有效方法。

5、IEEE1471把重點放在軟體密集型系統和更通用的系統上。

IEEE1471将“體系結構”定義為:展現在各組成部分、它們之間互相關系與環境的關系、和指導設計和演變的原理之中的一個系統的基本結構。

6、IEEE1471最重要的組成部分為:

(1)對關鍵術語的定義,如體系結構描述、結構性視圖與體系結構性視點;

(2)對體系結構與體系結構描述在概念上的分離促進了描述體系結構标準和構築系統标準的建立;

(3)用于描述一個系統體系結構的内容要求。

7、IEEE1471中,“視圖”是一個能描繪整個系統的一個方面的模型的集合。

一個視圖僅用于一個系統。

“視點”是起草可重複使用、特定域體系結構描述标準的工具。

一個體系結構描述必須為其所包括的每個視圖定義視點。

8、IEEE1471的體系結構描述要求:

第一,一個體系結構描述必須規定系統的使用者,确定他們體系結構的要點。

熟知的要點為:

(1)功能性:該系統需要去做什麼?

(2)性能:在重度負載下系統将如何運轉?

(3)安全性:系統有保護使用者資訊的足夠能力嗎?

(4)可行性:我們可以實作該系統嗎?

第二,一個體系結構描述必須被編入一個或多個系統的體系結構視圖中。

最後,一個體系結構描述必須為制定關鍵的結構性決策提供基本原則。

IEEE1471标準重點在說明,而非實施過程。

9、幾種主要的軟體體系結構的風格和比較

體系結構的風格是指在衆多系統中所擁有的共同的結構和語義特性,指導如何将各個子產品和子系統組織成一個完整的系統。

客戶機Client、伺服器Server、過濾器Filters、層Layers、資料庫Database等都是構件;

過程調用、事件廣播、資料庫協定和管道都是連接配接器。

10、通用體系結構風格的分類:

(1)資料流風格:批處理序列、管道/過濾器;

(2)調用/傳回風格、主程式/子程式、面向對象風格、層次結構;

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

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

(5)資料中心風格:資料庫系統、超文本系統、黑闆系統。

一個展現結構風格定義了有相同組織結構模式的一系列系統,并定義了構件和連接配接器類型的清單和一套構件連接配接的限制。

11、幾種主要的體系結構風格和優缺點:

(1)管道/過濾器風格

每一個構件有一組輸入和輸出,構件讀入資料流并産生資料的資料流。

優點:允許設計者将整個系統的輸入、輸出行為看成是多個過濾器行為的簡單合成;支援軟體重用;系統維護和增強系統性能簡單;允許對一些入吞吐量、死鎖等屬性的分析;支援并行執行。

缺點:通常導緻程序稱為批處理的結構;不适合處理互動的應用;資料傳輸入通用标準,故每個過濾器都增加了解析和合成資料的各種,導緻系統性能下降,并增加了編寫過濾器的複雜性。

(2)資料抽象和面向對象風格

建立在資料抽象和面向對象的基礎上,資料的表示方法和它們的相應操作封裝在一個抽象資料類型或者對象中。

此風格的兩個重要方面:對象負責保持資料表示的完整性;對象的表示是對其它對象隐藏的。

優點:改變一個對象的表示,不影響其它的對象;資料存取操作的問題可分解成一些互動的代理程式的集合。

缺點:為使一個對象和另一個對象通過過程調用等進行互動,必須指導對象的辨別。

(3)基于事件的隐式調用風格

其思想是不直接調用一個過程,而觸發或者廣播一個事件或者多個事件。

優點:為軟體重用提供了強大的支援;為改進系統帶來了友善。

缺點:構件放棄了對系統計算的控制;資料交換的問題;既然過程的語義必須依賴于被觸發的事件的上下文限制,那麼正确性的推理就存在問題。

(4)層次系統風格

層次系統組織成一個層次結構,每一層為上一層提供服務,并作為下一層的客戶。

這樣的系統中構件在一些層實作了虛拟機。

優點:支援基于可增加抽象的層的設計;支援系統改進;支援軟體重用。

缺點:不是所有的系統都可以容易地被建構成層次系統;很難找到合适的抽象的層。

12、用軟體體系結構的理論指導軟體設計的優點:

(1)能識别礎重要的通用規範,就能了解系統間的進階關系;

(2)是軟體系統設計成功的要素是正确的體系結構;

(3)對軟體體系結構細節的認識,可在各種設計方案中做出首要的選擇;

(4)軟體體系結構風格通常對分析和描述複雜系統的進階屬性是必要的;

(5)熟練地使用描述體系結構範型的表示法,便于交流;

(6)便于軟體重用。

13、領域特定的軟體體系結構Domain-Specific Software Architecture,DSSA)

有原則的使用軟體體系結構可以在五個方面對軟體開發産生積極的影響,方面是:了解;重用;演化;分析;管理。

DSSA實質是一種軟體構件的集合,它用标準的結構或者協定書寫,專為某類特定任務,然後再推廣出去,為整個類似的問題域而用。