魏強
【摘要】模式(Pattern)的定義最開始由建筑之神Christopher Alexander于二十世紀七十年代明確提出,運用于工程建筑行業(yè),八十年代中后期由WardCunningham和 Kent Beck將其觀念引進到手機軟件行業(yè)。伴隨著軟件開發(fā)的深層次、各種各樣技術性的與時俱進,軟件系統(tǒng)的經(jīng)營規(guī)模越來越大、特性愈來愈繁雜,涉及到的技術性也愈來愈多,從而引起了軟件開發(fā)工作中的重心點由原先重視編碼的撰寫逐漸轉為開發(fā)設計早期的系統(tǒng)架構設計方案上。軟件開發(fā)技術性的發(fā)展趨勢規(guī)定大家務必提升設計方案和點評大中型的、繁雜的軟件系統(tǒng)的工作能力。
【關鍵詞】模式設計;軟件架構;軟件設計;架構模式
1軟件架構產(chǎn)生的背景
模式是表明周境、動因﹑解決方法三個層面關聯(lián)的一個標準,每一個模式敘述了一個在某類周境下持續(xù)反復產(chǎn)生的難題,及其該難題解決方法的關鍵所屬,模式既是一個事物( thing)又是一個全過程(process),不但敘述該事物自身,并且明確提出了根據(jù)如何的全過程來造成該事物。在不一樣的層面上,模式給予不一樣層面的具體指導。依據(jù)解決難題的粒度分布不一樣,從高到低,模式分成3個層級:構架模式(ArchitecturalPattern)、設計方案模式(Design Pattern)、完成模式(Implementation Pattern)。這三者中間的差別取決于他們存有于分別的抽象層次和實際層級上。構架模式是一個系統(tǒng)軟件的高端對策,牽涉到超大尺度的部件及其總體特性和結構力學。設計方案模式是中等水平限度的構造對策。這種中等水平限度的構造完成了一些超大尺度組件的個人行為和他們中間的關聯(lián)。模式的優(yōu)劣不容易危害到系統(tǒng)軟件的空間布局和整體架構。設計方案模式定義出分系統(tǒng)或組件的外部經(jīng)濟結構。編碼模式(或成例)是特殊的案例和與特殊語言表達相關的程序編寫方法。編碼模式的優(yōu)劣會危害到一個中等水平限度組件的內(nèi)部、外界的結構或個人行為的最底層關鍵點,但不容易危害到一個構件或分系統(tǒng)的中等水平限度的結構,更不容易危害到系統(tǒng)軟件的空間布局和超大尺度架構。
2構建軟件架構中模式的作用
系統(tǒng)架構的搭建一直是軟件開發(fā)全過程中的一項關鍵工作中,與此同時也是一項很艱難的工作中,就算針對很有工作經(jīng)驗的系統(tǒng)架構師也是這般。幸運的是,模式及其模式語言表達的明確提出得出了一條搭建系統(tǒng)架構的重要途徑。
全部結構優(yōu)良的面向對象編程軟件系統(tǒng)構架上都包括了很多模式。事實上,當評定一個面向對象編程系統(tǒng)軟件的品質(zhì)時,所應用的方式之一就是要判斷系統(tǒng)的設計者是否強調(diào)了對象之間的公共協(xié)同關系。
3軟件設計模式和架構模式的對比分析
軟件設計模式和架構模式是目前軟件開發(fā)領域中最常用和最實用的兩種模式,這兩種模式都各具優(yōu)勢。就設計模式而言,其是一種側重于系統(tǒng)動態(tài)行為特征分析的模式,注重對象的組合而不是復制,是在重組的基礎上加以創(chuàng)新。以往的模式側重于類繼承,設計模式通過類的層次和數(shù)量使得設計更加簡潔且具有較好的擴展性。另外,設計模式能有效地指導類繼承的層次劃分。類的層次劃分對于面向對象設計是十分重要的,類的層次劃分過多會使得軟件程序變得笨重,而如果類的層次過少會使得設計的封裝性變差,因此,類的層次劃分必須要十分嚴謹。在類的層次劃分上,設計模式從系統(tǒng)動態(tài)行為特征的角度,將類分層包裝在合理分配各方法屬性。而就架構模式而言,其是一個可以重復使用的小型體系結構,在一個指定的范圍內(nèi)為一組軟件抽象產(chǎn)物提供能夠通用的結構。一般情況下,架構不是一個完整的應用系統(tǒng),它主要是規(guī)定應用系統(tǒng)的體系結構,并提供一系列規(guī)定的插口或配置點來供使用者生成其所需要的應用軟件。
軟件設計模式和軟件架構模式之間存在著一定的區(qū)別,這種區(qū)別主要體現(xiàn)三個方面:1.應用范圍。就應用范圍而言,軟件設計模式的范圍更加廣泛。當今,軟件設計模式被廣泛運用到制造業(yè)、行政機構、金融業(yè)、餐飲業(yè)和建筑業(yè)等領域,幾乎適用于任何應用類型。但架構模式一般會限制在某個指定的應用區(qū)域;2.表達方面。架構可以通過代碼來具體表達,但是設計模式則不能,只有設計模式實例才能轉化為代碼。在表達方面,架構模式的優(yōu)勢在于它能夠用編程語言程序書寫出來,可以運行直接重復使用。而軟件設計模式在每次應用之前都需要將其實現(xiàn),這樣才能啟動運用;3.設計模式是一種比架構模式更小的結構型元素。一個架構必須包含若干個設計模式,因此設計模式是一種更小的結構型元素。
軟件設計模式和架構模式都各具優(yōu)勢,在軟件開發(fā)時,軟件工程師通過考慮到軟件自身的需要來選擇軟件模式,這樣才能設計出更實用的軟件程序。
參考文獻:
[1]陳世平,饒凱華,趙磊,李濤,李園.企業(yè)關鍵績效系統(tǒng)的軟件架構設計與實現(xiàn)[J].微計算機信息,2009,25(15):25-27.
[2]曹敢,王莉莉.基于目標和模式的軟件體系結構設計[J].江蘇科技大學學報(自然科學版),2007(S1):53-57+69.
[3]楊秀杰,段立娜.基于模式設計軟件架構的研究[J].科技信息(科學教研),2007(32):75.
[4]夏光明.淺談軟件開發(fā)過程中的體系結構設計[J].岳陽職業(yè)技術學院學報,2007(01):76-78.
[5]戎左峻,戎凱倫.論工程設計軟件的最佳架構模式[J].工程設計CAD及自動化,1997(06):15-17.
[6]戎左峻,戎凱倫.論工程設計軟件的最佳架構模式[J].給水排水,1997(12):39-41+4.