監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
項目進度管理軟件

當前位置:工程項目OA系統(tǒng) > 建筑OA系統(tǒng) > 項目進度管理軟件

軟件工程與能力成熟度模型CMM

申請免費試用、咨詢電話:400-8352-114

  20世紀70年代中期,軟件工程管理引起廣泛注意。當時美國國防部曾立題專門研究軟件項目做不好的原因,發(fā)現(xiàn)70%的失敗項目是因為管理不善而引起的,而不是因為技術(shù)實力不夠。他們進而得出一個結(jié)論,即管理是影響軟件研發(fā)項目全局的因素,而技術(shù)只影響局部。這個結(jié)論非常重要。軟件項目失敗的主要原因有:需求定義不明確;缺乏一個好的軟件開發(fā)過程;沒有一個統(tǒng)一領(lǐng)導(dǎo)的產(chǎn)品研發(fā)小組;子合同管理不嚴格;沒有經(jīng)常注意改善軟件過程;對軟件構(gòu)架很不重視;軟件界面定義不善且缺乏合適的控制等等。在關(guān)系到軟件項目成功與否的眾多因素中,軟件度量、工作量估計、項目規(guī)劃、進展控制、需求變化和風(fēng)險管理等都是與工程管理直接相關(guān)的因素。由此可見,軟件工程管理的意義至關(guān)重要。

  軟件項目的特殊性

  軟件工程管理和其它工程管理相比有其特殊性。首先,軟件是知識產(chǎn)品,進度和質(zhì)量都較難度量,生產(chǎn)效率也較難保證。其次,軟件系統(tǒng)復(fù)雜程度也是超乎想象的。例如,宇宙飛船的軟件系統(tǒng)源程序代碼多達2000萬行,如果按過去的生產(chǎn)效率一個人一年只能寫1萬行代碼的話,將需要2000人年的工作量,這是非常驚人的。正因為軟件如此復(fù)雜和難以度量,軟件工程管理的發(fā)展還很不成熟。

  CMM,逐步的成熟

  美國Carnegie Mellon大學(xué)軟件工程研究所(CMU/SEI)主持研究與開發(fā)的CMM/PSP/TSP技術(shù),為軟件工程管理開辟了一條新的途經(jīng)。CMM是英文“Capability Maturity Model”的簡稱,意為能力成熟度模型。CMM的本質(zhì)是軟件管理工程的一個部分。根據(jù)軟件生產(chǎn)的歷史與現(xiàn)狀,CMM框架可用5個不斷進化的層次來表達:其中初始層是混沌的過程,可重復(fù)層是經(jīng)過訓(xùn)練的軟件過程,定義層是標準一致的軟件過程,管理層是可預(yù)測的軟件過程,優(yōu)化層是能持續(xù)改善的軟件過程。任何單位所實施的軟件過程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬于這5個層次中的某一個層次。在某個層次內(nèi)部,也有成熟程度的區(qū)別。在一個較低層次的上沿,很可能與一個較高層次的下沿非常接近,此時由這個較低層次向該較高層次進化也就比較容易。反之,在一個較低層次的下沿向較高層次進化,就比較困難。在CMM框架的不同層次中,需要解決帶有不同層次特征的軟件過程問題。因此,一個軟件開發(fā)單位首先需要了解自己處于哪一個層次,然后才能夠?qū)ΠY下藥地針對該層次的特殊要求解決相關(guān)問題,這樣才能收到事半功倍的軟件過程改善效果。任何軟件開發(fā)單位在致力于軟件過程改善時,只能由所處的層次向緊鄰的上一層次進化,即軟件過程的進化是漸進的,而不能是跳躍的。而且在由某一成熟層次向上一更成熟層次進化時,在原有層次中的那些已經(jīng)具備的能力還應(yīng)該得到保持與發(fā)揚。

  CMM家族包括CMM集成產(chǎn)品集、SACMM(軟件獲取能力成熟度模型)、SECMM(系統(tǒng)工程能力成熟度模型)和IDEAL模型。其中CMM集成產(chǎn)品集為工業(yè)界和政府部門提供了一系列集成產(chǎn)品,以支持軟件過程和產(chǎn)品的改善;SACMM用于單位獲取和采購基于軟件的應(yīng)用系統(tǒng)的軟件過程,美國國防部、陸軍、海軍和一些商用單位都已采用SACMM對他們的獲取能力進行評估;SECMM是描述一個單位為保證實現(xiàn)一個好的系統(tǒng)工程的主要元素;而IDEAL模型則是一個單位用于啟動、規(guī)劃和實現(xiàn)過程改善措施藍圖的模型,概括了建立一個成功的過程改善項目的必要步驟,其中I代表Initiating(啟動)、D代表Diagnosing(診斷)、E代表Establishing(建造)、A代表Acting(措施)、L代表Learning(學(xué)習(xí))。

  美國曾在1995年做過軟件產(chǎn)業(yè)成熟程度的調(diào)查,發(fā)現(xiàn)在美國的軟件產(chǎn)業(yè)中,CMM成熟度等級為初始級的竟占70%,其特征是軟件開發(fā)過程不能預(yù)測,風(fēng)險度高;為可重復(fù)級的占15%,其特征是軟件開發(fā)過程需小心謹慎方能避免失敗;為定義級的所占比例小于10%,其特征是軟件開發(fā)過程相當穩(wěn)定,進展順利且可以預(yù)測;為管理級的所占比例小于5%,其特征是軟件過程預(yù)測準確、值得信賴;為優(yōu)化級的所占比例小于1%,其特征是軟件過程能持續(xù)改善。

  CMM還需綠葉配

  需要注意的是,并不是實施了CMM,軟件項目的質(zhì)量就能有所保障。CMM不是萬能的,它的成功與否,與一個組織內(nèi)部有關(guān)人員的積極參與和創(chuàng)造性活動是密不可分的,而且CMM并未提供實現(xiàn)有關(guān)子過程域所需要的具體知識和技能。因此,個體軟件過程PSP(Personal Software Process)也就應(yīng)運而生。PSP為基于個體和小型群組軟件過程的優(yōu)化提供了具體而有效的途徑,例如如何制訂計劃,如何控制質(zhì)量,如何與其他人相互協(xié)作等等。在軟件設(shè)計階段,PSP的著眼點在于軟件缺陷的預(yù)防,其具體辦法是強化設(shè)計結(jié)束準則,而不是設(shè)計方法的選擇。根據(jù)對參加培訓(xùn)的104位軟件人員的統(tǒng)計數(shù)據(jù)表明,在應(yīng)用了PSP后,軟件中總的缺陷減少了58.0%,在測試階段發(fā)現(xiàn)的缺陷減少了71.9%,生產(chǎn)效率提高了20.8%.PSP的研究結(jié)果還表明,絕大多數(shù)軟件缺陷是由于對問題的錯誤理解或簡單的失誤所造成的,只有很少一部分是由于技術(shù)問題而產(chǎn)生的。而且根據(jù)多年來的軟件工程統(tǒng)計數(shù)據(jù)表明,如果在設(shè)計階段注入一個差錯,則這個差錯在編碼階段要引發(fā)35個新的缺陷,要修復(fù)這些缺陷所花的費用要比修復(fù)這個設(shè)計缺陷所花的費用多一個數(shù)量級。因此,PSP保障軟件產(chǎn)品質(zhì)量的一個重要途徑是提高設(shè)計質(zhì)量。PSP的推出,在軟件工程界引起了極大的轟動,可以說是由定向軟件工程走向定量軟件工程的一個標志。

  僅有CMM和PSP還是不夠的,因此,CMU/SEI又在此基礎(chǔ)上提出了群組軟件過程TSP(Team Software Process)的方法。TSP指導(dǎo)項目組中的成員如何有效地規(guī)劃和管理所面臨的項目開發(fā)任務(wù),并且告訴管理人員如何指導(dǎo)軟件開發(fā)隊伍始終以最佳狀態(tài)來完成工作。TSP實施集體管理與自我管理相結(jié)合的原則,最終目的在于指導(dǎo)一切人員如何在最少的時間內(nèi),以預(yù)定的費用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品;所采用的方法是對群組軟件開發(fā)過程的定義、度量和改進。實施TSP的先決條件有3條:首先,需要有高層主管和各級經(jīng)理的支持,以取得必要的資源;其次,項目組開發(fā)人員需要經(jīng)過PSP的培訓(xùn)并有按TSP工作的愿望和熱情;第三,整個單位在總體上應(yīng)處于CMM二級以上。在實施TSP的過程中,首先要有明確的目標,開發(fā)人員要努力完成已經(jīng)接受的委托任務(wù)。在每一階段開始,要做好工作計劃。如果發(fā)現(xiàn)未能按期按質(zhì)完成計劃,應(yīng)分析原因,以判定問題是由于工作內(nèi)容不合適或工作計劃不實際所引起,還是由于資源不足或主觀努力不夠所引起。開發(fā)小組一方面應(yīng)隨時追蹤項目進展狀態(tài)并進行定期匯報,另一方面應(yīng)經(jīng)常評審自己是否按PSP的原理工作。開發(fā)人員應(yīng)按自己管理自己的原則管理軟件過程,如發(fā)現(xiàn)過程不合適,應(yīng)及時改進,以保證用高質(zhì)量的過程來生產(chǎn)高質(zhì)量的軟件。項目開發(fā)小組則按集體管理的原則進行管理,全體成員都要參加和關(guān)心小組的規(guī)劃、進展的追蹤和決策的制訂等項工作。

  總之,單純實施CMM,永遠不能真正做到能力成熟度的升級,只有將實施CMM與實施PSP和TSP有機地結(jié)合起來,才能發(fā)揮最大的效力。

  目前國內(nèi)對軟件工程管理存在的最大問題是認識不足。管理實際上是一把手工程,需要高層管理人員的足夠重視。據(jù)國外有些大公司的介紹,他們在軟件工程管理方面的投資一般占軟件開發(fā)費用的10%左右,這些都需要得到高層管理人員的支持。而且軟件過程的重大修改也必須由高層管理部門啟動,這是軟件過程改善能否進行到底的關(guān)鍵。此外,軟件過程的改善還有待于全體有關(guān)人員的積極參與,否則不僅他本人將失去從軟件過程改善中獲得提高的機會,甚至還會成為過程改善的阻力。

  除了要認識到過程改善工作是一把手工程這個關(guān)鍵因素外,還應(yīng)認識到軟件過程成熟度的升級本身就是一個過程,且有一個生命周期。因此,過程改善工作必然具有一切過程所具有的固有特征,即需要循序漸進,不能一蹴而就,需要持續(xù)改善,不能停滯不前;需要聯(lián)系實際,不能照本宣科;需要適應(yīng)變革,不能凝固不變。而且我認為,要將CMM/PSP/TSP引入軟件企業(yè),最有效的途徑是要對單位主管和主要開發(fā)人員進行系統(tǒng)的培訓(xùn)。美國 Carnegie Mellon 大學(xué)軟件工程研究所曾經(jīng)嘗試讓軟件工程師通過自學(xué)的方式來進行,但實際上只有不到20%的人能夠堅持到底。另外一個有效的途徑是自頂向下的課程培訓(xùn),即從高層主管依次普及到下面的工程師。

  現(xiàn)在國內(nèi)軟件產(chǎn)業(yè)的發(fā)展可以說已經(jīng)具有一定規(guī)模了,但除了北大方正、東大阿爾派、用友等大企業(yè)外,做軟件工程項目更多的是一些規(guī)模在數(shù)十人左右的中小企業(yè)。也許有人會問,像這樣一些人力物力資源匱乏的企業(yè),如何進行軟件開發(fā)項目的管理呢?我建議這些中小企業(yè)可以以CMM為框架,先從PSP做起,然后在些基礎(chǔ)上逐漸過渡到TSP,以保證CMM/PSP/TSP確實在企業(yè)中生根開花??傊?,我們必須從軟件過程、過程工程的角度來看待CMM的發(fā)展,從經(jīng)濟學(xué)的觀點來分析這個過程的價值。我相信在實施CMM/PSP/TSP的過程中,只要堅持改善軟件工程的管理,并在實踐中注意總結(jié)適合自身的經(jīng)驗,一定能取得很好的效果。

發(fā)布:2007-02-27 09:48    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:

泛普項目進度管理軟件其他應(yīng)用

項目管理工具 禪道項目管理軟件 夢龍項目管理軟件 微軟項目管理軟件 裝飾管理系統(tǒng) 裝修預(yù)算軟件 項目計劃軟件 項目進度管理軟件 軟件項目管理工具 材料管理軟件 工程項目管理軟件系統(tǒng) 項目管理系統(tǒng) 施工管理軟件 建筑工程項目管理軟件 工程管理軟件