陳巖
本文通過介紹幾種軟件開發中常見軟件體系結構模型,以及對幾種模型進行分析比較,從而為軟件開發過程中軟件體系結構的選擇提供一些思路,并減少一些開發軟件過程中的風險。
【關鍵詞】軟件體系結構 結構模型 管道過濾器 MVC模型
計算機應用越來越廣泛和深入,計算機軟件規模和種類也變得更為復雜和多樣化。在軟件開發過程中,設計開發人員所要考慮的,不僅僅是系統的功能需求,還要更多的考慮軟件后期維護和升級等問題,因此軟件體系結構的設計選擇對于一個軟件開發過程十分重要。自軟件體系機構出現以來,其結構、模式也在不斷變化與發展,目前,有幾種比較常見的軟件體系結構模型,本文就對這幾種常見的結構模型進行介紹以及對它們進行簡單的比較分析。
1 層次體系結構模型
層次體系結構模型是一種非常常見的體系結構模型,它的基本思想是將系統在水平方向上劃分為多個抽象層次,中間層(第一層和最后一層除外)既服務于上層,又被下層服務。此外,層次之間的通信既可以相鄰層次間進行,也可以通過協議隔層進行。使用最為廣泛的分層體系結構是分層通信協議,我們常用的TCP/IP網絡就是這種模型。這種結構下,與上層的通信都依靠于每一層的一個抽象功能,低層通信定義在低層次上,一般來講,最底層與物理層次相連,其他常見的和最底層連接的有底層數據庫連接或者操作系統連接。
分層體系結構非常常見,優點也非常明顯,有以下幾點:
(1)抽象程度遞增。分層體系結構中每層的抽象程度不一樣,遞增的設計能夠使得系統的復雜程度更為容易被軟件開發設計人員理解和掌握,從而按照復雜程度分解其功能。
(2)支持系統功能增強。由于通信交互通常發生在每層和上下層之間,對于軟件的全局相對來說更容易把握,因此在面對需求變化或者軟件需要升級時,就可以通過在某一層修改功能或者增加功能來實現。
(3)支持功能復用。一般來說,對于服務接口的定義不會變,因此,不同接口實現之間交換使用就可以在同一層進行。通常,會定義一個標準接口的不同實現方法。
層次結構模型也有以下幾個缺點:
(1)更改層麻煩。修改底層對高層產生影響時,則此底層的上層都需要進行修改。
(2)效率低。層次之間的通信需要進行各種參數的傳遞與轉換;高層對于底層的一些執行并不需要等。
(3)層次的粒度難以確定。
2 管道與過濾器結構模型
過濾器為功能模塊,功能模塊之間的連接(數據流的輸入輸出)為通道,兩者共同組成了管道與過濾器結構模型。功能模塊間相互獨立,即過濾器不需要進行狀態之間的交互為管道過濾器模型的一個重要的特性,其中,若輸入輸出發生在任兩個過濾器之間則兩個過濾器可以連接使用。管道過濾器結構同時也限制了輸入輸出格式,因此在交互式應用中,這種模式是不適用的。其中,常見的管道過濾器模型應用之一就是編譯器系統。
管道過濾器模型有以下幾個優點:
(1)中間件可以不再使用,同時也支持使用中間件。
(2)靈活性增加。過濾器之間可以進行靈活的連接使用,組件的重用性提高。
(3)效率提高。可以進行并行處理。
管道與過濾器結構模型也有以下幾個缺點:
(1)信息共享問題。組件之間狀態共享信息代價較大。
(2)效率高假象。并行處理并沒有真正提高效率。
(3)數據轉換增加開銷。
3 面向對象結構模型
對于處理面向現實世界問題的系統,面向對象結構模型是最為合理的選擇。在使用面向對象的軟件中,把一切如數據、組件模塊都作為對象來處理。對象包括對象的狀態即數據以及對象的行為即操作方法,對象之間通信通過信息傳遞實現。在面向對象模型中,對用戶透明,即用戶不需要知道對象內部狀態,只需要知道功能及其使用,因而將軟件系統開發周期和難度盡量減少。
面向對象結構模型有以下優點:
(1)對象封裝。用戶不必完全了解對象的數據狀態,開發中可以減少難度和減少時間周期。
(2)對象繼承。繼承提高了為代碼的復用性,減少開發人員工作量和后期維護等工作量。
(3)錯誤修改方便。對象出現錯誤,修改此對象即可,不需要對其他對象進行修改。
面向對象結構模型有以下缺點:
(1)交互要求高。對象間進行交互通過過程調用進行,調用對象則是通過對象標識來作為通信媒介。
(2)修改繁瑣。對象通過標識符標識,若對象的標識符修改了,則必須修改對對象的所有實例,同時需要解決標識符修改帶來的副作用。
4 MVC體系結構模型
MVC體系結構(Model—Visual—Controller即模型—視圖——控制器體系結構)也是當今應用十分廣泛的交互界面結構模型。模型、視圖和控制器是MVC結構模型的三個組成部分,它強制性地將軟件的輸入輸出以及處理三個部分分開進行,每個部分相互獨立,從而使得圖形化用戶交互更為方便。比如,可以使用MVC結構模型構建拍賣系統,使得處理結果更為直觀。
MVC體系結構模型的優點如下:
(1)模式復用性。對于同一個模型,可以有多個視圖進行任務處理。同一個模式可以開發多個應用程序框架。
(2)視圖靈活。可以將視圖同步化,同時可以將視圖和控制器插入。
(3)控制器和視圖聯系緊密。
MVC體系結構模型的缺點如下:
(1)系統開發復雜性增加。同時增加了后期維護以及升級更多的更新因素。
(2)高耦合。模型、視圖和控制器之間耦合過于緊密,修改維護工作量大。
(3)效率低。視圖中的數據訪問效率較低。
5 結束語
軟件開發與以往相比,軟件算法和數據結構已經不再是最為重要的部分,軟件開發中軟件體系結構模型的選擇才是目前適應軟件開發最重要的關注點。軟件體系結構模型的選擇已經成為整個軟件系統是否能成功開發的基礎,通過軟件體系結構模型,可以對系統開發中項目可行性、開發周期、功能需求分析、項目復雜程度和風險預測等進行估計預測。從上文對層次體系結構模型、管道與過濾器結構模型、面向對象結構模型和MVC體系結構模型四種軟件體系結構模型進行簡單的總結介紹以及對其優缺點分析,可以發現每種體系結構都不可避免的在不同方面有強點或者弱點,在實際軟件開發中,需要根據項目實際情況綜合分析,從而選用恰當合理的軟件體系結構模型,使得軟件開效率和質量都有所提高。
參考文獻
[1]楊志明.幾種常見軟件體系結構模型的分析[J].計算機工程與設計,2004(08):1326-1328.
[2]田潤芙,楊旭.常見軟件體系結構分析[J].網絡財富,2010(01):160-161.
[3]侯彬,張立臣.基于中間層的軟件體系結構模型[J].電子設計工程,2010(11):1-3.
作者單位
安徽電子工程學校 安徽省蚌埠市 233010