摘要:對軟件項目實施全過程的質(zhì)量管理作了詳細論述:在需求分析階段通過結(jié)對分析與需求評審來保證需求分析的質(zhì)量;在設(shè)計與開發(fā)階段,制訂相應的軟件開發(fā)規(guī)范,并嚴格執(zhí)行,保證實現(xiàn)代碼的質(zhì)量;在測試環(huán)節(jié)上,強調(diào)測試與軟件實現(xiàn)同步,強化Bug管理。以進一步提高軟件質(zhì)量。軟件開發(fā)全程要做到“有法可依,有法必依”。以上措施是開發(fā)出高質(zhì)量軟件系統(tǒng)的重要保證。
關(guān)鍵詞:質(zhì)量保證;結(jié)對分析;軟件項目;需求分析
引言
2008年,對某絨毛有限公司的生產(chǎn)控制系統(tǒng)組織了開發(fā)與實施。在項目團隊中,本人承擔了系統(tǒng)分析與技術(shù)總監(jiān)的職責。本系統(tǒng)的主要任務是實現(xiàn)從商務部接單、生控辦配料、倉庫備料、車間生產(chǎn),到倉庫入倉、最后出倉交付給客戶的業(yè)務工作流,并建立商務部管理系統(tǒng)、倉庫管理系統(tǒng)。生產(chǎn)控制系統(tǒng)對質(zhì)量要求較高,自交付運行以來,用戶反饋表明,質(zhì)量特性上較好地滿足了生產(chǎn)需要。在軟件開發(fā)過程中,我們實行了全過程的質(zhì)量管理,圍繞軟件的6個質(zhì)量特性因子,形成了軟件項目開發(fā)團隊的約束文件,針對不同角色制訂了不同的質(zhì)量主題,做到了軟件質(zhì)量的可控。
1 需求分析階段,通過結(jié)對分析與需求評審來保證需求分析的質(zhì)量
需求分析的質(zhì)量是否優(yōu)良,決定著后繼各工作環(huán)節(jié)能否按既定方向進行。由于客戶方生產(chǎn)較為繁忙,計算機應用水平不高等因素,與中層管理人員、基層操作人員的交流有很大困難,參與項目的時間與精力得不到保障,因此,作者制訂了結(jié)對分析的策略,以提高需求分析的效率與質(zhì)量。
結(jié)對是敏捷軟件開發(fā)一個最佳編程實踐,作者創(chuàng)造性地將其引入到需求分析階段。需求分析各個環(huán)節(jié)(包括需求獲取、分析,與用戶溝通)均由兩個開發(fā)人員來共同完成,能取得較高的需求分析質(zhì)量。例如,這一策略在倉庫備料及庫存管理這一關(guān)鍵環(huán)節(jié)的需求分析上發(fā)揮了重要作用。倉庫管理人員年紀較長,對計算機概念模糊,溝通上存在很大障礙,通過兩個需求分析人員共同來完成該項工作,做到了分析人員的優(yōu)勢互補。通過結(jié)對分析不僅得到較高的需求分析質(zhì)量,并且節(jié)省了用戶的時間,對用戶也有一定的推動。只有兩個分析人員達成一致,才將相應需求嵌入基線庫中,保證了需求的科學性。這樣做雖然增加了人力成本,但提高了需求分析效率。
強化需求評審。需求評審分為三個層次:①全局評審。參與人員主要是用戶方核心管理層,業(yè)務領(lǐng)域?qū)<?,開發(fā)方分析人員。主要任務是評審需求與公司目標、高層想法是否一致。這一評審至關(guān)重要,它把握了軟件系統(tǒng)實施方向的正確性。②局部評審。參與人員主要是用戶方業(yè)務中層及一線操作人員,開發(fā)方業(yè)務領(lǐng)域開發(fā)工程師。主要任務是就業(yè)務層相關(guān)業(yè)務流程進行再次確認。因為需求過程中相應部門的業(yè)務人員站在自己的角度看待問題,對于整個流程關(guān)心不夠,需要糾正各部門用戶需求不一致的問題。③內(nèi)部評審。全體開發(fā)人員、分析人員參與。分析人員建立初步的UML用例圖,工作流程圖,活動圖等供全體討論。任務是澄清一部分模糊的需求。
在需求階段,還采取了其它措施來保證需求分析的質(zhì)量,如強調(diào)需求分析工具的使用等。
2 設(shè)計、編碼階段,強調(diào)紀律與規(guī)范
設(shè)計與編程質(zhì)量對于軟件產(chǎn)品的質(zhì)量有著直接的作用。在這一階段,我們的主要措施是強調(diào)紀律與規(guī)范,制訂相應的約束規(guī)范文件,要求設(shè)計有可追溯性,強調(diào)設(shè)計、開發(fā)過程標準化。另一主要措施選擇適合的工具。我們選擇的開發(fā)平臺為,NET,開發(fā)工具為Visual Sutdio 2005(簡稱VS2005),后臺數(shù)據(jù)庫為SQL Server 2005,使用數(shù)據(jù)庫智能感知小工具SQL Prompt,NDoc來生成設(shè)計文檔,使用微軟企業(yè)庫。企業(yè)庫是微軟針對共性內(nèi)容發(fā)布的經(jīng)過實踐檢驗的高質(zhì)量產(chǎn)品。
本人制訂了NET編碼規(guī)范,目的是保證不同開發(fā)人員的代碼風格基本一致,降低開發(fā)人員流動可能導致的項目風險;強調(diào)代碼的可理解性與“設(shè)計先行與強化注釋”;制訂了SQL書寫規(guī)范。這一系列規(guī)范標準的制訂從源頭上保證了軟件設(shè)計的質(zhì)量。
編碼人員分成二類角色:業(yè)務領(lǐng)域工程師和核心代碼工程師。業(yè)務領(lǐng)域工程師針對具體的業(yè)務功能進行編碼。在設(shè)計時我們要求業(yè)務領(lǐng)域工程師要有這樣的意識:變更不可避免,在設(shè)計盡可能考慮到將來變更的可能性,盡可能做到模塊之間的松耦合,模塊內(nèi)部的高內(nèi)聚。核心代碼工程師完成公共代碼的實現(xiàn)與維護。核心代碼質(zhì)量在系統(tǒng)中至關(guān)重要。對核心代碼工程師加以分組,每組兩位工程師實行結(jié)對編程。以克服思維局限,共同完成設(shè)計、UML圖、實現(xiàn),保證代碼質(zhì)量。實踐證明,采取這些辦法后,在用戶提出相應功能變更時,軟件修改相對較輕松,能較好地適應業(yè)務變化。
3強調(diào)測試與軟件實現(xiàn)同步,強化Bug管理
測試是保證軟件質(zhì)量較為重要的一個環(huán)節(jié)。針對開發(fā)團隊部分成員測試意識不強,項目部有針對性地進行培訓;強調(diào)測試與設(shè)計同步,測試用例與功能代碼的編制同步;及時進行單元測試,統(tǒng)一用VS2005 for Tester作為測試工具;Bug管理統(tǒng)一存放在服務器中,嚴格控制Bug的開啟與關(guān)閉,并把Bug數(shù)據(jù)作為工程師考核依據(jù)之一,指派兼職文員進行Bug管理。
所有測試中出現(xiàn)的問題,經(jīng)整理后在項目團隊例會上進行總結(jié);在團隊內(nèi)部交流并在平臺WSS中建立一個專門的警示網(wǎng)站,發(fā)布已經(jīng)暴露的Bug解決方案,讓項目團隊共享,避免問題重復出現(xiàn);構(gòu)建項目團隊自有知識庫,作為公司設(shè)計重用的一個重要資源。
除了高度重視實現(xiàn)階段的測試,同時也積極主動地去發(fā)現(xiàn)質(zhì)量問題。團隊使用VS2005自帶工具進行性能優(yōu)化分析,找出使用頻度高與關(guān)鍵代碼進行性能優(yōu)化。利用VS2005壓力測試工具,找出性能瓶頸,制訂相應策略進行優(yōu)化。
4 結(jié)束語
軟件自交付以來,用戶反饋系統(tǒng)運行穩(wěn)定。實踐證明,我們的一系列質(zhì)量保證策略與實踐取得了很大成功。只有在需求分析、設(shè)計、開發(fā)等各個環(huán)節(jié)實施質(zhì)量保證措施,才能保證軟件產(chǎn)品的質(zhì)量。軟件項目要做到“有法可依,執(zhí)法必嚴”,并要高度重視各個環(huán)節(jié)輔助工具的使用,這樣才能較好地保證最終軟件產(chǎn)品的質(zhì)量。