田龍
【摘要】 現(xiàn)代大型軟件生產(chǎn)的重要因素之一在于軟件架構(gòu)的復用。軟件復用(SoftWare Reuse)則是指將軟件已有的所有知識融合起來應用于創(chuàng)建新的軟件,以此來縮減軟件開發(fā)所帶來的各種花費。本文主要討論基于模式構(gòu)建軟件架構(gòu)在軟件開發(fā)中的作用,從分析其使用效果來說明軟件架構(gòu)的良好前景。
【關鍵詞】 軟件架構(gòu) 架構(gòu) 軟件工程
現(xiàn)代大型軟件的生產(chǎn)離不開軟件復用,而軟件復用所帶來的困難,無論是專業(yè)問題還使非專業(yè)問題,都影響著軟件復用的實行。軟件開發(fā)中設計結(jié)果往往比源程序的抽象級別更高,而架構(gòu)設計則分為了三種模式,即架構(gòu)模式、設計模式和代碼模式。其中在本文中主要講的就是架構(gòu)模式了。
一、軟件架構(gòu)模式產(chǎn)生的背景
模式是指軟件工程專家將軟件開發(fā)過程中積累的能提高軟件開發(fā)質(zhì)量的規(guī)范化的方法,即設計模式和框架。設計模式有利于對框架結(jié)構(gòu)的理解,有效實用的框架則往往使用了較多的設計模式,所以只有先掌握設計模式,才能對以后分析各種軟件系統(tǒng)提供先機。
根據(jù)軟件架構(gòu)設計中處理問題的不同層面來講,架構(gòu)模式分為了三種模式:架構(gòu)模式、設計模式和代碼模式。架構(gòu)模式主要講的是軟件系統(tǒng)里的基本組織結(jié)構(gòu)或綱要。其負責提供已經(jīng)規(guī)定了的子系統(tǒng),并規(guī)劃了責任和接下來要做的任務,是三種模式中的最高層次策略。設計模式則是中等層次的結(jié)構(gòu)策略,是用于為細化軟件系統(tǒng)的子系統(tǒng)。特點為規(guī)模較小,且架構(gòu)模式能夠拆分成不同的模式使用。代碼模式是指有規(guī)定的特征來完成軟件的編程技巧,代碼模式的好壞只能對一些底層細節(jié)產(chǎn)生影響,往往不會影響到組件或子系統(tǒng)的結(jié)構(gòu)和框架等。
軟件系統(tǒng)在不斷的深入開發(fā),各種科學技術也在不斷地創(chuàng)新,規(guī)模越大,軟件的需求就越復雜,涉及的知識點也就越多,所以近年來軟件工程專家逐漸將軟件開發(fā)工作的重心從早期按個人意愿編寫代碼到按軟件工程的理論生產(chǎn)大型應用系統(tǒng)上來。要想開發(fā)大型的、復雜的軟件系統(tǒng)必不可少的就是提高軟件開發(fā)技術能力。
二、軟件架構(gòu)模式的作用
軟件開發(fā)過程中重要的一項工作就是系統(tǒng)構(gòu)建,在開發(fā)過程中,開發(fā)人員可以利用模式和模式語言給出一條構(gòu)建系統(tǒng)架構(gòu)的框架這一途徑。模式是支撐起整個架構(gòu)的重要構(gòu)件,兩者密不可分且息息相關。模式的本身就是從系統(tǒng)架構(gòu)上衍生而來的,兩者有相同點也有不同點。它們都是處理一些抽象的概念之間的關系這是相同點。不同點則包括:模式與領域無關,是單純的解決抽象概念問題的,而系統(tǒng)架構(gòu)則是和領域息息相關,給我們處理實際問題的。
三、多層分布式軟件系統(tǒng)架構(gòu)設計
軟件系統(tǒng)架構(gòu)是指軟件系統(tǒng)的各種組成因素之間相互作用的抽象關系。系統(tǒng)分析、系統(tǒng)設計、需求獲取、編碼研發(fā)等階段都是軟件開發(fā)過程所需要經(jīng)歷的。如果將系統(tǒng)架構(gòu)做好,不僅可以提供可靠的平臺供系統(tǒng)使用,還可以加大軟件的復用,降低成本。
3.1建立系統(tǒng)架構(gòu)的步驟
軟件設計將軟件的全部開發(fā)過程可為架構(gòu)需求、軟件架構(gòu)設計、軟件文檔化、檢查復審、軟件制作和實際操作6個過程,分別如下:
架構(gòu)需求:是指將用戶群體對系統(tǒng)各方面的需求進行采納整理的過程。
軟件架構(gòu)設計:即選定一個合適的軟件體系架構(gòu)風格(如B/S、N層、C/S等)作為模型,然后將通過重復反饋的過程來實現(xiàn)提取有效構(gòu)件,并與不同構(gòu)件之前形成產(chǎn)生新的軟件架構(gòu)。
軟件文檔化:是指制作出提供用戶觀看的說明書。
檢查復審:是指在開發(fā)過程中及時發(fā)現(xiàn)設計中的錯誤并修改。
軟件制作:即開發(fā)人員對已經(jīng)開發(fā)出來的系統(tǒng)構(gòu)件進行合成、組裝和測試。
實際操作:即隨著用戶需求的變化而變化,根據(jù)用戶新的需求進行相應的調(diào)整,滿足其所需要的要求。
上面的6點就是架構(gòu)設計里開發(fā)人員常用的步驟,架構(gòu)設計在不停的發(fā)展,使用步驟也日漸走向成熟,即使調(diào)整了體系結(jié)構(gòu),基本步驟也能隨之而發(fā)生相應的改變。
例如某學校需要建立信息管理系統(tǒng),方便學校進行數(shù)字化管理。學校認為信息管理系統(tǒng)需要建立數(shù)十個信息資源庫、必須包含學校學生的檔案和人事等多個環(huán)節(jié)部門、開通網(wǎng)上交納學費、涵蓋學校的普通教學管理以及業(yè)務等。首先選用B/S架構(gòu)風格為模型建立軟件架構(gòu)及軟件系統(tǒng)。建立校園共享資源庫,方便學校教學管理和學生生活學習。數(shù)據(jù)庫需要加入電子文檔、視頻和多媒體課件等;建立業(yè)務收費系統(tǒng),方便學生網(wǎng)上交納學費;建立數(shù)據(jù)同步操作系統(tǒng),針對學生、教職工的檔案信息同步服務等和學生離校系統(tǒng);還需要建立監(jiān)控系統(tǒng),方便監(jiān)測系統(tǒng)組件與維護等。其次設計好軟件基本架構(gòu)以及需要建設的子系統(tǒng)后,將設計文檔化,與其他開發(fā)人員探討交流,發(fā)現(xiàn)其中不足與錯誤的地方并及時改正。然后利用軟件開始制作系統(tǒng)并合成組裝子系統(tǒng)。最后經(jīng)過不停地測試與改正,彌補之前的不足,加入學校新的要求并完善系統(tǒng)的完整性和可靠性。
3.2系統(tǒng)架構(gòu)中的常用模式
系統(tǒng)架構(gòu)里面常用的模式有層次化架構(gòu)設計、嵌入式架構(gòu)設計、企業(yè)集成架構(gòu)設計等。
層次化架構(gòu)設計模式:分層設計能夠迅速的調(diào)整系統(tǒng)結(jié)構(gòu)框架,是幾種模式中經(jīng)常使用的設計方案。在該模式中MVC模式是分層設計模式中最為流行的。該模式通過將應用的做法重新整合進行再加工控制器控制器、模型、視圖三塊,增加了系統(tǒng)的靈活性和可操作性;嵌入式架構(gòu)設計:該模式擁有各種良好的性能指標,是目前業(yè)界主流的嵌入式操作系統(tǒng)的專用,其中有:ECOS、EPOC、WinCE等等;企業(yè)集成架構(gòu)設計模式:該模式主要是企業(yè)間在使用,其特點是迅速的通信和集各種服務為一體,方便且便捷。
四、軟件架構(gòu)和模式的發(fā)展前景
4.1軟件架構(gòu)方面
軟件架構(gòu)將來除了會越來越抽象、系統(tǒng)組件的構(gòu)件會更加復雜外,架構(gòu)的未來發(fā)展可以分為以下兩點:首先,實現(xiàn)軟件的靈活性和可拓展性是軟件系統(tǒng)架構(gòu)中企業(yè)需求的首選。軟件開發(fā)組需要認真的設計架構(gòu),并以其為核心,生產(chǎn)出符合市場需求的不同的產(chǎn)品,從而不被迅速發(fā)展的主流市場所淘汰。其次,開發(fā)人員對架構(gòu)樣式的研究有利于新的架構(gòu)的產(chǎn)生,也有利于就得架構(gòu)的完善。開發(fā)人員可以利用已有的標準架構(gòu)中選擇使用一個,然后通過迭代的方法進行不同的實驗,很可能因為新的系統(tǒng)軟件的出現(xiàn)從而出現(xiàn)新的架構(gòu),并得到廣泛的推廣,就像納斯的基本算法一樣。上面的兩個預測,如果在將來的軟件發(fā)展中得以成為現(xiàn)實,那么對軟件架構(gòu)的研究就不再僅僅只是一個熱門的研究行業(yè)了。
4.2模式方面
就我國目前的情況來看,軟件模式的研究還尚處于發(fā)展階段,對模式的研究也大多處于對模式和模式系統(tǒng)的簡單層面上。未來的研究熱點終究還是會落到模式的產(chǎn)生上來。模式的產(chǎn)生即模式的生成能力,是一種模式語言,也是模式語言的要素和規(guī)則。軟件系統(tǒng)的復雜性和多樣性使得模式難以迅速發(fā)展,故擁有強大的模式產(chǎn)生能力是將來工作中的重中之重。
五、結(jié)束語
作為一個研究的領域,軟件架構(gòu)是一個值得研究的課題。由于其產(chǎn)生的時間不久思想較新,還不是很成熟。想要得到穩(wěn)定的發(fā)展,就需要深入研究相關的技術和思想,畢竟實踐才是檢驗真理的唯一標準。
參 考 文 獻
[1]尚榮艷,彭長青,方瑞明等.電機設計與仿真平臺的軟件安全設計[J].計算機應用與軟件,2012,29(7):278-281.
[2]阮軍,楊春金.基于模式的多層分布式軟件系統(tǒng)架構(gòu)的設計[J].計算機工程,2006,14:57-59.
[3]楊秀杰,段立娜.基于模式設計軟件架構(gòu)的研究[J].科技信息(科學教研),2007,32:75.
[4]楊文波.分層軟件架構(gòu)設計及應用探究[J].中國信息界,2011,10:65-66.