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