新聞中心
2008年8月到2008年12月,作者參加了某省級無線運營商的網(wǎng)上營業(yè)廳3期項目的開發(fā),并擔任項目經(jīng)理的職位。網(wǎng)上營業(yè)廳是該無線運營商的省級網(wǎng)上門戶,是其電子化營銷渠道的重要組成部分。本文結(jié)合作者的實踐,以網(wǎng)上營業(yè)廳3期項目為例,討論了DRY原則在整個軟件生命周期過程中,對于保證軟件質(zhì)量的指導作用和意義。這其中包括了需求分析階段,軟件設(shè)計和開發(fā)以及軟件測試等階段。通過在這些軟件過程中使用DRY原則,提高了軟件的易用性,可維護性和可擴展性等重要的軟件質(zhì)量評價指標。最后,作者提出了對DRY原則的展望和未來圍繞DRY原則可能出現(xiàn)的新工具、新方法。

麻章網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),麻章網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為麻章超過千家提供企業(yè)網(wǎng)站建設(shè)服務。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務好的麻章做網(wǎng)站的公司定做!
2008年8月到2008年12月,我參加了某省級無線運營商的網(wǎng)上營業(yè)廳3期項目,在這個項目中,我擔任了項目經(jīng)理的角色。
網(wǎng)上營業(yè)廳是該運營商的省級網(wǎng)上門戶,是電子化營銷渠道的重要組成部分。其主要功能包括:企業(yè)形象宣傳;新業(yè)務、新活動推廣;客戶進行業(yè)務查詢和辦理等。隨著客戶對電子渠道認知度的提升,原有的網(wǎng)上營業(yè)廳2期在硬件方面,已經(jīng)無法滿足日益增長的客戶數(shù)。在軟件架構(gòu)方面,已經(jīng)無法快速響應頻繁復雜的需求變更。因此,該運營商提出了對于網(wǎng)上營業(yè)廳3期項目的建設(shè)計劃。3期建設(shè)的預期目標為:把網(wǎng)上營業(yè)廳的注冊客戶數(shù)從200萬提升到500萬,并從硬件、軟件等各方面保證客戶正常使用。
該項目的人員組成包括:1名項目經(jīng)理,1名軟件開發(fā)經(jīng)理,1名系統(tǒng)實施經(jīng)理,3名程序員,2名頁面制作,2名系統(tǒng)實施共10人。項目的開發(fā)平臺為J2EE。 該項目的硬件大體情況為:14臺IBM BCH ,安裝apache,作為 web前端服務器。6臺IBM P52A,安裝weblogic,作為應用服務器。2臺IBM P570作為身份認證服務器。2臺IBM P570,安裝oracle,作為數(shù)據(jù)庫服務器。操作系統(tǒng)使用了紅帽企業(yè)版 linux 5,以及AIX5.3。 目前,網(wǎng)上營業(yè)廳3期成功通過終驗,并按時上線。在月初、月末的業(yè)務辦理高峰期,能夠保證客戶的正常訪問。此項目得到了該省級無線運營商和我所在公司領(lǐng)導的認可。
DRY原則的全稱是Don’t Repeat Yourself,直譯為“不要重復你自己”。首次接觸這個概念時,我認為它僅僅是應用在編碼范疇的一個編碼原則,旨在幫助程序員避免使用復制,粘貼等手段,到處拷貝代碼。隨著對軟件項目的認識和實踐,我發(fā)現(xiàn)DRY原則實際上是貫穿整個軟件生命周期的,保證軟件質(zhì)量的重要原則。從廣義上來講,軟件中的各種資源和代碼一樣,都可能面臨著被到處復制的危險。當客觀條件發(fā)生變化,要求資源發(fā)生變更的時候,就要同時修改多個資源。如果這些資源被重復地使用在系統(tǒng)中的各處,將直接影響軟件質(zhì)量中的可維護性和可擴展性因素。
下面,我將結(jié)合網(wǎng)上營業(yè)廳3期項目,詳細論述我們的項目組是如何在項目中成功地借助DRY原則來保證軟件質(zhì)量的。 在需求分析階段,我們曾經(jīng)遇到這樣一個問題??蛻羰褂孟到y(tǒng)前,首先用手機號碼和密碼登錄。當客戶辦理某個業(yè)務的時候,系統(tǒng)會向客戶發(fā)送短信驗證碼,客戶需要將該驗證碼輸入到網(wǎng)頁中的驗證框中,驗證通過后才能辦理業(yè)務。系統(tǒng)通過短信二次驗證碼驗證了客戶確實是該號碼的擁有者。這種驗證本來是合理且有效的,但在2期系統(tǒng)中,當客戶辦理完一個業(yè)務想再辦理另外一個業(yè)務的時候,還要再次進行短信二次驗證。也就是說,每辦理一個業(yè)務,就要進行一次短信驗證,客戶體驗可想而知。經(jīng)驗告訴我,這個需求違反了DRY原則。我們通過和2期的設(shè)計人員以及客服人員進行溝通,發(fā)現(xiàn)2期系統(tǒng)這樣設(shè)計的初衷是為了提高安全性。其實,仔細分析就會知道,這種驗證方法保護的是客戶在登錄期間丟失手機的賬戶安全。簡言之,2期系統(tǒng)的驗證方法犧牲了絕大多數(shù)客戶的使用體驗,卻僅僅保護了極小概率發(fā)生的特殊情況。不僅給客戶重復地發(fā)短信驗證碼,影響了客戶體驗,而且提升了系統(tǒng)的開銷。最后,在DRY原則的指導下,我們把短信驗證改為了一次登錄期間僅驗證一次,極大地提升了客戶體驗,進而從易用性方面提升了軟件質(zhì)量。
在設(shè)計和開發(fā)階段,DRY原則可以在更多的方面對軟件開發(fā)進行指導。例如對于系統(tǒng)運行期異常處理機制的設(shè)計。每一個業(yè)務處理過程都可能發(fā)生異常,所以需要專門的異常處理代碼來處理異常情況。網(wǎng)上營業(yè)廳目前擁有約40多項業(yè)務,雖然各個業(yè)務的正常處理流程各不相同,但發(fā)生異常后的處理流程卻是完全相同的。我們在做系統(tǒng)流程設(shè)計時,根據(jù)DRY原則,充分考慮了這種情況。最后決定,使用過濾器來統(tǒng)一各個業(yè)務的異常處理流程,將分散在系統(tǒng)中的異常處理模塊設(shè)置到過濾器中。當異常處理流程變更時,我們僅需要在過濾器這一處對其進行修改,大大降低了軟件的維護成本。
再一個例子是數(shù)據(jù)庫訪問通用模板類設(shè)計。網(wǎng)上營業(yè)廳是免不了對數(shù)據(jù)庫進行操作的。大家知道,從數(shù)據(jù)庫獲取連接,使用連接,并在最后關(guān)閉連接,是每次使用數(shù)據(jù)庫必須做的操作。如果我們在所有模塊中的數(shù)據(jù)庫訪問都執(zhí)行這3步操作,那將會浪費巨大的人力成本。在DRY原則的指導下,我們提煉了數(shù)據(jù)庫操作的一個流程模板,那就是獲取連接,使用連接和關(guān)閉連接。通過結(jié)合面向?qū)ο蟮脑O(shè)計方法,我們設(shè)計了一套對數(shù)據(jù)庫進行操作的模板類。使用這套模板類,開發(fā)人員只需把精力集中到對數(shù)據(jù)庫連接的使用上,也就是更加專注于業(yè)務邏輯。而無需關(guān)心連接的獲取,關(guān)閉等操作。這樣做不但節(jié)約了時間,也節(jié)省了人力,而且提高了軟件的可維護性和可擴展性。
在軟件測試方面,DRY原則仍然具有用武之地的。例如測試用例的設(shè)計。不論是白盒測試還是黑盒測試,DRY原則已經(jīng)潛移默化地融入了這些測試用例的設(shè)計原則當中。例如白盒測試就是要盡量避免重復的路徑覆蓋;而黑盒測試中的等價類劃分技術(shù),也是要避免重復的測試數(shù)據(jù)被使用。從而提高了測試的效率,加快了軟件故障或新需求的處理速度,提高了軟件的可維護性。
通過以上論述可知,DRY原則是一項可以貫穿整個軟件生命周期的指導原則。通過項目組正確地應用和實踐這一原則,我們從最大程度上保證了網(wǎng)上營業(yè)廳3期的易用性,可維護性,可擴展性等重要的質(zhì)量指標。 DRY原則的應用領(lǐng)域還不止這些,它的某些觀點在目前看來似乎過于超前。例如DRY原則認為:軟件的設(shè)計文檔是對代碼的重復,軟件的需求文檔是對驗收測試文檔的重復,軟件模型是對數(shù)據(jù)庫結(jié)構(gòu)的重復等等。我認為,隨著軟件開發(fā)技術(shù)和工具的進步,在不久的將來,也許軟件的設(shè)計文檔完全可以通過代碼自動生成,軟件的需求文檔也能夠自動轉(zhuǎn)化為驗收文檔等等。圍繞DRY原則,也一定會涌現(xiàn)出一大批優(yōu)秀的軟件工程工具。這樣一來,我們就能夠進一步發(fā)揮DRY原則的作用,最大限度地對各個實體進行解耦,讓系統(tǒng)中的每一項功能僅由一個實體來完成。DRY原則一定會對軟件質(zhì)量的保證有著越來越重要的作用和意義。
【編輯推薦】
- 對敏捷開發(fā)的五大誤解
- 應用軟件項目的配置管理實例
- 軟件需求分析與管理的十個問題
網(wǎng)頁題目:論DRY原則如何避免重復提升軟件質(zhì)量
網(wǎng)頁網(wǎng)址:http://m.fisionsoft.com.cn/article/dpspegd.html


咨詢
建站咨詢
