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

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

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

  引言

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

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

  1.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認證,主要涉及計算機、手機軟體等相關行業。隨著汽車電子的快速發展,其規模和複雜度也日益提高,汽車嵌入式軟體與其它行業軟體相比有著更高的質量要求,其對響應速度及安全性的要求更高。

  2.CMMI軟體開發模型

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

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

  3.CMMI軟體過程改進實施

  汽車軟體因其特殊的應用領域,不同於一般軟體產品,其對產品的安全性和可靠性有著嚴格要求。因此汽車軟體不僅需要一般的軟體工程方法、軟體質量管理手段來提高軟體可靠性,為了滿足針對性,首先要結合自身特點,如組織結構、工作範圍、公司狀況來明確當前需要改進的地方。選擇合適的方法,從人力、物力上保證,對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開發模型,建立了軟體開發流程及管理制度,有效提高了開發效率,縮短了開發週期。此外,軟體質量保證體系的建立,可透過自查、評審、測試等活動在軟體開發前期發現軟體缺陷,從而大大降低因後期更改而帶來的巨大維護成本,有效地提升了軟體開發質量,加快軟體管理的規範化程序。

最近訪問