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