鄧偉祺 湖南省師范大學(xué)附屬中學(xué)
模式應(yīng)用技術(shù)在應(yīng)用軟件開發(fā)中的應(yīng)用
鄧偉祺 湖南省師范大學(xué)附屬中學(xué)
在構(gòu)建現(xiàn)代信息化社會時,軟件成為了其中不可或缺的重要組成部分。軟件行業(yè)經(jīng)過這幾十年的發(fā)展,積累了許多豐富的研究成果以及軟件開發(fā)經(jīng)驗,但是其中也出現(xiàn)了許多問題。為了解決這些軟件開發(fā)上問題,人們提出了軟件復(fù)用技術(shù),這項技術(shù)在當(dāng)時被稱為實現(xiàn)軟件系統(tǒng)工程化的重要路徑。然而,在現(xiàn)代應(yīng)用軟件開發(fā)過程中,隨著用戶的需求不斷增大,軟件也變得更為復(fù)雜,而軟件復(fù)用技術(shù)也隨著這些需求暴露出了許多問題,為了解決這些問題,人們對于模式應(yīng)用技術(shù)進行了深入研究,并從其身上找到了解決的辦法。
模式應(yīng)用技術(shù) 應(yīng)用軟件 開發(fā)
在二十世紀(jì)六十年代當(dāng)中,出現(xiàn)了軟件危機,這場危機的主要表現(xiàn)是:軟件開發(fā)成本過高、軟件質(zhì)量不理想、軟件維護困難等,軟件領(lǐng)域研究人員們?yōu)榱私鉀Q這場危機,提出了軟件復(fù)用技術(shù),這項技術(shù)主要是為了解決應(yīng)用軟件開發(fā)過程中相同軟件需要重復(fù)勞動的情況。軟件復(fù)用技術(shù)的優(yōu)點是:提高應(yīng)用軟件開發(fā)效率、保證開發(fā)軟件可靠、減少維護軟件費用等,軟件復(fù)用技術(shù)對于軟件系統(tǒng)工程化提供的重要的推動力。然而,隨著應(yīng)用軟件的復(fù)雜性不斷增加以及人們對于非功能性需求的問題,軟件復(fù)用技術(shù)已經(jīng)無法滿足現(xiàn)代人們對于軟件的需求,因此,人們提出了一種新的軟件開發(fā)理論“軟件模式”,軟件模式技術(shù)又被稱為模式應(yīng)用技術(shù),在軟件工程領(lǐng)域中,很多學(xué)者都希望能夠借助軟件模式理論來解決軟件復(fù)用問題。
在軟件工程領(lǐng)域中,不同學(xué)者對于模式應(yīng)用技術(shù)存在不同的定義,福勒對于模式的定義為:模式是一種解決問題的思路,它既然可以在一個實踐環(huán)境中被適用,那么在其它環(huán)境中,它也可能適用于該環(huán)境;而Dirk Riehle認(rèn)為:模式是一種只能在特定的環(huán)境中不斷重復(fù)出現(xiàn)的具體形式。雖然這些學(xué)者對于模式應(yīng)用技術(shù)的定義不相同,所選擇的研究角度也不相同,但是,它們都對模式的概念進行了解釋,模式是一種對于經(jīng)驗的抽象。因此,在廣義上,我們可以將模式應(yīng)用技術(shù)看做成:模式應(yīng)用技術(shù)是根據(jù)應(yīng)用軟件開發(fā)過程中所積累的知識成果,并通過顯式的方法對這些知識成果進行提煉,然后在對其進行抽象化總結(jié)。
在應(yīng)用軟件開發(fā)過程中,層模式通過將應(yīng)用軟件系統(tǒng)分為子任務(wù)組,然后再將這些子任務(wù)組都分配到特定的抽象層次當(dāng)中,這些抽象層次都是相對獨立的,在軟件工程領(lǐng)域中,這種抽象層次被稱為獨立層。每一個獨立層都是由層名稱、責(zé)任以及協(xié)作者而構(gòu)成,層名稱由管理者來制定,獨立層的責(zé)任由兩個方面組成:提供服務(wù)和委派任務(wù)。在層模式結(jié)構(gòu)當(dāng)中,可以分為最高獨立層次和最低獨立層次,每一個獨立層既可以為上層獨立層提供服務(wù),也作為下層獨立層的客戶端。不同應(yīng)用軟件開發(fā)可以分為不同的獨立層次,在完成這些獨立層次的軟件開發(fā)以后,再將這些獨立層進行疊加,最下面的獨立層為應(yīng)用軟件基礎(chǔ)。在目前的模式應(yīng)用技術(shù)中,層模式是最為成熟的模式應(yīng)用技術(shù),但是在對應(yīng)用軟件進行開發(fā)時,需要考慮一些可能導(dǎo)致軟件開發(fā)失敗的因素:在對軟件源碼進行修改時,不能直接作用于整個系統(tǒng),可以在與修改內(nèi)容相關(guān)的獨立層進行修改,從而避免對其它獨立層的影響;在獨立層進行疊加時,應(yīng)當(dāng)保證每一層的接口穩(wěn)定,對于接口可以采取規(guī)范化、系統(tǒng)化的處理方式。
管道和過濾模式在應(yīng)用軟件開發(fā)當(dāng)中,是一種專門為處理數(shù)據(jù)流軟件所提供的模式應(yīng)用技術(shù)。管道和過濾器模式是由管道和過濾器構(gòu)成,在軟件開發(fā)過程中,每個處理步驟都會被存儲到過濾器當(dāng)中,然后數(shù)據(jù)流利用各個過濾器之間的管道進行傳輸,在對過濾器中進行修改時,每一個過濾器都可以獨立修改,每個過濾器的功能單一。另外,還可以通過過濾器相互之間的順序調(diào)換來進行配置。在利用管道和過濾器模式開發(fā)軟件時,與層模式不同,每一個過濾器都是獨立運行的部件,除了輸入數(shù)據(jù)流或者輸出數(shù)據(jù)流外,每一個過濾器都不會受到其它過濾器影響。
MVC模式作為一種應(yīng)用軟件開發(fā)模型,一般情況下,都應(yīng)用在分布式軟件開發(fā)中,它還能用于確定軟件各個組成部分之間的關(guān)系。MVC把軟件系統(tǒng)分為模型、視圖、控制器三種部件,在MVC模式中,模型部件主要負(fù)責(zé)視圖顯示、控制器控制數(shù)據(jù)的存儲;視圖部件主要負(fù)責(zé)將模型數(shù)據(jù)和狀態(tài)信息通過特定的形式表現(xiàn)給客戶;控制器部件主要是負(fù)責(zé)處理客戶與軟件之間的交互操作,確保視圖部件與模型界面之間能夠相關(guān)聯(lián)。
在目前的應(yīng)用軟件開發(fā)領(lǐng)域當(dāng)中,對于模式應(yīng)用技術(shù)的應(yīng)用十分廣泛,模式應(yīng)用技術(shù)能夠為軟件開發(fā)節(jié)約大量時間,并且,在應(yīng)用軟件開發(fā)過程中,將模型應(yīng)用技術(shù)與軟件復(fù)用技術(shù)進行結(jié)合,能夠節(jié)省更多的開發(fā)時間。另外,隨著軟件工程領(lǐng)域?qū)W者們對模式應(yīng)用技術(shù)的深入研究,未來軟件開發(fā)領(lǐng)域中還會出現(xiàn)更多的模式,這些模式的出現(xiàn)能夠?qū)浖a(chǎn)業(yè)起到更好的推進作用。
[1]陳貴德.探析編程語言在計算機應(yīng)用軟件開發(fā)中的選擇[J].信息與電腦(理論版).2013(01)
[2]陳澎.設(shè)計模式形式化方法分析和初步比較[J].計算機工程.2005(02)
[3]王文艷.軟件復(fù)用技術(shù)在工業(yè)控制設(shè)備軟件開發(fā)中的應(yīng)用[D].天津師范大學(xué)2012