摘要:該文先提出了軟件企業研發過程存在的問題以及解決該問題采用的CMMI模型,再通過對某軟件企業實施CMMI過程改進項目的跟蹤,以及對過程改進實施資料的收集與分析,按照CMMI模型連續式表示法的過程域劃分方法進行過程管理支持系統的分析與設計。該系統融合了項目管理,開發管理,支持管理,過程管理幾大功能,可以幫助企業規范軟件研發過程,并支持企業進行持續的組織革新,可促進企業更好的進行軟件過程實施。推進規范執行、問題反饋以及改進深化。
關鍵詞:CMMI;B/S;過程改進;過程管理;過程管理支持系統
中圖分類號:TP315文獻標識碼:A 文章編號:1009-3044(2010)01-88-02
Research on Process Management Support System of Software Company
QIAN Yi, ZHUANG Chang-yuan
(Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)
Abstract: In this paper, it proposed the problems of software development process in enterprises, pointed out that the solution of that problem is the CMMI model. The process management support system is analyzed and designed by tracking a process improvement project of CMMI in a software enterprise, according to the analysis and the data collection of the CMMI process improvement implementation. It is in accordance with the laws of CMMI model process areas, and divided into four major modules which are project management, process management, process support, development management. The system can help enterprises standardize the software development process, support continued organization innovation, encourage enterprises to make better software process implementation. Promote implementation of standard, feedback of the problem and deepening of the improvement.
Key words:CMMI; B/S; process improvement; process management; process management support system
眾所周知,軟件產品不能依靠人們的意念瞬間完成,它需要一個研發過程。軟件過程包括兩類相關過程,一是軟件工程過程,涉及技術相關活動,二是軟件管理過程,涉及管理相關活動。一般企業在軟件開發過程中基本都是按照軟件工程的各個階段進行,經常會發生許多問題。比如,開發時間拖延,費用增加等,軟件產品的開發效率和質量問題一直都阻礙著軟件企業的發展。新方法和新技術的應用一定程度上提高了效率改善了質量,但企業的自身產品過程的不規范制約了這種效用[1]。
為了獲得理想的軟件質量,提高軟件開發效率,以及降低開發成本,軟件企業引進了卡內基梅隆大學軟件工程研究所發布的軟件過程模型CMMI(Capability Maturity Model Integration,能力成熟度模型集成)。遺憾的是,CMMI只描述了一個成熟組織應具有的過程能力,卻不是適合于所有企業執行的標準。不同的企業,需要根據自身實際情況,找出吻合商業目標的,易于執行的軟件過程規范。
本文提出的系統以CMMI的連續式表示法為根據,以管理和控制企業的軟件項目過程和產品中與軟件過程相關的文檔資源為目的,提供軟件過程定制和過程管理等功能,支持軟件企業實施基于CMMI的過程改進,以及過程改進實施后規范組織的軟件過程。
1 系統分析與設計
本系統的提出來自于一個軟件企業的過程改進項目。隨著項目的推進,結合該企業即將進行的CMMI3級評估目標,以及企業自身的軟件標準過程,結合該企業實施過程改進后的各項實際情況,將CMMI各個過程域基于從屬過程管理,軟件工程,過程支持與項目管理的不同領域劃分功能模塊。
1.1 系統體系結構
通過系統的需求分析,依據CMMI連續式表示法,確定該系統需要實現的功能。整個系統包含系統管理,項目管理,開發管理,支持管理,過程管理四個功能模塊。用戶可通過系統的功能訪問界面訪問系統的各個功能模塊。系統總體架構圖如圖1。
1.2 系統層次結構
系統按照層次結構,可以擬分為四個層次,分別為界面層,功能層,執行層,數據庫層。其中界面層飽含登錄界面和各功能界面。系統的層次機構如圖2。
功能層包括系統管理,開發管理,項目管理,支持管理,過程管理幾個功能模塊。執行層提供功能層的執行支持;收集,記錄過程管理過程中的產生的各項數據,文檔;實現對軟件過程的度量,為過程管理提供數據支持。數據庫層為系統提供數據交流和文檔存取。其中執行層是系統的核心部分,它為功能層提供底層支持服務。
系統的使用包括兩個階段,分別是準備階段和實施階段。準備階段主要是構建系統使用環境,包括系統配置,用戶配置,基礎數據建立,組織標準過程的定義及發布。實施階段則是針對具體項目實施管理,通過項目設置,標準過程的啟動,任務執行,數據收集整理及統計分析,發現預定義的組織標準過程的缺陷及不足之處,然后經由系統的過程管理功能對組織標準過程進行改進。
1.3 系統功能模塊
系統管理:對系統的運行所需環境,資源等進行設置和管理。為軟件過程管理做好準備,包括系統配置,基礎數據管理和項目設置等。其中用戶管理對所有系統涉及的用戶進行管理,包括權限設置等;基礎數據管理則用于建立和維護相關基礎數據,供過程管理各活動使用。
項目管理:對已經添加入系統,并且正在實施中的項目的相關信息進行管理。其中項目設置用于完成立項管理和結項管理,即項目的增加、刪除、修改等信息管理和維護任務,可對當前項目狀態進行修改,如關閉已經完成的項目;項目計劃與控制則對項目計劃,涉及的人力資源,進度,成本及設備資源進行管理;風險和變更管理用于進行風險跟蹤和變更控制。
開發管理:對軟件開發過程進行管理。其中需求開發與管理對項目相關的客戶需求進行記錄、管理,并針對客戶需求完成項目需求的設計記錄;設計與編碼管理完成系統設計說明書,模塊設計說明書,模塊功能需求說明書及軟件代碼等的記錄;測試用于完成測試用例及測試報告方面的記錄;評審完成評審跟蹤報告的記錄。
支持管理:對項目的實施全程提供支持。其中產品和質量管理包含產品的缺陷跟蹤,問題跟蹤,測試管理,技術評審,質量保證和發布管理等方面;配置管理則對系統使用的數據庫和網絡等系統基礎信息進行配置,并對系統不同版本進行識別與控制。
過程管理:對軟件過程管理過程中涉及的過程資產進行管理,主要包括文檔和規程兩類資產,最終各種文檔和規程形成企業施行的標準,存入組織財富庫。其中模板和文檔管理:對系統涉及的所有模板和文檔進行管理,包括模板和文檔的編輯,查看,維護等;組織培訓管理用于建立和維護組織培訓能力,包括培訓計劃,培訓申請,審核,批準等;過程改進管理中對CMMI中各種規程對應的標準過程進行管理,提供過程定義,過程查看,過程修訂,過程發布,過程監控等功能。
2 系統實現
2.1 系統的結構設計
一般系統可選擇的結構有B/S結構和C/S結構,通過對兩種結構的分析比較,最終選擇了B/S結構來開發過程管理支持系統。因為CMMI的實施是一個低等級到高等級的過程,組織的過程改進也是一個不斷的持續優化的過程。C/S程序因不可避免的整體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好。而B/S 的多重結構要求構件有相對獨立的功能,能夠相對較好的重用,系統維護開銷小,可實現系統的無縫升級。也就可以滿足系統中所要求的規程定制,過程定義等過程改進管理方面的功能。
2.2 系統開發環境
目前流行的B/S技術有ASP、PHP、Java和Asp.Net等。最終選擇了Java開發語言完成過程管理支持系統的構建。開發工具采用MyEclipse企業級工作平臺,它是功能豐富的J2EE集成開發環境,包括了完備的編碼、調試、測試和發布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。網頁設計采用Dreamweaver,服務器采用Tomcat 6,數據庫服務器采用Microsoft SQL Server 2005。
3 結論
基于B/S結構的過程管理支持系統,參照企業的實際情況,將軟件開發過程進行了規范,使得軟件開發有一個標準,最大限度的保存了企業的過程資產,有利于形成企業過程財富庫,可以解決企業缺乏軟件過程和軟件產品測量歷史數據而無法對新的軟件項目進行工作量和進度安排的估計的問題。系統對軟件需求和質量管理的關注,可以解決軟件產品質量不可測問題。而系統的過程管理功能的完善過程更將會是企業過程改進的推進過程,可以幫助企業持續進行組織革新,促進企業更好的進行軟件過程實施,推進規范的執行,問題反饋以及改進的深化。
參考文獻:
[1] 林銳,彭國明.CMMI和集成化軟件研發管理[M].北京:電子工業出版社,2008:3-17.
[2] 單銀根,王安,黎連業.軟件能力成熟度模型(CMM)與軟件開發技術[M].北京:北京航空航天出版社,2003.
[3] 王占全,黃海.HTML/CSS/JavaScript完全學習手冊[M].北京:電子工業出版社,2007.
[4] 李曉堂,詹峰.基于CMMI的項目過程管理平臺[N].重慶文理學院學報,2008(1,3):32.
[5] 張本豐.基于CMM_CMMI的軟件過程信息化[N].中國計算機報,2004-05-10(D08).
[6] 劉海燕.基于CMMI的軟件外包項目管理支持系統研究[D].遼寧:大連海事大學,2007.
[7] 郭澎.基于CMMI支持過程域的集成過程支持系統IPSS的研究與實現[D].四川:重慶大學,2006.
[8] 任愛華,張明晶,羅曉峰.基于CMMI的組織過程資產庫的開發與應用[J],計算機工程與設計,2008(15,5):3936.
[9] 錢云峰,劉寬宏,覃征.基于度量和知識的軟件過程管理系統的研究[J].計算機工程與設計, 2006(9,3):1601.