【
摘要】本文指出了
軟件開發過程中質量控制的重要性,通過分析開發過程中存在的問題,提出了一些提高軟件開發質量的方法的對策措施。
【關鍵詞】軟件開發;軟件工程;質量控制
軟件質量是指開發出來的軟件不僅可以滿足客戶明確提出來的要求還要滿足某些沒有明確提出來的要求,軟件質量越高,客戶需求滿足度就越高。軟件項目質量控 制不僅僅是控制軟件設計的最終結果,它其實要求貫穿于軟件設計項目的全過程,從軟件開發初期的客戶需求調查,到最終的軟件交付評審,每個階段都要進行仔細 的控制,才能提高軟件開發的質量。
一、軟件開發過程的問題分析
1、不能明確分析軟件的需求
軟件的需求是決定軟件質量的一個非常關鍵的因素,如果不能夠準確明了的分析軟件需求,就達不到軟件應有的效果,從而不能真正滿足客戶的要求。然而軟件的 需求不是顯而易見的,它需要軟件開發人員和客戶或者業務人員之間進行充分有效地溝通和交流,使得在軟件開發一開始就能夠將需求提得既明確又充分,這樣才能 為以后的工作打好基礎,避免在一開始就偏離了軟件開發的方向。在設計開發的過程中也要不斷與客戶進行溝通和交流,及時按照客戶的意見調整軟件,才能提高軟件開發的質量。
2、軟件開發工作不規范
由于軟件質量許多指標不能量化,因此,軟件開發的質量好壞也沒有辦法直接考核軟件開發人員的責任,這樣就致使軟件開發人員不會很重視軟件開發的質量,往 往更關心項目開發的成本和進度。此外,軟件開發人員沒有制定軟件開發計劃或者并不能按照軟件開發的計劃進行工作,為了趕進度經常跨階段進行開發工作,這樣 就沒法保證軟件開發過程的科學性和系統性,軟件開發的質量也不能得到保證。軟件開發管理人員和技術人員也會影響軟件開發的質量。軟件開發工作需要他們之間 進行頻繁的溝通和交流,倘若不能及時溝通,對開發過程中出現的不同認識和誤解等等問題不能及時消除,就勢必會影響到軟件產品的質量。此外,軟件開發人員在 開發過程中一旦出現流動,就會給軟件開發工作帶來很大的影響,也不利于提高軟件產品的質量。
二、提高軟件開發質量方法和對策
1、軟件產品質量控制方法
(1)軟件工程方法
軟件工程的基本方法就是把軟件開發過程劃分為若干個階段,在每個階段開發過程中都設置不同的目標、成本、時間等驗收標準,在前一階段工作通過驗收后才能 開始下一階段的工作,這樣就會達到提高軟件開發的質量的目標。軟件工程將開發過程分為軟件生產方法、需求分析、軟件設計、軟件生產工具、測試、驗證與確認、評審和管理等8個階段,每個階段都以軟件質量控制為核心,規范每個操作流程,從而提高軟件開發產品的質量。
(2)ISO9000-3標準
ISO9000系列標準原本并不能直接用于管理軟件制作,而是為制造硬件產品而制定的標準。后推行的ISO9000-3標準為使軟件產品達到質量要求, 要求軟件開發機構建立質量保證體系,明確供需雙方的職責,針對所有可能影響軟件質量的各個因素都要采取有力措施,作出如何加強管理和控制的對策和措施。 ISO9000-3標準敘述了需方和供方應如何進行有組織的質量保證活動,規定了從雙方簽訂開發合同到設計、實現以至維護整個軟件生存期中應當實施的質量 保證活動,但并沒有規定具體的質量管理和質量檢驗方法和步驟。
(3)CMM認證
CMM是一種專門針對軟件產品開發及服務的高效管理方法,強調軟件開發過程的不斷改進和提高,在軟件企業中引入CMM,有助于解決軟件開發過程中質量控 制方面出現的問題。CMM不僅對軟件企業工程能力進行評估,更著重于軟件開發過程的管理,強調“對軟件開發過程進行持續的改進”。CMM通過優化企業開發 流程,改善現有的規范、團隊配合工作方法,來彌補軟件企業對某個項目經理或開發工程師的單純依賴。軟件能力成熟度模型重點是從組織管理方面研究評估軟件生 產過程,從而提高軟件質量。
2、軟件開發質量控制對策 (1)合理規劃并嚴格按照計劃執行
在進行軟件開發之前首先要制定一個提高軟件開發質量的保證計劃,在開發過程中嚴格按照計劃執行,不急于搶進度,保證軟件開發的質量。建立文檔記錄需要跟蹤的工作以及保證軟件開發質量所需要的信息。
(2)堅持軟件評審制度
堅持軟件評審是保證軟件質量的重要方法,軟件開發過程按階段可大致分為軟件需求分析、軟件設計、編碼和單元測試、軟件部件測試、軟件驗收六個階 段。軟件評審工作要貫穿于軟件開發的整個過程中,在軟件開發的各個階段都要進行評審,當前軟件開發階段的工作成果達到計劃要求以后才能開始下階段的工作。 評審工作可以以會議的形式組織開展,會議要各方面人員都要參加,包括客戶、軟件管理人員以及軟件開發人員等等,通過會議進行溝通交流,最終給出評審結果。 在每個階段評審過程中產生的問題要盡快在本階段解決,沒有解決之前不能進入下階段工作,這樣就可以保證軟件開發過程中每個階段的工作質量都能得到提高。
(3)采用先進的軟件設計技術和方法
在軟件開發過程中應盡量采用先進的設計技術和方法,如面向對象和基于構件的方法,來提高軟件設計產品的質量。面向對象的方法優點是能夠提高軟件 的重復利用性,將錯誤和缺憾最小化,還有利于用戶的參與,能夠很好的提高軟件產品的質量。基于構件的開發方法又稱為“即插即用編程”方法,構件可以向軟件 供應商購買,也可以自行開發,而且可以重復多次使用,然后將編制好的構件插入到設計好的框架中去,從而形成一個大型的軟件。如果某個構件不符合開發的要 求,可以對某個構件進行修改,不會對其他構件造成影響,也不會影響到整個系統功能。
(4)軟件質量控制的關鍵――軟件測試
在軟件開發過程中,軟件測試也是軟件質量控制的關鍵,軟件測試主要包括單元測試、集成測試、確認測試和系統測試。在開發的每個階段都要通過測 試,如果測試結果與預期結果不一致,就要查找出軟件中存在的問題,針對問題提出解決方案,不斷改進軟件質量。通過軟件測試不僅可以尋找出軟件中存在的與軟 件客戶需求不一致的錯誤和缺陷,還可以節省大量的時間和人力,確保軟件開發的質量。開始測試之前要制定好測試計劃,確定好測試的范圍方法等等。在測試過程 中要做好記錄,詳細記錄每個測試過程中的數據,而且每個階段測試的結果都要進行存檔,如果測試過程中出現錯誤,就要編寫錯誤問題的報告,經過調試解決所發 現的問題以后才能進行下階段工作。
(5)注重文檔管理
目前很多軟件開發商都忽視了軟件開發過程中的文檔管理,其實文檔管理在軟件開發過程中起著非常重要的作用,在軟件開發的過程中建立并保存文檔, 有利于軟件的使用和維護,有益于軟件質量的提高。文檔管理要貫穿于整個軟件開發的全過程,即軟件在每階段的開發、測試、評估都要保存相關的文檔,這樣有利 于軟件的開發和維護,出現了錯誤有章可循,有助于軟件開發質量控制。文檔要提供給參與軟件開發的各個小組,不僅利于軟件開發過程中的交流和溝通,還可以通 過文檔來控制軟件開發的進度,避免趕進度、跨進度工作。在整個軟件設計開發過程中,文檔會不斷進行生成、修改、補充完善,要做好文檔的記錄保存工作。
(6)客戶要參與到軟件開發中去
軟件客戶要參與到軟件開發的全過程中去,在開發之初對軟件的需求不是很明確的情況下,要加強與軟件開發人員的溝通和交流,不斷了解自身更深層次 的需求。軟件開發需要多方參與,尤其是軟件客戶方面的人,在需求調查和分析階段,軟件客戶要將自己的需求和軟件開發人員進行有效地溝通,使得軟件開發人員 能夠最大限度的了解客戶需求,才能按照需求目標開發出令客戶滿意的軟件。在軟件測試和評審階段,客戶應按照自己的需求對設計開發的軟件進行檢測和評審,提 出自己的意見和建議,以便在得出結論以后能夠盡快及時的得到修正。軟件開發人員對于客戶提出的意見和建議要按照要求進行修改和完善,及早與用戶進行溝通, 避免影響驗收。