- 相關(guān)推薦
軟件工程與能力成熟度模型CMM論文
中國計(jì)算機(jī)用戶
20世紀(jì)70年代中期,軟件工程管理引起廣泛注意。當(dāng)時(shí)美國曾立題專門研究軟件項(xiàng)目做不好的原因,發(fā)現(xiàn)70%的失敗項(xiàng)目是因?yàn)楣芾聿簧贫鸬,而不是因(yàn)榧夹g(shù)實(shí)力不夠。他們進(jìn)而得出一個(gè)結(jié)論,即管理是影響軟件研發(fā)項(xiàng)目全局的因素,而技術(shù)只影響局部。這個(gè)結(jié)論非常重要。軟件項(xiàng)目失敗的主要原因有:需求定義不明確;缺乏一個(gè)好的軟件開發(fā)過程;沒有一個(gè)統(tǒng)一領(lǐng)導(dǎo)的產(chǎn)品研發(fā)小組;子合同管理不嚴(yán)格;沒有經(jīng)常注意改善軟件過程;對(duì)軟件構(gòu)架很不重視;軟件界面定義不善且缺乏合適的控制等等。在關(guān)系到軟件項(xiàng)目成功與否的眾多因素中,軟件度量、工作量估計(jì)、項(xiàng)目規(guī)劃、進(jìn)展控制、需求變化和風(fēng)險(xiǎn)管理等都是與工程管理直接相關(guān)的因素。由此可見,軟件工程管理的意義至關(guān)重要。
軟件項(xiàng)目的特殊性
軟件工程管理和其它工程管理相比有其特殊性。首先,軟件是知識(shí)產(chǎn)品,進(jìn)度和質(zhì)量都較難度量,生產(chǎn)效率也較難保證。其次,軟件系統(tǒng)復(fù)雜程度也是超乎想象的。例如,宇宙飛船的軟件系統(tǒng)源程序代碼多達(dá)2000萬行,如果按過去的生產(chǎn)效率一個(gè)人一年只能寫1萬行代碼的話,將需要2000人年的工作量,這是非常驚人的。正因?yàn)檐浖绱藦?fù)雜和難以度量,軟件工程管理的發(fā)展還很不成熟。
CMM,逐步的成熟
美國Carnegie Mellon大學(xué)軟件工程研究所(CMU/SEI)主持研究與開發(fā)的CMM/PSP/TSP技術(shù),為軟件工程管理開辟了一條新的途經(jīng)。CMM是英文“Capability Maturity Model”的簡(jiǎn)稱,意為能力成熟度模型。CMM的本質(zhì)是軟件管理工程的一個(gè)部分。根據(jù)軟件生產(chǎn)的歷史與現(xiàn)狀,CMM框架可用5個(gè)不斷進(jìn)化的層次來表達(dá):其中初始層是混沌的過程,可重復(fù)層是經(jīng)過訓(xùn)練的軟件過程,定義層是標(biāo)準(zhǔn)一致的軟件過程,管理層是可預(yù)測(cè)的軟件過程,優(yōu)化層是能持續(xù)改善的軟件過程。任何單位所實(shí)施的軟件過程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬于這5個(gè)層次中的某一個(gè)層次。在某個(gè)層次內(nèi)部,也有成熟程度的區(qū)別。在一個(gè)較低層次的上沿,很可能與一個(gè)較高層次的下沿非常接近,此時(shí)由這個(gè)較低層次向該較高層次進(jìn)化也就比較容易。反之,在一個(gè)較低層次的下沿向較高層次進(jìn)化,就比較困難。在CMM框架的不同層次中,需要解決帶有不同層次特征的軟件過程問題。因此,一個(gè)軟件開發(fā)單位首先需要了解自己處于哪一個(gè)層次,然后才能夠?qū)ΠY下藥地針對(duì)該層次的特殊要求解決相關(guān)問題,這樣才能收到事半功倍的軟件過程改善效果。任何軟件開發(fā)單位在致力于軟件過程改善時(shí),只能由所處的層次向緊鄰的上一層次進(jìn)化,即軟件過程的進(jìn)化是漸進(jìn)的,而不能是跳躍的。而且在由某一成熟層次向上一更成熟層次進(jìn)化時(shí),在原有層次中的那些已經(jīng)具備的能力還應(yīng)該得到保持與發(fā)揚(yáng)。
CMM家族包括CMM集成產(chǎn)品集、SACMM(軟件獲取能力成熟度模型)、SECMM(系統(tǒng)工程能力成熟度模型)和IDEAL模型。其中CMM集成產(chǎn)品集為工業(yè)界和政府部門提供了一系列集成產(chǎn)品,以支持軟件過程和產(chǎn)品的改善;SACMM用于單位獲取和采購基于軟件的應(yīng)用系統(tǒng)的軟件過程,美國、陸軍、海軍和一些商用單位都已采用SACMM對(duì)他們的獲取能力進(jìn)行評(píng)估;SECMM是描述一個(gè)單位為保證實(shí)現(xiàn)一個(gè)好的系統(tǒng)工程的主要元素;而IDEAL模型則是一個(gè)單位用于啟動(dòng)、規(guī)劃和實(shí)現(xiàn)過程改善措施藍(lán)圖的模型,概括了建立一個(gè)成功的過程改善項(xiàng)目的必要步驟,其中I代表Initiating(啟動(dòng))、D代表Diagnosing(診斷)、E代表Establishing(建造)、A代表Acting(措施)、L代表Learning(學(xué)習(xí))。
美國曾在1995年做過軟件產(chǎn)業(yè)成熟程度的調(diào)查,發(fā)現(xiàn)在美國的軟件產(chǎn)業(yè)中,CMM成熟度等級(jí)為初始級(jí)的竟占70%,其特征是軟件開發(fā)過程不能預(yù)測(cè),風(fēng)險(xiǎn)度高;為可重復(fù)級(jí)的占15%,其特征是軟件開發(fā)過程需小心謹(jǐn)慎方能避免失敗;為定義級(jí)的所占比例小于10%,其特征是軟件開發(fā)過程相當(dāng)穩(wěn)定,進(jìn)展順利且可以預(yù)測(cè);為管理級(jí)的所占比例小于5%,其特征是軟件過程預(yù)測(cè)準(zhǔn)確、值得信賴;為優(yōu)化級(jí)的所占比例小于1%,其特征是軟件過程能持續(xù)改善。
CMM還需綠葉配
需要注意的是,并不是實(shí)施了CMM,軟件項(xiàng)目的質(zhì)量就能有所保障。CMM不是萬能的,它的成功與否,與一個(gè)組織內(nèi)部有關(guān)人員的積極參與和創(chuàng)造性活動(dòng)是密不可分的,而且CMM并未提供實(shí)現(xiàn)有關(guān)子過程域所需要的具體知識(shí)和技能。因此,個(gè)體軟件過程PSP(Personal Software Process)也就應(yīng)運(yùn)而生。PSP為基于個(gè)體和小型群組軟件過程的優(yōu)化提供了具體而有效的途徑,例如如何制訂計(jì)劃,如何控制質(zhì)量,如何與其他人相互協(xié)作等等。在軟件設(shè)計(jì)階段,PSP的著眼點(diǎn)在于軟件缺陷的預(yù)防,其具體辦法是強(qiáng)化設(shè)計(jì)結(jié)束準(zhǔn)則,而不是設(shè)計(jì)方法的選擇。根據(jù)對(duì)參加培訓(xùn)的104位軟件人員的統(tǒng)計(jì)數(shù)據(jù)表明,在應(yīng)用了PSP后,軟件中總的缺陷減少了58.0%,在測(cè)試階段發(fā)現(xiàn)的缺陷減少了71.9%,生產(chǎn)效率提高了20.8%。PSP的研究結(jié)果還表明,絕大多數(shù)軟件缺陷是由于對(duì)問題的錯(cuò)誤理解或簡(jiǎn)單的失誤所造成的,只有很少一部分是由于技術(shù)問題而產(chǎn)生的。而且根據(jù)多年來的軟件工程統(tǒng)計(jì)數(shù)據(jù)表明,如果在設(shè)計(jì)階段注入一個(gè)差錯(cuò),則這個(gè)差錯(cuò)在編碼階段要引發(fā)35個(gè)新的缺陷,要修復(fù)這些缺陷所花的費(fèi)用要比修復(fù)這個(gè)設(shè)計(jì)缺陷所花的費(fèi)用多一個(gè)數(shù)量級(jí)。因此,PSP保障軟件產(chǎn)品質(zhì)量的一個(gè)重要途徑是提高設(shè)計(jì)質(zhì)量。PSP的推出,在軟件工程界引起了極大的轟動(dòng),可以說是由定向軟件工程走向定量軟件工程的一個(gè)標(biāo)志。
僅有CMM和PSP還是不夠的,因此,CMU/SEI又在此基礎(chǔ)上提出了群組軟件過程TSP(Team Software Process)的方法。TSP指導(dǎo)項(xiàng)目組中的成員如何有效地規(guī)劃和管理所面臨的項(xiàng)目開發(fā)任務(wù),并且告訴管理人員如何指導(dǎo)軟件開發(fā)隊(duì)伍始終以最佳狀態(tài)來完成工作。TSP實(shí)施集體管理與自我管理相結(jié)合的原則,最終目的在于指導(dǎo)一切人員如何在最少的時(shí)間內(nèi),以預(yù)定的費(fèi)用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品;所采用的方法是對(duì)群組軟件開發(fā)過程的定義、度量和改進(jìn)。實(shí)施TSP的先決條件有3條:首先,需要有高層主管和各級(jí)經(jīng)理的支持,以取得必要的資源;其次,項(xiàng)目組開發(fā)人員需要經(jīng)過PSP的培訓(xùn)并有按TSP工作的愿望和熱情;第三,整個(gè)單位在總體上應(yīng)處于CMM二級(jí)以上。在實(shí)施TSP的過程中,首先要有明確的目標(biāo),開發(fā)人員要努力完成已經(jīng)接受的委托任務(wù)。在每一階段開始,要做好工作計(jì)劃。如果發(fā)現(xiàn)未能按期按質(zhì)完成計(jì)劃,應(yīng)分析原因,以判定問題是由于工作內(nèi)容不合適或工作計(jì)劃不實(shí)際所引起,還是由于資源不足或主觀努力不夠所引起。開發(fā)小組一方面應(yīng)隨時(shí)追蹤項(xiàng)目進(jìn)展?fàn)顟B(tài)并進(jìn)行定期匯報(bào),另一方面應(yīng)經(jīng)常評(píng)審自己是否按PSP的原理工作。開發(fā)人員應(yīng)按自己管理自己的原則管理軟件過程,如發(fā)現(xiàn)過程不合適,應(yīng)及時(shí)改進(jìn),以保證用高質(zhì)量的過程來生產(chǎn)高質(zhì)量的軟件。項(xiàng)目開發(fā)小組則按集體管理的原則進(jìn)行管理,全體成員都要參加和關(guān)心小組的規(guī)劃、進(jìn)展的追蹤和決策的制訂等項(xiàng)工作。
總之,單純實(shí)施CMM,永遠(yuǎn)不能真正做到能力成熟度的升級(jí),只有將實(shí)施CMM與實(shí)施PSP和TSP有機(jī)地結(jié)合起來,才能發(fā)揮最大的效力。
【軟件工程與能力成熟度模型CMM論文】相關(guān)文章:
系統(tǒng)工程能力成熟度模型04-26
知識(shí)管理成熟度模型研究初探04-30
情緒智力的能力模型04-26