導論: 第一級:初始級 在初始級,企業一般不具備穩定的軟件開發與維護的環境。常常在遇到問題的時候,就放棄原定的計劃而只專注于編程與測試。 第二級:可重復級 在這一級,建立了管理軟件項目的政策以及為貫徹執行這些政策而定的措施?;谶^往的項目的經驗來計劃與管理新的項目。 第三級:定義級 在這一級,有關軟件工程與管理工程的一個特定的、面對整個企業的軟件開發與維護的過程的文件將被制訂出來。同時,這些過程是集成到一個協調的整體。這就稱為企業的標準軟件過程。 第四級:定量管理級 在這一級,企業對產品與過程建立起定量的質量目標,同時在過程中加入規定得很清楚的連續的度量。作為企業的度量方案, 要對所有項目的重要的過程活動進行生產率和質量的度量。軟件 產品因此具有可預期的高質量。 第五級:(不斷)優化級 在這個等級,整個企業將會把重點放在對過程進行不斷的優化。企業會采取主動去找出過程的弱點與長處,以達到預防缺陷 的目標。同時,分析有關過程的有效性的資料,作出對新技術的 成本與收益的分析,以及提出對過程進行修改的建議。
(2)過分的承諾,常作出良好的承諾:如“按照軟件工程方式,有序的工程來工作”;或達到高目標的許諾。但實際上卻出現一系列問題。 (3)遇到危機就放棄原計劃過程,反復編碼和測試。 (4)成功完全依賴個人努力和杰出的專業人才,取決于超常的管理人員和杰出有效的軟件開發開發人員。具體的表現和成果都源 于或者說是決定于個人的能力和他們先前的經驗、知識以及他們的進取心和積極程度。 (5)能力只是個人的特性,而不是開發組織的特性。依靠著個人的品質或承受著巨大的壓力;或找竅門取得成果。但此類人一旦離去,對組織的穩定作用也消失。 (6)軟件過程是不可確定的和不可預見的。軟件成熟性程度處于第一級軟件組織的軟件過程在實際的工作過程中被經常的改變(過程是隨意的)。這類組織也在開發產品,但其成果是不穩定的,不可預見的,不可重復的。也就是說,軟件的計劃、預算、功能和產品的質量都是不可確定和不可預見的。 ◆ 過程 (2)所謂“過程”,往往是“就這么干”而言。 (3)各種條例,規章制度互不協調,甚至互相矛盾。 ◆ 人員 ◆ 技術 ◆ 度量 ◆ 改進方向 (2)首要任務是進行需求管理,建立客戶與軟件項目之間的共同理解,使項目真正反映客戶的要求。 (3)建立各種軟件項目計劃、如軟件開發計劃、軟件質量保證計劃、軟件配置管理計劃、軟件測試計劃、風險管理計劃及過程改進計劃。 CMM第二級:可重復級 ◆ 特征 (2)主要是逐個項目地建立基本過程管理條例來加強過程能力。 (3)建立了基本的項目管理過程來跟蹤成本、進度和功能。 (4)管理工作主要跟蹤軟件經費支出、進度及功能。識別在承諾方面出現的問題。 (5)采用基線(BASELINE)來標志進展、控制完整性。 (6)定義了軟件項目的標準,并相信它,遵循它。 (7)通過子合同建立有效的供求關系。 ◆ 過程 (2)有規則的軟件過程是在一個有效的工程管理系統的控制之下,先前的成功經驗可以被重復。 (3)問題出現時,有能力識別及糾正。承諾是可實現的。 ◆ 人員 (2)理解管理的必要性及對管理的承諾。 (3)注意人員的培訓問題。 ◆ 技術 ◆ 度量 ◆ 改進方向 (2)確定全組織的標準軟件過程,把軟件工程及管理活動集成到一個穩固確定的軟件過程中。從而可以跨項目改進軟件過程效果,也可作為軟件過程剪裁的基礎。 (3)建立軟件工程過程小組(SEPG)長期承擔評估與調整軟件過程的任務,以適應未來軟件項目的要求。 (4)積累數據,建立組織的軟件過程庫及軟件過程相關的文檔庫。 (5)加強培訓。 CMM第三級:確定級 ◆ 特征 (2)軟件過程標準被應用到所有的工程中,用于編制和維護軟件。有的項目也可根據實際情況,對軟件開發組織的標準軟件過程進行剪裁。 (3)在從事一項工程時,產品的生產過程、花費、計劃以及功能都是可以控制的,從而軟件質量也可以控制。 (4)軟件工程過程組(SEPG)負責軟件活動。 (5)在全組織范圍內安排培訓計劃。 ◆ 過程 (2)軟件過程起了預見及防范問題的作用,能使風險的影響最小化。 ◆ 人員 (2)在整個組織內部的所有人對于所定義的軟件過程的活動、任務有深入了解,大大加強了過程能力。 (3)有計劃地按人員的角色進行培訓。 ◆ 技術 ◆ 度量 (2)在全項目中系統性地共享數據。 ◆ 改進方向 (2)通過軟件的質量管理達到軟件的質量目標。 CMM第四級:管理級 ◆ 特征 (2)軟件組織的能力是可預見的,原因是軟件過程是被明確的度量標準所度量和操作。不言而喻,軟件產品的質量就可以預見和得以控制。 (3)組織的度量工程保證所有項目對生產率和質量進行度量、并作為重要的軟件過程活動。 (4)具有良好定義及一致的度量標準來指導軟件過程,并作為評價軟件過程及產品的定量基礎。 (5)在開發組織內已建立軟件過程數據庫,保存收集到的數據,可用于各項目的軟件過程。 ◆ 過程 (2)軟件過程的變化小,一般在可接受的范圍內。 (3)可以預見軟件過程中和產品質量方面的一些趨勢。一旦質量經度量后超出這些標準或是有所違反,可以采用一些方法去改正,以達到良好的目標。 ◆ 人員 ◆ 技術 ◆ 度量 (2)度量標準化。 (3)數據用于定量地理解軟件過程及穩定軟件過程。 ◆ 改進方向 (2)主動進行技術變動管理、標識、選擇和評價新技術,使有效的新技術能在開發組織中施行。 (3)進行過程變動管理,定義過程改進的目的,經常不斷地進行過程改進。
◆ 特征 (2)加強定量分析,通過來自過程的質量反饋和吸收新觀念,新科技,使軟件過程能不斷地得到改進。 (3)根據軟件過程的效果,進行成本/利潤分析,從成功的軟件過程中吸取經驗,加以總結。把最好的創新成績迅速向全組織轉移, 對失敗的案例,由軟件過程小組進行分析以找出原因。 (4)組織能找出過程的不足并預先改進,把失敗的教訓告知全體組 織以防止重復以前的錯誤。 (5)對軟件過程的評價和對標準軟件過程的改進,都在全組織內推 廣。 ◆ 過程 (2)理解并消除產生問題的公共根源,在任何一個系統中都可找到:由于隨機變化造成重復工作、進而導致時間浪費。為了防止浪 費人力可能導致的系統變化。要消除“公共”的無效率根源,防止浪費發生。盡管所有級別都存在這些問題,但這是第五級的焦點。 ◆ 人員 (2)每個人都致力過程改進,人們不再以達到里程碑的成就而滿足, 而要力求減少錯誤率。 ◆ 技術 ◆ 度量 ◆ 改進方向 CMM總結:五層結構圖 我們看到,在第五級上,技術和過程的改進像普通商業活動一樣有計劃、有管理地進行。由于組織不斷的致力于改進過程的能力,所以軟件開發組織的能力可持續改進。這種改進不僅表現在對存在的軟件過程逐步改進,不表現在采用新技術和新方法方面的革新。 畫一個圖吧:(CMM的五層結構圖)
-- |