鄒鵬
摘 要:軟件產業是一個新興產業,近些年來,隨著計算機技術的飛速發展,軟件產業迅速壯大,中國軟件產業起步較晚,不僅在人才和技術方面與軟件產業先進的國家之間有較大的差距,在管理方面也相差很大,CMM是能力成熟度模型的簡稱,它可以在組織定義、需求分析、編碼調試、系統測試等軟件分析的各個過程中發揮作用,提高軟件開發的質量和速度。本文簡要介紹了CMM和基于CMM的軟件開發過程,并提出了CMM軟件開發過程中需要解決的三個問題。
關鍵詞:CMM;軟件開發;研究應用
前言
目前,CMM是近些年來國際影響力最大的軟件過程國際標準,它整合了各類過程控制類軟件的優勢,提高了軟件開發的效率和質量。軟件開發需要成熟先進的技術和完善的系統總體設計,CMM三級定義的軟件開發流程使軟件開發更簡單,對項目的進度和狀態的判斷更準確,因此,研究易于CMM的軟件開發過程對軟件產業的發展十分重要。
1 CMM軟件開發概述
1.1 CMM概述
能力成熟度模型英文縮寫為SW-CMM,簡稱CMM,它是對于軟件組織在定義、實施、度量、控制和改善其軟件過程的實踐中各個發展階段的描述,它于1991年由卡耐基-梅隆大學軟件工程研究院正式推出,CMM由成熟度級別、過程能力、關鍵過程域、目標、共同特點、關鍵實踐六部分構成,它的核心是把軟件開發當成是個過程,并基于這一思想對軟件開發和維護過程進行監測和研究,目的是改進舊日繁瑣的軟件開發過程,除此之外,CMM還可用于其他領域過程的控制和研究。CMM的重要思想是它的成熟度級別的劃分,它將軟件開發組織從低到高分為五個等級,第一級是初始級,這一級軟件開發組織的特點是缺乏完善的制度、過程缺乏定義、規劃無效;第二級是可重復級,這一級的軟件開發組織基本建立了可用的管理制度,可重復類似軟件的開發,因此這一級有一重要的過程--需求管理;第三級是已定義級,軟件企業將軟件開發標準化,可以按照客戶需求隨時修改程序,這一級的重要過程是組織過程;第四級是已管理級,軟件企業將客戶需求輸入程序,程序自動生成結果并自動修改,這一級的重要過程是軟件過程管理;第五級是優先級,軟件企業基于過程控制工具和數據統計工具隨時改變過程,軟件質量和開發效率都有所提高,這一級的重要過程是缺陷預防。CMM成熟度的劃分對國內軟件開發組織的自我定位和進步都很大的影響。
1.2 CMM軟件開發過程
首先進行項目規劃,軟件開發人員先了解客戶的需求,通過調查問卷、投票等形式搜集信息,相關人員對信息進行歸納處理,提出新的軟件的創意,小組人員討論出軟件的小改模型之后進行可行性分析并研究探索新創意的創新性和可行性,提出模型中需要解決的問題,估計項目所需的資金和人力資源,列成項目計劃書交付評審。評審通過后,確定軟件的具體作用,明確新軟件的功能,在目標客戶范圍內搜集信息,建立準確的模型,制定軟件開發計劃。先進行概要設計,構建系統的輪廓,根據軟件開發計劃劃分系統模塊并建立邏輯視圖,建立邏輯視圖的核心是對信息進行度量,設計工作量、審核工作量、返工工作量以及完善設計中存在的缺陷等,設定軟件標準和數據庫標準。然后進行詳細設計,針對每一個單元模塊進行優化設計,審核設計中的缺陷和未完善之處,將概要設計階段引入的函數進行詳細分解,運用程序語言對函數進行具象的描述,將代碼框架填充完整,補充需求跟蹤矩陣,最后設計以模塊為單元的測試。完善設計方案后,開始編碼調試,先進行編碼,小組每個人的編碼成果都要經過其他人的檢查,以防出現漏洞,然后按照測試設計進行單元測試。單元測試無誤后進行集成測試,系統集成完畢后將所有測試用例用來測試,系統零失誤通過測試說明系統無漏洞,否則檢查漏洞重新測試,測試結果形成測試報告留存。軟件交付客戶驗收前進行最后一次測試,檢測軟件功能與客戶需求之間的差距,測試人員在客戶提出的每個情境下測試軟件功能,測試無誤后交予客戶。客戶驗收無誤后,小組每個成員針對自己負責的模塊進行經驗總結,總結基于CMM的軟件的開發的經驗。
1.3 CMM在軟件開發中的作用
CMM在項目管理活動、項目開發活動、組織支持活動三方面都可發揮作用,對提高軟件開發的質量和效率有很大的影響,然而,目前我國基于CMM的軟件開發還處于起步階段,主要應用的領域是鐵路信號系統、海關軟件開發、軍用軟件開發、雷達軟件等,推進了鐵路新開系統的開發和利用,拓寬了海關軟件開發的平臺,承接了以前軍用軟件開發軸端,提高了雷達軟件開發質量。在更廣大的領域,CMM還應充分發揮其自我評估、主人評估的作用,為更多的軟件開發組織解決軟件項目過程改進、多軟件工程并行的難題。
2 基于CMM的軟件開發過程需要解決的問題
2.1 軟件開發平臺的實現
軟件開發平臺是基于CMM的軟件開發的基礎,目前軟件開發的代表性理論是結構化分析設計方法,它利用圖形描述的方法將數據流圖作為手段更具體的描述了即將開發的系統的模型,在程序設計中,它將一個問題分解為許多相關的子集,每個子集內部都是根據問題信息提取出的數據和函數關系,將這些子集按照包含與被包含的關系從上到下排列起來,定義最上面的子集為對象,即新的數據類型,平臺開發的基礎就是這個新的數據類型,平臺的框架則是將表現層、業務層、數據交換層用統一的結構進行邏輯分組。
2.2 軟件組織中的軟件過程控制
軟件過程是用于開發和維護軟件的方法和轉換程序,工程觀點、系統觀點、管理觀點、運行觀點和用戶觀點缺一不可,軟件過程控制的核心是盡量不和具體的組織機構及組織形式聯系的原則,它需要定義和維護軟件過程,將硬件、軟件、其他部件之間的接口標準化,并確定各組織機構的規范化,制定過程改進的計劃后,要先選定幾個具有普遍特征的項目作為測試項目,先進行試運行,確定軟件過程控制的有效性,準確的記錄過程控制的數據和具體問題,運用CMM將這些問題解決后,將過程控制程序應用到所有的項目中。
2.3 軟件過程改進模型
軟件過程改進模型的核心是評估系統在服務器端的實現流程,登錄系統后對新項目進行描述,在線進行項目需求文檔編寫,同時指派SQA人員到項目組進行指導,根據需求文檔制定項目SCM計劃,進而得出跟蹤需求,收集當前軟件過程中的實際數據并與計劃值比較,報告比較結果,若結果在誤差允許范圍之內,則項目結束,如超出誤差允許范圍,則調整項目計劃,調整后的項目計劃再進行以上流程,直至實際數據與計劃值的差在在誤差允許范圍之內,軟件過程改進模型建立完畢。
3 結束語
目前,國際大多數軟件開發過程和質量管理都遵循CMM,在軟件開發中,CMM的各個關鍵過程都有對應的角色和負責的階段,對軟件開發的速度和質量的提高有重要的意義。在我國,基于CMM的軟件開發過程的研究正處于起步階段,CMM還有很多功能沒有挖掘出來,在基于CMM的軟件開發過程中,工作人員要充分發揮和挖掘CMM的價值,大膽創新,在實踐中改進軟件控制、軟件開發管理等過程,不斷提高軟件開發的能力。
參考文獻
[1]周明輝.石油化工工程質量監督系統網絡信息平臺的設計[J].工程質量,2015-3:10.
[2]王玲.基于CMMI4級的高成熟度過程改進的實踐探索——以XX公司軟件研發持續改進的實踐為例[J].電子技術與軟件工程,2015-1:62.