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