2000年夏天中關村電腦節上舉辦了CMM國際論壇,這次論壇把CMM這個軟件項目管理的新概念推到了大家面前,而且迅即便有了"時髦"的光環。一些軟件廠家開始從ISO轉向CMM,一些評論文章把CMM當作國內軟件產業振興的又一次"指望",一些基于CMM的科研成果也逐漸為外人所知,關于CMM的研討會也漸次增多。
CMM最初的提出,與阿帕網(Arp.net)一樣,有著美國官方的背景。美國政府定制大型軟件的投入歷來占相當的比重,但是軟件項目并不是單純的計算機工程,可以簡單地"外包"了事。軟件系統的開發是原始系統的一次變革歷程,是一個過程;而擔當軟件開發的企業,并不只是擔當嫻熟的工匠的角色,他們要從內部了解用戶的需求,與用戶一起走過這個變革的里程,伴隨用戶把手工作業的平臺,遷移到以數字化和網絡化為特征的新平臺的完整過程。
有軟件開發經驗的人們都知道,許多在開發進程中存在的問題不是沒有解決之道,不是沒有恰當的工具,而是沒有恰當的組織和恰當的協調。需求分析是否能夠做得扎實,并不在于業務人員和技術人員能否提出整個問題的輪廓,并把它組織成描述性的文檔,而在于這個需求的認定是否有足夠的組織保障,使得技術開發人員可以說,"按照這個思路往下做,應該沒有問題"。
然而問題往往就出在這里。試圖解決這一問題其實就是卡內基梅隆大學的軟件工程研究所SEI(Software Engineering Institute)提出的軟件能力成熟度模型(Software Capability Maturity Model)追求的目標:軟件開發組織如何提高自己的成熟度水平。這個成熟度水平的衡量標準的難點并不在體系內部,而是在體系的外部和邊界處。
CMM的五個等級標志著企業的逐漸提高的軟件開發能力的成熟度;更有價值的是,它列出了為達到每一個成熟度等級所必須要做的事。CMM的提出者希望企業通過使用這個模型,一個等級一個等級地去提高它們的軟件開發及生產能力。
CMM提出的背景實際是為了解決政府大型軟件項目的承包管理問題,因此其核心內容--關鍵實踐(Key Practice)是針對承包開發這一特定的過程而建構的。值得注意的是,CMM對軟件開發項目最大的貢獻在于,它把組織和管理的精神明確地納入到軟件開發的過程中來,它不是基于目標和方法的管理,而是基于過程的管理。
1987年,軟件研究所(SEI)展示了他們的軟件能力成熟度模型,把軟件過程的成熟度分為五級,目的是給軟件開發從被動地解決碰到的難題的方式,轉化到成熟的、規范化的方式提供一條途徑。這五個等級分別是:
第一級:初始級在初始級,企業一般不具備穩定的軟件開發與維護的環境。常常在遇到問題的時候,就放棄原定的計劃而只專注于編程與測試。
第二級:可重復級在這一級,建立了管理軟件項目的政策以及為貫徹執行這些政策而定的措施;谶^往的項目的經驗來計劃與管理新的項目。
第三級:定義級在這一級,有關軟件工程與管理工程的一個特定的、面對整個企業的軟件開發與維護的過程的文件將被制訂出來。同時,這些過程被集成為一個協調的整體。這就稱為企業的標準軟件過程。
第四級:定量管理級在這一級,企業對產品與過程建立起定量的質量目標,同時在過程中加入規定得很清楚的連續的度量。作為企業的度量方案,要對所有項目的重要的過程活動進行生產率和質量的度量。軟件產品因此具有可預期的高質量。
第五級:(不斷)優化級在這個等級,整個企業將會把重點放在對過程進行不斷的優化。企業會采取主動去找出過程的弱點與長處,以達到預防缺陷的目標。同時,分析有關過程的有效性的資料,作出對新技術的成本與收益的分析,以及提出對過程進行修改的建議。
從這樣一個階梯式演化的模型來看,最重要的一個標準就是軟件開發的過程必須是開放的,以便不斷地進行優化。
文章來源于領測軟件測試網 http://www.kjueaiud.com/