承德石油高等??茖W(xué)校計(jì)算機(jī)與信息工程系 李磊
在我國軟件開發(fā)技術(shù)領(lǐng)域,軟件開發(fā)企業(yè)大部分規(guī)模不大,標(biāo)準(zhǔn)化程度不高,屬于中小企業(yè)。中小軟件企業(yè)與大型軟件開發(fā)企業(yè)相比較,在風(fēng)險(xiǎn)管理、人員組織管理、軟件項(xiàng)目管理等方面顯得資源缺乏,管理不規(guī)范,好多軟件項(xiàng)目都是就事論事,可重用性不高,同時(shí)軟件容易形成漏洞遭受攻擊,質(zhì)量不高。在資源稀缺的情況下,很容易形成小部分人或幾個(gè)人組成的開發(fā)團(tuán)隊(duì)掌握整個(gè)企業(yè)重要信息的現(xiàn)象,項(xiàng)目開發(fā)的任務(wù)就落在這幾個(gè)人組成的開發(fā)團(tuán)隊(duì)身上,加重了核心開發(fā)人員的負(fù)擔(dān),同時(shí)由于是一些企業(yè)重要信息不方便向全部項(xiàng)目組成員公開,造成了團(tuán)隊(duì)成員之間信息交流不通暢,所有的不利因素使得軟件企業(yè)時(shí)刻都處在風(fēng)險(xiǎn)值較高的范圍內(nèi)。在這種情境下,中小型軟件企業(yè)軟件開發(fā)的效率和質(zhì)量必然受限制。它們迫切需要尋找一種能提高軟件開發(fā)效率的方法,用來改良現(xiàn)有的開發(fā)流程管理體系,或者盡快找到新的解決方法來指導(dǎo)開發(fā),對(duì)產(chǎn)品或項(xiàng)目質(zhì)量進(jìn)行跟蹤管控。
隨著軟件技術(shù)的不斷發(fā)展,各種人性化設(shè)計(jì)、大眾化的操作系統(tǒng)和開發(fā)工具等在帶來便捷的同時(shí),也使得軟件開發(fā)日益復(fù)雜化,在進(jìn)行軟件開發(fā)時(shí)需要各個(gè)軟件、組件協(xié)同工作。開發(fā)人員配備安排不協(xié)調(diào)不得當(dāng)會(huì)導(dǎo)致潛在問題的產(chǎn)生,甚至影響整個(gè)系統(tǒng)。比如由于團(tuán)隊(duì)成員間溝通不暢通而間接造成代碼冗余高、開發(fā)周期長(zhǎng),產(chǎn)品可靠性可重用性低下、質(zhì)量低劣,維護(hù)困難,用戶抱怨使用不便,項(xiàng)目風(fēng)險(xiǎn)增加等。事實(shí)表明,軟件開發(fā)行業(yè)需要高效率的開發(fā)以規(guī)避軟件企業(yè)的風(fēng)險(xiǎn)。
再者,傳統(tǒng)Web 開發(fā)方式需要處理的業(yè)務(wù)邏輯和處理方式都有類似之處,但編寫代碼的過程大都顯得重復(fù)和乏味。有些時(shí)候模塊間的耦合度在沒有降低處理的情況下,就直接把頁面表現(xiàn)與邏輯實(shí)現(xiàn)混雜在一起,造成代碼編寫效率不高。對(duì)開發(fā)者而言,選擇一個(gè)功能完備并且操作簡(jiǎn)潔的開發(fā)框架輔助完成復(fù)雜流程的開發(fā)工作,會(huì)對(duì)開發(fā)效率的提升起到很大的幫助作用。
種種現(xiàn)象表明在軟件開發(fā)行業(yè)建立起敏捷的、工廠式模塊化的軟件生產(chǎn)模式已成為軟件行業(yè)發(fā)展的迫切需要,而且這種工廠式模塊化開發(fā)模式逐漸發(fā)展成為中小企業(yè)進(jìn)行軟件開發(fā)首選的實(shí)踐模式。
在Web 軟件開發(fā)過程中,MVC 設(shè)計(jì)模式已是一種被眾多軟件項(xiàng)目開發(fā)實(shí)踐應(yīng)用并被廣泛推崇的標(biāo)準(zhǔn)設(shè)計(jì)模式,MVC 是模型(Model)、視圖(View)、控制器(Controller)的縮寫。模型層的操作對(duì)象是數(shù)據(jù)庫和數(shù)據(jù)表,負(fù)責(zé)完成數(shù)據(jù)的增刪改查的交互操作??刂茖又饕蝿?wù)是業(yè)務(wù)邏輯處理,具體任務(wù)是接收視圖層發(fā)送的請(qǐng)求,并按照業(yè)務(wù)邏輯和模型層進(jìn)行交互,最后把處理的結(jié)果返還給視圖層。視圖層負(fù)責(zé)把控制層處理的結(jié)果數(shù)據(jù)進(jìn)行封裝以網(wǎng)頁形式展現(xiàn)給用戶。MVC 模型如圖1 所示,MVC 模式的軟件設(shè)計(jì)理念提供了良好的軟件制作途徑。實(shí)踐證明,在中等開發(fā)規(guī)模以上的軟件企業(yè)中,應(yīng)用MVC 模式開發(fā)軟件獲得的高效便捷的好處要遠(yuǎn)遠(yuǎn)大于它所帶來的額外工作和復(fù)雜性。基于MVC 的開發(fā)框架并不少見,但由于Django 是一個(gè)高效的、減少重復(fù)代碼、具備新穎簡(jiǎn)潔開發(fā)模式和巨大的發(fā)展?jié)摿Φ腤eb框架,在軟件生產(chǎn)過程中Django 成為Web 開發(fā)的首選框架。
圖1 Web 開發(fā)中的MVC
敏捷式開發(fā)是一種與傳統(tǒng)開發(fā)模式完全不同的開發(fā)模式:傳統(tǒng)開發(fā)模式大多采用瀑布模型作為系統(tǒng)開發(fā)的藍(lán)圖,每個(gè)開發(fā)步驟必須嚴(yán)格遵守開發(fā)計(jì)劃,且必須有對(duì)應(yīng)的開發(fā)文檔,注重開發(fā)進(jìn)程和開發(fā)工具的使用,把簽訂合同作為工作目標(biāo)。而敏捷式開發(fā)過程對(duì)于采用什么樣的開發(fā)模型、開發(fā)文檔并不關(guān)心,更側(cè)重于注重開發(fā)團(tuán)隊(duì)成員之間的關(guān)系、所開發(fā)的軟件產(chǎn)品的質(zhì)量,注重開發(fā)過程中與客戶經(jīng)常溝通常調(diào)整開發(fā)計(jì)劃、協(xié)同工作,實(shí)現(xiàn)開發(fā)過程的“敏捷”。
軟件工廠是指為了降低軟件開發(fā)成本、提高開發(fā)效率,把以前使用過的可重復(fù)利用的組件配置到特定應(yīng)用程序而搭建的開發(fā)環(huán)境,是開發(fā)模式、開發(fā)模型和開發(fā)工具的綜合運(yùn)用。目前,軟件開發(fā)一般都是由程序員按照軟件需求,依照瀑布模型人工手動(dòng)的方式編寫代碼,這種方式的缺陷是編寫代碼的速度緩慢、經(jīng)濟(jì)成本高、容易出錯(cuò),軟件代碼的可重用性、安全性、算法的性能以及其他軟件質(zhì)量方面出現(xiàn)產(chǎn)品缺陷,造成嚴(yán)重的問題。同時(shí)軟件開發(fā)人員為了工作必須面對(duì)不斷更新發(fā)展變化的軟件技術(shù)開發(fā)平臺(tái),必須適應(yīng)不斷變化的用戶需求,不斷學(xué)習(xí)新開發(fā)技術(shù),嘗試使用更新的開發(fā)工具,這就需要一種既能為軟件開發(fā)者提供簡(jiǎn)潔明了的開發(fā)便利,又能在短時(shí)間內(nèi)給用戶帶來效益的方法。軟件工廠的優(yōu)勢(shì)恰好符合這個(gè)需求,可以解決上述問題,它使得軟件生產(chǎn)條理化、系統(tǒng)化。工廠式的軟件開發(fā)管理模式能確保制作軟件的過程如同現(xiàn)實(shí)工廠生產(chǎn)零部件一樣,實(shí)現(xiàn)軟件產(chǎn)品加工過程的規(guī)范、標(biāo)準(zhǔn),軟件項(xiàng)目實(shí)施人員對(duì)軟件零件進(jìn)行隨意組合;軟件工廠還能隨著用戶需求變化而變化,解決了用戶需求不確定性問題;軟件工廠把已經(jīng)開發(fā)的組件收集起來形成自己的資源,并盡可能組織利用這些資源,使軟件組件的可重用性大大提高,開發(fā)人員的工作量明顯減少,開發(fā)成本降低;軟件工廠采用并行流水式作業(yè),使多個(gè)項(xiàng)目并行開發(fā),可以實(shí)現(xiàn)批量生產(chǎn)。零件式、模塊化的組裝方式提升了軟件系統(tǒng)的拓展空間;利用軟件工廠進(jìn)行軟件開發(fā),用戶可以控制項(xiàng)目進(jìn)度、周期、資金成本、項(xiàng)目質(zhì)量,開發(fā)速度得到提高,項(xiàng)目效益和成功性得到保障;軟件工廠使維護(hù)工作只需針對(duì)需要維護(hù)的對(duì)象展開,工作量大大減少。軟件工廠件能夠大幅度提高效率,實(shí)現(xiàn)大規(guī)模的定制,這將會(huì)促進(jìn)應(yīng)用軟件產(chǎn)業(yè)根本性的變革。
基于MVC 的軟件開發(fā)模式已經(jīng)在軟件開發(fā)行業(yè)形成一種規(guī)范,通過這種設(shè)計(jì)思想開發(fā)的軟件實(shí)現(xiàn)了軟件開發(fā)的模塊化,開發(fā)效率和傳統(tǒng)的瀑布式開發(fā)模式相比大大提升,在MVC 的基礎(chǔ)上又注入敏捷式、工廠化的軟件開發(fā)思想,使得開發(fā)并行流水化,降低了開發(fā)成本,縮短了開發(fā)周期,提高了軟件開發(fā)的速度和效率。