基於CMMI的軟件開發模型應用研究論文

CMMI是幫助軟件企業提高開發效率、降低開發成本,通過過程控制以不斷改進提高軟件開發質量的國際通行標準。通過對CMMI開發模型的研究,闡述了基於AUTOSAR軟件架構的軟件開發模型,詳細論述了基於CMMI的軟件質量保證過程。

基於CMMI的軟件開發模型應用研究論文

引言

在中國軟件行業發展的近30年中,集成能力成熟度模型CMMI(Capability Maturity Model Integration)已經在國內的軟件企業廣泛實施並探索出有效的實施方法,越來越多軟件企業通過實施CMMI來規範企業管理體系,提升軟件產品質量。

隨着中國汽車電子的飛速發展,汽車與軟件的聯繫越來越緊密,已成爲汽車創新發展不可缺少的因素之一。爲了在有限資源範圍內最大限度地提高主機廠自主開發的軟件質量,必須引入CMMI管理體系指導軟件開發。

概述及應用現狀

CMMI起源於美國政府和軍工軟件企業的一些成功經驗及實踐。2002年1月,由美國、卡內基-梅隆大學與美國國防工業協會共同開發研製併發布的CMMI 1.1版本,標誌着CMMI模型的正式啓用。其研究目的主要是提高軟件行業開發能力,幫助企業建立適合企業自身發展的軟件開發質量保證體系,從而保證軟件產品能及時、高效地輸出到客戶。另外,通過不斷積累和發展使軟件開發向着流水線方向發展、幫助企業節省開發成本也是CMMI的重要目的'。CMMI按企業軟件的成熟度共分爲5級22個過程域,分別爲初始級、可重複級、已定義級、量化管理級、優化管理級。

自1999年起,中國軟件企業開始接受並逐步推廣CMMI體系,通過學習和不斷探索,已經在軟件開發標準化方面取得了一定進展。據SEI統計,通過評估的軟件公司對項目的估計與控制能力提升了40%~50%,生產率提高了10%~20%,軟件產品出錯率下降超過1/3[1]。截至2011年底,包括IBM中國、寶信軟件、東軟集團等在內的28家企業通過了CMMI5級認證。如今,已有越來越多軟件企業通過了CMMI認證,主要涉及計算機、手機軟件等相關行業。隨着汽車電子的快速發展,其規模和複雜度也日益提高,汽車嵌入式軟件與其它行業軟件相比有着更高的質量要求,其對響應速度及安全性的要求更高。

軟件開發模型

CMMI開發模型(CMMI For Development)是在產品與服務開發活動中處理問題的最佳實驗[2],此模型涵蓋了工程學科共有的開發與維護活動,涉及產品開發的過程均可利用此模型來進行過程改進,包括銀行、計算機軟硬件、航空航天、國防等在內的各個領域。CMMI開發模型包含16個核心過程域及5個開發活動特有的過程域,這5個關於開發活動特有的實踐包括:需求開發、技術解決方案、產品集成、驗證和確認。

CMMI指出,CMMI的本質是軟件管理工程的一部分[3]。就目前CMMI發展總體情況而言,SPI(Software Process Improvement)是軟件管理工程的核心問題。對軟件過程進行改進,可高效、高質量和低成本地開發軟件,能夠通過過程監控管理達到提高開發質量、減少產品缺陷、減少退貨、提高用戶滿意度等目的,對於提高軟件產品質量與生產率、縮短上市時間也能夠起到重要的指導作用。

軟件過程改進實施

汽車軟件因其特殊的應用領域,不同於一般軟件產品,其對產品的安全性和可靠性有着嚴格要求。因此汽車軟件不僅需要一般的軟件工程方法、軟件質量管理手段來提高軟件可靠性,爲了滿足針對性,首先要結合自身特點,如組織結構、工作範圍、公司狀況來明確當前需要改進的地方。選擇合適的方法,從人力、物力上保證,對CMMI模型進行合理裁剪,避免週期過長、程度不夠深入以及無法實施等問題。

3.1支撐V模型開發的完善工具鏈

通常的產品開發模式是,開發工作從客戶的需求定義開始,經過系統設計、軟硬件架構設計到單元開發完成爲止,將工程參數層層分解,需求逐步細化,最終形成軟件代碼。在該過程中首要的因素是各級理解必須正確,然後是追溯開發過程沒有產生遺漏。當前業內流行的開發方式是V模型,不但滿足了一般的開發需求,還將測試和驗證過程加入開發迭代。

V模型的價值在於其非常明確地描述了測試階段與開發過程期間的對應關係,工程開發人員往往期望有一款工具既能夠支持V模型的工程開發需求,也能夠實現測試和驗證自動化。然而在業界,這樣的工具往往屬於大型企業的祕密,不會出售,一般軟件也往往只解決流程問題,而無法解決技術整合問題。因此,泛亞汽車技術中心摸索開發了一系列自主工具,既能在流程上符合V模型開發方式,又能整合各層次的技術資源和分類工具,徹底實現了一個完整的工具開發鏈路,具有很高的產業價值。

3.2基於AUTOSAR架構的分工和交付物管理協作模式

隨着團隊的擴大以及更細的人員分工,制定一套標準的開發流程能夠顯著降低開發成本,縮短開發週期。從制定各個里程碑開發節點出發,到軟件需求理解、軟件架構設計、軟件編碼及建模,再到軟件集成測試,每個開發活動都有明確的輸入需求、交付物以及對應人員。創建符合CMMI的軟件開發流程關鍵,還在於在項目開發大節點有相應的質量閥評審,若評審不通過,則需要對交付物採取補救措施。

AUTOSAR(Automotive Open System Architecture,汽車開放系統架構)由全球汽車製造商、部件供應商及其它電子、半導體和軟件系統公司聯合建立,是目前汽車廠商統一、開放的軟件架構,但國內應用此架構開發的汽車廠商還不多,都還處於初級階段。企業應基於AUTOSAR架構原理,根據專業工作細化結果,結合團隊自身特點,制定相應措施以達到提高開發效率、縮短開發週期的效果;另一方面,還應強化軟件架構設計及軟件集成的執行,從軟件架構流程確保整個項目開發的統一設計,再逐步細化到各個子模塊的實現中,同時確保所有交付物都通過專家評審,力保在軟件設計之初就發現問題,從而有效降低開發成本;此外,通過軟件持續集成、統一發布,控制開發節奏,驅動開發進展,逐步完善軟件成熟度。圖1爲基於AUTOSAR軟件架構的軟件開發流程。

3.3軟件質量目標定義

軟件開發的質量管理主要細分爲質量保證及質量控制兩類活動。其中,質量保證是針對開發過程開展的活動,質量目標包括評審度量指標、評審投入比例、過程失控度目標等。質量控制主要是針對測試及驗證活動,定義的主要度量指標包括項目測試收束目標、測試逃逸率以及逃逸的千行代碼缺陷率。最常用的3個質量目標定義如表1所示。

3.4軟件度量制度建立

項目的健康化發展離不開對缺陷數據的統計,通過統計可知道項目的薄弱點,也能對項目進行橫向比對。Mantis系統是軟件行業最常使用的bug跟蹤系統,在原有的統計功能上可通過定製化統計功能將上述3個指標(未修復不符合項平均Open時間、未解決不符合項數及過程失控度)通過二次開發納入Mantis統計中,從而能夠實時監控軟件bug的狀態;另外,通過Mantis系統能夠對問題的各個緯度進行統計,包括問題的狀態、項目、嚴重性、報告階段、處理員等,通過這些數據能夠清晰瞭解項目目前的缺陷狀態,若出現超標和即將超標的情況,QA(Quality Assurance)人員將及時對項目報警,分析原因並採取相應措施,使項目處於一個健康狀態。圖2爲應用Mantis軟件對bug進行處理的流程。

4.結語

目前,我國汽車軟件的開發和管理能力與世界水平還存在一定差距,要開發高可靠性與穩定性的軟件產品必須建立良好的軟件工程文化和管理制度。本文基於CMMI開發模型,建立了軟件開發流程及管理制度,有效提高了開發效率,縮短了開發週期。此外,軟件質量保證體系的建立,可通過自查、評審、測試等活動在軟件開發前期發現軟件缺陷,從而大大降低因後期更改而帶來的巨大維護成本,有效地提升了軟件開發質量,加快軟件管理的規範化進程。