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