摘要:隨著軟件行業高速的發展,軟件開發的超期和超預算都成為軟件行業中的重要問題。為了有效地管理軟件開發,一些公司增設了質量管理崗位,在軟件開發過程中及時地管理和反饋項目信息,把所有重要問題都控制在項目初期,節約大量的人力、物力和財力。
關鍵詞:質量管理;軟件開發;應用
Application of Quality Management in Software Development
ZHU Yan, WANG Fang, YANG Yu
(Jiangsu Suzhou Power Supply Company, Suzhou 215004, China)
Abstract: With the high-speed development of software industry, overtime and over-budget of software development have become the most concern to the software industry. In order to effectively manage software development, some companies also introduced an important post, quality management, to manage and get feedback of the project information in time, thus all important trouble can be controlled in early stage, and a lot of manpower, resource and finance will be saved.
Key words: quality management; software development; application
隨著社會信息化水平的不斷提高,隨之帶來的信息市場競爭激烈。企業為了求生存,在市場競爭中處于不敗之地,滿足客戶要求則成為各行各業的首要責任。如今的IT項目,軟件工程倍受關注,而軟件的質量更是重中之重,因此,要求企業對質量管理加強認識。目前,軟件質量管理基本使用定性指標,軟件質量保證理論側重于解決組織和管理的流程問題[1]。
軟件質量模型早期由McCall 提出,在此基礎上,國際標準化組織(ISO)提出軟件質量的三層模型[2-3]。軟件項目的質量管理主要包括:質量計劃編制、質量保證和質量控制三個過程域。質量計劃是根據項目的立項文檔,對具體的計劃執行情況進行裁減,其內容全面反應用戶的要求,為質量小組成員提供了工作指南,為整個項目組成員提供了工作標準和工作依據,為確保項目質量提供了堅實的基礎。質量保證則是貫穿整個項目全生命周期的有計劃和有系統的活動,經常性地針對整個項目質量計劃的執行情況進行評估、檢查與改進等工作,向管理者或其他方提供信任,確保項目質量與計劃保持一致。質量控制必須對階段性的成果進行測試、驗證,而很多失敗的軟件開發案例正是由于在測試中發現了先天存在的、無法修復的缺陷,這更說明了質量管理在軟件開發中的重要性[4]。
1 未實施質量管理的劣勢
公司在軟件開發方面逐步向正規化發展,以前在軟件開發方面比較隨意,存在的缺點主要有:很能全面考慮技術難點,影響項目開發的整體進度;沒有規范統一格式的開發代碼,開發人員編寫的代碼風格迥異;技術文檔在項目開發過程中沒有統一管理,導致項目開發雜亂無章等問題。考慮到以上問題,公司在軟件開發方面增強管理力度,軟件開發的質量管理也逐漸提入公司的日程。
2 質量管理的優點
公司在軟件開發方面采用質量管理,帶來很多優點,提高公司的工作效率與收益。質量管理的優點具體如下:
2.1 保證項目進度
項目進度與項目計劃是否一致直接決定軟件開發是否順利。一個合理的項目計劃對項目開發尤為重要,而要制定合理的項目計劃,與項目計劃制定者從事類似工作的經驗有直接關系。經驗豐富的項目計劃者可以預見潛在的風險,在問題細節上也考慮得更周全,更能保證項目進度和計劃的一致性。圖1是某個項目的項目計劃實施情況。
項目計劃制定初期,由質量管理小組召開項目計劃評審會,討論項目計劃的可行性,對計劃中不合理的地方進行修改完善,并由質量管理人員對其結果跟蹤,以確保項目計劃完整性和可行性,完善的計劃交由配置管理人員進行管理。
計劃實施過程中,計劃并不是固定不變的。當發生變化時,質量管理小組報告項目經理,由項目經理負責對計劃進行維護。使項目按新調整后的計劃正常進行,并且盡量讓開發進度趕上原先的項目計劃。項目計劃以里程碑為界限,將整個開發周期劃分為若干階段。里程碑在項目開發過程中有著很重要的作用,每個里程碑都要有階段性的成果交付,同時可以根據里程碑將項目計劃作動態調整。
2.2 項目開發過程中監管
2.2.1 需求
需求分析是指理解用戶需求,就軟件功能與客戶達成一致,估計軟件風險和評估項目代價,最終形成開發計劃的一個復雜過程。在此過程中,用戶是處在主導地位,需求分析工程師和項目經理要負責整理用戶需求,為軟件設計打下基礎。在開發過程中,開發前期犯下的錯誤,會在開發后期被累積和放大,時間越久,糾正錯誤所花費的代價越昂貴,也越發影響系統的工期和系統的質量。解決這些錯誤的方法時通常采用邀請用戶參與進行需求評定,用戶的意見由質量管理員跟蹤。即所有需求的實現過程都得到跟蹤、監督與驗證;所有需求的變化都得到控制、理解和處理[5-6]。
雖然在需求調研期間積極地和用戶溝通,但仍然避免不了項目進行中用戶的需求,如變更請求。由質量管理小組組織討論實施變更的可行性及實施后所帶來的影響,無論哪種變更都需要對相應的資料實施同步變更。若變更會帶來巨大影響而導致項目進度的延期,項目組需要將變更報告提交給用戶并同用戶進行協調,討論變更的取舍問題或是項目進度變更問題。決定變更之后,質量管理成員監督變更實施過程并協助配置管理員對變更后涉及的資料進行版本控制。
2.2.2 設計
優良的體系結構應當具備可擴展性和可配置性,而良好的體系結構則需要優秀的設計方法,因此,設計選型成為了系統設計首要的工作。對于設計選型需要針對項目的結構、項目的特征和用戶的需求來分析,同時還要要考慮到參與項目開發的小組成員的整體素質。例如,項目經理選擇的設計方法具有明顯的優勢,但項目組部分成員并不是十分熟悉這種設計方法,而且在時間評估上沒有考慮到某些程序員的學習適應期。在這個項目的開發過程中,存在了嚴重的項目延期問題,由此可以看出,設計方法的選擇對項目開發的重要性,盡管有些設計方法有明顯的優勢,但是熟悉的設計方法能為項目的開發節省許多時間,正確的選擇可以減少項目承擔的技術風險。設計方法的選擇需要由質量管理小組組織討論,確定設計方法更具有可操作性,確定后項目組根據設計方法實施。
公共類開發要求項目組成員在設計階段通過對用戶需求的仔細研究,盡可能的識別、提煉出公共類,并進行定義。公共類應該具有通用性、可復用性,對公司和個人都是有利的,對項目組成員是一種學習的機會,另外可以為公司節約大量的成本和縮短工期。公共類開發后由質量管理小組把關,確認沒問題后交由配置管理員保存入庫,方便開發人員長期使用。
2.2.3 實現與測試
系統實現也就是軟件代碼的編寫過程,這里不僅包括代碼的產生,同時也包括測試用例的產生。開發人員針對項目組之前的詳細設計,程序員編寫代碼,調試代碼。每個階段質量管理小組都要對項目組進行管理,在編碼過程中檢查項目組的開發代碼,有問題直接讓開發人員修改。測試人員不僅要測試軟件的功能是否完整,還要測試軟件的性能。軟件的性能也直接影響到軟件開發的成敗,為了避免重頭再來,項目組必須要重視性能測試。
測試人員則根據系統設計編寫測試用例和測試計劃。測試用例和測試計劃都需要經過質量管理員組織的評審會評審。測試人員按照測試計劃和測試用例,對項目進行測試,并把測試出來的問題及時反饋給項目組,項目組根據測試問題的嚴重級別,修改程序代碼。只有當程序員調試完程序,測試通過并通過質量管理小組審核后,才可交給用戶測試、驗收。
2.2.4 維護
系統維護由維護人員擔任,負責保證客戶的使用質量。維護人員不僅要了解項目的技術核心內容,同時也要與客戶溝通。這樣當用戶提出維護問題時,才能根據具體情況判斷出問題的根源。篩選出是用戶的使用方法問題、環境問題等普通原因,還是確實是程序的BUG、程序的修改問題。如果沒有指定的維護人員,那么項目組的開發成員可能會一直被老項目影響,沒辦法專心投入新項目,從而形成一種人員浪費。當維護人員發現是程序缺陷,需要修改時要走變更控制流程。大的修改由開發人員對已發布的程序修改,并由質量管理小組對整個修改過程作變更控制,修改結束后由測試小組測試通過后發布新版本交付用戶。小的修改由維護人員實施,同時變更所涉及到的一切資料。
2.3 保證項目文檔
項目開發過程中的文檔對整個項目來說也是不可或缺的。一個軟件項目沒有了文檔,就好像迷路的人沒有了地圖,遇到問題時就沒依據可循。
在質量管理還沒成型,項目組人員還沒習慣寫文檔時,會覺得寫文檔是浪費時間,不寫各類文檔直接進入編碼階段可以直接切入主題,肯定比寫文檔的進度快。但隨著項目的逐漸深入,各種問題也接踵而來,需要部門間配合的工作也越來越多。一個大的項目是一個團體合作的工作,需要了解其他人員的技術方向和開發思路。當某些環節需要相互配合時,就能顯現出文檔管理的重要性。
編寫文檔并不是項目組成員隨心所欲、自由發揮的,而是經過質量管理小組、軟件組負責人及相關業務人員討論得出公共模板,每個文檔都有標準模板,這樣編寫文檔的速度也會很快。有了完整的項目文檔,就不會因為項目開發人員的辭職而耽誤開發進度,減少了整個項目組對某個重要開發人員的依賴性,也減少了軟件開發的風險成本;有了完整的項目文檔,給項目后期的維護工作帶來了便利。
文檔管理的歸檔工作是由配置管理小組負責的。重要文檔是由質量管理小組審查合格后提交給配置管理小組的。做一個大的項目,必須要有完整的項目文檔做支持。
3 結束語
從軟件開發的實際情況可以證明,優質的質量管理可以節約大量的人力、物力和財力,同時可以保證軟件的質量。實踐證明,軟件工程項目的成敗與否,一般與項目的管理直接相關,而與技術的關系。要想做一盤“完美”的軟件大餐,質量管理的作用是不言而喻的。
參考文獻:
[1] Silva R N,Murray G W.Low cost quartz rate sensors applied to tactical guidance IMUs[C].Proceeding of the IEEE Position,Location and Navigation Symposium,1994:37-42.
[2] 胡小平.自主導航理論與應用[M].長沙:國防科技大學出版社,2002:194-203.
[3] 陳哲.捷聯慣導系統原理[M].北京:宇航出版社,1986:143-147.
[4] 匡啟和.RTLinux環境下導航系統的設計與實現[J].導航,2001:37(4):58-60.
[5] Quality management system: requirement.International Organization for Standardization,ISO 9001[S].2000.
[6] Paulk M C,Curtis B,Weber C V.Capability maturity modelSM for Software, Version 1.1 Software Engineering Institute, Carnegie Mellon University,Pittsburgh,Technical Report CMU/SEI-93-TR-024[S].1993.