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