日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

软件能力成熟度模型CMM

發(fā)布時(shí)間:2023/12/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件能力成熟度模型CMM 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

軟件能力成熟度模型是一種對(duì)軟件組織在定義、實(shí)施、度量、控制和改善其軟件過(guò)程的實(shí)踐中各個(gè)發(fā)展階段的描述形成的標(biāo)準(zhǔn)。

軟件簡(jiǎn)介

CMM:其英文全稱為Capability Maturity Model ,英文縮寫為SW-CMM,簡(jiǎn)稱CMM。它是對(duì)于軟件組織在定義、實(shí)施、度量、控制和改善其軟件過(guò)程的實(shí)踐中各個(gè)發(fā)展階段的描述。CMM的核心是把軟件開發(fā)視為一個(gè)過(guò)程,并根據(jù)這一原則對(duì)軟件開發(fā)和維護(hù)進(jìn)行過(guò)程監(jiān)控和研究,以使其更加科學(xué)化、標(biāo)準(zhǔn)化、使企業(yè)能夠更好地實(shí)現(xiàn)商業(yè)目標(biāo)。

分級(jí)

CMM是一種用于評(píng)價(jià)軟件承包能力并幫助其改善軟件質(zhì)量的方法,側(cè)重于軟件開發(fā)過(guò)程的管理及工程能力的提高與評(píng)估。CMM分為五個(gè)等級(jí):一級(jí)為初始級(jí),二級(jí)為可重復(fù)級(jí),三級(jí)為已定義級(jí),四級(jí)為已管理級(jí),五級(jí)為優(yōu)化級(jí)。

CMM/CMMI將軟件過(guò)程的成熟度分為5個(gè)等級(jí),以下是5個(gè)等級(jí)的基本特征:

(1)初始級(jí)(initial)。工作無(wú)序,項(xiàng)目進(jìn)行過(guò)程中常放棄當(dāng)初的計(jì)劃。管理無(wú)章法,缺乏健全的管理制度。開發(fā)項(xiàng)目成效不穩(wěn)定,項(xiàng)目成功主要依靠項(xiàng)目負(fù)責(zé)人的經(jīng)驗(yàn)和能力,他一但離去,工作秩序面目全非。

(2)可重復(fù)級(jí)(Repeatable)。管理制度化,建立了基本的管理制度和規(guī)程,管理工作有章可循。 初步實(shí)現(xiàn)標(biāo)準(zhǔn)化,開發(fā)工作比較好地按標(biāo)準(zhǔn)實(shí)施。 變更依法進(jìn)行,做到基線化,穩(wěn)定可跟蹤,新項(xiàng)目的計(jì)劃和管理基于過(guò)去的實(shí)踐經(jīng)驗(yàn),具有重復(fù)以前成功項(xiàng)目的環(huán)境和條件。

(3)已定義級(jí)(Defined)。開發(fā)過(guò)程,包括技術(shù)工作和管理工作,均已實(shí)現(xiàn)標(biāo)準(zhǔn)化、文檔化。建立了完善的培訓(xùn)制度和專家評(píng)審制度,全部技術(shù)活動(dòng)和管理活動(dòng)均可控制,對(duì)項(xiàng)目進(jìn)行中的過(guò)程、崗位和職責(zé)均有共同的理解 。

(4)已管理級(jí)(Managed)。產(chǎn)品和過(guò)程已建立了定量的質(zhì)量目標(biāo)。開發(fā)活動(dòng)中的生產(chǎn)率和質(zhì)量是可量度的。已建立過(guò)程數(shù)據(jù)庫(kù)。已實(shí)現(xiàn)項(xiàng)目產(chǎn)品和過(guò)程的控制。可預(yù)測(cè)過(guò)程和產(chǎn)品質(zhì)量趨勢(shì),如預(yù)測(cè)偏差,實(shí)現(xiàn)及時(shí)糾正。

(5)優(yōu)化級(jí)(Optimizing)。可集中精力改進(jìn)過(guò)程,采用新技術(shù)、新方法。擁有防止出現(xiàn)缺陷、識(shí)別薄弱環(huán)節(jié)以及加以改進(jìn)的手段。可取得過(guò)程有效性的統(tǒng)計(jì)數(shù)據(jù),并可據(jù)進(jìn)行分析,從而得出最佳方法。

歷史來(lái)源

CMM是由美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所1987年研制成功的,是國(guó)際上最流行最實(shí)用的軟件生產(chǎn)過(guò)程標(biāo)準(zhǔn)和軟件企業(yè)成熟度等級(jí)認(rèn)證標(biāo)準(zhǔn)。我國(guó)已有軟件企業(yè)通過(guò)了CMM標(biāo)準(zhǔn)認(rèn)證 。

SW-CMM(Capability Maturity Model For Software 軟件生產(chǎn)能力成熟度模型,以下簡(jiǎn)稱"CMM"),是87年由美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所(CMU SEI)研究出的一種用于評(píng)價(jià)軟件承包商能力并幫助改善軟件質(zhì)量的方法,其目的是幫助軟件企業(yè)對(duì)軟件工程過(guò)程進(jìn)行管理和改進(jìn),增強(qiáng)開發(fā)與改進(jìn)能力,從而能按時(shí)地、不超預(yù)算地開發(fā)出高質(zhì)量的軟件。

其所依據(jù)的想法是:只要集中精力持續(xù)努力去建立有效的軟件工程過(guò)程的基礎(chǔ)結(jié)構(gòu),不斷進(jìn)行管理的實(shí)踐和過(guò)程的改進(jìn),就可以克服軟件生產(chǎn)中的困難。CMM它是國(guó)際上最流行、最實(shí)用的一種軟件生產(chǎn)過(guò)程標(biāo)準(zhǔn),已經(jīng)得到了眾多國(guó)家以及國(guó)際軟件產(chǎn)業(yè)界的認(rèn)可,成為當(dāng)今企業(yè)從事規(guī)模軟件生產(chǎn)不可缺少的一項(xiàng)內(nèi)容。

CMM通用流行的版本是1.1(Version1.1)。《按照軟件工程研究所(SEI)的原來(lái)計(jì)劃,CMM的改進(jìn)版版本2.0(V2.0)是要在1997年的11月完成的。但是,美國(guó)國(guó)防部辦公室要求軟件工程研究所(SEI)延遲發(fā)放公布CMM版本2.0,直至他們完成另一個(gè)更為緊迫的項(xiàng)目-CMMI。

CMMI(Capability Maturity Model Integration能力成熟度模型集成),是美國(guó)國(guó)防部的一個(gè)設(shè)想。他們希望把所有現(xiàn)存的與將被發(fā)展出來(lái)的各種能力成熟度模型,集成到一個(gè)框架中去。這個(gè)框架用于解決兩個(gè)問(wèn)題:第一,軟件獲取辦法的改革;第二,從集成產(chǎn)品與過(guò)程發(fā)展的角度出發(fā),建立一種包含健全的系統(tǒng)開發(fā)原則的過(guò)程改進(jìn)。

CMM為軟件企業(yè)的過(guò)程能力提供了一個(gè)階梯式的改進(jìn)框架,它基于過(guò)去所有軟件工程過(guò)程改進(jìn)的成果,吸取了以往軟件工程的經(jīng)驗(yàn)教訓(xùn),提供了一個(gè)基于過(guò)程改進(jìn)的框架;它指明了一個(gè)軟件組織在軟件開發(fā)方面需要管理哪些主要工作、這些工作之間的關(guān)系、以及以怎樣的先后次序,一步一步的做好這些工作而使軟件組織走向成熟。

CMM的誕生

信息時(shí)代,軟件質(zhì)量的重要性越來(lái)越為人們所認(rèn)識(shí)。軟件是產(chǎn)品、是裝備、是工具,其質(zhì)量使得顧客滿意,是產(chǎn)品市場(chǎng)開拓、事業(yè)得以發(fā)展的關(guān)鍵。而軟件工程領(lǐng)域在1992年至1997年取得了前所未有的進(jìn)展,其成果超過(guò)軟件工程領(lǐng)域過(guò)去15年來(lái)的成就總和。

軟件管理工程引起廣泛注意源于20世紀(jì)70年代中期。當(dāng)時(shí)美國(guó)國(guó)防部曾立題專門研究軟件項(xiàng)目做不好的原因,發(fā)現(xiàn)70%的項(xiàng)目是因?yàn)楣芾聿簧贫?#xff0c;而并不是因?yàn)榧夹g(shù)實(shí)力不夠,進(jìn)而得出一個(gè)結(jié)論,即管理是影響軟件研發(fā)項(xiàng)目全局的因素,而技術(shù)只影響局部。到了20世紀(jì)90年代中期,軟件管理工程不善的問(wèn)題仍然存在,大約只有10%的項(xiàng)目能夠在預(yù)定的費(fèi)用和進(jìn)度下交付。軟件項(xiàng)目失敗的主要原因有:需求定義不明確;缺乏一個(gè)好的軟件開發(fā)過(guò)程;沒(méi)有一個(gè)統(tǒng)一領(lǐng)導(dǎo)的產(chǎn)品研發(fā)小組;子合同管理不嚴(yán)格;沒(méi)有經(jīng)常注意改善軟件過(guò)程;對(duì)軟件構(gòu)架很不重視;軟件界面定義不善且缺乏合適的控制;軟件升級(jí)暴露了硬件的缺點(diǎn);關(guān)心創(chuàng)新而不關(guān)心費(fèi)用和風(fēng)險(xiǎn);軍用標(biāo)準(zhǔn)太少且不夠完善等等。在關(guān)系到軟件項(xiàng)目成功與否的眾多因素中,軟件度量、工作量估計(jì)、項(xiàng)目規(guī)劃、進(jìn)展控制、需求變化和風(fēng)險(xiǎn)管理等都是與工程管理直接相關(guān)的因素。由此可見,軟件管理工程的意義至關(guān)重要。

軟件管理工程和其它工程管理相比有其特殊性。首先,軟件是知識(shí)產(chǎn)品,進(jìn)度和質(zhì)量都難以度量,生產(chǎn)效率也難以保證。其次,軟件系統(tǒng)復(fù)雜程度也是超乎想象的。因?yàn)檐浖?fù)雜和難以度量,軟件管理工程的發(fā)展還很不成熟。

軟件管理工程的發(fā)展,在經(jīng)歷了從70年代開始以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)以及結(jié)構(gòu)化測(cè)試為特征的結(jié)構(gòu)化生產(chǎn)時(shí)代,到90年代中期,以CMM模型的成熟模型和日益為市場(chǎng)接受為標(biāo)志,已經(jīng)進(jìn)入以過(guò)程成熟模型CMM、個(gè)體軟件過(guò)程PSP和群組軟件過(guò)程TSP為標(biāo)志的以過(guò)程為中心的時(shí)代,而軟件發(fā)展第三個(gè)時(shí)代,及軟件工業(yè)化生產(chǎn)時(shí)代,從90年代中期軟件過(guò)程技術(shù)的成熟和面向?qū)ο蠹夹g(shù)、構(gòu)件技術(shù)的發(fā)展為基礎(chǔ),已經(jīng)漸露端倪,估計(jì)到2005年,可以實(shí)現(xiàn)真正的軟件工業(yè)化生產(chǎn),這個(gè)趨勢(shì)應(yīng)該引起軟件企業(yè)界和有關(guān)部門的高度重視,及早采取措施,跟上世界軟件發(fā)展的腳步。軟件生產(chǎn)轉(zhuǎn)向以改善軟件過(guò)程為中心,是世界各國(guó)軟件產(chǎn)業(yè)或遲或早都要走的道路。

軟件過(guò)程改善是當(dāng)前軟件管理工程的核心問(wèn)題。50多年來(lái)計(jì)算事業(yè)的發(fā)展使人們認(rèn)識(shí)到要高效率、高質(zhì)量和低成本地開發(fā)軟件,必須改善軟件生產(chǎn)過(guò)程。軟件管理工程走過(guò)了一條從70年代開始以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)以及結(jié)構(gòu)化測(cè)試到90年代中期以過(guò)程成熟模型CMM、個(gè)體軟件過(guò)程PSP和群組軟件過(guò)程TSP為標(biāo)志的以過(guò)程為中心向著軟件過(guò)程技術(shù)的成熟和面向?qū)ο蠹夹g(shù)、構(gòu)件技術(shù)的發(fā)展為基礎(chǔ)的真正軟件工業(yè)化生產(chǎn)的道路。軟件生產(chǎn)轉(zhuǎn)向以改善軟件過(guò)程為中心,是世界各國(guó)軟件產(chǎn)業(yè)或遲或早都要走的道路。軟件工業(yè)已經(jīng)或正在經(jīng)歷著"軟件過(guò)程的成熟化",并向"軟件的工業(yè)化"漸進(jìn)過(guò)渡。規(guī)范的軟件過(guò)程是軟件工業(yè)化的必要條件。

軟件過(guò)程研究的是如何將人員、技術(shù)和工具等組織起來(lái),通過(guò)有效的管理手段,提高軟件生產(chǎn)的效率,保證軟件產(chǎn)品的質(zhì)量。由此誕生了軟件過(guò)程的三個(gè)流派:CMU-SEI的CMM/PSP/TSP;ISO 9000質(zhì)量標(biāo)準(zhǔn)體系;ISO/IEC 15504(SPICE)。

CMM/PSP/TSP即軟件能力成熟度模型/ 個(gè)體軟件過(guò)程/群組軟件過(guò)程,是1987年美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發(fā)表的研究成果"承制方軟件工程能力的評(píng)估方法";SO 9000質(zhì)量標(biāo)準(zhǔn)體系是在70年代由歐洲首先采用的,其后在美國(guó)和世界其他地區(qū)也迅速地發(fā)展起來(lái)。歐洲聯(lián)合會(huì)積極促進(jìn)軟件質(zhì)量的制度化,提出了如下ISO9000軟件標(biāo)準(zhǔn)系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002;ISO/IEC 15504(SPICE)是1991年國(guó)際標(biāo)準(zhǔn)化組織采納了一項(xiàng)動(dòng)議,開展調(diào)查研究,按照CMU-SEI的基本思路,產(chǎn)生的技術(shù)報(bào)告ISO/IEC 15504–信息技術(shù)軟件過(guò)程評(píng)估。

學(xué)術(shù)界和工業(yè)界公認(rèn)美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI) 以W.S.Humphrey為首主持研究與開發(fā)的軟件能力成熟度模型CMM是當(dāng)前最好的軟件過(guò)程,已成為業(yè)界事實(shí)上的軟件過(guò)程的工業(yè)標(biāo)準(zhǔn)。

CMM的發(fā)展

1987年美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發(fā)表了CMM/PSP/TSP 技術(shù),為軟件管理工程開辟了一條新的途經(jīng)。

CMM框架用5個(gè)不斷進(jìn)化的層次來(lái)評(píng)定軟件生產(chǎn)的歷史與現(xiàn)狀:其中初始層是混沌的過(guò)程,可重復(fù)層是經(jīng)過(guò)訓(xùn)練的軟件過(guò)程,定義層是標(biāo)準(zhǔn)一致的軟件過(guò)程,管理層是可預(yù)測(cè)的軟件過(guò)程,優(yōu)化層是能持續(xù)改善的軟件過(guò)程。任何單位所實(shí)施的軟件過(guò)程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬于這5個(gè)層次中的某一個(gè)層次。而在某個(gè)層次內(nèi)部,也有成熟程度的區(qū)別。在CMM框架的不同層次中,需要解決帶有不同層次特征的軟件過(guò)程問(wèn)題。因此,一個(gè)軟件開發(fā)單位首先需要了解自己正處于哪一個(gè)層次,然后才能夠?qū)ΠY下藥地針對(duì)該層次的特殊要求解決相關(guān)問(wèn)題,這樣才能收到事半功倍的軟件過(guò)程改善效果。任何軟件開發(fā)單位在致力于軟件過(guò)程改善時(shí),只能由所處的層次向緊鄰的上一層次進(jìn)化。而且在由某一成熟層次向上一更成熟層次進(jìn)化時(shí),在原有層次中的那些已經(jīng)具備的能力還必須得到保持與發(fā)揚(yáng)。

軟件產(chǎn)品質(zhì)量在很大程度上取決于構(gòu)筑軟件時(shí)所使用的軟件開發(fā)和維護(hù)過(guò)程的質(zhì)量。軟件過(guò)程是人員密集和設(shè)計(jì)密集的作業(yè)過(guò)程:若缺乏有素訓(xùn)練,就難以建立起支持實(shí)現(xiàn)成功是軟件過(guò)程的基礎(chǔ),改進(jìn)工作亦將難以取得成效。CMM描述的這個(gè)框架正是勾列出從無(wú)定規(guī)的混沌過(guò)程向訓(xùn)練有素的成熟過(guò)程演進(jìn)的途徑。

CMM包括兩部分"軟件能力成熟度模型"和"能力成熟度模型的關(guān)鍵慣例"。“軟件能力成熟度模型"主要是描述此模型的結(jié)構(gòu),并且給出該模型的基本構(gòu)件的定義。“能力成熟度模型的關(guān)鍵慣例"詳細(xì)描述了每個(gè)"關(guān)鍵過(guò)程方面"涉及的"關(guān)鍵慣例”。這里"關(guān)鍵過(guò)程方面"是指一組相關(guān)聯(lián)的活動(dòng);每個(gè)軟件能力成熟度等級(jí)包含若干個(gè)對(duì)該成熟度等級(jí)至關(guān)重要的過(guò)程方面,它們的實(shí)施對(duì)達(dá)到該成熟度等級(jí)的目標(biāo)起到保證作用。這些過(guò)程域就稱為該成熟度等級(jí)的關(guān)鍵過(guò)程域,反之有非關(guān)鍵過(guò)程域是指對(duì)達(dá)到相應(yīng)軟件成熟度等級(jí)的目標(biāo)不起關(guān)鍵作用。歸納為:互相關(guān)聯(lián)的若干軟件實(shí)踐活動(dòng)和有關(guān)基礎(chǔ)設(shè)施的一個(gè)集合。而"關(guān)鍵慣例"是指使關(guān)鍵過(guò)程方面得以有效實(shí)現(xiàn)和制度化的作用最大的基礎(chǔ)設(shè)施和活動(dòng),對(duì)關(guān)鍵過(guò)程的實(shí)踐起關(guān)鍵作用的方針、規(guī)程、措施、活動(dòng)以及相關(guān)基礎(chǔ)設(shè)施的建立。關(guān)鍵實(shí)踐一般只描述"做什么"而不強(qiáng)制規(guī)定"如何做”。各個(gè)關(guān)鍵慣例按每個(gè)關(guān)鍵過(guò)程方面的5個(gè)"公共特性"(對(duì)執(zhí)行該過(guò)程的承諾,執(zhí)行該過(guò)程的能力,該過(guò)程中要執(zhí)行的活動(dòng),對(duì)該過(guò)程執(zhí)行情況的度量和分析,及證實(shí)所執(zhí)行的活動(dòng)符合該過(guò)程)歸類,逐一詳細(xì)描述。當(dāng)作到了某個(gè)關(guān)鍵過(guò)程的的全部關(guān)鍵慣例就認(rèn)為實(shí)現(xiàn)了該關(guān)鍵過(guò)程,實(shí)現(xiàn)了某成熟度級(jí)及其以低級(jí)所含的全部關(guān)鍵過(guò)程就認(rèn)為達(dá)到到了了該級(jí)。

上面提到了CMM把軟件開發(fā)組織的能力成熟度分為5個(gè)的等級(jí)。除了第1級(jí)外,其他每一級(jí)由幾個(gè)關(guān)鍵過(guò)程方面組成。每一個(gè)關(guān)鍵過(guò)程方面都由上述5種公共特性予以表征。CMM給每個(gè)關(guān)鍵過(guò)程了一些具體目標(biāo)。每個(gè)公共特性歸類的關(guān)鍵慣例是按該關(guān)鍵過(guò)程的具體目標(biāo)選擇和確定的。如果恰當(dāng)?shù)靥幚砹四硞€(gè)關(guān)鍵過(guò)程涉及的全部關(guān)鍵慣例,這個(gè)關(guān)鍵過(guò)程的各項(xiàng)目標(biāo)就達(dá)到了,也就表明該關(guān)鍵過(guò)程實(shí)現(xiàn)了。這種成熟度分級(jí)的優(yōu)點(diǎn)在于,這些級(jí)別明確而清楚地反映了過(guò)程改進(jìn)活動(dòng)的輕重緩急和先后順序。


已剪輯自: https://zhuanlan.zhihu.com/p/86441160

本系列文章為筆記,內(nèi)容根據(jù)北京大學(xué)《軟件工程》MOOC

CMM概念及發(fā)展

認(rèn)識(shí)軟件質(zhì)量

  • 軟件系統(tǒng)的質(zhì)量取決于用來(lái)開發(fā)和改進(jìn)它的過(guò)程和質(zhì)量
  • 要進(jìn)行過(guò)程的改進(jìn),必須對(duì)現(xiàn)有的過(guò)程有所了解,特別是已存在問(wèn)題有客觀的認(rèn)識(shí)
  • 軟件過(guò)程改進(jìn)不是目的,是一個(gè)持續(xù)的過(guò)程

CMM(the Capability Maturity Model for software)軟件能力成熟度模型
過(guò)程是生產(chǎn)產(chǎn)品的機(jī)制。不論是過(guò)程改善還是能力確定,均需要過(guò)程評(píng)估,而過(guò)程評(píng)估通常基于已提出的一些評(píng)估模型。

CMM是什么

  • CMM指的是軟件過(guò)程能力成熟度模型,按軟件過(guò)程的不同成熟度劃分了5個(gè)等級(jí),1級(jí)被認(rèn)為成熟度最低,5級(jí)成熟度最高
  • CMM給出了從混亂、個(gè)人的過(guò)程到成熟的規(guī)范化過(guò)程的一個(gè)框架
  • CMM項(xiàng)目的主要負(fù)責(zé)人指出“軟件組織可以通過(guò)CMM去定義、實(shí)施、度量、控制和改進(jìn)自己的軟件過(guò)程”。人們可以利用該框架進(jìn)行可靠且統(tǒng)一的評(píng)估,實(shí)現(xiàn)對(duì)軟件過(guò)程的度量。
  • CMM體現(xiàn)了軟件工程和軟件管理的優(yōu)秀實(shí)踐
  • CMM不是銀彈,并沒(méi)有涉及的是項(xiàng)目成功的所有重要問(wèn)題

CMM族
有多種基于CMM的模型,例如:

  • SW-CMM(SoftwareCMM)軟件CMM
  • SE-CMM(System Engineering CMM)系統(tǒng)工程CMM
  • SA-CMM(Software Acquisition CMM)軟件采購(gòu)CMM
  • IPD-CMM(Integrated Product Development CMM)集成產(chǎn)品開發(fā)CMM
  • P-CMM(People CMM)人力資源能力成熟度模型
  • 注:通常把SW-CMM和CMM通用
    CMMI的發(fā)展
    SEI在SW-CMM2.0版本形成過(guò)程中,轉(zhuǎn)為了一個(gè)新項(xiàng)目,CMMI,目標(biāo)是集成已有的CMM模型,實(shí)現(xiàn)一個(gè)組織的集成化過(guò)程和改進(jìn)
    2002年發(fā)布的CMMI集成了三個(gè)CMM:SW-CMM,SE-CMM,IPD-CMM
    CMMI1.1集成的目標(biāo)是通過(guò)以下方法降低實(shí)現(xiàn)基于多學(xué)科模型的過(guò)程改進(jìn)成本:

    • 消除不一致
    • 減少重復(fù)
    • 增加清晰度和理解
    • 提供公共術(shù)語(yǔ)
    • 提供一致的風(fēng)格
    • 建立統(tǒng)一的構(gòu)造規(guī)則
    • 維護(hù)公共組件
    • 確保與ISO/IEC 15504一致

    CMM的基本內(nèi)容

    基本思想
    整個(gè)軟件任務(wù)可以看作是一個(gè)過(guò)程,該過(guò)程可以予以控制、測(cè)量和改進(jìn)
    基本概念
    過(guò)程
    過(guò)程是一種手段,通過(guò)該手段可以把人、規(guī)程、方法、設(shè)備以及工具進(jìn)行集成,以產(chǎn)生一種所期望的結(jié)果
    過(guò)程能力

  • 定義:通過(guò)遵循其軟件過(guò)程能夠?qū)崿F(xiàn)預(yù)期結(jié)果的程度
  • 一個(gè)組織的軟件過(guò)程能力,是未來(lái)項(xiàng)目結(jié)果的指示器,給出了一種預(yù)測(cè)該組織承擔(dān)下一個(gè)軟件項(xiàng)目可能結(jié)果的方法。是不同等級(jí)過(guò)程能力的基本指標(biāo)。

  • 低過(guò)程能力的基本特征
    • 非常依賴當(dāng)前的參與人員
    • 軟件過(guò)程與管理均是臨時(shí)準(zhǔn)備
    • 沒(méi)有嚴(yán)格的下一步
    • 復(fù)審和測(cè)試常常不足
    • 交付的“東西”不符合要求
    • 冒險(xiǎn)使用新技術(shù)
    • 產(chǎn)品的質(zhì)量很難預(yù)測(cè)
    • 進(jìn)度延遲和預(yù)算超額
    • 高過(guò)程能力的特征
    • 定義了過(guò)程,建立了使用技術(shù)的基礎(chǔ)
    • 開發(fā)和管理遵循一個(gè)確定的途徑
    • 過(guò)程得到了很好地控制,并得到各方面的支持
    • 實(shí)現(xiàn)了過(guò)程制度化,并不斷改進(jìn)

    具有成熟過(guò)程的組織特征:

    過(guò)程性能
    準(zhǔn)尋一個(gè)過(guò)程所能達(dá)到實(shí)際結(jié)果的一個(gè)測(cè)度,過(guò)程能力和過(guò)程性能之間的關(guān)系

    軟件過(guò)程能力與軟件過(guò)程性能之間的關(guān)系:

  • 一個(gè)是能夠?qū)崿F(xiàn)預(yù)期結(jié)果的程度,一個(gè)是得到的實(shí)際結(jié)果
  • 一個(gè)項(xiàng)目的實(shí)際過(guò)程性能,可能并不能充分反映在其所在組織的整個(gè)過(guò)程能力
  • 過(guò)程成熟度
    一個(gè)特定軟件過(guò)程被明確和有效地定義、管理、測(cè)量和控制的程度
    軟件過(guò)程成熟度指明:

    • 一個(gè)軟件開發(fā)組織軟件過(guò)程能力的增長(zhǎng)潛力——能力提高的基礎(chǔ)性
    • 一個(gè)開發(fā)組織軟件過(guò)程的豐富多樣性——能力提高的可能性
    • 在各開發(fā)項(xiàng)目中運(yùn)用軟件過(guò)程的一致性——能力提高的持續(xù)性
      由于開發(fā)組織通過(guò)運(yùn)用軟件過(guò)程,使各項(xiàng)目執(zhí)行軟件過(guò)程的紀(jì)律性一致地增強(qiáng),導(dǎo)致軟件生產(chǎn)率和質(zhì)量可以得到不斷地改進(jìn)

    組織成熟度

    • 組織成熟度是由一組過(guò)程的組合能力來(lái)表達(dá)的,其中包括支持它們的制度因素

    • 高的組織成熟度,是將組織的一組過(guò)程看作為一個(gè)整體,該整體是高的過(guò)程能力。主要表現(xiàn)為:

      • 不論是開發(fā)還是管理,均有明確、嚴(yán)格的途徑
      • 定義了組織過(guò)程并不斷改善之
      • 得到了管理人員和其他人員的支持
      • 實(shí)施了很好的控制

    能力成熟度等級(jí)

    • 軟件開發(fā)組織在走向成熟的過(guò)程中,幾個(gè)具有明確定義的、可以表征其軟件過(guò)程能力成熟程度的等級(jí)
    • 每一級(jí)包含一組過(guò)程目標(biāo)。當(dāng)一個(gè)軟件開發(fā)組織達(dá)到其中一個(gè)目標(biāo)時(shí),則表明軟件過(guò)程的一個(gè)(或幾個(gè))重要成分得到了實(shí)現(xiàn),從而導(dǎo)致該組織軟件過(guò)程能力的增長(zhǎng)
    • 每一個(gè)成熟度等級(jí)為到達(dá)下一個(gè)等級(jí)提供了基礎(chǔ)

    CMM五級(jí)標(biāo)準(zhǔn)

    五級(jí)框架

  • 成熟度框架

  • 在這一框架中,將過(guò)程能力成熟度分為五級(jí):
  • 初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、已管理、持續(xù)優(yōu)化級(jí)

  • 過(guò)程成熟度框架
    • 描述:一條從無(wú)序的、混亂的過(guò)程達(dá)到成熟的、有紀(jì)律的軟件過(guò)程的進(jìn)化途徑
    • 用途:以軟件過(guò)程成熟度框架,可以導(dǎo)出過(guò)程改進(jìn)策略,為軟件過(guò)程的不斷改進(jìn)的歷程提供了一份導(dǎo)引圖;
    • 基礎(chǔ):軟件過(guò)程成熟度框架的基礎(chǔ)是等級(jí)內(nèi)部結(jié)構(gòu)

    各等級(jí)的基本特征

    • 初始級(jí)

      • 組織:組織通常沒(méi)有提供開發(fā)和維護(hù)軟件的穩(wěn)定的環(huán)境
      • 項(xiàng)目:當(dāng)發(fā)生危機(jī)時(shí),項(xiàng)目通常放棄計(jì)劃的過(guò)程,回復(fù)到編碼和測(cè)試
      • 過(guò)程能力:不可預(yù)測(cè),由于:
  • 軟件開發(fā)無(wú)規(guī)范
  • 軟件過(guò)程不確定、無(wú)計(jì)劃、無(wú)秩序
  • 過(guò)程執(zhí)行不“透明”
  • 需求和進(jìn)度失控
    • 結(jié)果:項(xiàng)目的成敗完全取決于個(gè)人的能力和努力;軟件性能隨個(gè)人具有的技能、知識(shí)和動(dòng)機(jī)的不同而變化;并只能通過(guò)個(gè)人的能力進(jìn)行預(yù)測(cè)

    • 可重復(fù)級(jí)

      • 組織:將軟件項(xiàng)目的有效管理過(guò)程制度化,這使得組織能夠重復(fù)以前項(xiàng)目中的成功實(shí)踐。
      • 項(xiàng)目:配備了基本的軟件管理控制
      • 過(guò)程能力:
  • 可重復(fù)的:即對(duì)當(dāng)前項(xiàng)目的需求分析后制定的,能重復(fù)以前的成功實(shí)踐,盡管在具體過(guò)程中可能有所不同,這是該級(jí)的一個(gè)顯著特征

  • 基本可控的:即對(duì)軟件項(xiàng)目的管理過(guò)程是制度化的。

  • 在項(xiàng)目的規(guī)劃和服務(wù)跟蹤過(guò)程中規(guī)定并設(shè)置了監(jiān)測(cè)點(diǎn);
  • 對(duì)軟件需求和為實(shí)現(xiàn)需求所開發(fā)的軟件產(chǎn)品建立了基線;
  • 為管理、跟蹤軟件項(xiàng)目的成本、進(jìn)度和功能提供了規(guī)范;
  • 提供了當(dāng)不滿足約定時(shí)的識(shí)別方法和糾偏措施;
  • 軟件項(xiàng)目過(guò)程基本上是可視的

  • 過(guò)程是有效的:即對(duì)項(xiàng)目建立了實(shí)用的、已文檔化的、已實(shí)施的、已培訓(xùn)的、已測(cè)量的和能改進(jìn)的過(guò)程
  • 項(xiàng)目的過(guò)程基本是可特征化的

  • 項(xiàng)目是穩(wěn)定的:即對(duì)新項(xiàng)目的策劃和管理,有明確的管理方針和確定的標(biāo)準(zhǔn)(包括甲方),可使項(xiàng)目的進(jìn)展穩(wěn)定。
  • 新項(xiàng)目的策劃和管理是基于成功項(xiàng)目經(jīng)驗(yàn)的

  • 過(guò)程是有紀(jì)律的:即對(duì)所建立和實(shí)施的方針、規(guī)程,對(duì)軟件項(xiàng)目過(guò)程而言,已進(jìn)化為組織的行為。從而使軟件開發(fā)組織能夠保證準(zhǔn)確地執(zhí)行給定的軟件過(guò)程。
  • 總之,2級(jí)的過(guò)程是可視的,即可以獲取項(xiàng)目運(yùn)行狀態(tài)。

    實(shí)現(xiàn)關(guān)鍵過(guò)程域:
    軟件配置管理、軟件質(zhì)量保證、軟件子合同管理、軟件項(xiàng)目跟蹤和監(jiān)督、軟件項(xiàng)目規(guī)劃、需求管理。
    其中:

    • 過(guò)程域:互相關(guān)聯(lián)的若干個(gè)軟件實(shí)施活動(dòng)和有關(guān)基礎(chǔ)設(shè)施的集合

    • 關(guān)鍵過(guò)程域:對(duì)某一成熟等級(jí)將起到至關(guān)重要的過(guò)程域即它們的實(shí)施將對(duì)達(dá)到該成熟度等級(jí)的目標(biāo)起保證作用,這些過(guò)程域被稱為關(guān)鍵過(guò)程域

    • 每一軟件過(guò)程成熟度等級(jí)均包含一組特定的關(guān)鍵過(guò)程域

    • 已定義級(jí)

      • 實(shí)現(xiàn)了可重復(fù)級(jí)(2級(jí))的關(guān)鍵過(guò)程域
      • 實(shí)現(xiàn)了關(guān)鍵過(guò)程域:

    組織過(guò)程焦點(diǎn)、組織過(guò)程定義、培訓(xùn)大綱、集成軟件管理、軟件產(chǎn)品工程、組間協(xié)調(diào)以及同行評(píng)審

    • 主要特征:

      • 組織:在組織范圍內(nèi)開發(fā)和維護(hù)軟件的標(biāo)準(zhǔn)過(guò)程被文檔化,其中包括軟件工程過(guò)程和管理過(guò)程,它們集成為一個(gè)一致的整體
      • 項(xiàng)目:對(duì)組織的標(biāo)準(zhǔn)軟件過(guò)程進(jìn)行裁剪,來(lái)開發(fā)它們自己項(xiàng)目的軟件過(guò)程
    • 過(guò)程能力:是標(biāo)準(zhǔn)的和一致的。

  • 建立了“組織的標(biāo)準(zhǔn)軟件過(guò)程”:
    • 關(guān)注的焦點(diǎn)轉(zhuǎn)向組織的體系和管理
    • 全組織建立了軟件開發(fā)和維護(hù)的標(biāo)準(zhǔn)過(guò)程
    • 軟件工程過(guò)程和軟件管理過(guò)程,被綜合為一個(gè)有機(jī)的整體,并且已經(jīng)文檔化
    • 建立了負(fù)責(zé)組織的軟件過(guò)程活動(dòng)的機(jī)構(gòu):

    在軟件組織中存在負(fù)責(zé)軟件過(guò)程活動(dòng)的機(jī)構(gòu),并具體實(shí)施全組織的過(guò)程制定、維護(hù)和改進(jìn)
    其中包括全組織的人員培訓(xùn),使之具備必須的技能和知識(shí),能高效地履行其職責(zé)。

  • 項(xiàng)目定義的軟件過(guò)程:
  • 項(xiàng)目能夠依據(jù)其環(huán)境和需求等,通過(guò)剪裁組織的標(biāo)準(zhǔn)過(guò)程,使用組織的過(guò)程財(cái)富,自定義項(xiàng)目的軟件過(guò)程。其中,允許有一定的自由度,但任務(wù)間的不匹配情況,應(yīng)在過(guò)程規(guī)劃階段得到標(biāo)識(shí),并進(jìn)行組間協(xié)調(diào)和控制。

  • 組織可視項(xiàng)目的進(jìn)展:
  • 由于項(xiàng)目自定義的軟件過(guò)程將開發(fā)活動(dòng)和管理活動(dòng)綜合為一個(gè)協(xié)調(diào)的、合理定義的軟件過(guò)程,并明確規(guī)定了每一活動(dòng)的輸入、輸出、標(biāo)準(zhǔn)、規(guī)程和驗(yàn)證判據(jù)
    管理者或軟件項(xiàng)目負(fù)責(zé)人能夠洞察所有項(xiàng)目的技術(shù)進(jìn)展、費(fèi)用和進(jìn)度

  • 組織的軟件能力均衡、一致,需求達(dá)到:
    • 整個(gè)組織范圍內(nèi)的軟件開發(fā)和維護(hù)過(guò)程已經(jīng)標(biāo)準(zhǔn)化;
    • 軟件工程技術(shù)活動(dòng)和軟件管理活動(dòng)都實(shí)現(xiàn)文檔化的規(guī)范管理;
    • 組織和項(xiàng)目的軟件過(guò)程都是穩(wěn)定的、可重復(fù)的
    • 這種過(guò)程能力是建立在整個(gè)組織范圍內(nèi)對(duì)已定義過(guò)程中的活動(dòng)、作用和職責(zé)的共同理解基礎(chǔ)之上。

    在整個(gè)組織范圍內(nèi)軟件能力是均衡、一致的

    • 定量管理級(jí)

    實(shí)現(xiàn)了關(guān)鍵過(guò)程域:定量過(guò)程管理和軟件質(zhì)量管理

    • 項(xiàng)目:項(xiàng)目減小過(guò)程性能的變化性,使其進(jìn)入可接受的量化邊界,從而達(dá)到對(duì)產(chǎn)品和過(guò)程的控制
    • 組織:為軟件產(chǎn)品和過(guò)程都設(shè)定了量化的質(zhì)量目標(biāo)
    • 過(guò)程能力:可預(yù)言的
  • 設(shè)置了定量的質(zhì)量目標(biāo):

  • 組織對(duì)軟件產(chǎn)品和過(guò)程設(shè)置了定量的質(zhì)量目標(biāo);
  • 軟件過(guò)程具有明確定義和一致的測(cè)量方法與手段;
  • 可以定量地評(píng)價(jià)項(xiàng)目的軟件過(guò)程和產(chǎn)品質(zhì)量

  • 項(xiàng)目產(chǎn)品質(zhì)量和過(guò)程是受控和穩(wěn)定的:
  • 可以將項(xiàng)目的過(guò)程性能變化限制在一個(gè)定量的、可接受的范圍之內(nèi)。產(chǎn)品質(zhì)量和過(guò)程是受控和穩(wěn)定的

  • 開發(fā)新領(lǐng)域軟件的風(fēng)險(xiǎn)是可定量估計(jì)的:
  • 由于組織的軟件過(guò)程能力是已知的,從而可以利用全組織的軟件過(guò)程數(shù)據(jù)庫(kù),分析并定量地估計(jì)出開發(fā)新領(lǐng)域軟件的風(fēng)險(xiǎn)。

  • 組織的軟件過(guò)程能力是可定量預(yù)測(cè)的:
  • 過(guò)程是經(jīng)測(cè)量的并能在可預(yù)測(cè)的范圍內(nèi)運(yùn)行,一旦發(fā)現(xiàn)過(guò)程和產(chǎn)品質(zhì)量偏離所限制的范圍時(shí),能夠立即采取措施予以糾正

    • 持續(xù)優(yōu)化級(jí)

    實(shí)現(xiàn)了關(guān)鍵過(guò)程域:缺陷預(yù)防、技術(shù)變化管理、過(guò)程變化管理

    • 組織:關(guān)注于持續(xù)的過(guò)程改進(jìn);
    • 項(xiàng)目:軟件過(guò)程被評(píng)價(jià),以防過(guò)失重復(fù)發(fā)生,從中獲得的教訓(xùn)散布給其它項(xiàng)目。
    • 過(guò)程能力:持續(xù)的改進(jìn)
  • 過(guò)程不斷改進(jìn),即組織注重不斷地進(jìn)行過(guò)程改進(jìn)
    • 組織有辦法識(shí)別出過(guò)程的弱點(diǎn),并及時(shí)地予以克服;
    • 能夠利用關(guān)于軟件過(guò)程有效性的數(shù)據(jù),識(shí)別最佳軟件工程實(shí)踐的技術(shù)創(chuàng)新,并推廣到整個(gè)組織。
    • 缺陷能有效預(yù)防

    軟件項(xiàng)目組能分析并確定缺陷的發(fā)生原因,認(rèn)真評(píng)價(jià)軟件過(guò)程,以防止同類缺陷再現(xiàn),并且能將經(jīng)驗(yàn)告知其他項(xiàng)目組。

  • 組織的過(guò)程能力不斷提高
  • 組織既能在現(xiàn)有的基礎(chǔ)上以漸進(jìn)的方式,又能以技術(shù)創(chuàng)新等手段,不斷努力地改善過(guò)程性能。

    關(guān)于級(jí)別的三點(diǎn)說(shuō)明

  • 從第一級(jí)提升到第二級(jí)可能需要幾年時(shí)間,在其它級(jí)別間提升通常依次需要2年時(shí)間。
  • 第一級(jí)組織的成功依賴于組織中人員的能力,對(duì)于所有級(jí)別的組織來(lái)說(shuō),選擇、雇傭、培養(yǎng)和保持有能力的人員都是重要的問(wèn)題,但這超出了CMM的范圍
  • 每個(gè)級(jí)別為以后的級(jí)別有效地和有效率地實(shí)現(xiàn)過(guò)程提供基礎(chǔ)。跳過(guò)級(jí)別是達(dá)不到預(yù)期目標(biāo)的
  • 匯總

    ISO9000標(biāo)準(zhǔn)

    定義
    質(zhì)量保證體系:用于實(shí)現(xiàn)質(zhì)量管理的組織結(jié)構(gòu)、責(zé)任、規(guī)程、過(guò)程和資源;
    創(chuàng)建質(zhì)量保證體系的目的是幫助組織以符合規(guī)格說(shuō)明的方式,保證組織的產(chǎn)品和服務(wù)滿足客戶的期望;
    應(yīng)用
    ISO 9000質(zhì)量管理系統(tǒng)——基本原則和術(shù)語(yǔ)
    ISO 9001質(zhì)量管理系統(tǒng)——需求
    ISO 9004質(zhì)量管理系統(tǒng)——性能改善指南
    ISO 19011質(zhì)量和環(huán)境管理系統(tǒng)審計(jì)指南

    ISO 9001核心過(guò)程
    為了服從ISO 9001標(biāo)準(zhǔn),公司必須記錄他們的過(guò)程與這9個(gè)過(guò)程相對(duì)應(yīng)

    • 產(chǎn)品交付過(guò)程

      • 業(yè)務(wù)獲取
      • 設(shè)計(jì)和開發(fā)
      • 測(cè)試
      • 生產(chǎn)和交付
      • 服務(wù)和支持
    • 支持過(guò)程

      • 業(yè)務(wù)管理
      • 供應(yīng)商管理
      • 庫(kù)存管理
      • 配置管理

    已剪輯自: https://blog.csdn.net/delphizhou/article/details/3035629?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166376418116800182168635%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166376418116800182168635&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-3035629-null-null.142v49control,201v3control_2&utm_term=cmm%E6%98%AF%E4%BB%80%E4%B9%88&spm=1018.2226.3001.4187

    CMM(Capability Maturity Model能力成熟度模型)的本質(zhì)是軟件管理工程的一個(gè)部分。它是對(duì)于軟件組織在定義,實(shí)現(xiàn),度量,控制和改善其軟件過(guò)程的進(jìn)程中各個(gè)發(fā)展階段的描述。他通過(guò)5個(gè)不斷進(jìn)化的層次來(lái)評(píng)定軟件生產(chǎn)的歷史與現(xiàn)狀。CMM的誕生信息時(shí)代,軟件質(zhì)量的重要性越來(lái)越為人們所認(rèn)識(shí)。軟件是產(chǎn)品、是裝備、是工具,其質(zhì)量使得顧客滿意,是產(chǎn)品市場(chǎng)開拓、事業(yè)得以發(fā)展的關(guān)鍵。而軟件工程領(lǐng)域在1992年至1997年取得了前所未有的進(jìn)展,其成果超過(guò)軟件工程領(lǐng)域過(guò)去15年來(lái)的成就總和。軟件管理工程引起廣泛注意源于20世紀(jì)70年代中期。當(dāng)時(shí)美國(guó)國(guó)防部曾立題專門研究軟件項(xiàng)目做不好的原因,發(fā)現(xiàn)70%的項(xiàng)目是因?yàn)楣芾聿簧贫?#xff0c;而并不是因?yàn)榧夹g(shù)實(shí)力不夠,進(jìn)而得出一個(gè)結(jié)論,即管理是影響軟件研發(fā)項(xiàng)目全局的因素,而技術(shù)只影響局部。到了20世紀(jì)90年代中期,軟件管理工程不善的問(wèn)題仍然存在,大約只有10%的項(xiàng)目能夠在預(yù)定的費(fèi)用和進(jìn)度下交付。軟件項(xiàng)目失敗的主要原因有:需求定義不明確;缺乏一個(gè)好的軟件開發(fā)過(guò)程;沒(méi)有一個(gè)統(tǒng)一領(lǐng)導(dǎo)的產(chǎn)品研發(fā)小組;子合同管理不嚴(yán)格;沒(méi)有經(jīng)常注意改善軟件過(guò)程;對(duì)軟件構(gòu)架很不重視;軟件界面定義不善且缺乏合適的控制;軟件升級(jí)暴露了硬件的缺點(diǎn);關(guān)心創(chuàng)新而不關(guān)心費(fèi)用和風(fēng)險(xiǎn);軍用標(biāo)準(zhǔn)太少且不夠完善等等。在關(guān)系到軟件項(xiàng)目成功與否的眾多因素中,軟件度量、工作量估計(jì)、項(xiàng)目規(guī)劃、進(jìn)展控制、需求變化和風(fēng)險(xiǎn)管理等都是與工程管理直接相關(guān)的因素。由此可見,軟件管理工程的意義至關(guān)重要。軟件管理工程和其它工程管理相比有其特殊性。首先,軟件是知識(shí)產(chǎn)品,進(jìn)度和質(zhì)量都難以度量,生產(chǎn)效率也難以保證。其次,軟件系統(tǒng)復(fù)雜程度也是超乎想象的。因?yàn)檐浖?fù)雜和難以度量,軟件管理工程的發(fā)展還很不成熟。軟件管理工程的發(fā)展,在經(jīng)歷了從70年代開始以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)以及結(jié)構(gòu)化測(cè)試為特征的結(jié)構(gòu)化生產(chǎn)時(shí)代,到90年代中期,以CMM模型的成熟模型和日益為市場(chǎng)接受為標(biāo)志,已經(jīng)進(jìn)入以過(guò)程成熟模型CMM、個(gè)體軟件過(guò)程PSP和群組軟件過(guò)程TSP為標(biāo)志的以過(guò)程為中心的時(shí)代,而軟件發(fā)展第三個(gè)時(shí)代,及軟件工業(yè)化生產(chǎn)時(shí)代,從90年代中期軟件過(guò)程技術(shù)的成熟和面向?qū)ο蠹夹g(shù)、構(gòu)件技術(shù)的發(fā)展為基礎(chǔ),已經(jīng)漸露端倪,估計(jì)到2005年,可以實(shí)現(xiàn)真正的軟件工業(yè)化生產(chǎn),這個(gè)趨勢(shì)應(yīng)該引起軟件企業(yè)界和有關(guān)部門的高度重視,及早采取措施,跟上世界軟件發(fā)展的腳步。軟件生產(chǎn)轉(zhuǎn)向以改善軟件過(guò)程為中心,是世界各國(guó)軟件產(chǎn)業(yè)或遲或早都要走的道路。軟件過(guò)程改善是當(dāng)前軟件管理工程的核心問(wèn)題。50多年來(lái)計(jì)算事業(yè)的發(fā)展使人們認(rèn)識(shí)到要高效率、高質(zhì)量和低成本地開發(fā)軟件,必須改善軟件生產(chǎn)過(guò)程。軟件管理工程走過(guò)了一條從70年代開始以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)以及結(jié)構(gòu)化測(cè)試到90年代中期以過(guò)程成熟模型CMM、個(gè)體軟件過(guò)程PSP和群組軟件過(guò)程TSP為標(biāo)志的以過(guò)程為中心向著軟件過(guò)程技術(shù)的成熟和面向?qū)ο蠹夹g(shù)、構(gòu)件技術(shù)的發(fā)展為基礎(chǔ)的真正軟件工業(yè)化生產(chǎn)的道路。軟件生產(chǎn)轉(zhuǎn)向以改善軟件過(guò)程為中心,是世界各國(guó)軟件產(chǎn)業(yè)或遲或早都要走的道路。軟件工業(yè)已經(jīng)或正在經(jīng)歷著"軟件過(guò)程的成熟化",并向"軟件的工業(yè)化"漸進(jìn)過(guò)渡。規(guī)范的軟件過(guò)程是軟件工業(yè)化的必要條件。軟件過(guò)程研究的是如何將人員、技術(shù)和工具等組織起來(lái),通過(guò)有效的管理手段,提高軟件生產(chǎn)的效率,保證軟件產(chǎn)品的質(zhì)量。由此誕生了軟件過(guò)程的三個(gè)流派:CMU-SEI的CMM/PSP/TSP;ISO 9000質(zhì)量標(biāo)準(zhǔn)體系;ISO/IEC 15504(SPICE)。CMM/PSP/TSP即軟件能力成熟度模型/ 個(gè)體軟件過(guò)程/群組軟件過(guò)程,是1987年美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發(fā)表的研究成果"承制方軟件工程能力的評(píng)估方法";SO 9000質(zhì)量標(biāo)準(zhǔn)體系是在70年代由歐洲首先采用的,其后在美國(guó)和世界其他地區(qū)也迅速地發(fā)展起來(lái)。目前,歐洲聯(lián)合會(huì)積極促進(jìn)軟件質(zhì)量的制度化,提出了如下ISO9000軟件標(biāo)準(zhǔn)系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002;ISO/IEC 15504(SPICE)是1991年國(guó)際標(biāo)準(zhǔn)化組織采納了一項(xiàng)動(dòng)議,開展調(diào)查研究,按照CMU-SEI的基本思路,產(chǎn)生的技術(shù)報(bào)告ISO/IEC 15504–信息技術(shù)軟件過(guò)程評(píng)估目前,學(xué)術(shù)界和工業(yè)界公認(rèn)美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI) 以W.S.Humphrey為首主持研究與開發(fā)的軟件能力成熟度模型CMM是當(dāng)前最好的軟件過(guò)程,已成為業(yè)界事實(shí)上的軟件過(guò)程的工業(yè)標(biāo)準(zhǔn)。CMM的發(fā)展1987年美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發(fā)表了CMM/PSP/TSP 技術(shù),為軟件管理工程開辟了一條新的途經(jīng)。CMM框架用5個(gè)不斷進(jìn)化的層次來(lái)評(píng)定軟件生產(chǎn)的歷史與現(xiàn)狀:其中初始層是混沌的過(guò)程,可重復(fù)層是經(jīng)過(guò)訓(xùn)練的軟件過(guò)程,定義層是標(biāo)準(zhǔn)一致的軟件過(guò)程,管理層是可預(yù)測(cè)的軟件過(guò)程,優(yōu)化層是能持續(xù)改善的軟件過(guò)程。任何單位所實(shí)施的軟件過(guò)程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬于這5個(gè)層次中的某一個(gè)層次。而在某個(gè)層次內(nèi)部,也有成熟程度的區(qū)別。在CMM框架的不同層次中,需要解決帶有不同層次特征的軟件過(guò)程問(wèn)題。因此,一個(gè)軟件開發(fā)單位首先需要了解自己正處于哪一個(gè)層次,然后才能夠?qū)ΠY下藥地針對(duì)該層次的特殊要求解決相關(guān)問(wèn)題,這樣才能收到事半功倍的軟件過(guò)程改善效果。任何軟件開發(fā)單位在致力于軟件過(guò)程改善時(shí),只能由所處的層次向緊鄰的上一層次進(jìn)化。而且在由某一成熟層次向上一更成熟層次進(jìn)化時(shí),在原有層次中的那些已經(jīng)具備的能力還必須得到保持與發(fā)揚(yáng)。軟件產(chǎn)品質(zhì)量在很大程度上取決于構(gòu)筑軟件時(shí)所使用的軟件開發(fā)和維護(hù)過(guò)程的質(zhì)量。軟件過(guò)程是人員密集和設(shè)計(jì)密集的作業(yè)過(guò)程:若缺乏有素訓(xùn)練,就難以建立起支持實(shí)現(xiàn)成功是軟件過(guò)程的基礎(chǔ),改進(jìn)工作亦將難以取得成效。CMM描述的這個(gè)框架正是勾列出從無(wú)定規(guī)的混沌過(guò)程向訓(xùn)練有素的成熟過(guò)程演進(jìn)的途徑。CMM包括兩部分"軟件能力成熟度模型"和"能力成熟度模型的關(guān)鍵慣例"。“軟件能力成熟度模型"主要是描述此模型的結(jié)構(gòu),并且給出該模型的基本構(gòu)件的定義。“能力成熟度模型的關(guān)鍵慣例"詳細(xì)描述了每個(gè)"關(guān)鍵過(guò)程方面"涉及的"關(guān)鍵慣例”。這里"關(guān)鍵過(guò)程方面"是指一組相關(guān)聯(lián)的活動(dòng);每個(gè)軟件能力成熟度等級(jí)包含若干個(gè)對(duì)該成熟度等級(jí)至關(guān)重要的過(guò)程方面,它們的實(shí)施對(duì)達(dá)到該成熟度等級(jí)的目標(biāo)起到保證作用。這些過(guò)程域就稱為該成熟度等級(jí)的關(guān)鍵過(guò)程域,反之有非關(guān)鍵過(guò)程域是指對(duì)達(dá)到相應(yīng)軟件成熟度等級(jí)的目標(biāo)不起關(guān)鍵作用。歸納為:互相關(guān)聯(lián)的若干軟件實(shí)踐活動(dòng)和有關(guān)基礎(chǔ)設(shè)施的一個(gè)集合。而"關(guān)鍵慣例"是指使關(guān)鍵過(guò)程方面得以有效實(shí)現(xiàn)和制度化的作用最大的基礎(chǔ)設(shè)施和活動(dòng),對(duì)關(guān)鍵過(guò)程的實(shí)踐起關(guān)鍵作用的方針、規(guī)程、措施、活動(dòng)以及相關(guān)基礎(chǔ)設(shè)施的建立。關(guān)鍵實(shí)踐一般只描述"做什么"而不強(qiáng)制規(guī)定"如何做”。各個(gè)關(guān)鍵慣例按每個(gè)關(guān)鍵過(guò)程方面的5個(gè)"公共特性"(對(duì)執(zhí)行該過(guò)程的承諾,執(zhí)行該過(guò)程的能力,該過(guò)程中要執(zhí)行的活動(dòng),對(duì)該過(guò)程執(zhí)行情況的度量和分析,及證實(shí)所執(zhí)行的活動(dòng)符合該過(guò)程)歸類,逐一詳細(xì)描述。當(dāng)作到了某個(gè)關(guān)鍵過(guò)程的的全部關(guān)鍵慣例就認(rèn)為實(shí)現(xiàn)了該關(guān)鍵過(guò)程,實(shí)現(xiàn)了某成熟度級(jí)及其以低級(jí)所含的全部關(guān)鍵過(guò)程就認(rèn)為達(dá)到到了了該級(jí)。圖一 CMM關(guān)系描述圖
      
    上面提到了CMM把軟件開發(fā)組織的能力成熟度分為5個(gè)的等級(jí)。除了第1級(jí)外,其他每一級(jí)由幾個(gè)關(guān)鍵過(guò)程方面組成。每一個(gè)關(guān)鍵過(guò)程方面都由上述5種公共特性予以表征。CMM給每個(gè)關(guān)鍵過(guò)程了一些具體目標(biāo)。按每個(gè)公共特性歸類的關(guān)鍵慣例是按該關(guān)鍵過(guò)程的具體目標(biāo)選擇和確定的。如果恰當(dāng)?shù)靥幚砹四硞€(gè)關(guān)鍵過(guò)程涉及的全部關(guān)鍵慣例,這個(gè)關(guān)鍵過(guò)程的各項(xiàng)目標(biāo)就達(dá)到了,也就表明該關(guān)鍵過(guò)程實(shí)現(xiàn)了。這種成熟度分級(jí)的優(yōu)點(diǎn)在于,這些級(jí)別明確而清楚地反映了過(guò)程改進(jìn)活動(dòng)的輕重緩急和先后順序。圖二 CMM等級(jí)模型圖對(duì)于CMM的作用歸納兩個(gè)主要方面: 科學(xué)地評(píng)價(jià)軟件開發(fā)單位的軟件能力成熟等級(jí); 幫助軟件開發(fā)單位進(jìn)行自檢,了解自己的強(qiáng)項(xiàng)和弱項(xiàng),從而不斷完善和改進(jìn)單位的軟件開發(fā)過(guò)程,確保軟件質(zhì)量,提高軟件開發(fā)能效率。由于CMM并未提供有關(guān)實(shí)現(xiàn)CMM關(guān)鍵過(guò)程域所需的具體知識(shí)和技能,因此,美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI) 以W.S.Humphrey為首主持研究與開發(fā)了個(gè)體軟件過(guò)程PSP(Personal software process)和群組軟件過(guò)程TSP(Team Software Process),形成CMM/PSP/TSP體系。PSP 個(gè)體軟件過(guò)程(Personal Software Process)是由美國(guó)Carnegie Mellon大學(xué)軟件工程研究所(CMU/SEI)的Watts s. Humphrey領(lǐng)導(dǎo)開發(fā)的,于1995年它的推出,在軟件工程界引起了極大的轟動(dòng),可以說(shuō)是由定向軟件工程走向定量軟件工程的一個(gè)標(biāo)志。PSP是一種可用于控制、管理和改進(jìn)個(gè)人工作方式的自我改善過(guò)程,是一個(gè)包括軟件開發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。 PSP為基于個(gè)體和小型群組軟件過(guò)程的優(yōu)化提供了具體而有效的途徑,例如如何制訂計(jì)劃,如何控制質(zhì)量,如何與其他人相互協(xié)作等等。在軟件設(shè)計(jì)階段, PSP的著眼點(diǎn)在于軟件缺陷的預(yù)防,其具體辦法是強(qiáng)化設(shè)計(jì)結(jié)束準(zhǔn)則,而不是設(shè)計(jì)方法的選擇。PSP保障軟件產(chǎn)品質(zhì)量的一個(gè)重要途徑是提高設(shè)計(jì)質(zhì)量。PSP能夠說(shuō)明個(gè)體軟件過(guò)程的原則;幫助軟件工程師作出準(zhǔn)確的計(jì)劃;確定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟;建立度量個(gè)體軟件過(guò)程改善的基準(zhǔn);確定過(guò)程的改變對(duì)軟件工程師能力的影響。TSP 群組軟件過(guò)程TSP(Team Software Process)指導(dǎo)項(xiàng)目組中的成員如何有效地規(guī)劃和管理所面臨的項(xiàng)目開發(fā)任務(wù),并且告訴管理人員如何指導(dǎo)軟件開發(fā)隊(duì)伍。始終以最佳狀態(tài)來(lái)完成工作。TSP實(shí)施集體管理與自己管理自己相結(jié)合的原則,最終目的在于指導(dǎo)開發(fā)人員如何在最少的時(shí)間內(nèi),以預(yù)定的費(fèi)用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,所采用的方法是對(duì)群組開發(fā)過(guò)程的定義、度量和改進(jìn)。TSP致力于開發(fā)高質(zhì)量的產(chǎn)品,建立、管理和授權(quán)項(xiàng)目小組,并且指導(dǎo)他們?nèi)绾卧跐M足計(jì)劃費(fèi)用的前提下,在承諾的期限范圍內(nèi),不斷生產(chǎn)并交付高質(zhì)量的產(chǎn)品。圖三 CMM、PSP和TSP框架圖CMM是過(guò)程改善的第一步,它提供了評(píng)價(jià)組織的能力、識(shí)別優(yōu)先改善需求和追蹤改善進(jìn)展的管理方式。企業(yè)只有開始CMM改善后,才能接受需要規(guī)劃的事實(shí),認(rèn)識(shí)到質(zhì)量的重要性,才能注重對(duì)員工經(jīng)常進(jìn)行培訓(xùn),合理分配項(xiàng)目人員,并且建立起有效的項(xiàng)目小組。然而,它實(shí)現(xiàn)的成功與否與組織內(nèi)部有關(guān)人員的積極參加和創(chuàng)造性活動(dòng)密不可分。PSP能夠指導(dǎo)軟件工程師如何保證自己的工作質(zhì)量,估計(jì)和規(guī)劃自身的工作,度量和追蹤個(gè)人的表現(xiàn),管理自身的軟件過(guò)程和產(chǎn)品質(zhì)量。經(jīng)過(guò)PSP學(xué)習(xí)和實(shí)踐的正規(guī)訓(xùn)練,軟件工程師們能夠在他們參與的項(xiàng)目工作之中充分運(yùn)用PSP,從而有助于CMM目標(biāo)的實(shí)現(xiàn)。TSP結(jié)合了CMM的管理方法和PSP的工程技能,通過(guò)告訴軟件工程師如何將個(gè)體過(guò)程結(jié)合進(jìn)小組軟件過(guò)程,并將后者與 組織進(jìn)而整個(gè)管理系統(tǒng)相聯(lián)系;通過(guò)告訴管理層如何支持和授權(quán)項(xiàng)目小組,堅(jiān)持高質(zhì)量的工作,并且依據(jù)數(shù)據(jù)進(jìn)行項(xiàng) 目的管理,向組織展示如何應(yīng)用CMM的原則和PSP的技能去生產(chǎn)高質(zhì)量的產(chǎn)品。總之,單純實(shí)施CMM,永遠(yuǎn)不能真正做到能力成熟度的升級(jí),只有將實(shí)施CMM與實(shí)施PSP和TSP有機(jī)地結(jié)合起來(lái),才能發(fā)揮最大的效力。因此,軟件過(guò)程框架應(yīng)該是CMM/PSP/TSP的有機(jī)集成。實(shí)施CMM的必要性軟件開發(fā)的風(fēng)險(xiǎn)之所以大,是由于軟件過(guò)程能力低,其中最關(guān)鍵的問(wèn)題在于軟件開發(fā)組織不能很好地管理其軟件過(guò)程,從而使一些好的開發(fā)方法和技術(shù)起不到預(yù)期的作用。而且項(xiàng)目的成功也是通過(guò)工作組的杰出努力,所以僅僅建立在可得到特定人員上的成功不能為全組織的生產(chǎn)和質(zhì)量的長(zhǎng)期提高打下基礎(chǔ),必須在建立有效的軟件如管理工程實(shí)踐和管理實(shí)踐的基礎(chǔ)設(shè)施方面,堅(jiān)持不懈地努力,才能不斷改進(jìn),才能持續(xù)地成功。軟件質(zhì)量是一模糊的、捉摸不定的概念。我們常常聽說(shuō):某某軟件好用, 某某軟件不好用;某某某軟件功能全、結(jié)構(gòu)合理, 某某某軟件功能單一、操作困難……這些模模糊糊的語(yǔ)言不能算作是軟件質(zhì)量評(píng)價(jià),更不能算作是軟件質(zhì)量科學(xué)的定量的評(píng)價(jià)。軟件質(zhì)量,乃至于任何產(chǎn)品質(zhì)量,都是一個(gè)很復(fù)雜的事物性質(zhì)和行為。產(chǎn)品質(zhì)量,包括軟件質(zhì)量,是人們實(shí)踐產(chǎn)物的屬性和行為,是可以認(rèn)識(shí),可以科學(xué)地描述的。可以通過(guò)一些方法和人類活動(dòng),來(lái)改進(jìn)質(zhì)量。實(shí)施CMM是改進(jìn)軟件質(zhì)量的有效方法:控制軟件生產(chǎn)過(guò)程、提高軟件生產(chǎn)者組織性和軟件生產(chǎn)者個(gè)人能力的有效合理的方法軟件工程和很多研究領(lǐng)域及實(shí)際問(wèn)題有關(guān),主要相關(guān)領(lǐng)域和因素有:需求工程(RE:REQUIREMENTS ENGINEERING)。理論上,需求工程是應(yīng)用已被證明的原理、技術(shù)和工具,幫助系統(tǒng)分析人員理解問(wèn)題或描述產(chǎn)品的外在行為。軟件復(fù)用(SR:SOFTWARE REUSE)。定義為利用工程知識(shí)或方法,由一已存在的系統(tǒng),來(lái)建造一新系統(tǒng)。這種技術(shù),可改進(jìn)軟件產(chǎn)品質(zhì)量和生產(chǎn)率。還有軟件檢查、軟件計(jì)量、軟件可靠性、軟件可維修性、軟件工具評(píng)估和選擇等。CMM與ISO 9001的比較前面提到軟件過(guò)程的三個(gè)流派:CMU-SEI的CMM/PSP/TSP;ISO 9000質(zhì)量標(biāo)準(zhǔn)體系;ISO/IEC 15504(SPICE)。這里主要比較一下CMM和ISO 9000質(zhì)量標(biāo)準(zhǔn)體系中的9001的異同。ISO 9000族國(guó)際標(biāo)準(zhǔn)是在總結(jié)了英國(guó)的國(guó)家標(biāo)準(zhǔn)基礎(chǔ)之上產(chǎn)生的,因此,歐洲通過(guò)ISO 9000認(rèn)證的企業(yè)數(shù)量最多,約占全世界的一半以上。受此影響,相當(dāng)多的歐洲軟件企業(yè)選擇了ISO 9001認(rèn)證。在基本原理方面,ISO 9001和CMM都十分關(guān)注軟件產(chǎn)品質(zhì)量和過(guò)程改進(jìn)。尤其是ISO 9000:2000版標(biāo)準(zhǔn)增加持續(xù)改進(jìn)、質(zhì)量目標(biāo)的量化等方面的要求后,在基本思路上和CMM更加接近。它們之間的主要的差別是狀態(tài)上的差別。ISO 9001側(cè)重于"機(jī)構(gòu)保證在設(shè)計(jì)、開發(fā)、生產(chǎn)、安裝及服務(wù)過(guò)程中與指定的要求一致"。而CMM側(cè)重于"支持一個(gè)機(jī)構(gòu)評(píng)估及改進(jìn)他們的系統(tǒng)的工程能力"及"指出機(jī)構(gòu)選擇的模型的不足之處"。CMM和ISO 9001闡述了一個(gè)機(jī)構(gòu)應(yīng)該將他們?nèi)绾巫龅挠^點(diǎn)寫下來(lái),然后去做,最后檢查他們是否按照他們說(shuō)的去做了。ISO 9001所關(guān)注意的是確保合格的人員所作的過(guò)程記錄是有效的,并且開發(fā)生產(chǎn)出滿足質(zhì)量要求的產(chǎn)品。CMM在能力層次概念之間切開,作一件事情是第1級(jí)層次的概念,寫下所做的事情是第2級(jí)層次的概念,有一定組織水平的寫作是第三級(jí)層次的概念,等等。SE-CMM同樣衡量管理能力,如第四級(jí)層次,連續(xù)處理問(wèn)題的能力,第五級(jí)層次的概念。這兩個(gè)標(biāo)準(zhǔn)都涉及了產(chǎn)品的開發(fā)和產(chǎn)品的質(zhì)量,但CMM在產(chǎn)品的設(shè)計(jì)和開發(fā)的細(xì)節(jié)作了較多要求,而ISO 9001在產(chǎn)品的開發(fā)過(guò)程和產(chǎn)品本身的質(zhì)量細(xì)節(jié)作了較多要求。CMM 建立了系統(tǒng)工程能力模型第三級(jí)模型,而ISO 9001則無(wú)此內(nèi)容。CMM沒(méi)有對(duì)產(chǎn)品存儲(chǔ)設(shè)備的測(cè)試作出要求,而ISO 9001則有此要求。ISO 9001要求與質(zhì)量管理體系相關(guān)的所有工作人員的經(jīng)過(guò)授權(quán)并簽字的質(zhì)量記錄(見條款4.1.2.1)。它還要求足夠的資源,包括提供必要的員工培訓(xùn)等(見條款4.1.2.2)。第四節(jié)要求對(duì)機(jī)構(gòu)的每個(gè)過(guò)程都要有記錄。這是SE-CMM第2級(jí)的基本要求。從ISO 9001的角度來(lái)看SE-CMM,至少SE-CMM的第二級(jí)及以上級(jí)別才能和ISO 9001相提并論。由以上可以得出ISO 9001和CMM既有區(qū)別又相互聯(lián)系,兩者不可簡(jiǎn)單的互相替代;取得ISO 9001認(rèn)證并不意味著完全滿足CMM某個(gè)等級(jí)的要求 ;取得CMM第2級(jí)(或第3級(jí))不能籠統(tǒng)的談可以滿足ISO 9001的要求 。  CMM在中國(guó)的現(xiàn)狀中國(guó)生產(chǎn)力促進(jìn)協(xié)會(huì)、北航SEI、中科院研究SEI等科研機(jī)構(gòu)已于近幾年在北京、上海、廣州和深圳等地先后舉辦過(guò)多次報(bào)告會(huì)和研討會(huì),組織過(guò)課程學(xué)習(xí)和應(yīng)用實(shí)驗(yàn),開展了軟件過(guò)程方面的研究與開發(fā)工作,并發(fā)表了多篇的研究成果和學(xué)術(shù)論文,在軟件質(zhì)量保障平臺(tái)支撐環(huán)境也取得了一定的成果。近兩年來(lái),CMM在我國(guó)獲得了各界越來(lái)越多關(guān)注,業(yè)界有過(guò)多次關(guān)于CMM的討論,2000年6月國(guó)務(wù)院頒發(fā)的《鼓勵(lì)軟件產(chǎn)業(yè)和集成電路產(chǎn)業(yè)發(fā)展的若干政策》對(duì)中國(guó)軟件企業(yè)申請(qǐng)CMM認(rèn)證給予了積極的支持和推動(dòng)作用,第17條規(guī)定"對(duì)軟件出口型企業(yè)CMM認(rèn)證費(fèi)用予以適當(dāng)支持。"2000年中國(guó)村電腦節(jié)上還有CMM專題論壇,吸引了眾多業(yè)內(nèi)人士。鼎新、東大阿爾派、聯(lián)想、方正、金蝶、用友、浪潮、創(chuàng)智、華為、東大阿爾派等大型集團(tuán)或企業(yè)等都從1997—2000年起批企業(yè)都在進(jìn)行研究、實(shí)驗(yàn)或?qū)嵤╊A(yù)評(píng)估。其中鼎新公司從1997年著手進(jìn)行CMM認(rèn)證工作。1999年7月通過(guò)第三方認(rèn)證機(jī)構(gòu)的CMM2認(rèn)證。東大阿爾派公司于2000年10月通過(guò)第三方認(rèn)證機(jī)構(gòu)的CMM2認(rèn)證。2001年1月,聯(lián)想軟件經(jīng)過(guò)英國(guó)路透集團(tuán)的嚴(yán)格評(píng)估,順利通過(guò)CMM2認(rèn)證。2001年6月26日,沈陽(yáng)東軟軟件股份有限公司(原沈陽(yáng)東大阿爾派軟件股份有限公司)正式通過(guò)了CMM3級(jí)認(rèn)證,成為中國(guó)首家通過(guò)CMM3級(jí)的軟件企業(yè)。總體上講,國(guó)內(nèi)對(duì)軟件過(guò)程理論的討論與實(shí)踐正在展開,目標(biāo)是使軟件的質(zhì)量管理和控制達(dá)到國(guó)際先進(jìn)水平,中國(guó)的軟件產(chǎn)業(yè)獲得可持續(xù)發(fā)展的能力。專家分析,在未來(lái)兩三年內(nèi),國(guó)內(nèi)軟件業(yè)勢(shì)必將出現(xiàn)實(shí)施CMM的高潮。從這一趨勢(shì)看,中國(guó)的軟件企業(yè)已經(jīng)開始走上標(biāo)準(zhǔn)化、規(guī)范化、國(guó)際化的發(fā)展道路,中國(guó)軟件業(yè)已經(jīng)面臨一個(gè)整體突破的時(shí)代。但是我們應(yīng)該看到目前國(guó)內(nèi)對(duì)軟件管理工程存在的最大問(wèn)題是認(rèn)識(shí)不足。管理實(shí)際上是一把手工程,需要高層管理人員的足夠重視。而且軟件過(guò)程的重大修改也必須由高層管理部門啟動(dòng),這是軟件過(guò)程改善能否進(jìn)行到底的關(guān)鍵。此外,軟件過(guò)程的改善還有待于全體有關(guān)人員的積極參與。除了要認(rèn)識(shí)到過(guò)程改善工作是一把手工程這個(gè)關(guān)鍵因素外,還應(yīng)認(rèn)識(shí)到軟件過(guò)程成熟度的升級(jí)本身就是一個(gè)過(guò)程,且有一個(gè)生命周期。過(guò)程改善工作需要循序漸進(jìn),不能一蹴而就,需要持續(xù)改善,不能停滯不前;需要聯(lián)系實(shí)際,不能照本宣科;需要適應(yīng)變革,不能凝固不變。一個(gè)有效的途徑是自頂向下的課程培訓(xùn),即從高層主管依次普及到下面的工程師。CMM實(shí)施的思考上面重點(diǎn)介紹了CMM,但是提醒注意的是,并不是實(shí)施了CMM,軟件項(xiàng)目的質(zhì)量就能有所保障。CMM是一種資質(zhì)認(rèn)證,它可以證明一個(gè)軟件企業(yè)對(duì)整個(gè)軟件開發(fā)過(guò)程的控制能力。按照CMM的思想進(jìn)行管理與通過(guò)CMM認(rèn)證并不能劃等號(hào)。CMM認(rèn)證并不僅僅是在評(píng)估軟件企業(yè)的生產(chǎn)能力,整個(gè)評(píng)估過(guò)程同時(shí)還在幫助企業(yè)完善已經(jīng)按照CMM建立的科學(xué)工作流程,發(fā)現(xiàn)企業(yè)在軟件質(zhì)量、生產(chǎn)進(jìn)度以及成本控制等方面可能存在的問(wèn)題,并且及時(shí)予以糾正。認(rèn)證的過(guò)程是糾正企業(yè)偏差的過(guò)程,一定不能把CMM認(rèn)證當(dāng)作一種考試、一種文憑,而是要看成一項(xiàng)有利于企業(yè)今后發(fā)展的投資,借此來(lái)改變中國(guó)軟件業(yè)長(zhǎng)久以來(lái)形成的積弊。實(shí)施CMM對(duì)軟件企業(yè)的發(fā)展起著至關(guān)重要的作用,CMM過(guò)程本身就是對(duì)軟件企業(yè)發(fā)展歷程的一個(gè)完整而準(zhǔn)確的描述,企業(yè)通過(guò)實(shí)施CMM,可以更好地規(guī)范軟件生產(chǎn)和管理流程,使企業(yè)組織規(guī)范化。企業(yè)通過(guò)CMM不是為了滿足其他公司的要求,而是為了讓企業(yè)更好地發(fā)展,為企業(yè)進(jìn)一步擴(kuò)大規(guī)模打下堅(jiān)實(shí)的基礎(chǔ)。如果企業(yè)只是為了獲得一紙證書而通過(guò)CMM,那么就已經(jīng)本末倒置了,對(duì)企業(yè)的長(zhǎng)久發(fā)展反而有害。試想如果企業(yè)的態(tài)度不夠端正,即使通過(guò)CMM認(rèn)證,企業(yè)又怎么能夠保證它在以后的操作過(guò)程當(dāng)中繼續(xù)堅(jiān)持CMM規(guī)范呢?CMM只是一個(gè)讓企業(yè)更好發(fā)展的規(guī)范,不應(yīng)該成為企業(yè)炒作自己的工具,企業(yè)需要的是優(yōu)化自己的管理、提高產(chǎn)品的質(zhì)量,而非一張CMM證書。CMM不是萬(wàn)能的,它的成功與否,與一個(gè)組織內(nèi)部有關(guān)人員的積極參與和創(chuàng)造性活動(dòng)是密不可分的,而且CMM并未提供實(shí)現(xiàn)有關(guān)子過(guò)程域所需要的具體知識(shí)和技能。在國(guó)內(nèi)要想取得過(guò)程改進(jìn)成功,必須做好以下的幾點(diǎn):軟件過(guò)程改進(jìn)必須有高級(jí)主管的支持與委托,并積極地管理過(guò)程改進(jìn)的進(jìn)展;中層管理的積極支持;責(zé)任分明,過(guò)程改進(jìn)小組的威望高;基層的支持與參與極端重要;利用定量的可觀察數(shù)據(jù),盡快使過(guò)程改進(jìn)成果可見,從而激勵(lì)參與者的興趣;將實(shí)施CMM與實(shí)施PSP和TSP有機(jī)地結(jié)合起來(lái);為企業(yè)的商業(yè)利益服務(wù),并要求同時(shí)相符的企業(yè)文化變革。應(yīng)該看到,過(guò)程改善工作必然具有一切過(guò)程所具有的固有特征,即需要循序漸進(jìn),不能一蹴而就需要持續(xù)改善,不能停滯不前;需要聯(lián)系實(shí)際,不能照本宣讀需要適應(yīng)變革,不能凝固不變。將CMM/PSP/TSP引人軟件企業(yè)最有效的途徑首先要對(duì)單位主管和主要開發(fā)人員進(jìn)行系統(tǒng)的培訓(xùn)。另外一個(gè)有效的途徑是自頂向下的課程培訓(xùn),即從高層主管依次普及到下面的工程師。培訓(xùn)包括最基本的軟件工程和CMM培訓(xùn)知識(shí);專業(yè)領(lǐng)域知識(shí)等方面的培訓(xùn);軟件過(guò)程方面的培訓(xùn)。不過(guò)強(qiáng)調(diào)一點(diǎn),我們必須根據(jù)自身的實(shí)際制定可行的方案。不深入研究就照搬別的企業(yè)的模式是很難起到提高軟件產(chǎn)品質(zhì)量水平的真正目的的。CMM模型劃分為5個(gè)級(jí)別,共計(jì)18個(gè)關(guān)鍵過(guò)程域,52個(gè)目標(biāo),300多個(gè)關(guān)鍵實(shí)踐。每一個(gè)CMM等級(jí)的評(píng)估周期(從準(zhǔn)備到完成)約需12-30個(gè)月。此期間應(yīng)抽調(diào)企業(yè)中有管理能力、組織能力和軟件開發(fā)能力的骨干人員,成立專門的CMM實(shí)施領(lǐng)導(dǎo)小組或?qū)iT的機(jī)構(gòu)。同時(shí)設(shè)立軟件工程過(guò)程組、軟件工程組、系統(tǒng)工程組、系統(tǒng)測(cè)試組、需求管理組、軟件項(xiàng)目計(jì)劃組、軟件項(xiàng)目跟蹤與監(jiān)督、軟件配置管理組、軟件質(zhì)量保證組、培訓(xùn)組。各個(gè)小組完成自己的任務(wù)同時(shí)協(xié)調(diào)其他小組的工作。然后制定和完善軟件過(guò)程, 按照CMM規(guī)范評(píng)估這個(gè)過(guò)程。CMM正式評(píng)估由CMU/SEI授權(quán)的主任評(píng)估師領(lǐng)導(dǎo)一個(gè)評(píng)審小組進(jìn)行,評(píng)估過(guò)程包括員工培訓(xùn)、問(wèn)卷調(diào)查和統(tǒng)計(jì)、文檔審查、數(shù)據(jù)分析、與企業(yè)的高層領(lǐng)導(dǎo)討論和撰寫評(píng)估報(bào)告等,評(píng)估結(jié)束時(shí)由主任評(píng)估師簽字生效。此后最關(guān)鍵的就是根據(jù)評(píng)估結(jié)果改進(jìn)軟件過(guò)程,使CMM評(píng)估對(duì)于軟件過(guò)程改進(jìn)所應(yīng)具有的作用得到最好的發(fā)揮。現(xiàn)在國(guó)內(nèi)軟件產(chǎn)業(yè)的發(fā)展可以說(shuō)已經(jīng)具有一定規(guī)模了,但除了北大方正、東大阿爾派、用友等大企業(yè)外,做軟件工程項(xiàng)目更多的是一些規(guī)模在數(shù)十人左右的中小企業(yè), 目前處于CMM的初級(jí)階段,沒(méi)有基礎(chǔ)和經(jīng)驗(yàn)。也許有人會(huì)問(wèn),像這樣一些人力物力資源匱乏的企業(yè),如何進(jìn)行軟件開發(fā)項(xiàng)目的管理呢?我建議這些中小企業(yè)可以以CMM為框架,先從PSP做起,然后在些基礎(chǔ)上逐漸過(guò)渡到TSP,以保證CMM/PSP/TSP確實(shí)在企業(yè)中生根開花。總之,我們必須從軟件過(guò)程、過(guò)程工程的角度來(lái)看待CMM的發(fā)展,從經(jīng)濟(jì)學(xué)的觀點(diǎn)來(lái)分析這個(gè)過(guò)程的價(jià)值。我相信在實(shí)施CMM/PSP/TSP的過(guò)程中,只要堅(jiān)持改善軟件工程的管理,并在實(shí)踐中注意總結(jié)適合自身的經(jīng)驗(yàn),一定能取得很好的效果。

    ===================================================================================

    一、CMM的產(chǎn)生軟件能力成熟度(the Capability Maturity Model for Software, 簡(jiǎn)稱CMM)是美國(guó)軟件工程研究所(Software Engineering Institute, 縮寫為SEI)首先提出的。SEI是美國(guó)國(guó)防部設(shè)立,SEI的任務(wù)是提供一系列技術(shù)管理方法來(lái)提高軟件工程水平,保證美國(guó)防部能夠通過(guò)成本、進(jìn)度和質(zhì)量的預(yù)估和改進(jìn)獲得并且支持其精準(zhǔn)的軟件系統(tǒng)。任務(wù)包含四個(gè)目標(biāo):1、 通過(guò)對(duì)實(shí)踐和技術(shù)(或?yàn)槲闯浞謶?yīng)用的技術(shù)和實(shí)踐)的定義、評(píng)估和成熟預(yù)測(cè),以加快導(dǎo)入和推廣高成效的軟件工程的實(shí)踐和技術(shù)。2、 在軟件工程和技術(shù)轉(zhuǎn)型方面維護(hù)一個(gè)長(zhǎng)期有效的資格認(rèn)證工作3、 使工業(yè)和政府組織通過(guò)自己的直接努力實(shí)現(xiàn)軟件工程的有規(guī)劃的改進(jìn)4、 促進(jìn)軟件工程持續(xù)不斷的應(yīng)用所采納的優(yōu)秀標(biāo)準(zhǔn)二、CMM的管理思想基礎(chǔ)CMM的基本思想是基于已有60多年歷史的產(chǎn)品質(zhì)量原理。休哈特(Walter Shewart)在30年代發(fā)表了統(tǒng)計(jì)質(zhì)量控制原理,戴明(W.Edwards)和朱蘭(Joseph Juran)的關(guān)于質(zhì)量的著作又進(jìn)一步發(fā)展和論證了該原理。實(shí)際上,將質(zhì)量原理變?yōu)槌墒於瓤蚣艿乃枷胧强藙谒贡?Philip Crosby),他在著作《質(zhì)量免費(fèi)》(Quality is Free)中首先提出,他的質(zhì)量管理成熟度網(wǎng)絡(luò)描繪了采用質(zhì)量實(shí)踐時(shí)的5個(gè)進(jìn)化階段,而該框架后來(lái)又由IBM的拉迪斯(Rom Radice)和他的同事們?cè)跐h弗萊(Watts Humphrey)指導(dǎo)下進(jìn)一步改進(jìn)以適應(yīng)軟件過(guò)程的需要。1986年,漢弗萊將此成熟框架帶到了SEI并增加了成熟度等級(jí)的概念,將這些原理應(yīng)用于軟件開發(fā),發(fā)展成為軟件過(guò)程成熟度框架,形成了當(dāng)前軟件產(chǎn)業(yè)界正在使用的框架。漢弗萊的成熟度框架早期版本發(fā)表在1987年的SEI技術(shù)報(bào)告。該報(bào)告中還發(fā)表了初步的成熟度提問(wèn)單,這個(gè)提問(wèn)單作為工具給軟件組織提供了軟件過(guò)程評(píng)估的一種方法。1987年又進(jìn)一步研制了軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)兩種方法,以便估計(jì)軟件過(guò)程成熟度。自1990年以來(lái),SEI基于幾年來(lái)將框架運(yùn)用到軟件過(guò)程改進(jìn)方面的經(jīng)驗(yàn),進(jìn)一步擴(kuò)展和精煉了該模型,目前,軟件能力成熟度模型2.0版已經(jīng)修訂問(wèn)世。然而企業(yè)最終目的是把自己的產(chǎn)品或服務(wù)提供給顧客,讓顧客滿意,盡力使這個(gè)過(guò)程不斷反復(fù)、且能夠不斷壯大,才能源源不斷創(chuàng)造利潤(rùn)。所以,我們應(yīng)該明白:第一、企業(yè)的使命是為顧客創(chuàng)造價(jià)值,努力地為顧客創(chuàng)造價(jià)值就是企業(yè)的成功之路。第二、能為顧客帶來(lái)價(jià)值的是企業(yè)的各種作業(yè)。而一個(gè)作業(yè)是由一系列能為顧客創(chuàng)造價(jià)值的活動(dòng)組成的,構(gòu)成一個(gè)作業(yè)的各種活動(dòng)是由員工完成的,但是各種活動(dòng)本身對(duì)顧客來(lái)說(shuō)毫無(wú)意義,顧客關(guān)心的是這些活動(dòng)的結(jié)果。也就是說(shuō),只有各種活動(dòng)組合在一起構(gòu)成一個(gè)完整的作業(yè)才能創(chuàng)造價(jià)值,顧客并不關(guān)心怎樣組合這些活動(dòng)。因此,出于對(duì)顧客利益的考慮,作業(yè)的構(gòu)造要努力做到“復(fù)雜其中,簡(jiǎn)便其表”。第三、企業(yè)事業(yè)的成功來(lái)自優(yōu)異的作業(yè)績(jī)效。盡管優(yōu)質(zhì)的產(chǎn)品或服務(wù)、杰出的人才和優(yōu)秀的戰(zhàn)略對(duì)企業(yè)來(lái)說(shuō)必不可少,但并不能保證企業(yè)的成功。因?yàn)?#xff0c;產(chǎn)品或服務(wù)、人才和戰(zhàn)略只有存在于能為顧客帶來(lái)價(jià)值的各種作業(yè)之中,才能對(duì)企業(yè)事業(yè)的成功有所貢獻(xiàn)。也就是說(shuō),只有通過(guò)作業(yè)把這些高質(zhì)量的要素結(jié)合在一起,它們才具有實(shí)質(zhì)性的意義。這種高績(jī)效的作業(yè),則是企業(yè)優(yōu)勢(shì)的集中體現(xiàn)。第四,優(yōu)異的作業(yè)績(jī)效是通過(guò)科學(xué)的作業(yè)設(shè)計(jì)、適當(dāng)?shù)娜藛T配置和良好的工作環(huán)境的共同作用達(dá)到的。因?yàn)?#xff0c;科學(xué)的作業(yè)設(shè)計(jì)能夠靈敏地對(duì)顧客的需求變化做出反應(yīng),它是作業(yè)本身有效性的根本保證;適當(dāng)?shù)娜藛T組合能獲得集體智慧和戰(zhàn)斗力;良好的環(huán)境則能激發(fā)員工的工作熱情,促使員工它們不斷超越自己。對(duì)于軟件企業(yè)來(lái)說(shuō),它的成功來(lái)自優(yōu)異的軟件開發(fā)過(guò)程,要想取得優(yōu)異的軟件開發(fā)過(guò)程,就得按照以上四點(diǎn)要求進(jìn)行管理和改進(jìn)軟件企業(yè)過(guò)程。所以,可以認(rèn)為CMM模型其實(shí)質(zhì)就是一種新興的管理思想和方法,它蘊(yùn)涵的是當(dāng)今歐美乃至日本日趨盛行的“Continuos Improvement”管理哲學(xué),現(xiàn)已滲透到各行各業(yè)的具體管理中去,是現(xiàn)代企業(yè)管理發(fā)展方向之一。連續(xù)改進(jìn)(Continuos Improvement)的含義是:以超前的視野預(yù)見過(guò)程執(zhí)行實(shí)施中可能的引起要素(包括特定的設(shè)計(jì)、作業(yè)方式及其與之相聯(lián)系的成本要素),籍先期規(guī)范制約的各種手段作出最大可能效果創(chuàng)出(最優(yōu)成本/效益比)的預(yù)期調(diào)整,并以相應(yīng)的效果計(jì)量和評(píng)估方法相配合,以確保實(shí)際過(guò)程以預(yù)期的低成本運(yùn)作的先導(dǎo)式控制。我個(gè)人認(rèn)為,著眼于軟件過(guò)程的CMM是連續(xù)改進(jìn)的表現(xiàn),而著重于軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)與改進(jìn)相呼應(yīng),CMM模型中蘊(yùn)涵的思想就是防止項(xiàng)目失敗的思想,也就是我們所說(shuō)的連續(xù)改進(jìn)的思想所在。三、連續(xù)改進(jìn)(Continuos Improvement)雖然軟件工程師和管理人員通常詳盡地知道他們的問(wèn)題所在,但是哪些改進(jìn)是當(dāng)前最重要的問(wèn)題,他們可能彼此有不同的意見。而且缺乏一個(gè)組織的改進(jìn)策略,管理人員和專業(yè)人員之間在首先采取什么改進(jìn)措施上很難達(dá)成一致意見。經(jīng)過(guò)深入的調(diào)查和研究,終于認(rèn)識(shí)到軟件過(guò)程的改進(jìn)不可能一朝一夕就能成功,需要持續(xù)不斷的進(jìn)行軟件過(guò)程改進(jìn),軟件過(guò)程改進(jìn)是在一系列微小、不斷發(fā)展的,而不是革命性的創(chuàng)新步驟中實(shí)現(xiàn)的。這正是連續(xù)改進(jìn)思想的體現(xiàn)。當(dāng)同類事物之間存在著微少差異時(shí)就會(huì)產(chǎn)生變異性。當(dāng)一個(gè)過(guò)程或系統(tǒng)的資源存在著變異性時(shí),相應(yīng)的系統(tǒng)輸出也會(huì)有變異性。例如,當(dāng)原材料或所制造的部件質(zhì)量有偏差時(shí),最終產(chǎn)品的質(zhì)量也會(huì)發(fā)生變化。正所謂“進(jìn)廢品,出廢品”。所以,研究連續(xù)改進(jìn),就需要關(guān)注系統(tǒng)所使用資源的變異性及所采用生產(chǎn)過(guò)程的變異性。任何系統(tǒng)都會(huì)表現(xiàn)出變異性。一定程度的變異是自然的,這種變異并不一定意味著系統(tǒng)不穩(wěn)定或質(zhì)量低劣或成本偏高,但是太多的或反常的變異則表明系統(tǒng)不穩(wěn)定——其輸出的質(zhì)量是不一致或不可預(yù)知的。這對(duì)于任何一個(gè)公司都是一種危險(xiǎn)的情況,因?yàn)椴环€(wěn)定的質(zhì)量將會(huì)影響顧客的滿意度。要保持客戶的滿意,必須改進(jìn)產(chǎn)品質(zhì)量、降低產(chǎn)品的成本、增強(qiáng)產(chǎn)品的營(yíng)銷水平。要改進(jìn)產(chǎn)品質(zhì)量、降低產(chǎn)品的成本、增強(qiáng)產(chǎn)品的營(yíng)銷水平,必須減少系統(tǒng)的變異。研究連續(xù)改進(jìn)過(guò)程就是明確系統(tǒng)中的變異在哪里發(fā)生,為什么發(fā)生。一旦了解到引起變異的原因,就可以尋找一些方法去減少這種變異,以穩(wěn)定企業(yè)運(yùn)行過(guò)程,使企業(yè)得到改進(jìn)。1、連續(xù)改進(jìn)循環(huán)如果只解決一個(gè)小問(wèn)題,只稍微改變一下具體過(guò)程,而后就置之不理直到問(wèn)題出現(xiàn),這是遠(yuǎn)遠(yuǎn)不夠的。正如“連續(xù)改進(jìn)”這一名稱所暗示的:必須不斷進(jìn)行。連續(xù)改進(jìn)意味著時(shí)常對(duì)系統(tǒng)進(jìn)行分析,一絲不茍地收集數(shù)據(jù)并加以研究,一絲不茍地測(cè)試偏差,每位公司員工都把連續(xù)改進(jìn)作為其工作的一部分看待。持續(xù)改進(jìn)應(yīng)該視為一個(gè)循環(huán)。參與持續(xù)改進(jìn)的各團(tuán)隊(duì)需要長(zhǎng)期連續(xù)地在這個(gè)循環(huán)中活動(dòng)。也就是說(shuō),當(dāng)一個(gè)問(wèn)題看來(lái)已經(jīng)解決之時(shí),而員工的參與并沒(méi)有終結(jié),仍然有另一個(gè)改進(jìn)要實(shí)施,有另一個(gè)系統(tǒng)要分析,或有另一個(gè)創(chuàng)意要專題研究。2、強(qiáng)化過(guò)程改進(jìn)面臨的下一步是使實(shí)施的變革成為系統(tǒng)的一個(gè)標(biāo)準(zhǔn)部分。團(tuán)隊(duì)?wèi)?yīng)該著手出一份簡(jiǎn)單的報(bào)告,說(shuō)明測(cè)試過(guò)程中的新規(guī)則以及所做改進(jìn)對(duì)系統(tǒng)的影響。報(bào)告要列出變革后的優(yōu)點(diǎn),包括新系統(tǒng)實(shí)施和維護(hù)的計(jì)劃,以確定新系統(tǒng)達(dá)到新的績(jī)效水平。如果團(tuán)隊(duì)的建議被管理者接受并付諸實(shí)施,以后,團(tuán)隊(duì)需要按照計(jì)劃監(jiān)視系統(tǒng)。你將能指出存在的問(wèn)題,發(fā)現(xiàn)在什么地方工作人員又回到了舊的工作方式。這一步的目標(biāo)是使新過(guò)程變成標(biāo)準(zhǔn)的操作規(guī)則。切記,在實(shí)施變革過(guò)程中,認(rèn)真地培訓(xùn)和支持是必要的。3、繼續(xù)連續(xù)改進(jìn)循環(huán)當(dāng)你確信新的過(guò)程得到強(qiáng)化并成為工作過(guò)程的一個(gè)自然組成部分時(shí),就要準(zhǔn)備開始下一個(gè)持續(xù)改進(jìn)循環(huán)。你將要從分析系統(tǒng)開始,因?yàn)樯弦谎h(huán)的變革可能已經(jīng)改變。4、總結(jié)企業(yè)的管理者一定明白企業(yè)的生存取決于你比其它企業(yè)給顧客提供更好服務(wù)的能力。通過(guò)更快地響應(yīng)顧客的需要,提供更高質(zhì)量的服務(wù)就可以達(dá)到生存的目標(biāo)。一旦你和你的員工進(jìn)入持續(xù)改進(jìn)循環(huán),你將擁有更好的信息、更新鮮的創(chuàng)意、更好的過(guò)程和質(zhì)量控制,你將達(dá)到夢(mèng)想的“意想不到的高水平的績(jī)效”。

    ============================================================================

    CMM是指“能力成熟度模型”,其英文全稱為Capability Maturity Model for Software,英文縮寫為SW-CMM,簡(jiǎn)稱CMM。它是對(duì)于軟件組織在定義、實(shí)施、度量、控制和改善其軟件過(guò)程的實(shí)踐中各個(gè)發(fā)展階段的描述。CMM的核心是把軟件開發(fā)視為一個(gè)過(guò)程,并根據(jù)這一原則對(duì)軟件開發(fā)和維護(hù)進(jìn)行過(guò)程監(jiān)控和研究,以使其更加科學(xué)化、標(biāo)準(zhǔn)化、使企業(yè)能夠更好地實(shí)現(xiàn)商業(yè)目標(biāo)。 CMM是是一種用于評(píng)價(jià)軟件承包能力并幫助其改善軟件質(zhì)量的方法,側(cè)重于軟件開發(fā)過(guò)程的管理及工程能力的提高與評(píng)估。CMM分為五個(gè)等級(jí):一級(jí)為初始級(jí),二級(jí)為可重復(fù)級(jí),三級(jí)為已定義級(jí),四級(jí)為已管理級(jí),五級(jí)為優(yōu)化級(jí)。 CMM是由美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所1987年研制成功的,是目前國(guó)際上最流行最實(shí)用的軟件生產(chǎn)過(guò)程標(biāo)準(zhǔn)和軟件企業(yè)成熟度等級(jí)認(rèn)證標(biāo)準(zhǔn)。目前,我國(guó)已有軟件企業(yè)通過(guò)了CMM標(biāo)準(zhǔn)認(rèn)證 。  SW-CMM(Capability Maturity Model For Software 軟件生產(chǎn)能力成熟度模型,以下簡(jiǎn)稱"CMM"),是87年由美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所(CMU SEI)研究出的一種一種用于評(píng)價(jià)軟件承包商能力并幫助改善軟件質(zhì)量的方法,其目的是幫助軟件企業(yè)對(duì)軟件工程過(guò)程進(jìn)行管理和改進(jìn),增強(qiáng)開發(fā)與改進(jìn)能力,從而能按時(shí)地、不超預(yù)算地開發(fā)出高質(zhì)量的軟件。 其所依據(jù)的想法是:只要集中精力持續(xù)努力去建立有效的軟件工程過(guò)程的基礎(chǔ)結(jié)構(gòu),不斷進(jìn)行管理的實(shí)踐和過(guò)程的改進(jìn),就可以克服軟件生產(chǎn)中的困難。CMM它是目前國(guó)際上最流行、最實(shí)用的一種軟件生產(chǎn)過(guò)程標(biāo)準(zhǔn),已經(jīng)得到了眾多國(guó)家以及國(guó)際軟件產(chǎn)業(yè)界的認(rèn)可,成為當(dāng)今企業(yè)從事規(guī)模軟件生產(chǎn)不可缺少的一項(xiàng)內(nèi)容。CMM目前通用流行的版本是1.1(Version1.1)。《按照軟件工程研究所(SEI)的原來(lái)計(jì)劃,CMM的改進(jìn)版版本2.0(V2.0)是要在1997年的11月完成的。但是,美國(guó)國(guó)防部辦公室要求軟件工程研究所(SEI)延遲發(fā)放公布CMM版本2.0,直至他們完成另一個(gè)更為緊迫的項(xiàng)目-CMMI。 CMMI(Capability Maturity Model Integration能力成熟度模型集成),是美國(guó)國(guó)防部的一個(gè)設(shè)想。他們希望把所有現(xiàn)存的與將被發(fā)展出來(lái)的各種能力成熟度模型,集成到一個(gè)框架中去。這個(gè)框架用于解決兩個(gè)問(wèn)題:第一,軟件獲取辦法的改革;第二,從集成產(chǎn)品與過(guò)程發(fā)展的角度出發(fā),建立一種包含健全的系統(tǒng)開發(fā)原則的過(guò)程改進(jìn)。CMM為軟件企業(yè)的過(guò)程能力提供了一個(gè)階梯式的改進(jìn)框架,它基于過(guò)去所有軟件工程過(guò)程改進(jìn)的成果,吸取了以往軟件工程的經(jīng)驗(yàn)教訓(xùn),提供了一個(gè)基于過(guò)程改進(jìn)的框架;它指明了一個(gè)軟件組織在軟件開發(fā)方面需要管理哪些主要工作、這些工作之間的關(guān)系、以及以怎樣的先后次序,一步一步的做好這些工作而使軟件組織走向成熟。一、CMM的誕生  信息時(shí)代,軟件質(zhì)量的重要性越來(lái)越為人們所認(rèn)識(shí)。軟件是產(chǎn)品、是裝備、是工具,其質(zhì)量使得顧客滿意,是產(chǎn)品市場(chǎng)開拓、事業(yè)得以發(fā)展的關(guān)鍵。而軟件工程領(lǐng)域在1992年至1997年取得了前所未有的進(jìn)展,其成果超過(guò)軟件工程領(lǐng)域過(guò)去15年來(lái)的成就總和。  軟件管理工程引起廣泛注意源于20世紀(jì)70年代中期。當(dāng)時(shí)美國(guó)國(guó)防部曾立題專門研究軟件項(xiàng)目做不好的原因,發(fā)現(xiàn)70%的項(xiàng)目是因?yàn)楣芾聿簧贫?#xff0c;而并不是因?yàn)榧夹g(shù)實(shí)力不夠,進(jìn)而得出一個(gè)結(jié)論,即管理是影響軟件研發(fā)項(xiàng)目全局的因素,而技術(shù)只影響局部。到了20世紀(jì)90年代中期,軟件管理工程不善的問(wèn)題仍然存在,大約只有10%的項(xiàng)目能夠在預(yù)定的費(fèi)用和進(jìn)度下交付。軟件項(xiàng)目失敗的主要原因有:需求定義不明確;缺乏一個(gè)好的軟件開發(fā)過(guò)程;沒(méi)有一個(gè)統(tǒng)一領(lǐng)導(dǎo)的產(chǎn)品研發(fā)小組;子合同管理不嚴(yán)格;沒(méi)有經(jīng)常注意改善軟件過(guò)程;對(duì)軟件構(gòu)架很不重視;軟件界面定義不善且缺乏合適的控制;軟件升級(jí)暴露了硬件的缺點(diǎn);關(guān)心創(chuàng)新而不關(guān)心費(fèi)用和風(fēng)險(xiǎn);軍用標(biāo)準(zhǔn)太少且不夠完善等等。在關(guān)系到軟件項(xiàng)目成功與否的眾多因素中,軟件度量、工作量估計(jì)、項(xiàng)目規(guī)劃、進(jìn)展控制、需求變化和風(fēng)險(xiǎn)管理等都是與工程管理直接相關(guān)的因素。由此可見,軟件管理工程的意義至關(guān)重要。  軟件管理工程和其它工程管理相比有其特殊性。首先,軟件是知識(shí)產(chǎn)品,進(jìn)度和質(zhì)量都難以度量,生產(chǎn)效率也難以保證。其次,軟件系統(tǒng)復(fù)雜程度也是超乎想象的。因?yàn)檐浖?fù)雜和難以度量,軟件管理工程的發(fā)展還很不成熟。  軟件管理工程的發(fā)展,在經(jīng)歷了從70年代開始以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)以及結(jié)構(gòu)化測(cè)試為特征的結(jié)構(gòu)化生產(chǎn)時(shí)代,到90年代中期,以CMM模型的成熟模型和日益為市場(chǎng)接受為標(biāo)志,已經(jīng)進(jìn)入以過(guò)程成熟模型CMM、個(gè)體軟件過(guò)程PSP和群組軟件過(guò)程TSP為標(biāo)志的以過(guò)程為中心的時(shí)代,而軟件發(fā)展第三個(gè)時(shí)代,及軟件工業(yè)化生產(chǎn)時(shí)代,從90年代中期軟件過(guò)程技術(shù)的成熟和面向?qū)ο蠹夹g(shù)、構(gòu)件技術(shù)的發(fā)展為基礎(chǔ),已經(jīng)漸露端倪,估計(jì)到2005年,可以實(shí)現(xiàn)真正的軟件工業(yè)化生產(chǎn),這個(gè)趨勢(shì)應(yīng)該引起軟件企業(yè)界和有關(guān)部門的高度重視,及早采取措施,跟上世界軟件發(fā)展的腳步。軟件生產(chǎn)轉(zhuǎn)向以改善軟件過(guò)程為中心,是世界各國(guó)軟件產(chǎn)業(yè)或遲或早都要走的道路。  軟件過(guò)程改善是當(dāng)前軟件管理工程的核心問(wèn)題。50多年來(lái)計(jì)算事業(yè)的發(fā)展使人們認(rèn)識(shí)到要高效率、高質(zhì)量和低成本地開發(fā)軟件,必須改善軟件生產(chǎn)過(guò)程。軟件管理工程走過(guò)了一條從70年代開始以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)以及結(jié)構(gòu)化測(cè)試到90年代中期以過(guò)程成熟模型CMM、個(gè)體軟件過(guò)程PSP和群組軟件過(guò)程TSP為標(biāo)志的以過(guò)程為中心向著軟件過(guò)程技術(shù)的成熟和面向?qū)ο蠹夹g(shù)、構(gòu)件技術(shù)的發(fā)展為基礎(chǔ)的真正軟件工業(yè)化生產(chǎn)的道路。軟件生產(chǎn)轉(zhuǎn)向以改善軟件過(guò)程為中心,是世界各國(guó)軟件產(chǎn)業(yè)或遲或早都要走的道路。軟件工業(yè)已經(jīng)或正在經(jīng)歷著"軟件過(guò)程的成熟化",并向"軟件的工業(yè)化"漸進(jìn)過(guò)渡。規(guī)范的軟件過(guò)程是軟件工業(yè)化的必要條件。  軟件過(guò)程研究的是如何將人員、技術(shù)和工具等組織起來(lái),通過(guò)有效的管理手段,提高軟件生產(chǎn)的效率,保證軟件產(chǎn)品的質(zhì)量。由此誕生了軟件過(guò)程的三個(gè)流派:CMU-SEI的CMM/PSP/TSP;ISO 9000質(zhì)量標(biāo)準(zhǔn)體系;ISO/IEC 15504(SPICE)。  CMM/PSP/TSP即軟件能力成熟度模型/ 個(gè)體軟件過(guò)程/群組軟件過(guò)程,是1987年美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發(fā)表的研究成果"承制方軟件工程能力的評(píng)估方法";SO 9000質(zhì)量標(biāo)準(zhǔn)體系是在70年代由歐洲首先采用的,其后在美國(guó)和世界其他地區(qū)也迅速地發(fā)展起來(lái)。目前,歐洲聯(lián)合會(huì)積極促進(jìn)軟件質(zhì)量的制度化,提出了如下ISO9000軟件標(biāo)準(zhǔn)系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002;ISO/IEC 15504(SPICE)是1991年國(guó)際標(biāo)準(zhǔn)化組織采納了一項(xiàng)動(dòng)議,開展調(diào)查研究,按照CMU-SEI的基本思路,產(chǎn)生的技術(shù)報(bào)告ISO/IEC 15504–信息技術(shù)軟件過(guò)程評(píng)估  目前,學(xué)術(shù)界和工業(yè)界公認(rèn)美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI) 以W.S.Humphrey為首主持研究與開發(fā)的軟件能力成熟度模型CMM是當(dāng)前最好的軟件過(guò)程,已成為業(yè)界事實(shí)上的軟件過(guò)程的工業(yè)標(biāo)準(zhǔn)。二、CMM的發(fā)展  1987年美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI)以W.S.Humphrey為首的研究組發(fā)表了CMM/PSP/TSP 技術(shù),為軟件管理工程開辟了一條新的途經(jīng)。  CMM框架用5個(gè)不斷進(jìn)化的層次來(lái)評(píng)定軟件生產(chǎn)的歷史與現(xiàn)狀:其中初始層是混沌的過(guò)程,可重復(fù)層是經(jīng)過(guò)訓(xùn)練的軟件過(guò)程,定義層是標(biāo)準(zhǔn)一致的軟件過(guò)程,管理層是可預(yù)測(cè)的軟件過(guò)程,優(yōu)化層是能持續(xù)改善的軟件過(guò)程。任何單位所實(shí)施的軟件過(guò)程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬于這5個(gè)層次中的某一個(gè)層次。而在某個(gè)層次內(nèi)部,也有成熟程度的區(qū)別。在CMM框架的不同層次中,需要解決帶有不同層次特征的軟件過(guò)程問(wèn)題。因此,一個(gè)軟件開發(fā)單位首先需要了解自己正處于哪一個(gè)層次,然后才能夠?qū)ΠY下藥地針對(duì)該層次的特殊要求解決相關(guān)問(wèn)題,這樣才能收到事半功倍的軟件過(guò)程改善效果。任何軟件開發(fā)單位在致力于軟件過(guò)程改善時(shí),只能由所處的層次向緊鄰的上一層次進(jìn)化。而且在由某一成熟層次向上一更成熟層次進(jìn)化時(shí),在原有層次中的那些已經(jīng)具備的能力還必須得到保持與發(fā)揚(yáng)。  軟件產(chǎn)品質(zhì)量在很大程度上取決于構(gòu)筑軟件時(shí)所使用的軟件開發(fā)和維護(hù)過(guò)程的質(zhì)量。軟件過(guò)程是人員密集和設(shè)計(jì)密集的作業(yè)過(guò)程:若缺乏有素訓(xùn)練,就難以建立起支持實(shí)現(xiàn)成功是軟件過(guò)程的基礎(chǔ),改進(jìn)工作亦將難以取得成效。CMM描述的這個(gè)框架正是勾列出從無(wú)定規(guī)的混沌過(guò)程向訓(xùn)練有素的成熟過(guò)程演進(jìn)的途徑。  CMM包括兩部分"軟件能力成熟度模型"和"能力成熟度模型的關(guān)鍵慣例"。“軟件能力成熟度模型"主要是描述此模型的結(jié)構(gòu),并且給出該模型的基本構(gòu)件的定義。“能力成熟度模型的關(guān)鍵慣例"詳細(xì)描述了每個(gè)"關(guān)鍵過(guò)程方面"涉及的"關(guān)鍵慣例”。這里"關(guān)鍵過(guò)程方面"是指一組相關(guān)聯(lián)的活動(dòng);每個(gè)軟件能力成熟度等級(jí)包含若干個(gè)對(duì)該成熟度等級(jí)至關(guān)重要的過(guò)程方面,它們的實(shí)施對(duì)達(dá)到該成熟度等級(jí)的目標(biāo)起到保證作用。這些過(guò)程域就稱為該成熟度等級(jí)的關(guān)鍵過(guò)程域,反之有非關(guān)鍵過(guò)程域是指對(duì)達(dá)到相應(yīng)軟件成熟度等級(jí)的目標(biāo)不起關(guān)鍵作用。歸納為:互相關(guān)聯(lián)的若干軟件實(shí)踐活動(dòng)和有關(guān)基礎(chǔ)設(shè)施的一個(gè)集合。而"關(guān)鍵慣例"是指使關(guān)鍵過(guò)程方面得以有效實(shí)現(xiàn)和制度化的作用最大的基礎(chǔ)設(shè)施和活動(dòng),對(duì)關(guān)鍵過(guò)程的實(shí)踐起關(guān)鍵作用的方針、規(guī)程、措施、活動(dòng)以及相關(guān)基礎(chǔ)設(shè)施的建立。關(guān)鍵實(shí)踐一般只描述"做什么"而不強(qiáng)制規(guī)定"如何做”。各個(gè)關(guān)鍵慣例按每個(gè)關(guān)鍵過(guò)程方面的5個(gè)"公共特性"(對(duì)執(zhí)行該過(guò)程的承諾,執(zhí)行該過(guò)程的能力,該過(guò)程中要執(zhí)行的活動(dòng),對(duì)該過(guò)程執(zhí)行情況的度量和分析,及證實(shí)所執(zhí)行的活動(dòng)符合該過(guò)程)歸類,逐一詳細(xì)描述。當(dāng)作到了某個(gè)關(guān)鍵過(guò)程的的全部關(guān)鍵慣例就認(rèn)為實(shí)現(xiàn)了該關(guān)鍵過(guò)程,實(shí)現(xiàn)了某成熟度級(jí)及其以低級(jí)所含的全部關(guān)鍵過(guò)程就認(rèn)為達(dá)到到了了該級(jí)。  
      上面提到了CMM把軟件開發(fā)組織的能力成熟度分為5個(gè)的等級(jí)。除了第1級(jí)外,其他每一級(jí)由幾個(gè)關(guān)鍵過(guò)程方面組成。每一個(gè)關(guān)鍵過(guò)程方面都由上述5種公共特性予以表征。CMM給每個(gè)關(guān)鍵過(guò)程了一些具體目標(biāo)。按每個(gè)公共特性歸類的關(guān)鍵慣例是按該關(guān)鍵過(guò)程的具體目標(biāo)選擇和確定的。如果恰當(dāng)?shù)靥幚砹四硞€(gè)關(guān)鍵過(guò)程涉及的全部關(guān)鍵慣例,這個(gè)關(guān)鍵過(guò)程的各項(xiàng)目標(biāo)就達(dá)到了,也就表明該關(guān)鍵過(guò)程實(shí)現(xiàn)了。這種成熟度分級(jí)的優(yōu)點(diǎn)在于,這些級(jí)別明確而清楚地反映了過(guò)程改進(jìn)活動(dòng)的輕重緩急和先后順序。能力等級(jí)特點(diǎn)關(guān)鍵過(guò)程第一級(jí) 基本級(jí)軟件過(guò)程是混亂無(wú)序的,對(duì)過(guò)程幾乎沒(méi)有定義,成功依靠的是個(gè)人的才能和經(jīng)驗(yàn),管理方式屬于反應(yīng)式 第二級(jí) 重復(fù)級(jí)建立了基本的項(xiàng)目管理來(lái)跟蹤進(jìn)度.費(fèi)用和功能特征,制定了必要的項(xiàng)目管理,能夠利用以前類似的項(xiàng)目應(yīng)用取得成功需求管理,項(xiàng)目計(jì)劃,項(xiàng)目跟蹤和監(jiān)控,軟件子合同管理,軟件配置管理,軟件質(zhì)量保障第三級(jí) 確定級(jí)已經(jīng)將軟件管理和過(guò)程文檔化,標(biāo)準(zhǔn)化,同時(shí)綜合成該組織的標(biāo)準(zhǔn)軟件過(guò)程,所有的軟件開發(fā)都使用該標(biāo)準(zhǔn)軟件過(guò)程組織過(guò)程定義,組織過(guò)程焦點(diǎn),培訓(xùn)大綱,軟機(jī)集成管理,軟件產(chǎn)品工程,組織協(xié)調(diào),專家審評(píng)第四級(jí) 管理級(jí)收集軟件過(guò)程和產(chǎn)品質(zhì)量的詳細(xì)度量,對(duì)軟件過(guò)程和產(chǎn)品質(zhì)量有定量的理解和控制定量的軟件過(guò)程管理和產(chǎn)品質(zhì)量管理第五級(jí) 優(yōu)化級(jí)軟件過(guò)程的量化反饋和新的思想和技術(shù)促進(jìn)過(guò)程的不斷改進(jìn)缺陷預(yù)防,過(guò)程變更管理和技術(shù)變更管理  對(duì)于CMM的作用歸納兩個(gè)主要方面: 科學(xué)地評(píng)價(jià)軟件開發(fā)單位的軟件能力成熟等級(jí); 幫助軟件開發(fā)單位進(jìn)行自檢,了解自己的強(qiáng)項(xiàng)和弱項(xiàng),從而不斷完善和改進(jìn)單位的軟件開發(fā)過(guò)程,確保軟件質(zhì)量,提高軟件開發(fā)能效率。  由于CMM并未提供有關(guān)實(shí)現(xiàn)CMM關(guān)鍵過(guò)程域所需的具體知識(shí)和技能,因此,美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所(CMU/SEI) 以W.S.Humphrey為首主持研究與開發(fā)了個(gè)體軟件過(guò)程PSP(Personal software process)和群組軟件過(guò)程TSP(Team Software Process),形成CMM/PSP/TSP體系。  PSP 個(gè)體軟件過(guò)程(Personal Software Process)是由美國(guó)Carnegie Mellon大學(xué)軟件工程研究所(CMU/SEI)的Watts s. Humphrey領(lǐng)導(dǎo)開發(fā)的,于1995年它的推出,在軟件工程界引起了極大的轟動(dòng),可以說(shuō)是由定向軟件工程走向定量軟件工程的一個(gè)標(biāo)志。PSP是一種可用于控制、管理和改進(jìn)個(gè)人工作方式的自我改善過(guò)程,是一個(gè)包括軟件開發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。 PSP為基于個(gè)體和小型群組軟件過(guò)程的優(yōu)化提供了具體而有效的途徑,例如如何制訂計(jì)劃,如何控制質(zhì)量,如何與其他人相互協(xié)作等等。在軟件設(shè)計(jì)階段, PSP的著眼點(diǎn)在于軟件缺陷的預(yù)防,其具體辦法是強(qiáng)化設(shè)計(jì)結(jié)束準(zhǔn)則,而不是設(shè)計(jì)方法的選擇。PSP保障軟件產(chǎn)品質(zhì)量的一個(gè)重要途徑是提高設(shè)計(jì)質(zhì)量。  PSP能夠說(shuō)明個(gè)體軟件過(guò)程的原則;幫助軟件工程師作出準(zhǔn)確的計(jì)劃;確定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟;建立度量個(gè)體軟件過(guò)程改善的基準(zhǔn);確定過(guò)程的改變對(duì)軟件工程師能力的影響。  TSP 群組軟件過(guò)程TSP(Team Software Process)指導(dǎo)項(xiàng)目組中的成員如何有效地規(guī)劃和管理所面臨的項(xiàng)目開發(fā)任務(wù),并且告訴管理人員如何指導(dǎo)軟件開發(fā)隊(duì)伍。始終以最佳狀態(tài)來(lái)完成工作。TSP實(shí)施集體管理與自己管理自己相結(jié)合的原則,最終目的在于指導(dǎo)開發(fā)人員如何在最少的時(shí)間內(nèi),以預(yù)定的費(fèi)用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,所采用的方法是對(duì)群組開發(fā)過(guò)程的定義、度量和改進(jìn)。  TSP致力于開發(fā)高質(zhì)量的產(chǎn)品,建立、管理和授權(quán)項(xiàng)目小組,并且指導(dǎo)他們?nèi)绾卧跐M足計(jì)劃費(fèi)用的前提下,在承諾的期限范圍內(nèi),不斷生產(chǎn)并交付高質(zhì)量的產(chǎn)品。  CMM是過(guò)程改善的第一步,它提供了評(píng)價(jià)組織的能力、識(shí)別優(yōu)先改善需求和追蹤改善進(jìn)展的管理方式。企業(yè)只有開始CMM改善后,才能接受需要規(guī)劃的事實(shí),認(rèn)識(shí)到質(zhì)量的重要性,才能注重對(duì)員工經(jīng)常進(jìn)行培訓(xùn),合理分配項(xiàng)目人員,并且建立起有效的項(xiàng)目小組。然而,它實(shí)現(xiàn)的成功與否與組織內(nèi)部有關(guān)人員的積極參加和創(chuàng)造性活動(dòng)密不可分。  PSP能夠指導(dǎo)軟件工程師如何保證自己的工作質(zhì)量,估計(jì)和規(guī)劃自身的工作,度量和追蹤個(gè)人的表現(xiàn),管理自身的軟件過(guò)程和產(chǎn)品質(zhì)量。經(jīng)過(guò)PSP學(xué)習(xí)和實(shí)踐的正規(guī)訓(xùn)練,軟件工程師們能夠在他們參與的項(xiàng)目工作之中充分運(yùn)用PSP,從而有助于CMM目標(biāo)的實(shí)現(xiàn)。  TSP結(jié)合了CMM的管理方法和PSP的工程技能,通過(guò)告訴軟件工程師如何將個(gè)體過(guò)程結(jié)合進(jìn)小組軟件過(guò)程,并將后者與 組織進(jìn)而整個(gè)管理系統(tǒng)相聯(lián)系;通過(guò)告訴管理層如何支持和授權(quán)項(xiàng)目小組,堅(jiān)持高質(zhì)量的工作,并且依據(jù)數(shù)據(jù)進(jìn)行項(xiàng) 目的管理,向組織展示如何應(yīng)用CMM的原則和PSP的技能去生產(chǎn)高質(zhì)量的產(chǎn)品。  總之,單純實(shí)施CMM,永遠(yuǎn)不能真正做到能力成熟度的升級(jí),只有將實(shí)施CMM與實(shí)施PSP和TSP有機(jī)地結(jié)合起來(lái),才能發(fā)揮最大的效力。因此,軟件過(guò)程框架應(yīng)該是CMM/PSP/TSP的有機(jī)集成。三、實(shí)施CMM的必要性  軟件開發(fā)的風(fēng)險(xiǎn)之所以大,是由于軟件過(guò)程能力低,其中最關(guān)鍵的問(wèn)題在于軟件開發(fā)組織不能很好地管理其軟件過(guò)程,從而使一些好的開發(fā)方法和技術(shù)起不到預(yù)期的作用。而且項(xiàng)目的成功也是通過(guò)工作組的杰出努力,所以僅僅建立在可得到特定人員上的成功不能為全組織的生產(chǎn)和質(zhì)量的長(zhǎng)期提高打下基礎(chǔ),必須在建立有效的軟件如管理工程實(shí)踐和管理實(shí)踐的基礎(chǔ)設(shè)施方面,堅(jiān)持不懈地努力,才能不斷改進(jìn),才能持續(xù)地成功。  軟件質(zhì)量是一模糊的、捉摸不定的概念。我們常常聽說(shuō):某某軟件好用, 某某軟件不好用;某某某軟件功能全、結(jié)構(gòu)合理, 某某某軟件功能單一、操作困難……這些模模糊糊的語(yǔ)言不能算作是軟件質(zhì)量評(píng)價(jià),更不能算作是軟件質(zhì)量科學(xué)的定量的評(píng)價(jià)。軟件質(zhì)量,乃至于任何產(chǎn)品質(zhì)量,都是一個(gè)很復(fù)雜的事物性質(zhì)和行為。產(chǎn)品質(zhì)量,包括軟件質(zhì)量,是人們實(shí)踐產(chǎn)物的屬性和行為,是可以認(rèn)識(shí),可以科學(xué)地描述的。可以通過(guò)一些方法和人類活動(dòng),來(lái)改進(jìn)質(zhì)量。  實(shí)施CMM是改進(jìn)軟件質(zhì)量的有效方法:控制軟件生產(chǎn)過(guò)程、提高軟件生產(chǎn)者組織性和軟件生產(chǎn)者個(gè)人能力的有效合理的方法軟件工程和很多研究領(lǐng)域及實(shí)際問(wèn)題有關(guān),主要相關(guān)領(lǐng)域和因素有:需求工程(RE:REQUIREMENTS ENGINEERING)。理論上,需求工程是應(yīng)用已被證明的原理、技術(shù)和工具,幫助系統(tǒng)分析人員理解問(wèn)題或描述產(chǎn)品的外在行為。軟件復(fù)用(SR:SOFTWARE REUSE)。定義為利用工程知識(shí)或方法,由一已存在的系統(tǒng),來(lái)建造一新系統(tǒng)。這種技術(shù),可改進(jìn)軟件產(chǎn)品質(zhì)量和生產(chǎn)率。還有軟件檢查、軟件計(jì)量、軟件可靠性、軟件可維修性、軟件工具評(píng)估和選擇等。四、CMM在中國(guó)的現(xiàn)狀  中國(guó)生產(chǎn)力促進(jìn)協(xié)會(huì)、北航SEI、中科院研究SEI等科研機(jī)構(gòu)已于近幾年在北京、上海、廣州和深圳等地先后舉辦過(guò)多次報(bào)告會(huì)和研討會(huì),組織過(guò)課程學(xué)習(xí)和應(yīng)用實(shí)驗(yàn),開展了軟件過(guò)程方面的研究與開發(fā)工作,并發(fā)表了多篇的研究成果和學(xué)術(shù)論文,在軟件質(zhì)量保障平臺(tái)支撐環(huán)境也取得了一定的成果。  近兩年來(lái),CMM在我國(guó)獲得了各界越來(lái)越多關(guān)注,業(yè)界有過(guò)多次關(guān)于CMM的討論,2000年6月國(guó)務(wù)院頒發(fā)的《鼓勵(lì)軟件產(chǎn)業(yè)和集成電路產(chǎn)業(yè)發(fā)展的若干政策》對(duì)中國(guó)軟件企業(yè)申請(qǐng)CMM認(rèn)證給予了積極的支持和推動(dòng)作用,第17條規(guī)定"對(duì)軟件出口型企業(yè)CMM認(rèn)證費(fèi)用予以適當(dāng)支持。"2000年中國(guó)村電腦節(jié)上還有CMM專題論壇,吸引了眾多業(yè)內(nèi)人士。鼎新、東大阿爾派、聯(lián)想、方正、金蝶、用友、浪潮、創(chuàng)智、華為、東大阿爾派等大型集團(tuán)或企業(yè)等都從1997—2000年起批企業(yè)都在進(jìn)行研究、實(shí)驗(yàn)或?qū)嵤╊A(yù)評(píng)估。其中鼎新公司從1997年著手進(jìn)行CMM認(rèn)證工作。1999年7月通過(guò)第三方認(rèn)證機(jī)構(gòu)的CMM2認(rèn)證。東大阿爾派公司于2000年10月通過(guò)第三方認(rèn)證機(jī)構(gòu)的CMM2認(rèn)證。2001年1月,聯(lián)想軟件經(jīng)過(guò)英國(guó)路透集團(tuán)的嚴(yán)格評(píng)估,順利通過(guò)CMM2認(rèn)證。 2001 年 6 月 26 日 ,沈陽(yáng)東軟軟件股份有限公司(原沈陽(yáng)東大阿爾派軟件股份有限公司)正式通過(guò)了CMM3級(jí)認(rèn)證,成為中國(guó)首家通過(guò)CMM3級(jí)的軟件企業(yè)。  總體上講,國(guó)內(nèi)對(duì)軟件過(guò)程理論的討論與實(shí)踐正在展開,目標(biāo)是使軟件的質(zhì)量管理和控制達(dá)到國(guó)際先進(jìn)水平,中國(guó)的軟件產(chǎn)業(yè)獲得可持續(xù)發(fā)展的能力。專家分析,在未來(lái)兩三年內(nèi),國(guó)內(nèi)軟件業(yè)勢(shì)必將出現(xiàn)實(shí)施CMM的高潮。從這一趨勢(shì)看,中國(guó)的軟件企業(yè)已經(jīng)開始走上標(biāo)準(zhǔn)化、規(guī)范化、國(guó)際化的發(fā)展道路,中國(guó)軟件業(yè)已經(jīng)面臨一個(gè)整體突破的時(shí)代。  但是我們應(yīng)該看到目前國(guó)內(nèi)對(duì)軟件管理工程存在的最大問(wèn)題是認(rèn)識(shí)不足。管理實(shí)際上是一把手工程,需要高層管理人員的足夠重視。而且軟件過(guò)程的重大修改也必須由高層管理部門啟動(dòng),這是軟件過(guò)程改善能否進(jìn)行到底的關(guān)鍵。此外,軟件過(guò)程的改善還有待于全體有關(guān)人員的積極參與。  除了要認(rèn)識(shí)到過(guò)程改善工作是一把手工程這個(gè)關(guān)鍵因素外,還應(yīng)認(rèn)識(shí)到軟件過(guò)程成熟度的升級(jí)本身就是一個(gè)過(guò)程,且有一個(gè)生命周期。過(guò)程改善工作需要循序漸進(jìn),不能一蹴而就,需要持續(xù)改善,不能停滯不前;需要聯(lián)系實(shí)際,不能照本宣科;需要適應(yīng)變革,不能凝固不變。一個(gè)有效的途徑是自頂向下的課程培訓(xùn),即從高層主管依次普及到下面的工程師。五、CMM****體系結(jié)構(gòu) 一個(gè)企業(yè)軟件能力類似于一個(gè)人在一個(gè)特定領(lǐng)域的能力,是逐步獲得和增長(zhǎng)的。如果一個(gè)人在其領(lǐng)域的發(fā)展過(guò)程中能得到一個(gè)很好的指南,那么他或她就會(huì)不斷達(dá)到一個(gè)個(gè)設(shè)定的目標(biāo),并變得成熟起來(lái),否則可能會(huì)盲目發(fā)展,離自己的目標(biāo)越來(lái)越遠(yuǎn),甚至南轅北轍。一個(gè)企業(yè)的軟件能力發(fā)展也同樣需要一個(gè)良好的指南,SW-CMM正是這樣一個(gè)指南,它以幾十年產(chǎn)品質(zhì)量概念和軟件工業(yè)的經(jīng)驗(yàn)及教訓(xùn)為基礎(chǔ),為企業(yè)軟件能力不斷走向成熟提供了有效的步驟和框架。 框架 SW-CMM為軟件企業(yè)的過(guò)程能力提供了一個(gè)階梯式的進(jìn)化框架,階梯共有五級(jí)。第一級(jí)實(shí)際上是一個(gè)起點(diǎn),任何準(zhǔn)備按CMM體系進(jìn)化的企業(yè)都自然處于這個(gè)起點(diǎn)上,并通過(guò)這個(gè)起點(diǎn)向第二級(jí)邁進(jìn)。除第一級(jí)外,每一級(jí)都設(shè)定了一組目標(biāo),如果達(dá)到了這組目標(biāo),則表明達(dá)到了這個(gè)成熟級(jí)別,可以向下一個(gè)級(jí)別邁進(jìn)。CMM體系不主張跨越級(jí)別的進(jìn)化,因?yàn)閺牡诙?jí)起,每一個(gè)低的級(jí)別實(shí)現(xiàn)均是高的級(jí)別實(shí)現(xiàn)的基礎(chǔ)。1.初始級(jí)
    初始級(jí)的軟件過(guò)程是未加定義的隨意過(guò)程,項(xiàng)目的執(zhí)行是隨意甚至是混亂的。也許,有些企業(yè)制定了一些軟件工程規(guī)范,但若這些規(guī)范未能覆蓋基本的關(guān)鍵過(guò)程要求,且執(zhí)行沒(méi)有政策、資源等方面的保證時(shí),那么它仍然被視為初始級(jí)。2.可重復(fù)級(jí)
    根據(jù)多年的經(jīng)驗(yàn)和教訓(xùn),人們總結(jié)出軟件開發(fā)的首要問(wèn)題不是技術(shù)問(wèn)題而是管理問(wèn)題。因此,第二級(jí)的焦點(diǎn)集中在軟件管理過(guò)程上。一個(gè)可管理的過(guò)程則是一個(gè)可重復(fù)的過(guò)程,一個(gè)可重復(fù)的過(guò)程則能逐漸進(jìn)化和成熟。第二級(jí)的管理過(guò)程包括了需求管理、項(xiàng)目管理、質(zhì)量管理、配置管理和子合同管理五個(gè)方面。其中項(xiàng)目管理分為計(jì)劃過(guò)程和跟蹤與監(jiān)控過(guò)程兩個(gè)過(guò)程。通過(guò)實(shí)施這些過(guò)程,從管理角度可以看到一個(gè)按計(jì)劃執(zhí)行的且階段可控的軟件開發(fā)過(guò)程。3.定義級(jí)
    在第二級(jí)僅定義了管理的基本過(guò)程,而沒(méi)有定義執(zhí)行的步驟標(biāo)準(zhǔn)。在第三級(jí)則要求制定企業(yè)范圍的工程化標(biāo)準(zhǔn),而且無(wú)論是管理還是工程開發(fā)都需要一套文檔化的標(biāo)準(zhǔn),并將這些標(biāo)準(zhǔn)集成到企業(yè)軟件開發(fā)標(biāo)準(zhǔn)過(guò)程中去。所有開發(fā)的項(xiàng)目需根據(jù)這個(gè)標(biāo)準(zhǔn)過(guò)程,剪裁出與項(xiàng)目適宜的過(guò)程,并執(zhí)行這些過(guò)程。過(guò)程的剪裁不是隨意的,在使用前需經(jīng)過(guò)企業(yè)有關(guān)人員的批準(zhǔn)。4.管理級(jí)
    第四級(jí)的管理是量化的管理。所有過(guò)程需建立相應(yīng)的度量方式,所有產(chǎn)品的質(zhì)量(包括工作產(chǎn)品和提交給用戶的產(chǎn)品)需有明確的度量指標(biāo)。這些度量應(yīng)是詳盡的,且可用于理解和控制軟件過(guò)程和產(chǎn)品。量化控制將使軟件開發(fā)真正變成為一種工業(yè)生產(chǎn)活動(dòng)。5.優(yōu)化級(jí)
    第五級(jí)的目標(biāo)是達(dá)到一個(gè)持續(xù)改善的境界。所謂持續(xù)改善是指可根據(jù)過(guò)程執(zhí)行的反饋信息來(lái)改善下一步的執(zhí)行過(guò)程,即優(yōu)化執(zhí)行步驟。如果一個(gè)企業(yè)達(dá)到了這一級(jí),那么表明該企業(yè)能夠根據(jù)實(shí)際的項(xiàng)目性質(zhì)、技術(shù)等因素,不斷調(diào)整軟件生產(chǎn)過(guò)程以求達(dá)到最佳。 結(jié)構(gòu) 除第一級(jí)外,SW-CMM的每一級(jí)是按完全相同的結(jié)構(gòu)構(gòu)成的。每一級(jí)包含了實(shí)現(xiàn)這一級(jí)目標(biāo)的若干關(guān)鍵過(guò)程域(KPA),每個(gè)KPA進(jìn)一步包含若干關(guān)鍵實(shí)施活動(dòng)(KP),無(wú)論哪個(gè)KPA,它們的實(shí)施活動(dòng)都統(tǒng)一按五個(gè)公共屬性進(jìn)行組織,即每一個(gè)KPA都包含五類KP。1.目標(biāo)
    每一個(gè)KPA都確定了一組目標(biāo)。若這組目標(biāo)在每一個(gè)項(xiàng)目都能實(shí)現(xiàn),則說(shuō)明企業(yè)滿足了該KPA的要求。若滿足了一個(gè)級(jí)別的所有KPA要求,則表明達(dá)到了這個(gè)級(jí)別所要求的能力。2.實(shí)施保證
    實(shí)施保證是企業(yè)為了建立和實(shí)施相應(yīng)KPA所必須采取的活動(dòng),這些活動(dòng)主要包括制定企業(yè)范圍的政策和高層管理的責(zé)任。3.實(shí)施能力
    實(shí)施能力是企業(yè)實(shí)施KPA的前提條件。企業(yè)必須采取措施,在滿足了這些條件后,才有可能執(zhí)行KPA的執(zhí)行活動(dòng)。實(shí)施能力一般包括資源保證、人員培訓(xùn)等內(nèi)容。4.執(zhí)行活動(dòng)
    執(zhí)行過(guò)程描述了執(zhí)行KPA所需求的必要角色和步驟。在五個(gè)公共屬性中,執(zhí)行活動(dòng)是唯一與項(xiàng)目執(zhí)行相關(guān)的屬性,其余四個(gè)屬性則涉及企業(yè)CMM能力基礎(chǔ)設(shè)施的建立。執(zhí)行活動(dòng)一般包括計(jì)劃、執(zhí)行的任務(wù)、任務(wù)執(zhí)行的跟蹤等。5.度量分析
    度量分析描述了過(guò)程的度量和度量分析要求。典型的度量和度量分析的要求是確定執(zhí)行活動(dòng)的狀態(tài)和執(zhí)行活動(dòng)的有效性。6.實(shí)施驗(yàn)證
    實(shí)施驗(yàn)證是驗(yàn)證執(zhí)行活動(dòng)是否與所建立的過(guò)程一致。實(shí)施驗(yàn)證涉及到管理方面的評(píng)審和審計(jì)以及質(zhì)量保證活動(dòng)。
    在實(shí)施CMM時(shí),可以根據(jù)企業(yè)軟件過(guò)程存在問(wèn)題的不同程度確定實(shí)現(xiàn)KPA的次序,然后按所確定次序逐步建立、實(shí)施相應(yīng)過(guò)程。在執(zhí)行某一個(gè)KPA時(shí),對(duì)其目標(biāo)組也可采用逐步滿足的方式。過(guò)程進(jìn)化和逐步走向成熟是CMM體系的宗旨。六、CMM實(shí)施的思考  上面重點(diǎn)介紹了CMM,但是提醒注意的是,并不是實(shí)施了CMM,軟件項(xiàng)目的質(zhì)量就能有所保障。CMM是一種資質(zhì)認(rèn)證,它可以證明一個(gè)軟件企業(yè)對(duì)整個(gè)軟件開發(fā)過(guò)程的控制能力。按照CMM的思想進(jìn)行管理與通過(guò)CMM認(rèn)證并不能劃等號(hào)。CMM認(rèn)證并不僅僅是在評(píng)估軟件企業(yè)的生產(chǎn)能力,整個(gè)評(píng)估過(guò)程同時(shí)還在幫助企業(yè)完善已經(jīng)按照CMM建立的科學(xué)工作流程,發(fā)現(xiàn)企業(yè)在軟件質(zhì)量、生產(chǎn)進(jìn)度以及成本控制等方面可能存在的問(wèn)題,并且及時(shí)予以糾正。認(rèn)證的過(guò)程是糾正企業(yè)偏差的過(guò)程,一定不能把CMM認(rèn)證當(dāng)作一種考試、一種文憑,而是要看成一項(xiàng)有利于企業(yè)今后發(fā)展的投資,借此來(lái)改變中國(guó)軟件業(yè)長(zhǎng)久以來(lái)形成的積弊。  實(shí)施CMM對(duì)軟件企業(yè)的發(fā)展起著至關(guān)重要的作用,CMM過(guò)程本身就是對(duì)軟件企業(yè)發(fā)展歷程的一個(gè)完整而準(zhǔn)確的描述,企業(yè)通過(guò)實(shí)施CMM,可以更好地規(guī)范軟件生產(chǎn)和管理流程,使企業(yè)組織規(guī)范化。企業(yè)通過(guò)CMM不是為了滿足其他公司的要求,而是為了讓企業(yè)更好地發(fā)展,為企業(yè)進(jìn)一步擴(kuò)大規(guī)模打下堅(jiān)實(shí)的基礎(chǔ)。如果企業(yè)只是為了獲得一紙證書而通過(guò)CMM,那么就已經(jīng)本末倒置了,對(duì)企業(yè)的長(zhǎng)久發(fā)展反而有害。試想如果企業(yè)的態(tài)度不夠端正,即使通過(guò)CMM認(rèn)證,企業(yè)又怎么能夠保證它在以后的操作過(guò)程當(dāng)中繼續(xù)堅(jiān)持CMM規(guī)范呢?CMM只是一個(gè)讓企業(yè)更好發(fā)展的規(guī)范,不應(yīng)該成為企業(yè)炒作自己的工具,企業(yè)需要的是優(yōu)化自己的管理、提高產(chǎn)品的質(zhì)量,而非一張CMM證書。  CMM不是萬(wàn)能的,它的成功與否,與一個(gè)組織內(nèi)部有關(guān)人員的積極參與和創(chuàng)造性活動(dòng)是密不可分的,而且CMM并未提供實(shí)現(xiàn)有關(guān)子過(guò)程域所需要的具體知識(shí)和技能。在國(guó)內(nèi)要想取得過(guò)程改進(jìn)成功,必須做好以下的幾點(diǎn):軟件過(guò)程改進(jìn)必須有高級(jí)主管的支持與委托,并積極地管理過(guò)程改進(jìn)的進(jìn)展;中層管理的積極支持;責(zé)任分明,過(guò)程改進(jìn)小組的威望高;基層的支持與參與極端重要;利用定量的可觀察數(shù)據(jù),盡快使過(guò)程改進(jìn)成果可見,從而激勵(lì)參與者的興趣;將實(shí)施CMM與實(shí)施PSP和TSP有機(jī)地結(jié)合起來(lái);為企業(yè)的商業(yè)利益服務(wù),并要求同時(shí)相符的企業(yè)文化變革。  應(yīng)該看到,過(guò)程改善工作必然具有一切過(guò)程所具有的固有特征,即需要循序漸進(jìn),不能一蹴而就需要持續(xù)改善,不能停滯不前;需要聯(lián)系實(shí)際,不能照本宣讀需要適應(yīng)變革,不能凝固不變。將CMM/PSP/TSP引人軟件企業(yè)最有效的途徑首先要對(duì)單位主管和主要開發(fā)人員進(jìn)行系統(tǒng)的培訓(xùn)。另外一個(gè)有效的途徑是自頂向下的課程培訓(xùn),即從高層主管依次普及到下面的工程師。培訓(xùn)包括最基本的軟件工程和CMM培訓(xùn)知識(shí);專業(yè)領(lǐng)域知識(shí)等方面的培訓(xùn);軟件過(guò)程方面的培訓(xùn)。不過(guò)強(qiáng)調(diào)一點(diǎn),我們必須根據(jù)自身的實(shí)際制定可行的方案。不深入研究就照搬別的企業(yè)的模式是很難起到提高軟件產(chǎn)品質(zhì)量水平的真正目的的。  CMM模型劃分為5個(gè)級(jí)別,共計(jì)18個(gè)關(guān)鍵過(guò)程域,52個(gè)目標(biāo),300多個(gè)關(guān)鍵實(shí)踐。每一個(gè)CMM等級(jí)的評(píng)估周期(從準(zhǔn)備到完成)約需12-30個(gè)月。此期間應(yīng)抽調(diào)企業(yè)中有管理能力、組織能力和軟件開發(fā)能力的骨干人員,成立專門的CMM實(shí)施領(lǐng)導(dǎo)小組或?qū)iT的機(jī)構(gòu)。同時(shí)設(shè)立軟件工程過(guò)程組、軟件工程組、系統(tǒng)工程組、系統(tǒng)測(cè)試組、需求管理組、軟件項(xiàng)目計(jì)劃組、軟件項(xiàng)目跟蹤與監(jiān)督、軟件配置管理組、軟件質(zhì)量保證組、培訓(xùn)組。各個(gè)小組完成自己的任務(wù)同時(shí)協(xié)調(diào)其他小組的工作。然后制定和完善軟件過(guò)程, 按照CMM規(guī)范評(píng)估這個(gè)過(guò)程。CMM正式評(píng)估由CMU/SEI授權(quán)的主任評(píng)估師領(lǐng)導(dǎo)一個(gè)評(píng)審小組進(jìn)行,評(píng)估過(guò)程包括員工培訓(xùn)、問(wèn)卷調(diào)查和統(tǒng)計(jì)、文檔審查、數(shù)據(jù)分析、與企業(yè)的高層領(lǐng)導(dǎo)討論和撰寫評(píng)估報(bào)告等,評(píng)估結(jié)束時(shí)由主任評(píng)估師簽字生效。此后最關(guān)鍵的就是根據(jù)評(píng)估結(jié)果改進(jìn)軟件過(guò)程,使CMM評(píng)估對(duì)于軟件過(guò)程改進(jìn)所應(yīng)具有的作用得到最好的發(fā)揮。  現(xiàn)在國(guó)內(nèi)軟件產(chǎn)業(yè)的發(fā)展可以說(shuō)已經(jīng)具有一定規(guī)模了,但除了北大方正、東大阿爾派、用友等大企業(yè)外,做軟件工程項(xiàng)目更多的是一些規(guī)模在數(shù)十人左右的中小企業(yè), 目前處于CMM的初級(jí)階段,沒(méi)有基礎(chǔ)和經(jīng)驗(yàn)。也許有人會(huì)問(wèn),像這樣一些人力物力資源匱乏的企業(yè),如何進(jìn)行軟件開發(fā)項(xiàng)目的管理呢?我建議這些中小企業(yè)可以以CMM為框架,先從PSP做起,然后在些基礎(chǔ)上逐漸過(guò)渡到TSP,以保證CMM/PSP/TSP確實(shí)在企業(yè)中生根開花。總之,我們必須從軟件過(guò)程、過(guò)程工程的角度來(lái)看待CMM的發(fā)展,從經(jīng)濟(jì)學(xué)的觀點(diǎn)來(lái)分析這個(gè)過(guò)程的價(jià)值。我相信在實(shí)施CMM/PSP/TSP的過(guò)程中,只要堅(jiān)持改善軟件工程的管理,并在實(shí)踐中注意總結(jié)適合自身的經(jīng)驗(yàn),一定能取得很好的效果。

    ============================================================================

    隨著我國(guó)計(jì)算機(jī)軟件產(chǎn)業(yè)的形成和發(fā)展,軟件產(chǎn)品質(zhì)量保證這一課題逐漸受到各個(gè)軟件開發(fā)組織和政府有關(guān)管理機(jī)構(gòu)的重視。一些規(guī)模較大的軟件開發(fā)組織各自在本單位運(yùn)用質(zhì)量管理理論指導(dǎo)開展了軟件產(chǎn)品質(zhì)量保證活動(dòng);有些軟件開發(fā)公司引入了國(guó)際通行的質(zhì)量管理體系質(zhì)量保證模式——ISO9001(或ISO9002)。鑒于軟件產(chǎn)品本身及其開發(fā)和生產(chǎn)的特殊性,不少軟件開發(fā)組織在實(shí)施ISO9001的同時(shí)亦不同程度地感到ISO9001(加上ISO9000-3)與他們的實(shí)際活動(dòng)不是那么相適應(yīng)。于是,一種專門針對(duì)軟件開發(fā)組織的軟件質(zhì)量保證模型悄然進(jìn)入我國(guó)一些軟件開發(fā)組織和有關(guān)研究單位的研討日程,這就是CMM。

    近幾年來(lái),我國(guó)一些單位有組織地或自發(fā)地開展了對(duì)CMM的研究,有的還在本單位內(nèi)進(jìn)行了嘗試性的CMM實(shí)施。特別是自1998年以來(lái),我國(guó)計(jì)算機(jī)軟件業(yè)界對(duì)CMM的研究熱迅速升溫;“采用ISO9001還是CMM?”的問(wèn)題也悄然出現(xiàn)。無(wú)論是實(shí)施ISO9001,還是尋求運(yùn)用其他軟件產(chǎn)品質(zhì)量保證渠道,這些對(duì)保證軟件產(chǎn)品質(zhì)量的熱情正是我國(guó)軟件產(chǎn)業(yè)正在走向成熟的標(biāo)志。恰當(dāng)?shù)剡x擇軟件開發(fā)組織的產(chǎn)品質(zhì)量保證途徑不僅將有助于各個(gè)軟件開發(fā)組織提高軟件產(chǎn)品開發(fā)和生產(chǎn)能力,亦將為加快我國(guó)軟件產(chǎn)業(yè)的成熟作出貢獻(xiàn)。鑒于CMM在其“原產(chǎn)國(guó)”實(shí)際應(yīng)用中的有效表現(xiàn),引起包括我國(guó)在內(nèi)的許多國(guó)家軟件業(yè)界的興趣,國(guó)際標(biāo)準(zhǔn)化組織(ISO)也順應(yīng)各國(guó)的興趣而開展了與CMM密切相關(guān)的標(biāo)準(zhǔn)課題研究。本文將對(duì)CMM作簡(jiǎn)要介紹,并且把CMM與ISO9001加以比較,最后談?wù)凜MM的應(yīng)用問(wèn)題。

    一CMM簡(jiǎn)介

    我國(guó)目前談及的CMM是指“軟件能力成熟度模型”,其英文全稱為Capability Maturity Model for Software (英文縮寫名是SM-CMM),更確切地說(shuō),是指“軟件能力成熟度模型.1.1版”和“能力成熟度模型的關(guān)鍵慣例.1.1版”(Capability Maturity Model for software,Version1.1和Key Practices of the Capability Maturity Model,Version1.1簡(jiǎn)稱CMM1.1版}。CMM是美國(guó)卡內(nèi)基—梅隆大學(xué)軟件工程研究所(以下簡(jiǎn)稱SEI)的研究成果;CMM1.1版發(fā)表于1993年。SEI是美國(guó)國(guó)防部出資于1984年設(shè)立。從1986年開始,SEI針對(duì)軟件組織改善其軟件過(guò)程,特別是美國(guó)國(guó)防部對(duì)軟件承包商的能力評(píng)價(jià)問(wèn)題,研究“過(guò)程成熟度框架”。1987年9月,SEI發(fā)表了關(guān)于過(guò)程成熟度框架的簡(jiǎn)要說(shuō)明和成熟度調(diào)查問(wèn)卷。以這一過(guò)程成熟度框架為藍(lán)本,在美國(guó)聯(lián)邦政府促進(jìn)下,從1987年到1991年在美國(guó)的一些大公司的軟件組織進(jìn)行了軟件過(guò)程能力成熟度模型的評(píng)估實(shí)踐。根據(jù)這4年的實(shí)踐經(jīng)驗(yàn),特別是從美國(guó)政府和工業(yè)界反饋的關(guān)于軟件過(guò)程評(píng)估的信息,SEI在原過(guò)程成熟度框架的基礎(chǔ)上開發(fā)出了“軟件能力成熟度模型(CMM)0.0版”。在CMM0.0版發(fā)表后的兩年里,先后產(chǎn)生了30多稿草案,于1993年2月發(fā)表了“軟件能力成熟度模型1.1版”和“能力成熟度模型的關(guān)鍵慣例1.1版”(統(tǒng)稱SM-CMM1.1版,有時(shí)干脆簡(jiǎn)稱為CMM)。

    大家都知道,軟件產(chǎn)品的質(zhì)量在很大程度上取決于構(gòu)筑軟件時(shí)所使用的軟件開發(fā)和維護(hù)過(guò)程的質(zhì)量。軟件過(guò)程是人員密集和設(shè)計(jì)密集的作業(yè)過(guò)程;若缺乏有素的訓(xùn)練,就難以建立起支持實(shí)現(xiàn)成功改進(jìn)軟件過(guò)程的基礎(chǔ),改進(jìn)工作亦將難以取得成效。CMM描述的這個(gè)框架正是勾列出從無(wú)定規(guī)的混沌過(guò)程向訓(xùn)練有素的成熟過(guò)程演進(jìn)的途徑。

    迄今為止,CMM既不是政府標(biāo)準(zhǔn)也不是行業(yè)協(xié)會(huì)標(biāo)準(zhǔn),而是美國(guó)卡內(nèi)基—梅隆大學(xué)軟件工程研究所(SEI)發(fā)表的一份技術(shù)報(bào)告;不過(guò),它在美國(guó)已成為事實(shí)上的標(biāo)準(zhǔn)。鑒于CMM的巨大應(yīng)用前景,SEI已在美國(guó)注冊(cè)了CMM, Capability Maturity Model和Capability Maturity Modeling的專利和商標(biāo)。與此同時(shí),圍繞以CMM為基礎(chǔ)的軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)建立了從審核員培訓(xùn)到提供評(píng)估和評(píng)價(jià)的一整套服務(wù)體系。

    SEI給CMM下的定義是:對(duì)于軟件組織在定義,實(shí)現(xiàn),度量,控制和改善其軟件過(guò)程的進(jìn)程中各個(gè)發(fā)展階段的描述。這個(gè)模型便于確定軟件組織的現(xiàn)有過(guò)程能力和查找出軟件質(zhì)量及過(guò)程改進(jìn)方面的最關(guān)鍵的問(wèn)題,從而為選擇過(guò)程改進(jìn)戰(zhàn)略提供指南。

    如前所述CMM1.1版包括兩部分:“軟件能力成熟度模型”和“能力成熟度模型的關(guān)鍵慣例”。“軟件能力成熟度模型”主要是描述這種模型的結(jié)構(gòu),并且給出該模型的基本構(gòu)件的定義;為便于讀者理解,還進(jìn)一步對(duì)成熟度模型及其構(gòu)件做了大量解釋。“能力成熟度模型的關(guān)鍵慣例”除了重復(fù)敘述能力成熟度模型結(jié)構(gòu)及其構(gòu)件外,以大量篇幅詳細(xì)描述了每個(gè)“關(guān)鍵過(guò)程方面”涉及的“關(guān)鍵慣例”。“關(guān)鍵過(guò)程方面”是指:一組相關(guān)聯(lián)的活動(dòng);通過(guò)執(zhí)行這些活動(dòng)可以實(shí)現(xiàn)既定的過(guò)程能力。所謂“關(guān)鍵慣例”是指:使關(guān)鍵過(guò)程方面得以有效實(shí)現(xiàn)和制度化的作用最大的基礎(chǔ)設(shè)施和活動(dòng)。各個(gè)關(guān)鍵慣例按每個(gè)關(guān)鍵過(guò)程方面的5個(gè)“公共特性”(對(duì)執(zhí)行該過(guò)程的承諾,執(zhí)行該過(guò)程的能力,該過(guò)程中要執(zhí)行的活動(dòng),對(duì)該過(guò)程執(zhí)行情況的度量和分析,及證實(shí)所執(zhí)行的活動(dòng)符合該過(guò)程)歸類,逐一詳細(xì)描述。按CMM的規(guī)定,作到了某個(gè)關(guān)鍵過(guò)程的全部關(guān)鍵慣例就認(rèn)為實(shí)現(xiàn)了該關(guān)鍵過(guò)程,實(shí)現(xiàn)了某成熟度級(jí)及其以低各級(jí)所含的全部關(guān)鍵過(guò)程就認(rèn)為達(dá)到了該級(jí)。

    CMM把軟件開發(fā)組織的能力成熟度分為5個(gè)可能的等級(jí)。除了第1級(jí)外,其他每一級(jí)由幾個(gè)關(guān)鍵過(guò)程方面組成。每一個(gè)關(guān)鍵過(guò)程方面都由上述5種公共特性予以表征。CMM給每個(gè)關(guān)鍵過(guò)程規(guī)定了一些具體目標(biāo)。按每個(gè)公共特性歸類的關(guān)鍵慣例是按該關(guān)鍵過(guò)程的具體目標(biāo)選擇和確定的。如果恰當(dāng)?shù)靥幚砹四硞€(gè)關(guān)鍵過(guò)程涉及的全部關(guān)鍵慣例,這個(gè)關(guān)鍵過(guò)程的各項(xiàng)目標(biāo)就達(dá)到了,也就表明該關(guān)鍵過(guò)程實(shí)現(xiàn)了。這種分級(jí)的思路在于把一個(gè)組織執(zhí)行軟件過(guò)程的成熟程度分成循序漸進(jìn)的幾個(gè)階段,這與軟件組織提高自身能力的實(shí)際推進(jìn)過(guò)程相吻合。這種成熟度分級(jí)的優(yōu)點(diǎn)在于,這些級(jí)別明確而清楚地反映了過(guò)程改進(jìn)活動(dòng)的輕重緩急和先后順序。這一點(diǎn)很重要,因?yàn)榇蠖鄶?shù)軟件組織只能在某一段時(shí)間里集中開展少數(shù)幾項(xiàng)過(guò)程改進(jìn)活動(dòng)。

    CMM總體結(jié)構(gòu)圖示說(shuō)明參見圖1。
      圖1能力成熟度模型的結(jié)構(gòu)

    CMM的開發(fā)者們結(jié)合他們的軟件產(chǎn)業(yè)環(huán)境和軟件產(chǎn)品質(zhì)量保證的需要,在CMM1.1版中把具有最高能力成熟度的組織設(shè)定為處于這樣一種情況下的組織:整個(gè)組織都持續(xù)致力于過(guò)程改進(jìn);這個(gè)組織具備足夠的手段用于事先發(fā)現(xiàn)過(guò)程的長(zhǎng)處及短處和防止發(fā)生缺陷;它擁有豐富的軟件過(guò)程成功經(jīng)驗(yàn)的數(shù)據(jù)并且可用于對(duì)新技術(shù)進(jìn)行“費(fèi)/效”分析和提出對(duì)本組織軟件過(guò)程的更改建議;它能發(fā)現(xiàn)那些可能發(fā)掘出最佳軟件工程慣例的合理化建議并使之在整個(gè)組織里實(shí)現(xiàn)轉(zhuǎn)化。這種能力成熟度被定義為CMM的第5級(jí),稱之為“(持續(xù))優(yōu)化級(jí)”。

    另一方面,現(xiàn)實(shí)的軟件業(yè)里尚有不少組織還不具備穩(wěn)定的環(huán)境用于軟件開發(fā)和維護(hù),它們?nèi)狈∪墓芾響T例,其軟件過(guò)程能力無(wú)法預(yù)計(jì);它們的軟件過(guò)程是一片混沌;并且它們的軟件過(guò)程總是隨著軟件開發(fā)工作的推進(jìn)而處于變更和調(diào)整之中。這種情況被CMM定義為第1級(jí)能力成熟度,稱之為“初始級(jí)”。

    第2級(jí)為可重復(fù)級(jí)。在處于可重復(fù)級(jí)的組織里,顧客的需求和本組織的工作產(chǎn)物是受控的并且建立起了基本的項(xiàng)目管理慣例。藉以產(chǎn)生軟件產(chǎn)品的一系列過(guò)程有如一連串“黑盒子”;盡管管理者可能不知道在“黑盒子”里具體發(fā)生了什么,但是,他能掌握過(guò)程的產(chǎn)物和那些確認(rèn)過(guò)程是否正常的校驗(yàn)點(diǎn),從而在發(fā)生問(wèn)題時(shí)作出反應(yīng)。這一級(jí)有6個(gè)關(guān)鍵過(guò)程方面,共含121個(gè)關(guān)鍵慣例:

    ——需求管理(12,這是關(guān)鍵慣例數(shù),以下同)
    ——軟件項(xiàng)目策劃(25)
    ——軟件項(xiàng)目追蹤和監(jiān)督(24)
    ——軟件分包方管理(22)
    ——軟件質(zhì)量保證(17)
    ——軟件配置管理。(21)

    第3級(jí)是(明確)定義級(jí)。在這一級(jí),對(duì)于在整個(gè)組織里用于軟件開發(fā)和維護(hù)的標(biāo)準(zhǔn)過(guò)程以文件形式被固定下來(lái)。針對(duì)各個(gè)基本過(guò)程建立起文件化的“標(biāo)準(zhǔn)軟件過(guò)程”,這是第3級(jí)能力成熟度的突出特點(diǎn)。這些標(biāo)準(zhǔn)軟件過(guò)程(包括工程過(guò)程和管理過(guò)程)被集成為一個(gè)相關(guān)的整體;這些標(biāo)準(zhǔn)軟件過(guò)程有助于軟件經(jīng)理和技術(shù)人員更有效地履行他們的職責(zé)。實(shí)踐表明,對(duì)軟件過(guò)程加以標(biāo)準(zhǔn)化的過(guò)程,也就是發(fā)掘高效軟件工程慣例的過(guò)程。而標(biāo)準(zhǔn)軟件過(guò)程的建立和實(shí)施則為本組織軟件項(xiàng)目的實(shí)施提供了公共的工程環(huán)境。較普遍的看法是,只有當(dāng)達(dá)到了第3級(jí)能力成熟度時(shí),才表明這個(gè)組織的軟件能力“成熟”了。因?yàn)?#xff0c;在到達(dá)這一級(jí)后,表明上述的“黑盒子”被打開了。在第2級(jí)的基礎(chǔ)上,第3級(jí)包括7個(gè)關(guān)鍵過(guò)程方面,共含108個(gè)關(guān)鍵慣例:

    ——組織過(guò)程定焦(16)
    ——組織過(guò)程定義(11)
    ——培訓(xùn)(16)
    ——集成式軟件管理(19)
    ——軟件產(chǎn)品工程(20)
    ——組間協(xié)調(diào)(17)
    ——對(duì)等審查。(9)

    第4級(jí)是定量管理級(jí)。處于這一級(jí)的組織已經(jīng)能夠?yàn)檐浖a(chǎn)品和軟件過(guò)程設(shè)定定量的質(zhì)量目標(biāo),并且能對(duì)跨項(xiàng)目的重要軟件過(guò)程活動(dòng)的效率和質(zhì)量予以度量;可以利用本組織的軟件過(guò)程數(shù)據(jù)庫(kù)匯集各項(xiàng)目軟件過(guò)程產(chǎn)生的數(shù)據(jù)并加以分析。處于第4級(jí)是,該組織的各個(gè)軟件過(guò)程是用各種確切定義并且一致地尺度來(lái)說(shuō)明的;這些尺度是用以評(píng)價(jià)項(xiàng)目的軟件過(guò)程和產(chǎn)物的定量基礎(chǔ)。在第2,3級(jí)的基礎(chǔ)上,第4級(jí)包括兩個(gè)關(guān)鍵過(guò)程方面,共含32個(gè)關(guān)鍵慣例:

    ——定量過(guò)程管理(19)
    ——軟件質(zhì)量管理。(13)
    如前所述,第5級(jí)叫持續(xù)優(yōu)化級(jí)。在前幾級(jí)的基礎(chǔ)上,第5級(jí)包括3個(gè)關(guān)鍵過(guò)程方面,共含59個(gè)關(guān)鍵慣例:
    ——缺陷預(yù)防(18)
    ——技術(shù)變更管理(22)
    ——過(guò)程變更管理。(19)

    CMM1.1版總計(jì)18個(gè)關(guān)鍵過(guò)程方面,320個(gè)關(guān)鍵慣例。

    這18個(gè)關(guān)鍵過(guò)程方面可以劃分為3大類:管理類,組織類和工程類。其中有的關(guān)鍵過(guò)程方面是跨類的,見圖2。

    軟件組織的成熟度等級(jí)只能逐級(jí)遞進(jìn),不可能越級(jí)。成熟度級(jí)別的提高也就意味著實(shí)現(xiàn)的關(guān)鍵慣例大幅度增加;其間關(guān)系見圖3。

    圖2關(guān)鍵過(guò)程方面分類

    圖3成熟度等級(jí)遞進(jìn)與關(guān)鍵慣例含量

    二CMM與ISO

    CMM和ISO9001都涉及質(zhì)量管理和過(guò)程管理,并且都受到類似的厲害關(guān)系驅(qū)動(dòng),兩者之間有著相似之處。因此,往往產(chǎn)生這樣的問(wèn)題:

    ——符合ISO9001的軟件組織達(dá)到CMM的哪一級(jí)?
    ——達(dá)到CMM的第2或3級(jí)的軟件組織是否符合ISO9001?
    ——一個(gè)組織打算推進(jìn)質(zhì)量管理或改進(jìn)軟件過(guò)程時(shí)是采用ISO9001還是采用CMM?

    ISO9001被認(rèn)為是適用于所有各類專業(yè)領(lǐng)域的一種質(zhì)量保證模式;但是,對(duì)于軟件組織來(lái)說(shuō),盡管加上了ISO9000-3作為實(shí)施指南,ISO9001似乎仍然不夠貼切,留給審核員作解釋的回旋余地相當(dāng)大。于是就軟件能力評(píng)定而言,按ISO9001進(jìn)行認(rèn)證時(shí),不確定性很大;換言之,同是通過(guò)了ISO9001認(rèn)證的組織,其間的軟件能力可能有很大差別。

    CMM是專門針對(duì)軟件組織設(shè)計(jì)的一種描述軟件過(guò)程能力的模型。CMM研制的主要目的有二:一是用于幫助事先確定承包商的軟件能力;二是用于軟件組織的過(guò)程改進(jìn)。考慮到按ISO9001對(duì)軟件組織進(jìn)行認(rèn)證審核時(shí)存在的較大不確定性,在設(shè)計(jì)CMM時(shí),注意了盡量縮小審核員解釋的回旋余地,因此,不僅對(duì)每個(gè)關(guān)鍵過(guò)程方面給出了明確的目標(biāo)和體現(xiàn)這些目標(biāo)的各個(gè)關(guān)鍵慣例,而且對(duì)各個(gè)關(guān)鍵慣例都給出了明確的定義和詳細(xì)的說(shuō)明,以期按CMM進(jìn)行評(píng)估時(shí)能有較大的一致性和可靠性。結(jié)果,CMM成了一個(gè)“龐然大物”——長(zhǎng)達(dá)500余頁(yè)。
    如上所述,CMM與ISO9001的設(shè)計(jì)思路不同,并且一個(gè)是“專用”,一個(gè)是“泛用”,因此,盡管兩者都由于涉及質(zhì)量管理和過(guò)程而有著相似之處,但也存在很大差別。下面依次按ISO9001的20個(gè)要素對(duì)CMM作一些簡(jiǎn)單比較。

    1.管理職責(zé)

    ISO9001要求確定質(zhì)量方針并且加以文件化,理解,執(zhí)行和維護(hù);要求確定所有員工在規(guī)定,達(dá)到和監(jiān)控質(zhì)量方面的責(zé)任和權(quán)限;要求確定自有的驗(yàn)證資源,進(jìn)行培訓(xùn)和給予財(cái)政支持。由一名指定的經(jīng)理保證質(zhì)量計(jì)劃的實(shí)現(xiàn)和維護(hù)。

    在CMM中,管理層在質(zhì)量方針和驗(yàn)證活動(dòng)方面的責(zé)任主要反映在“軟件質(zhì)量保證”中,在“軟件項(xiàng)目策劃”和“軟件項(xiàng)目跟蹤和監(jiān)督”中只是指出履行所有項(xiàng)目角色時(shí)的責(zé)任。

    高級(jí)管理層和項(xiàng)目管理層的軟件項(xiàng)目管理責(zé)任是在確認(rèn)實(shí)現(xiàn)中反映。一般,領(lǐng)導(dǎo)問(wèn)題反映在公共特性的“承諾”方面,組織和資源問(wèn)題反映在公共特性的“能力”方面。雖然CMM在第4級(jí)的“軟件質(zhì)量管理”中也描述了質(zhì)量方針,不過(guò),第4級(jí)的質(zhì)量方針是定量的。此外,ISO9001中關(guān)于度量在質(zhì)量管理體系中的作用也有點(diǎn)含糊,ISO9001第4.20條要求確定質(zhì)量目標(biāo)并且形成文件,而沒(méi)有要求量化。

    2.質(zhì)量體系

    ISO9001要求建立文件化的質(zhì)量體系,包括程序和指導(dǎo)書。ISO9000-3以質(zhì)量體系作為整個(gè)軟件生存周期的綜合過(guò)程。

    CMM主要在“軟件質(zhì)量保證”中涉及質(zhì)量體系活動(dòng)。各項(xiàng)程序分布在“關(guān)鍵過(guò)程方面”的各項(xiàng)“要執(zhí)行的活動(dòng)”中。
    軟件項(xiàng)目將用到的特定程序和標(biāo)準(zhǔn)在“軟件項(xiàng)目策劃”中描述的軟件開發(fā)計(jì)劃中規(guī)定。通過(guò)“軟件質(zhì)量保證”和執(zhí)行“確認(rèn)實(shí)現(xiàn)”中的審核活動(dòng)來(lái)確保符合這些標(biāo)準(zhǔn)和程序。

    “軟件產(chǎn)品工程”要求確定各項(xiàng)軟件工程任務(wù),加以綜合并且統(tǒng)一執(zhí)行;這一點(diǎn)與ISO9000-3關(guān)于此條的指南對(duì)應(yīng)。

    CMM第3級(jí)“組織過(guò)程定義”這一關(guān)鍵過(guò)程方面描述了一組組織一級(jí)的軟件過(guò)程財(cái)富,包括標(biāo)準(zhǔn),程序和過(guò)程說(shuō)明。運(yùn)用“組織過(guò)程定義”肯定有助于達(dá)到此條要求,但是在ISO9001的這一條里,標(biāo)準(zhǔn)和程序可能直接在項(xiàng)目級(jí)處理。ISO9001討論供方的質(zhì)量體系,而不討論組織支持與項(xiàng)目實(shí)現(xiàn)的關(guān)系;CMM作了討論。另一方面,在ISO9000-3中,關(guān)于質(zhì)量策劃的指南有兩節(jié):4.2.3節(jié)討論跨項(xiàng)目的質(zhì)量策劃;5.5節(jié)討論具體開發(fā)工作中的質(zhì)量策劃。

    3.合同評(píng)審

    ISO9001要求評(píng)審合同,以確定各項(xiàng)要求是否充分規(guī)定,是否與標(biāo)書一致,是否能實(shí)現(xiàn)。

    在CMM中,對(duì)顧客軟件需求的審查在“需求管理”中敘述。軟件組織(供方)確保分配給軟件的(系統(tǒng))要求形成文件并且予以審查,確保那些可能引起誤解的或含混的要求得以澄清。因?yàn)镃MM僅限于軟件方面,所以顧客需求作為一個(gè)整體歸于“需求管理”這個(gè)關(guān)鍵過(guò)程方面里。

    CMM中的“軟件項(xiàng)目策劃”描述了為簽定合同而要提出的軟件開發(fā)計(jì)劃建議和工作陳述,并且要求軟件工程組和高級(jí)管理層加以審查。

    CMM還就軟件組織通過(guò)分包獲得軟件的情況作了規(guī)定(在“軟件分包方管理”中敘述)。合同可以是與某個(gè)外部顧客的,也可以是與分包方的;雖然這一點(diǎn)在ISO9001的這一節(jié)中沒(méi)有明確規(guī)定,但也可以意識(shí)到。

    4.設(shè)計(jì)控制

    ISO9001要求建立控制和證實(shí)設(shè)計(jì)的程序。這包括策劃設(shè)計(jì)活動(dòng),標(biāo)識(shí)輸入和輸出,證實(shí)設(shè)計(jì)和控制設(shè)計(jì)變更。ISO9000-3用了幾條來(lái)詳細(xì)描述了這一條:購(gòu)方需求規(guī)范(5.3),開發(fā)策劃(5.4),質(zhì)量策劃(5.5),設(shè)計(jì)和實(shí)現(xiàn)(5.6),測(cè)試和驗(yàn)證(5.7)和配置管理(6.1)。

    CMM中,需求分析,設(shè)計(jì),編碼和測(cè)試等生存周期活動(dòng)在“軟件產(chǎn)品工程”中描述。這些活動(dòng)的策劃是在“軟件項(xiàng)目策劃”中描述。“軟件項(xiàng)目跟蹤和監(jiān)督”描述這些活動(dòng)的控制,而“軟件配置管理”描述的是這些活動(dòng)產(chǎn)生的軟件工作產(chǎn)物的配置管理。

    ISO9001要求進(jìn)行諸如記錄并且保存設(shè)計(jì)審查和鑒定測(cè)試之類的設(shè)計(jì)控制手段。ISO9000-3指出,供方應(yīng)該進(jìn)行審查,以保證需求得到滿足和設(shè)計(jì)方法得到正確執(zhí)行。雖然對(duì)設(shè)計(jì)控制手段有要求,但是使用了“shoud”(最好)之類短語(yǔ)則為具體控制手段的使用賦予了靈活性。相反,CMM要求專門的質(zhì)量控制機(jī)制:對(duì)等審查。“對(duì)等審查”這一關(guān)鍵過(guò)程方面支持生存周期從需求分析到測(cè)試的各個(gè)過(guò)程。    
      “軟件質(zhì)量管理”中描述的定量的設(shè)計(jì)過(guò)程方面更為正規(guī),但I(xiàn)SO9001不一定要求這種正規(guī)程度。

    5.文件控制

    ISO9001要求對(duì)文件的分發(fā)和修改予以控制。
      在CMM中,反映文件控制的配置管理慣例在“軟件配置管理”中描述。在CMM中,可以置于配置管理下的具體程序,標(biāo)準(zhǔn)和其他文件分布在各個(gè)關(guān)鍵過(guò)程方面的各種“要執(zhí)行的活動(dòng)”慣例中。為運(yùn)行和維護(hù)質(zhì)量體系所要求的文件在“軟件產(chǎn)品工程”的“活動(dòng)8”中作了具體規(guī)定。

    6.采購(gòu)

    ISO9001要求采購(gòu)的產(chǎn)品符合它們的規(guī)定要求。這包括評(píng)估潛在的分包方和驗(yàn)證采購(gòu)的產(chǎn)品。

    在CMM中,這個(gè)要求反映在“軟件分包管理”中。分包方的評(píng)估在“活動(dòng)2”中描述,分包軟件的驗(yàn)收測(cè)試在“活動(dòng)12”中處理。

    7.顧客提供的產(chǎn)品

    ISO9001要求任何由顧客提供的物資都要經(jīng)過(guò)驗(yàn)證和予以維護(hù)。ISO9000-3是在包含軟件產(chǎn)品(包括商業(yè)現(xiàn)貨軟件)的條文(6.8)中討論這一條。

    在“綜合軟件管理”中的“活動(dòng)6.3”是CMM中描述外購(gòu)軟件使用的唯一慣例。它把標(biāo)示現(xiàn)貨軟件或可再用軟件的條款作為項(xiàng)目策劃的一部分。現(xiàn)貨軟件和可再用軟件的綜合是CMM中的薄弱方面。這一條在ISO9000-3中專門做了擴(kuò)展,而CMM考慮得不夠。雖然不夠,不過(guò),“軟件分包管理”的“活動(dòng)12”中分包軟件的驗(yàn)收測(cè)試慣例可用之于任何所包含的軟件產(chǎn)品,算是一點(diǎn)彌補(bǔ)。

    8.產(chǎn)品標(biāo)識(shí)和溯源

    ISO9001要求在產(chǎn)品生產(chǎn),交付和安裝的所有階段都要給產(chǎn)品加標(biāo)識(shí)并且可追溯。

    CMM覆蓋這一條的主要是“軟件配置管理”,不過(guò)“軟件產(chǎn)品工程”的“活動(dòng)10”指出了對(duì)軟件工作產(chǎn)物之間的一致性和可追溯性的特定要求。

    9.過(guò)程控制

    ISO9001要求確定各項(xiàng)生產(chǎn)過(guò)程并進(jìn)行策劃。這包括在受控條件下按照文件化的作業(yè)指導(dǎo)書進(jìn)行生產(chǎn)。對(duì)于未能充分驗(yàn)證的專用過(guò)程要持續(xù)監(jiān)控。ISO9000-3有幾條包含了此條內(nèi)容:設(shè)計(jì)和實(shí)現(xiàn)(5.6);規(guī)則,慣例和約定(6.5);以及工具和技術(shù)(6.6)。
    CMM中規(guī)定軟件生產(chǎn)過(guò)程的程序分布在各個(gè)關(guān)鍵過(guò)程方面的各項(xiàng)“要執(zhí)行的活動(dòng)”慣例中。將用到的具體慣例和標(biāo)準(zhǔn),按“軟件項(xiàng)目策劃”的“活動(dòng)7”所述,在軟件開發(fā)計(jì)劃中規(guī)定。軟件生產(chǎn)過(guò)程的定義和集成在“軟件產(chǎn)品工程”中描述。過(guò)程保證在“軟件質(zhì)量保證”的“活動(dòng)4”中描述(產(chǎn)品保證在“活動(dòng)5”中規(guī)定)。
    在CMM中,“定量過(guò)程管理”涉及到定量控制,并且要求給出統(tǒng)計(jì)過(guò)程控制的例證,而按ISO9001的審核中一般不要求滿足這一條。
    值得注意的是,ISO9000-3第6.6條指出,供方在必要時(shí)應(yīng)改善這些工具和技術(shù),以便把新技術(shù)引入本組織(與CMM中“技術(shù)變更管理”討論的內(nèi)容相近)。

    10.檢驗(yàn)和測(cè)試

    ISO9001要求對(duì)進(jìn)貨在使用前檢驗(yàn)或驗(yàn)證,要求進(jìn)行過(guò)程中檢驗(yàn)和測(cè)試。在成品予以放行前執(zhí)行最終檢驗(yàn)和測(cè)試。檢驗(yàn)和測(cè)試記錄予以保存。

    CMM是在“軟件產(chǎn)品工程”中的第5,6和7項(xiàng)活動(dòng)里描述測(cè)試問(wèn)題。關(guān)于軟件方面的過(guò)程中檢驗(yàn)是在“對(duì)等審查”中處理。

    11.檢驗(yàn),測(cè)量和測(cè)試設(shè)備

    ISO9001要求對(duì)用于證明符合性的設(shè)備于以控制,校準(zhǔn)和維護(hù)。在使用測(cè)試硬件和測(cè)試軟件時(shí),要在使用之前檢查并且按預(yù)定的時(shí)間間隔復(fù)檢。ISO9000-3在以下幾條中對(duì)這一條作了澄清:測(cè)試和確認(rèn)(5.7);規(guī)則,慣例和約定(6.5);以及工具和技術(shù)(6.6)。
    在CMM中,此條是在“軟件產(chǎn)品工程”的測(cè)試慣例中做了一般性處理。在“能力1.2”(描述支持測(cè)試的工具)中特別提到了測(cè)試軟件。

    12.檢驗(yàn)和測(cè)試狀態(tài)

    ISO9001要求,隨著軟件項(xiàng)經(jīng)由各個(gè)處理步驟推進(jìn)時(shí),其檢驗(yàn)和測(cè)試狀態(tài)得以維護(hù)。

    在CMM中,用“軟件產(chǎn)品工程”的測(cè)試慣例和“軟件配置管理”中的“活動(dòng)5”(問(wèn)題報(bào)告)和“活動(dòng)8”(配置狀態(tài))處理這一條的要求。

    13.不合格品的控制

    9000-3把這個(gè)概念映射到以下幾條:設(shè)計(jì)和實(shí)現(xiàn)(5.6);測(cè)試和確認(rèn)(5.7);復(fù)制,交貨和安裝(5.9)以及配置管理(6.1)。
    在CMM中,設(shè)計(jì),實(shí)現(xiàn),測(cè)試和確認(rèn)是在“軟件產(chǎn)品工程”中處理。在“軟件配置管理”中,“活動(dòng)8”涉及軟件配置項(xiàng)的狀態(tài),包括已知有缺陷(但尚未定位)的軟件項(xiàng)的狀態(tài)。ISO9001第4.15條所述的安裝在CMM中未涉及。

    在制造業(yè)里,這一條很重要,因?yàn)橛袝r(shí)有必要使用未符合全部要求的構(gòu)件建造產(chǎn)品。在做這種決策后,必須小心控制不合格品。

    與之類似,在軟件業(yè),有時(shí)系統(tǒng)可能使用的工具或復(fù)用軟件沒(méi)有滿足全部相關(guān)的標(biāo)準(zhǔn)。例如,如果已在以前的應(yīng)用中證明FORTRAN碼的價(jià)值,在Ada程序中復(fù)用FORTRAN碼也許有良好“費(fèi)/效”比。然而,這個(gè)碼可能給Ada系統(tǒng)帶來(lái)很大風(fēng)險(xiǎn),必須充分掌握這種風(fēng)險(xiǎn)。
    CMM中沒(méi)有專門談及不合格品。ISO9000-3中,有關(guān)不合格品的要求基本上隱含在軟件生存周期的許多有關(guān)過(guò)程中:設(shè)計(jì)和實(shí)施(5.6);測(cè)試和確認(rèn)(5.7);復(fù)制,交付和安裝(5.9)和配置管理(6.1)。

    14.糾正措施

    ISO9001要求找出造成不合格品的原因,消除造成不合格品的潛在原因,根據(jù)糾正結(jié)果改變程序。

    這一段的文字隱含著CMM中“缺陷預(yù)防”里的許多慣例。這一段中討論的糾正措施往往是顧客投訴引發(fā)的。因此往往是由軟件工程組查找現(xiàn)場(chǎng)缺陷,分析其發(fā)生原因,并且采取糾正措施。這種情況常常發(fā)生在對(duì)現(xiàn)場(chǎng)軟件的修補(bǔ)或升級(jí)過(guò)程中。按CMM的思路,是在報(bào)告問(wèn)題之后對(duì)基線工作產(chǎn)品的維護(hù)加以控制。問(wèn)題報(bào)告是在CMM的“軟件配置管理”中描述。

    從審核角度看,糾正措施是要處理審核中發(fā)現(xiàn)的不符合項(xiàng),無(wú)論是內(nèi)部還是外部審核中發(fā)現(xiàn)的。這一點(diǎn)是在CMM的“軟件質(zhì)量保證”中處理。

    在ISO9001運(yùn)用于軟件領(lǐng)域時(shí),這是個(gè)有爭(zhēng)論的問(wèn)題。有的認(rèn)為軟件領(lǐng)域的缺陷預(yù)防過(guò)程與制造業(yè)環(huán)境的類似,有的認(rèn)為只要求涉及用戶問(wèn)題報(bào)告即可。在CMM中,此點(diǎn)亦尚無(wú)定論——究竟“缺陷預(yù)防”中要描述多少過(guò)程中因果分析和缺陷預(yù)防才能滿足ISO9001中這一段的要求,還有爭(zhēng)論。

    15.搬運(yùn),儲(chǔ)存,包裝和交付

    ISO9001要求建立并維護(hù)關(guān)于搬運(yùn),儲(chǔ)存,包裝和交付的程序。

    ISO9000-3中與這段對(duì)應(yīng)的是接受(5.8)和復(fù)制,交付和安裝(5.9)。

    CMM中沒(méi)有覆蓋復(fù)制,交付和安裝。在“軟件產(chǎn)品工程”的”活動(dòng)7”涉及驗(yàn)收測(cè)試,而“軟件配置管理”的“活動(dòng)7”描述了軟件產(chǎn)品的創(chuàng)建和釋放。不過(guò)CMM中沒(méi)有描述交付和安裝產(chǎn)品。

    從CMM的修訂版情況看,可能將在“軟件產(chǎn)品工程”這個(gè)關(guān)鍵過(guò)程方面中增加一個(gè)關(guān)于軟件產(chǎn)品交付和安裝的慣例。

    16.質(zhì)量記錄

    ISO9001要求收集,維護(hù)和處置質(zhì)量記錄。

    在CMM中,對(duì)需要維護(hù)的質(zhì)量記錄加以定義的慣例是以“要執(zhí)行的活動(dòng)”的形式分布在各個(gè)關(guān)鍵過(guò)程方面。在“軟件產(chǎn)品工程”中的測(cè)試和對(duì)等審查慣例,特別是“活動(dòng)9”中關(guān)于缺陷數(shù)據(jù)的收集和分析反映了這一段的內(nèi)容。問(wèn)題報(bào)告是在“軟件配置管理”的“活動(dòng)5”中描述,而對(duì)等審查數(shù)據(jù)的收集是“對(duì)等審查”的“活動(dòng)3”中描述。

    17.內(nèi)部質(zhì)量審核

    ISO9001要求策劃并執(zhí)行質(zhì)量審核。審核結(jié)果要通知管理層,發(fā)現(xiàn)的缺陷要予以糾正。

    在CMM中,質(zhì)量審核過(guò)程由“軟件質(zhì)量保證”描述;具體的審核要求反映在“確認(rèn)實(shí)現(xiàn)”這一公共特性的審核慣例中。

    18.培訓(xùn)

    ISO9001要求確定并提供必要的培訓(xùn),因?yàn)樗x擇的任務(wù)可能要求有相應(yīng)資格的人員。培訓(xùn)記錄要維護(hù)。

    CMM中,是在“執(zhí)行能力”這一公共特性的培訓(xùn)和定向慣例中反映具體的培訓(xùn)需要。

    一般性的培訓(xùn)設(shè)施是在“培訓(xùn)大綱”(包括“活動(dòng)6”中的維護(hù)培訓(xùn)記錄)中描述。

    19.服務(wù)

    ISO9001要求按規(guī)定執(zhí)行服務(wù)活動(dòng)。ISO9000-3把這一段的要求作為維護(hù)(5.10)來(lái)處理。

    雖然CMM的意圖是既適用于軟件開發(fā)也適用于維護(hù)環(huán)境,但CMM中的慣例并不直接處理屬于維護(hù)環(huán)境的獨(dú)特特性。維護(hù)被鑲嵌在CMM的各個(gè)慣例中,并且必須按開發(fā)或維護(hù)的前因后果作相應(yīng)解釋。

    因此,在CMM中,維護(hù)不是一個(gè)獨(dú)立的過(guò)程。從CMM的修改情況看,有可能在措辭上更明確地涉及維護(hù)環(huán)境,以便清楚地表達(dá)CMM在維護(hù)項(xiàng)目方面的應(yīng)用。

    20.統(tǒng)計(jì)技術(shù)

    ISO9001指出,適用時(shí),應(yīng)確定適當(dāng)?shù)慕y(tǒng)計(jì)技術(shù)并且用于驗(yàn)證過(guò)程能力和產(chǎn)品特性的可接受性。ISO9000-3簡(jiǎn)單地在度量(6.4)中表述了這一段的特性。

    CMM中描述度量的慣例分布在各個(gè)關(guān)鍵過(guò)程方面。產(chǎn)品度量一般是包含在各個(gè)“要執(zhí)行的活動(dòng)”慣例中,而過(guò)程度量是在“度量和分析”這一公共特性中描述。

    “組織過(guò)程定義”的“活動(dòng)5”描述了建立組織級(jí)數(shù)據(jù)庫(kù),以便本組織用于收集過(guò)程和產(chǎn)品數(shù)據(jù)。這種數(shù)據(jù)庫(kù)是在組織一級(jí)維護(hù)。在CMM中,項(xiàng)目級(jí)的統(tǒng)計(jì)數(shù)據(jù)是在第2級(jí)里各個(gè)項(xiàng)目管理關(guān)鍵過(guò)程方面描述。

    如果說(shuō)這一條指的是統(tǒng)計(jì)過(guò)程控制,那么,在CMM中是通過(guò)“定量過(guò)程管理”和“軟件質(zhì)量管理”予以滿足。不過(guò),要注意是在“適用時(shí)”使用統(tǒng)計(jì)技術(shù)。

    由上述的大致比較可以看出,盡管ISO9001中的一些內(nèi)容在CMM中沒(méi)有覆蓋,CMM中的一些內(nèi)容在ISO9001沒(méi)有涉及,但是,ISO9001與CMM之間有著很強(qiáng)的相關(guān)性。不過(guò),細(xì)節(jié)上的差別很大:ISO9001第4章大約有5頁(yè);(ISO9000-3的第5,6和7節(jié)大約11頁(yè);)而CMM長(zhǎng)達(dá)500多頁(yè)。不過(guò),這兩分文件間的最大差別在于,CMM強(qiáng)調(diào)的是持續(xù)的過(guò)程改進(jìn);而ISO9001涉及的是質(zhì)量體系的最低可接受標(biāo)準(zhǔn)。此外,CMM專門針對(duì)軟件領(lǐng)域,而ISO9001適用范圍很廣(硬件,軟件,流程性材料和服務(wù))。

    CMM和ISO9001這兩者的最大相似之點(diǎn)在于它們都是“說(shuō)你要做的,做你要說(shuō)的”。ISO9001的基本要求在于,在整個(gè)質(zhì)量控制活動(dòng)中每個(gè)重要過(guò)程都應(yīng)該文件化并且每個(gè)交付件都接受質(zhì)量檢查。

    ISO9001要求編制出指導(dǎo)書或指南之類文件,用以說(shuō)明應(yīng)該做什么或應(yīng)該如何做。在CMM中,同樣強(qiáng)調(diào)過(guò)程和慣例要“文件化”。
     
      CMM強(qiáng)調(diào)要求記錄信息以便供該過(guò)程以后使用或供改善該過(guò)程用。這相當(dāng)于ISO9001中的質(zhì)量記錄——證明所要求的質(zhì)量是否達(dá)到和質(zhì)量體系是否有效運(yùn)行。

    若僅從上述ISO9001和CMM中的基本概念比較看,似乎可以得出結(jié)論:獲得ISO9001認(rèn)證的組織應(yīng)該處于CMM的第3或第4級(jí)。但是,有資料表明,有的組織雖然尚處于第1級(jí),也取得了ISO9001認(rèn)證。原因之一是由于ISO9001的高度概括性而造成的對(duì)文件解釋的多樣性。

    那么,一個(gè)符合ISO9001的軟件組織,如果它完全沒(méi)有實(shí)現(xiàn)ISO9001中未包含的管理或工程慣例,它處于CMM的哪個(gè)成熟度等級(jí)?這是一個(gè)極端情況,不過(guò)它給出了一個(gè)符合ISO9001的組織的成熟度的下邊界。圖4示出這個(gè)組織的關(guān)鍵過(guò)程方面的輪廓。圖中,黑影表示ISO9001或ISO9000-3直接談到的關(guān)鍵慣例;灰影表示按照對(duì)ISO9001的解釋可能涉及的關(guān)鍵慣例;無(wú)陰影表示ISO9001未涉及的關(guān)鍵慣例。因此,就各個(gè)關(guān)鍵過(guò)程方面而言,根據(jù)不同解釋,可以得出部分滿足或全部滿足或不滿足的結(jié)論。陰影條的長(zhǎng)度表示ISO9001或ISO9000-3中涉及到的關(guān)鍵慣例的百分比。

    圖4一個(gè)符合ISO9001的組織的關(guān)鍵過(guò)程輪廓

    由此輪廓可看出,處于CMM第1級(jí)的組織的確有可能通過(guò)符合ISO9001的認(rèn)證;同時(shí),該組織又可能具有很強(qiáng)的第2級(jí)的過(guò)程實(shí)力和明顯的第3級(jí)的過(guò)程實(shí)力。在美國(guó)的有關(guān)業(yè)界里普遍認(rèn)為,一個(gè)得到并且維持ISO9001認(rèn)證的組織,它應(yīng)該是接近第2級(jí)的。

    如果一個(gè)組織遵循ISO9001的精神,而不止于符合其書面條款,這個(gè)組織有可能接近或超過(guò)了第2級(jí)。一個(gè)軟件組織可以得到ISO9001證書但卻處于第1級(jí),這種情況反映出ISO9001的精神與字面的差別。

    是否可以把處于第3級(jí)的組織看成是符合ISO9001的呢?不行,因?yàn)榧词惯@個(gè)組織處于第3級(jí),它還需要確保ISO9001的(4.15)條中描述的交付和安裝要求得到滿足,并且應(yīng)該考慮ISO9000-3中(6.8)條描述的“所包含的軟件產(chǎn)品的使用”。當(dāng)然,這些要求對(duì)處于第3級(jí)的組織來(lái)說(shuō)是微不足道的,即使是處于第2級(jí)的組織也不難通過(guò)ISO9001認(rèn)證審核。

    從上述分析不難得出這一結(jié)論:在CMM中,雖然有的問(wèn)題談的還不夠充分,但大體上包容了ISO9001,ISO9001卻不能包容CMM。

    那么,軟件過(guò)程改進(jìn)應(yīng)該以CMM為基礎(chǔ)(也許再補(bǔ)充一些ISO9001的內(nèi)容),還是致力于ISO9001認(rèn)證?對(duì)于一個(gè)軟件組織來(lái)說(shuō),市場(chǎng)可能要求它擁有ISO9001證書。無(wú)疑,瞄準(zhǔn)CMM的要求進(jìn)行軟件過(guò)程改進(jìn)將有助于本組織通過(guò)ISO9001認(rèn)證審核。就軟件過(guò)程改進(jìn)而言,雖然這兩份文件都可用,不過(guò)CMM給出的指南更詳細(xì)并且視野更寬闊,因此CMM應(yīng)該是較好的選擇。

    從本質(zhì)上說(shuō),在構(gòu)筑競(jìng)爭(zhēng)優(yōu)勢(shì)時(shí)應(yīng)該致力于改進(jìn),而不是只為得到ISO9001證書或達(dá)到某個(gè)CMM成熟度級(jí)。

    三CMM的應(yīng)用

    設(shè)計(jì)CMM的初衷是為了用以支持美國(guó)國(guó)防部對(duì)軟件組織的能力進(jìn)行評(píng)定。因此,從1987年SEI拿出CMM的雛形(“軟件成熟度框架”)后,美國(guó)國(guó)防部便把它用于軟件組織評(píng)估,以支持選擇承包商時(shí)的決策。后來(lái),隨著CMM研制和試用工作的推進(jìn),設(shè)計(jì)者,參與者和支持者們發(fā)現(xiàn)了它的巨大應(yīng)用潛力,于是,CMM的研制目標(biāo)擴(kuò)大為:

    ——以實(shí)踐為基礎(chǔ),
    ——反映最好的實(shí)踐經(jīng)驗(yàn),
    ——反映那些從事軟件過(guò)程改進(jìn),軟件過(guò)程評(píng)價(jià)和軟件能力評(píng)估的人士的需要,
    ——形成書面文件,
    ——供大眾使用。

    由于接受并且通過(guò)了CMM評(píng)估給公司在合同競(jìng)爭(zhēng)中帶來(lái)的好處,使CMM很快在美國(guó)和美國(guó)以外那些希望得到美國(guó)的軟件開發(fā)項(xiàng)目合同的公司傳播開。由于CMM評(píng)估需求大大增加,1994年,在美國(guó)國(guó)防部的支持下,設(shè)立了“軟件過(guò)程改進(jìn)(SPI)服務(wù)部”,明碼市價(jià)對(duì)外提供各種CMM相關(guān)服務(wù)。現(xiàn)在,美國(guó)已有多家咨詢或服務(wù)機(jī)構(gòu)獲得授權(quán)開展此項(xiàng)服務(wù)業(yè)務(wù),以應(yīng)付日益增多的CMM應(yīng)用需要。對(duì)CMM趨之若騖的現(xiàn)象,一些軟件界資深管理人士認(rèn)為,這是因?yàn)椤敖裉?#xff0c;在軟件開發(fā)中的最大問(wèn)題不是技術(shù)問(wèn)題,而是管理問(wèn)題。”

    正式發(fā)表的CMM建立了一套準(zhǔn)則,供大眾用于描述成熟軟件組織的特性。這些準(zhǔn)則可以由軟件組織用于改進(jìn)它們的開發(fā)和維護(hù)軟件的過(guò)程,也可以由政府或商業(yè)組織用來(lái)對(duì)它們?cè)诖蛩闩c某公司簽定軟件項(xiàng)目合同時(shí)涉及的風(fēng)險(xiǎn)進(jìn)行評(píng)價(jià)。簡(jiǎn)言之,CMM主要用途有兩大類:

    ——過(guò)程改進(jìn);
    ——能力評(píng)估。

    CMM用之于軟件過(guò)程改進(jìn)時(shí),是通過(guò)按CMM給出的準(zhǔn)則對(duì)軟件過(guò)程實(shí)施評(píng)價(jià),從而為作出改進(jìn)決策和實(shí)施改進(jìn)提供支持;所以,往往又把CMM在過(guò)程改進(jìn)方面的應(yīng)用看成是過(guò)程評(píng)價(jià)。于是,上述CMM的兩種主要用途又歸結(jié)為兩種評(píng)定方法:

    ·軟件過(guò)程評(píng)價(jià);用于確定組織目前的軟件過(guò)程狀態(tài),確定組織面臨的突出軟件過(guò)程問(wèn)題,從而求得組織的軟件過(guò)程改進(jìn)的支持。
      ·軟件能力評(píng)估。用于識(shí)別合格的軟件工作承包商,或用于監(jiān)控現(xiàn)行軟件工作項(xiàng)目上用的軟件過(guò)程的狀態(tài)。

    CMM是軟件過(guò)程評(píng)價(jià)和軟件能力評(píng)估的公共基礎(chǔ)。不過(guò),兩種用法的目的不同,而且具體用法也有很大差異。軟件過(guò)程評(píng)價(jià)側(cè)重于確定本組織軟件過(guò)程改進(jìn)的輕重緩急;軟件能力評(píng)估側(cè)重于確定在選擇軟件項(xiàng)目承包商時(shí)可能碰到的風(fēng)險(xiǎn),或者說(shuō)是確定軟件組織在軟件能力方面的置信程度。后面這一點(diǎn)正是許多軟件組織看好按CMM評(píng)定等級(jí)的原因。軟件過(guò)程評(píng)價(jià)與軟件能力評(píng)估在動(dòng)機(jī),目標(biāo),范圍以及審核結(jié)果所有權(quán)等方面都有所不同。

    按CMM進(jìn)行軟件過(guò)程評(píng)價(jià)或軟件能力評(píng)估的幾個(gè)大步驟基本相同,從選定評(píng)估組后:

    ——以成熟度調(diào)查問(wèn)卷作為現(xiàn)場(chǎng)訪問(wèn)的出發(fā)點(diǎn);
    ——用CMM作為指導(dǎo)現(xiàn)場(chǎng)調(diào)查研究的路線圖;
    ——針對(duì)CMM中的關(guān)鍵過(guò)程方面指出反映該組織軟件過(guò)程的強(qiáng),弱之點(diǎn);
    ——根據(jù)所了解到的該組織達(dá)到CMM關(guān)鍵過(guò)程方面目標(biāo)的情況描繪出該組織的軟件過(guò)程的概貌;
    ——向被審核者說(shuō)明評(píng)估結(jié)果。

    參見圖5。
    圖5軟件過(guò)程評(píng)價(jià)和軟件能力評(píng)估的共同步驟

    CMM僅僅是模型,為了保證可靠且一致地使用它,美國(guó)卡內(nèi)基-梅隆大學(xué)軟件工程研究所圍繞CMM擬制了一系列支持性文件(包括相應(yīng)的評(píng)價(jià)框架,方法描述和實(shí)施指南)以及各種工具。使用CMM的大致思路是:1)圍繞CMM擬制出CMM評(píng)估框架(CAF),從CAF中歸類出各類要求,(CAF已由SEI擬出并發(fā)表);2)針對(duì)各類要求進(jìn)行相應(yīng)準(zhǔn)備;3)按對(duì)象及其需求采用適當(dāng)?shù)姆椒ㄟM(jìn)行評(píng)定。以CMM為基礎(chǔ)實(shí)施評(píng)定的概念見圖6。

    圖6以CMM為基礎(chǔ)實(shí)施評(píng)定的概念圖

    (圖中CAF=CMM評(píng)估框架IPI=綜合過(guò)程改進(jìn)SCE=軟件能力評(píng)估)

    如前面所述,CMM是由美國(guó)國(guó)防部斥資啟動(dòng)研究的。原定用途是為了確保所選的承包商確有開發(fā)重大軟件項(xiàng)目的能力。因此,CMM涉及了軟件組織軟件能力的方方面面并且詳細(xì)非常。實(shí)施CMM評(píng)定將牽涉大量人力,財(cái)力和時(shí)間。例如,美國(guó)的CMM評(píng)審機(jī)構(gòu)為進(jìn)行一次評(píng)估(或評(píng)價(jià))開出的價(jià)碼是710萬(wàn)美圓。從接受評(píng)估申請(qǐng)到完成評(píng)估跨時(shí)2到3個(gè)月;如果涉及過(guò)程改進(jìn),將可能需時(shí)1824個(gè)月。為了適應(yīng)中,小組織的需要,人們已開始探討CMM的裁剪和壓縮問(wèn)題。不過(guò),對(duì)于軟件組織來(lái)說(shuō),能力的不斷增強(qiáng)是根本所在,所以,美國(guó)的一些規(guī)模不大的軟件公司也早已開始尋求CMM評(píng)估,而沒(méi)有等待“小型CMM”出現(xiàn)。

    CMM這個(gè)模型把軟件組織的能力成熟度分成5個(gè)等級(jí)。從1987年發(fā)表CMM的最初框架到1993年發(fā)布CMM1.1版的這6年試運(yùn)行,除了一些過(guò)去已經(jīng)通過(guò)TQM或其他質(zhì)量管理活動(dòng)而達(dá)到高成熟度的大型公司外,經(jīng)過(guò)評(píng)估并達(dá)到的成熟度等級(jí)大多數(shù)是第2或第3級(jí)。原因在于,CMM勾畫出的這個(gè)分級(jí)遞進(jìn)式框架雖然描述了第4和第5級(jí)成熟度的特征,但是,究竟應(yīng)該用什么樣的實(shí)際表現(xiàn)來(lái)定位第4和第5級(jí),尚有爭(zhēng)論。就成熟度升級(jí)而言,美國(guó)CMM評(píng)估業(yè)界和軟件業(yè)界認(rèn)為,從擬訂出軟件過(guò)程改進(jìn)大綱算起,至少要18~24個(gè)月才能真正完成改進(jìn),并且隨著軟件項(xiàng)目開發(fā)的啟動(dòng)往往要“凍結(jié)”各項(xiàng)相關(guān)的軟件過(guò)程,也就是說(shuō),在軟件開發(fā)過(guò)程中一般不會(huì)去更改該項(xiàng)目開發(fā)涉及的軟件過(guò)程;此外,所處水平越高升級(jí)亦越難——CMM的設(shè)計(jì)也融入了這種思想。因此,盡管從CMM1.1版發(fā)布之日算也已過(guò)去了6年,即使在美國(guó)本土接受并通過(guò)CMM第4或第5級(jí)評(píng)估的主要還是那些在制定出CMM之前就有很強(qiáng)軟件能力的公司(如IBM,波音,洛克希德,休斯,莫托羅拉等)里的軟件組織。從1995年,即CMM1.1發(fā)布后的第3年起,CMM又進(jìn)入了另一個(gè)修改的高峰期。美國(guó)政府和軟件業(yè)界大力支持和積極參與下,SEI先后發(fā)表了CMM2.0版的A版,B版和C版草案;1997年,應(yīng)美國(guó)國(guó)防部之請(qǐng),CMM2.0?版草案停止推進(jìn)。SEI宣布,CMM1.1版和CMM2.0版的C版草案都有效并且SEI及其授權(quán)的機(jī)構(gòu)為這兩種版本提供相應(yīng)的服務(wù)。與此同時(shí),名為“綜合能力成熟度模型”(英文縮寫為CMMI)的一個(gè)綜合性模型投入研制。自CMM1.1發(fā)布起,為與之配合,在以后幾年里SEI相繼研制并發(fā)布了“人員能力成熟度模型”(P-CMM),“軟件采辦能力成熟度模型”(SA-CMM)和“系統(tǒng)工程能力成熟度模型”(SE-CMM)及其支持文件。經(jīng)過(guò)試運(yùn)行,產(chǎn)生了把SM-CMM, P-CMM, SA-CMM和SE-CMM合并在一起的想法和行動(dòng),于是開始了上述的CMMI研制工作。

    受CMM思路的影響,國(guó)際標(biāo)準(zhǔn)化組織(ISO)開始了圍繞SPICE(軟件過(guò)程改進(jìn)和能力確定)的大題目展開了有關(guān)軟件過(guò)程評(píng)估的成套標(biāo)準(zhǔn)制定活動(dòng)。SPICE包含的過(guò)程管理參考模型與SM-CMM類似,不過(guò),SM-CMM著眼于過(guò)程能力,SPICE著眼點(diǎn)是組織能力,而且SPICE提出的一套通用慣例適用于任何過(guò)程的過(guò)程管理,而不僅僅是軟件過(guò)程。目前,ISO將作為技術(shù)報(bào)告發(fā)布的ISO15504(軟件過(guò)程評(píng)估)包括9個(gè)部分:

    第1部分概念與導(dǎo)論
    第2部分過(guò)程和過(guò)程能力的參考模型
    第3部分評(píng)估
    第4部分評(píng)估指南
    第5部分用于評(píng)估模型和指針的指南
    第6部分審核員資格審定指南
    第7部分在過(guò)程改進(jìn)中參考模型使用指南
    第8部分在確定供方過(guò)程能力中參考模型使用指南
    第9部分詞匯。

    CMM雖然已在美國(guó)成為事實(shí)上的標(biāo)準(zhǔn),但它畢竟只是美國(guó)一個(gè)研究所的一份技術(shù)報(bào)告,而且還一直處于修改和變更的過(guò)程中。因此,CMM盡管引起不少國(guó)家軟件業(yè)界的關(guān)注,但是,除了因合同需要而尋求CMM評(píng)估之外,大多處于分析和研究階段;相比之下,國(guó)際標(biāo)準(zhǔn)化組織的步子更大些。如前所述,由于軟件產(chǎn)業(yè)發(fā)展的需要,CMM所表達(dá)的思路也引起了我國(guó)一些軟件組織和其他機(jī)構(gòu)的興趣,幾年前即已開展了相應(yīng)的探討和研究工作。現(xiàn)在有的軟件組織開始談?wù)摗笆菍で驣SO9001認(rèn)證,還是CMM評(píng)估”的現(xiàn)實(shí)問(wèn)題,有的軟件組織正在摸索本組織實(shí)施CMM的可能性,有的已經(jīng)在嘗試準(zhǔn)備按CMM評(píng)估。對(duì)于這些現(xiàn)象,有人歸結(jié)為“CMM在我國(guó)的應(yīng)用問(wèn)題”。筆者認(rèn)為,除了那些因接受軟件出口合同的要求而不得不接受CMM評(píng)估的情況之外,在考慮“CMM在我國(guó)的應(yīng)用”這一問(wèn)題時(shí),特別是在行業(yè)或政府一級(jí)考慮這個(gè)問(wèn)題時(shí)至少要注意以下三點(diǎn):

    ·CMM和Capability Maturity Model已經(jīng)由美國(guó)卡內(nèi)基-梅隆大學(xué)軟件工程研究所在美國(guó)注冊(cè)了專利和商標(biāo);

    ·CMM產(chǎn)生于美國(guó)的軟件產(chǎn)業(yè)那個(gè)環(huán)境;在那個(gè)環(huán)境里,有的公司的軟件組織在CMM產(chǎn)生之前就有相當(dāng)成熟的軟件能力。這種能力不是單靠評(píng)估或認(rèn)證能達(dá)得到的,應(yīng)該說(shuō),這主要是得益于大量軟件項(xiàng)目實(shí)踐以及充分尊重,積累和運(yùn)用實(shí)踐經(jīng)驗(yàn)的結(jié)果。此環(huán)境非彼環(huán)境。

    ·從比較ISO9001與CMM中可以看出,ISO9001和CMM的精神是一致的,兩者都強(qiáng)調(diào)“說(shuō)的要做到,做的要說(shuō)到”,都強(qiáng)調(diào)“文件化(制度化)”;我國(guó)許多軟件組織結(jié)合ISO9001做了大量實(shí)施準(zhǔn)備工作或接受并通過(guò)了審核認(rèn)證。在我們引入更好的軟件質(zhì)量保證途徑時(shí),應(yīng)充分利用這些質(zhì)量保證方面的努力。CMM的思路較好地反映了軟件和軟件開發(fā)工作的特點(diǎn),圍繞CMM而設(shè)計(jì)和擬制的大量支持文件和工具又為實(shí)施一致且可靠的評(píng)估提供了保證;但是,CMM至少存在一個(gè)不足之處——它只強(qiáng)調(diào)“關(guān)鍵過(guò)程方面”和“關(guān)鍵慣例”,因此,接受CMM評(píng)估的組織往往容易忽視那些“非關(guān)鍵”的過(guò)程和(或)慣例,而這些“非關(guān)鍵”的過(guò)程和慣例仍是必須執(zhí)行的。按ISO9001的精神去理解,軟件組織倒不一定忽視這些必須執(zhí)行的“非關(guān)鍵”。此外,正在修訂之中的ISO9000系列標(biāo)準(zhǔn)和ISO15504(軟件過(guò)程評(píng)估)亦應(yīng)關(guān)注。

    當(dāng)然,對(duì)于企業(yè)來(lái)說(shuō),在本組織內(nèi)利用CMM或其思路進(jìn)行軟件過(guò)程改進(jìn)嘗試當(dāng)屬例外。其實(shí),這種摸索嘗試將有益于我國(guó)軟件行業(yè)探求推進(jìn)軟件開發(fā)能力的最佳途徑。希望這些寶貴的實(shí)踐經(jīng)驗(yàn)?zāi)茉谖覈?guó)軟件行業(yè)或政府有關(guān)部門的相應(yīng)工作中發(fā)揮作用,既不要藏之高閣,亦不要置之不理。

    從CMM本身的發(fā)展歷程可以看出,并不是一蹴而就,而是邊擬制邊實(shí)踐,不厭其煩地發(fā)布一版又一版修改稿,不斷調(diào)整,不斷完善。此外,提出CMM者并未止步于這個(gè)“標(biāo)準(zhǔn)”文本,同時(shí)還拿出了與之配套的文件和工具,并且進(jìn)一步展開了拓展研究。在我們開展類似工作時(shí),這些經(jīng)驗(yàn)是值得借鑒的。操之過(guò)急或一哄而起是不可取的。

    ============================================================================

    什么是CMM

    剛才在網(wǎng)站上看到關(guān)于CMM的說(shuō)法,現(xiàn)整理一些資料,以便更全面的了解CMM,里面不是本人寫的.只是整理的.

    軟件開發(fā)能力的成熟度模型(capability manurity model for software,cmm)是軟件 工程協(xié)會(huì)sei(software engineering institution)在卡內(nèi)基.梅隆大學(xué)開發(fā)完成的對(duì)一個(gè) 組織軟件開發(fā)能力進(jìn)行評(píng)價(jià)的標(biāo)準(zhǔn),它側(cè)重于對(duì)軟件開發(fā)過(guò)程和開發(fā)方法論的考察。cmm包 括五個(gè)成熟等級(jí),開發(fā)的能力越強(qiáng),開發(fā)組織的成熟度越高,等級(jí)越高。目前,大多數(shù)公司處 于第一級(jí)和第二級(jí),只有很少的公司可以達(dá)到第五級(jí)。五級(jí)的具體定義如下:
    初級(jí)(initial):軟件開發(fā)過(guò)程中偶爾會(huì)出現(xiàn)混亂的現(xiàn)象,只有很少的工作過(guò)程是經(jīng) 過(guò)嚴(yán)格定義的,開發(fā)成功往往依靠的是某個(gè)人的智慧和努力。
    可重復(fù)的(repeatable):建立了基本的項(xiàng)目管理過(guò)程。按部就班地設(shè)計(jì)功能、跟蹤 費(fèi)用 ,根據(jù)項(xiàng)目進(jìn)度表進(jìn)行開發(fā)。對(duì)于相似的項(xiàng)目,可以重用以前已經(jīng)開發(fā)成功的部分。
    被定義的(defined.):軟件開發(fā)的工程活動(dòng)和管理活動(dòng)都是文檔化、標(biāo)準(zhǔn)化的,它 被集成為一個(gè)組織的標(biāo)準(zhǔn)的開發(fā)過(guò)程。所有項(xiàng)目的開發(fā)和維護(hù)都在這個(gè)標(biāo)準(zhǔn)基礎(chǔ)上進(jìn)行定 制。
    被管理的(managed.):對(duì)于軟件開發(fā)過(guò)程和產(chǎn)品質(zhì)量的測(cè)試細(xì)節(jié)都有很好的歸納, 產(chǎn)品和開發(fā)過(guò)程都可以定量地分解和控制。
    優(yōu)化的(optimizing):通過(guò)建立開發(fā)過(guò)程的定量反饋機(jī)制,不斷產(chǎn)生新的思想,采用 新的技術(shù)來(lái)優(yōu)化開發(fā)過(guò)程。
    除了第一級(jí),其它每一級(jí)都有幾個(gè)特別值得注意的關(guān)鍵過(guò)程。第二級(jí)的關(guān)鍵之處是建 立基本的項(xiàng)目管理控制。他們是需求管理、軟件項(xiàng)目計(jì)劃、軟件項(xiàng)目的跟蹤和監(jiān)督、軟件 轉(zhuǎn)包管理、軟件質(zhì)量保證和軟件組態(tài)管理。
    第三級(jí)的關(guān)鍵之處是既關(guān)注項(xiàng)目問(wèn)題,也關(guān)注組織問(wèn)題,因?yàn)榻M織建立起了使高效率軟 件工程制度化的基本架構(gòu)和跨項(xiàng)目的管理過(guò)程。它們包括組織過(guò)程關(guān)注程度、組織過(guò)程定 義、培訓(xùn)項(xiàng)目、集成化的軟件管理、軟件產(chǎn)品化機(jī)制、項(xiàng)目組的內(nèi)部協(xié)調(diào)和對(duì)出現(xiàn)錯(cuò)誤的 復(fù)查。
    第四級(jí)的關(guān)鍵之處是對(duì)軟件開發(fā)過(guò)程和軟件產(chǎn)品都有一個(gè)定量的理解。它強(qiáng)調(diào)的是定 量的過(guò)程管理和軟件質(zhì)量管理。
    第五級(jí)的關(guān)鍵點(diǎn)強(qiáng)調(diào),不論組織還是項(xiàng)目必須追求持續(xù)的、可度量的過(guò)程改進(jìn)。包括 缺陷預(yù)防、技術(shù)更新管理和流程改造管理。
    cmm和iso9001的出發(fā)點(diǎn)都是通過(guò)對(duì)生產(chǎn)過(guò)程進(jìn)行管理,來(lái)確保產(chǎn)品的質(zhì)量。雖然它們 之間有很多區(qū)別,但也有相似之處。比如,通過(guò)iso9001認(rèn)證的組織,可以基本滿足cmm二級(jí) 的標(biāo)準(zhǔn)和很多cmm三級(jí)的要求。因?yàn)閏mm中的很多要求并沒(méi)有列入iso9000標(biāo)準(zhǔn)之中,所 以,cmm一級(jí)的組織也可能獲得iso9001的登記,defined.同樣,有些iso9001規(guī)定的內(nèi)容并沒(méi) 有列入cmm標(biāo)準(zhǔn)。一個(gè)cmm三級(jí)組織獲得iso9001認(rèn)證幾乎沒(méi)有困難,cmm二級(jí)組織申請(qǐng) iso9001認(rèn)證也有明顯優(yōu)勢(shì)。

    ===========================================================================================

    第一級(jí):初始級(jí)

    在初始級(jí),企業(yè)一般不具備穩(wěn)定的軟件開發(fā)與維護(hù)的環(huán)境。常常在遇到問(wèn)題的時(shí)候,就放棄原定的計(jì)劃而只專注于編程與測(cè)試。

    第二級(jí):可重復(fù)級(jí)

    在這一級(jí),建立了管理軟件項(xiàng)目的政策以及為貫徹執(zhí)行這些政策而定的措施。基于過(guò)往的項(xiàng)目的經(jīng)驗(yàn)來(lái)計(jì)劃與管理新的項(xiàng)目。

    第三級(jí):定義級(jí)

    在這一級(jí),有關(guān)軟件工程與管理工程的一個(gè)特定的、面對(duì)整個(gè)企業(yè)的軟件開發(fā)與維護(hù)的過(guò)程的文件將被制訂出來(lái)。同時(shí),這些過(guò)程是集成到一個(gè)協(xié)調(diào)的整體。這就稱為企業(yè)的標(biāo)準(zhǔn)軟件過(guò)程。

    第四級(jí):定量管理級(jí)

    在這一級(jí),企業(yè)對(duì)產(chǎn)品與過(guò)程建立起定量的質(zhì)量目標(biāo),同時(shí)在過(guò)程中加入規(guī)定得很清楚的連續(xù)的度量。作為企業(yè)的度量方案,要對(duì)所有項(xiàng)目的重要的過(guò)程活動(dòng)進(jìn)行生產(chǎn)率和質(zhì)量的度量。軟件 產(chǎn)品因此具有可預(yù)期的高質(zhì)量。

    第五級(jí):(不斷)優(yōu)化級(jí)

    在這個(gè)等級(jí),整個(gè)企業(yè)將會(huì)把重點(diǎn)放在對(duì)過(guò)程進(jìn)行不斷的優(yōu)化。企業(yè)會(huì)采取主動(dòng)去找出過(guò)程的弱點(diǎn)與長(zhǎng)處,以達(dá)到預(yù)防缺陷的目標(biāo)。同時(shí),分析有關(guān)過(guò)程的有效性的資料,作出對(duì)新技術(shù)的 成本與收益的分析,以及提出對(duì)過(guò)程進(jìn)行修改的建議。

    CMM第一級(jí):初始級(jí)

    ◆ 特征
    (1)軟件過(guò)程的特點(diǎn)是雜亂無(wú)章,有時(shí)甚至混亂,幾乎沒(méi)有定義過(guò)程的規(guī)則或步驟。

    (2)過(guò)分的承諾,常作出良好的承諾:如“按照軟件工程方式,有序的工程來(lái)工作”;或達(dá)到高目標(biāo)的許諾。但實(shí)際上卻出現(xiàn)一系列問(wèn)題。

    (3)遇到危機(jī)就放棄原計(jì)劃過(guò)程,反復(fù)編碼和測(cè)試。

    (4)成功完全依賴個(gè)人努力和杰出的專業(yè)人才,取決于超常的管理人員和杰出有效的軟件開發(fā)開發(fā)人員。具體的表現(xiàn)和成果都源于或者說(shuō)是決定于個(gè)人的能力和他們先前的經(jīng)驗(yàn)、知識(shí)以及他們的進(jìn)取心和積極程度。

    (5)能力只是個(gè)人的特性,而不是開發(fā)組織的特性。依靠著個(gè)人的品質(zhì)或承受著巨大的壓力;或找竅門取得成果。但此類人一旦離去,對(duì)組織的穩(wěn)定作用也消失。

    (6)軟件過(guò)程是不可確定的和不可預(yù)見的。軟件成熟性程度處于第一級(jí)軟件組織的軟件過(guò)程在實(shí)際的工作過(guò)程中被經(jīng)常的改變(過(guò)程是隨意的)。這類組織也在開發(fā)產(chǎn)品,但其成果是不穩(wěn)定的,不可預(yù)見的,不可重復(fù)的。也就是說(shuō),軟件的計(jì)劃、預(yù)算、功能和產(chǎn)品的質(zhì)量都是不可確定和不可預(yù)見的。

    ◆ 過(guò)程
    (1)極少存在或使用穩(wěn)定的過(guò)程

    (2)所謂“過(guò)程”,往往是“就這么干”而言。

    (3)各種條例,規(guī)章制度互不協(xié)調(diào),甚至互相矛盾。

    ◆ 人員
    (1)依賴個(gè)人努力和杰出人物。一旦優(yōu)秀人物離去,項(xiàng)目就無(wú)法繼續(xù)。
    (2)人們的工作方式如同“救火”,就是在開發(fā)過(guò)程中不斷地出現(xiàn)危機(jī),以及不斷的“救火”。

    ◆ 技術(shù)
    引進(jìn)新技術(shù)是極大風(fēng)險(xiǎn)。

    ◆ 度量
    不收集數(shù)據(jù)或分析數(shù)據(jù)。

    ◆ 改進(jìn)方向
    (1)建立項(xiàng)目管理過(guò)程,實(shí)施規(guī)范化管理,保障項(xiàng)目的承諾。

    (2)首要任務(wù)是進(jìn)行需求管理,建立客戶與軟件項(xiàng)目之間的共同理解,使項(xiàng)目真正反映客戶的要求。

    (3)建立各種軟件項(xiàng)目計(jì)劃、如軟件開發(fā)計(jì)劃、軟件質(zhì)量保證計(jì)劃、軟件配置管理計(jì)劃、軟件測(cè)試計(jì)劃、風(fēng)險(xiǎn)管理計(jì)劃及過(guò)程改進(jìn)計(jì)劃。

    (4)開展軟件質(zhì)量保證活動(dòng)(SQA)。

    CMM第二級(jí):可重復(fù)級(jí)

    ◆ 特征
    (1)進(jìn)行較為現(xiàn)實(shí)的承諾,可按以前在同類項(xiàng)目上的成功經(jīng)驗(yàn)建立的必要過(guò)程準(zhǔn)則來(lái)確保再一次的成功。

    (2)主要是逐個(gè)項(xiàng)目地建立基本過(guò)程管理?xiàng)l例來(lái)加強(qiáng)過(guò)程能力。

    (3)建立了基本的項(xiàng)目管理過(guò)程來(lái)跟蹤成本、進(jìn)度和功能。

    (4)管理工作主要跟蹤軟件經(jīng)費(fèi)支出、進(jìn)度及功能。識(shí)別在承諾方面出現(xiàn)的問(wèn)題。

    (5)采用基線(BASELINE)來(lái)標(biāo)志進(jìn)展、控制完整性。

    (6)定義了軟件項(xiàng)目的標(biāo)準(zhǔn),并相信它,遵循它。

    (7)通過(guò)子合同建立有效的供求關(guān)系。

    ◆ 過(guò)程
    (1)軟件開發(fā)和維護(hù)的過(guò)程是相對(duì)穩(wěn)定的,但過(guò)程建立在項(xiàng)目一級(jí)。

    (2)有規(guī)則的軟件過(guò)程是在一個(gè)有效的工程管理系統(tǒng)的控制之下,先前的成功經(jīng)驗(yàn)可以被重復(fù)。

    (3)問(wèn)題出現(xiàn)時(shí),有能力識(shí)別及糾正。承諾是可實(shí)現(xiàn)的。

    ◆ 人員
    (1)項(xiàng)目的成功依賴于個(gè)人的能力以及管理層的支持。

    (2)理解管理的必要性及對(duì)管理的承諾。

    (3)注意人員的培訓(xùn)問(wèn)題。

    ◆ 技術(shù)
    建立技術(shù)支持活動(dòng),并有穩(wěn)定的計(jì)劃。

    ◆ 度量
    每個(gè)項(xiàng)目建立資源計(jì)劃。主要是關(guān)心成本、產(chǎn)品和進(jìn)度。有相應(yīng)的管理數(shù)據(jù)。

    ◆ 改進(jìn)方向
    (1)不再按項(xiàng)目制定軟件過(guò)程,而是總結(jié)各種項(xiàng)目的成功經(jīng)驗(yàn),使之規(guī)則化,把具體經(jīng)驗(yàn)歸納為全組織的標(biāo)準(zhǔn)軟件過(guò)程。把改進(jìn)組織的整體軟件過(guò)程能力的軟件過(guò)程活動(dòng),作為軟件開發(fā)組織的責(zé)任。

    (2)確定全組織的標(biāo)準(zhǔn)軟件過(guò)程,把軟件工程及管理活動(dòng)集成到一個(gè)穩(wěn)固確定的軟件過(guò)程中。從而可以跨項(xiàng)目改進(jìn)軟件過(guò)程效果,也可作為軟件過(guò)程剪裁的基礎(chǔ)。

    (3)建立軟件工程過(guò)程小組(SEPG)長(zhǎng)期承擔(dān)評(píng)估與調(diào)整軟件過(guò)程的任務(wù),以適應(yīng)未來(lái)軟件項(xiàng)目的要求。

    (4)積累數(shù)據(jù),建立組織的軟件過(guò)程庫(kù)及軟件過(guò)程相關(guān)的文檔庫(kù)。

    (5)加強(qiáng)培訓(xùn)。

    CMM第三級(jí):確定級(jí)

    ◆ 特征
    (1)無(wú)論管理方面或工程方面的軟件過(guò)程都已文件化、標(biāo)準(zhǔn)化,并綜合成軟件開發(fā)組織的標(biāo)準(zhǔn)軟件過(guò)程。

    (2)軟件過(guò)程標(biāo)準(zhǔn)被應(yīng)用到所有的工程中,用于編制和維護(hù)軟件。有的項(xiàng)目也可根據(jù)實(shí)際情況,對(duì)軟件開發(fā)組織的標(biāo)準(zhǔn)軟件過(guò)程進(jìn)行剪裁。

    (3)在從事一項(xiàng)工程時(shí),產(chǎn)品的生產(chǎn)過(guò)程、花費(fèi)、計(jì)劃以及功能都是可以控制的,從而軟件質(zhì)量也可以控制。

    (4)軟件工程過(guò)程組(SEPG)負(fù)責(zé)軟件活動(dòng)。

    (5)在全組織范圍內(nèi)安排培訓(xùn)計(jì)劃。

    ◆ 過(guò)程
    (1)整個(gè)組織全面采用綜合性的管理及工程過(guò)程來(lái)管理。軟件工程和管理活動(dòng)是穩(wěn)定的和可重復(fù)的,具有連續(xù)性的。

    (2)軟件過(guò)程起了預(yù)見及防范問(wèn)題的作用,能使風(fēng)險(xiǎn)的影響最小化。

    ◆ 人員
    (1)以項(xiàng)目組的方式進(jìn)行工作。如同綜合產(chǎn)品團(tuán)隊(duì)。

    (2)在整個(gè)組織內(nèi)部的所有人對(duì)于所定義的軟件過(guò)程的活動(dòng)、任務(wù)有深入了解,大大加強(qiáng)了過(guò)程能力。

    (3)有計(jì)劃地按人員的角色進(jìn)行培訓(xùn)。

    ◆ 技術(shù)
    在定性基礎(chǔ)上建立新的評(píng)估技術(shù)。

    ◆ 度量
    (1)在全過(guò)程中收集使用數(shù)據(jù)。

    (2)在全項(xiàng)目中系統(tǒng)性地共享數(shù)據(jù)。

    ◆ 改進(jìn)方向
    (1)開始著手軟件過(guò)程的定量分析,以達(dá)到定量地控制軟件項(xiàng)目過(guò)程的效果。

    (2)通過(guò)軟件的質(zhì)量管理達(dá)到軟件的質(zhì)量目標(biāo)。

    CMM第四級(jí):管理級(jí)

    ◆ 特征
    (1)制定了軟件過(guò)程和產(chǎn)品質(zhì)量的詳細(xì)而具體的度量標(biāo)準(zhǔn),軟件過(guò)程和產(chǎn)品質(zhì)量都可以被理解和控制。

    (2)軟件組織的能力是可預(yù)見的,原因是軟件過(guò)程是被明確的度量標(biāo)準(zhǔn)所度量和操作。不言而喻,軟件產(chǎn)品的質(zhì)量就可以預(yù)見和得以控制。

    (3)組織的度量工程保證所有項(xiàng)目對(duì)生產(chǎn)率和質(zhì)量進(jìn)行度量、并作為重要的軟件過(guò)程活動(dòng)。

    (4)具有良好定義及一致的度量標(biāo)準(zhǔn)來(lái)指導(dǎo)軟件過(guò)程,并作為評(píng)價(jià)軟件過(guò)程及產(chǎn)品的定量基礎(chǔ)。

    (5)在開發(fā)組織內(nèi)已建立軟件過(guò)程數(shù)據(jù)庫(kù),保存收集到的數(shù)據(jù),可用于各項(xiàng)目的軟件過(guò)程。

    ◆ 過(guò)程
    (1)開始定量地認(rèn)識(shí)軟件過(guò)程。

    (2)軟件過(guò)程的變化小,一般在可接受的范圍內(nèi)。 (3)可以預(yù)見軟件過(guò)程中和產(chǎn)品質(zhì)量方面的一些趨勢(shì)。一旦質(zhì)量經(jīng)度量后超出這些標(biāo)準(zhǔn)或是有所違反,可以采用一些方法去改正,以達(dá)到良好的目標(biāo)。

    ◆ 人員
    每個(gè)項(xiàng)目中存在強(qiáng)烈的群體工作意識(shí)。因?yàn)槊咳硕剂私鈧€(gè)人的作用與組織的關(guān)系,因此能夠產(chǎn)生這種群體意識(shí)。

    ◆ 技術(shù)
    不斷的在定量基礎(chǔ)上評(píng)估新技術(shù)。

    ◆ 度量
    (1)在全組織內(nèi)進(jìn)行數(shù)據(jù)收集與確定。

    (2)度量標(biāo)準(zhǔn)化。

    (3)數(shù)據(jù)用于定量地理解軟件過(guò)程及穩(wěn)定軟件過(guò)程。

    ◆ 改進(jìn)方向
    (1)缺陷防范,不僅僅在發(fā)現(xiàn)了問(wèn)題時(shí)能及時(shí)改進(jìn),而且應(yīng)采取特定行動(dòng)防止將來(lái)出現(xiàn)這類缺陷。

    (2)主動(dòng)進(jìn)行技術(shù)變動(dòng)管理、標(biāo)識(shí)、選擇和評(píng)價(jià)新技術(shù),使有效的新技術(shù)能在開發(fā)組織中施行。

    (3)進(jìn)行過(guò)程變動(dòng)管理,定義過(guò)程改進(jìn)的目的,經(jīng)常不斷地進(jìn)行過(guò)程改進(jìn)。

    CMM第五級(jí):優(yōu)化級(jí)

    ◆ 特征
    (1)整個(gè)組織特別關(guān)注軟件過(guò)程改進(jìn)的持續(xù)性、預(yù)見及增強(qiáng)自身,防止缺陷及問(wèn)題的發(fā)生,不斷地提高他們的過(guò)程處理能力。

    (2)加強(qiáng)定量分析,通過(guò)來(lái)自過(guò)程的質(zhì)量反饋和吸收新觀念,新科技,使軟件過(guò)程能不斷地得到改進(jìn)。

    (3)根據(jù)軟件過(guò)程的效果,進(jìn)行成本/利潤(rùn)分析,從成功的軟件過(guò)程中吸取經(jīng)驗(yàn),加以總結(jié)。把最好的創(chuàng)新成績(jī)迅速向全組織轉(zhuǎn)移, 對(duì)失敗的案例,由軟件過(guò)程小組進(jìn)行分析以找出原因。

    (4)組織能找出過(guò)程的不足并預(yù)先改進(jìn),把失敗的教訓(xùn)告知全體組織以防止重復(fù)以前的錯(cuò)誤。

    (5)對(duì)軟件過(guò)程的評(píng)價(jià)和對(duì)標(biāo)準(zhǔn)軟件過(guò)程的改進(jìn),都在全組織內(nèi)推廣。

    ◆ 過(guò)程
    (1)不斷地系統(tǒng)地改進(jìn)軟件過(guò)程。

    (2)理解并消除產(chǎn)生問(wèn)題的公共根源,在任何一個(gè)系統(tǒng)中都可找到:由于隨機(jī)變化造成重復(fù)工作、進(jìn)而導(dǎo)致時(shí)間浪費(fèi)。為了防止浪費(fèi)人力可能導(dǎo)致的系統(tǒng)變化。要消除“公共”的無(wú)效率根源,防止浪費(fèi)發(fā)生。盡管所有級(jí)別都存在這些問(wèn)題,但這是第五級(jí)的焦點(diǎn)。

    ◆ 人員
    (1)整個(gè)組織都存在自覺(jué)的強(qiáng)烈的團(tuán)隊(duì)意識(shí)。

    (2)每個(gè)人都致力過(guò)程改進(jìn),人們不再以達(dá)到里程碑的成就而滿足,而要力求減少錯(cuò)誤率。

    ◆ 技術(shù)
    基于定量的控制和管理,事先主動(dòng)考慮新技術(shù)、追求新技術(shù)。可以實(shí)現(xiàn)軟件開發(fā)中的方法和新技術(shù)的革新、以防止出現(xiàn)錯(cuò)誤,不斷提 高產(chǎn)品的質(zhì)量和生產(chǎn)率。

    ◆ 度量
    利用數(shù)據(jù)來(lái)評(píng)估,選擇過(guò)程改進(jìn)。

    ◆ 改進(jìn)方向
    保持持續(xù)不斷的軟件過(guò)程改進(jìn)。

    CMM總結(jié):五層結(jié)構(gòu)圖

    我們看到,在第五級(jí)上,技術(shù)和過(guò)程的改進(jìn)像普通商業(yè)活動(dòng)一樣有計(jì)劃、有管理地進(jìn)行。由于組織不斷的致力于改進(jìn)過(guò)程的能力,所以軟件開發(fā)組織的能力可持續(xù)改進(jìn)。這種改進(jìn)不僅表現(xiàn)在對(duì)存在的軟件過(guò)程逐步改進(jìn),不表現(xiàn)在采用新技術(shù)和新方法方面的革新。

    畫一個(gè)圖吧:(CMM的五層結(jié)構(gòu)圖)
    -----------------

    / (5) /

    -----------------↑
    | 不斷改進(jìn)的過(guò)程|
    -----------------
    / 可 管 理 級(jí) /
    / (4) /
    -----------------

    | 能預(yù)見的過(guò)程
    |
    -----------------
    / 確 定 級(jí) /
    / (3) /
    -----------------

    | 標(biāo)準(zhǔn)一致的過(guò)程
    |
    -----------------
    / 可 重 復(fù) 級(jí) /
    / (2) /
    -----------------

    | 有紀(jì)律的過(guò)程
    |
    -----------------
    / 初 始 級(jí) /
    / (1) /
    -----------------

    ==================================================================================================

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

    我們首先討論軟件工程管理的意義。軟件工程管理引起廣泛注意源于20世紀(jì)70年代中期。當(dāng)時(shí)美國(guó)國(guó)防部曾立題專門研究軟件項(xiàng)目做不好的原因,發(fā)現(xiàn)70%的項(xiàng)目是因?yàn)楣芾聿簧贫?#xff0c;而并不是因?yàn)榧夹g(shù)實(shí)力不夠,進(jìn)而得出一個(gè)結(jié)論,即管理是影響軟件研發(fā)項(xiàng)目全局的因素,而技術(shù)只影響局部。這個(gè)結(jié)論非常重要。到了20世紀(jì)90年代中期,軟件工程管理不善的問(wèn)題仍然存在。據(jù)美國(guó)軟件工程實(shí)施現(xiàn)狀的調(diào)查,軟件研發(fā)的情況依然很難預(yù)測(cè),大約只有10%的項(xiàng)目能夠在預(yù)定的費(fèi)用和進(jìn)度下交付。在商用軟件產(chǎn)業(yè)中,這一現(xiàn)象尤為嚴(yán)重。1995年,美國(guó)共取消了810億美元的軟件項(xiàng)目,其中31%的項(xiàng)目未做完就取消了,53%的軟件項(xiàng)目進(jìn)度通常要延長(zhǎng)50%的時(shí)間,通常只有9%的軟件項(xiàng)目能夠及時(shí)交付并且費(fèi)用也不超支。軟件項(xiàng)目失敗的主要原因有:需求定義不明確;缺乏一個(gè)好的軟件開發(fā)過(guò)程;沒(méi)有一個(gè)統(tǒng)一領(lǐng)導(dǎo)的產(chǎn)品研發(fā)小組;子合同管理不嚴(yán)格;沒(méi)有經(jīng)常注意改善軟件過(guò)程;對(duì)軟件構(gòu)架很不重視;軟件界面定義不善且缺乏合適的控制;軟件升級(jí)暴露了硬件的缺點(diǎn);關(guān)心創(chuàng)新而不關(guān)心費(fèi)用和風(fēng)險(xiǎn);軍用標(biāo)準(zhǔn)太少且不夠完善等等。在關(guān)系到軟件項(xiàng)目成功與否的眾多因素中,軟件度量、工作量估計(jì)、項(xiàng)目規(guī)劃、進(jìn)展控制、需求變化和風(fēng)險(xiǎn)管理等都是與工程管理直接相關(guān)的因素。由此可見,軟件工程管理的意義至關(guān)重要。

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

    美國(guó) 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)化的層次來(lái)表達(dá):其中初始層是混沌的過(guò)程,可重復(fù)層是經(jīng)過(guò)訓(xùn)練的軟件過(guò)程,定義層是標(biāo)準(zhǔn)一致的軟件過(guò)程,管理層是可預(yù)測(cè)的軟件過(guò)程,優(yōu)化層是能持續(xù)改善的軟件過(guò)程。任何單位所實(shí)施的軟件過(guò)程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬于這5個(gè)層次中的某一個(gè)層次。在某個(gè)層次內(nèi)部,也有成熟程度的區(qū)別。在一個(gè)較低層次的上沿,很可能與一個(gè)較高層次的下沿非常接近,此時(shí)由這個(gè)較低層次向該較高層次進(jìn)化也就比較容易。反之,在一個(gè)較低層次的下沿向較高層次進(jìn)化,就比較困難。在CMM框架的不同層次中,需要解決帶有不同層次特征的軟件過(guò)程問(wèn)題。因此,一個(gè)軟件開發(fā)單位首先需要了解自己處于哪一個(gè)層次,然后才能夠?qū)ΠY下藥地針對(duì)該層次的特殊要求解決相關(guān)問(wèn)題,這樣才能收到事半功倍的軟件過(guò)程改善效果。任何軟件開發(fā)單位在致力于軟件過(guò)程改善時(shí),只能由所處的層次向緊鄰的上一層次進(jìn)化,即軟件過(guò)程的進(jìn)化是漸進(jìn)的,而不能是跳躍的。而且在由某一成熟層次向上一更成熟層次進(jìn)化時(shí),在原有層次中的那些已經(jīng)具備的能力還應(yīng)該得到保持與發(fā)揚(yáng)。

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

    美國(guó)曾在1995年做過(guò)軟件產(chǎn)業(yè)成熟程度的調(diào)查,發(fā)現(xiàn)在美國(guó)的軟件產(chǎn)業(yè)中,CMM成熟度等級(jí)為初始級(jí)的竟占70%,其特征是軟件開發(fā)過(guò)程不能預(yù)測(cè),風(fēng)險(xiǎn)度高;為可重復(fù)級(jí)的占15%,其特征是軟件開發(fā)過(guò)程需小心謹(jǐn)慎方能避免失敗;為定義級(jí)的所占比例小于10%,其特征是軟件開發(fā)過(guò)程相當(dāng)穩(wěn)定,進(jìn)展順利且可以預(yù)測(cè);為管理級(jí)的所占比例小于5%,其特征是軟件過(guò)程預(yù)測(cè)準(zhǔn)確、值得信賴;為優(yōu)化級(jí)的所占比例小于1%,其特征是軟件過(guò)程能持續(xù)改善。國(guó)內(nèi)在這方面的起步則要晚一些,據(jù)我所知,目前只有清華鼎新公司的CMM成熟度等級(jí)達(dá)到可重復(fù)級(jí)。盡管CMM已經(jīng)是一套發(fā)展相當(dāng)成熟的方法,但國(guó)內(nèi)要想完全掌握并廣泛付諸實(shí)踐,對(duì)絕大多數(shù)軟件企業(yè)來(lái)說(shuō),可能還需要3~5年的時(shí)間。

    需要注意的是,并不是實(shí)施了CMM,軟件項(xiàng)目的質(zhì)量就能有所保障。CMM不是萬(wàn)能的,它的成功與否,與一個(gè)組織內(nèi)部有關(guān)人員的積極參與和創(chuàng)造性活動(dòng)是密不可分的,而且CMM并未提供實(shí)現(xiàn)有關(guān)子過(guò)程域所需要的具體知識(shí)和技能。因此,個(gè)體軟件過(guò)程PSP(Personal Software Process)也就應(yīng)運(yùn)而生。PSP為基于個(gè)體和小型群組軟件過(guò)程的優(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ì)問(wèn)題的錯(cuò)誤理解或簡(jiǎn)單的失誤所造成的,只有很少一部分是由于技術(shù)問(wèn)題而產(chǎn)生的。而且根據(jù)多年來(lái)的軟件工程統(tǒng)計(jì)數(shù)據(jù)表明,如果在設(shè)計(jì)階段注入一個(gè)差錯(cuò),則這個(gè)差錯(cuò)在編碼階段要引發(fā)3~5個(gè)新的缺陷,要修復(fù)這些缺陷所花的費(fèi)用要比修復(fù)這個(gè)設(shè)計(jì)缺陷所花的費(fèi)用多一個(gè)數(shù)量級(jí)。因此,PSP保障軟件產(chǎn)品質(zhì)量的一個(gè)重要途徑是提高設(shè)計(jì)質(zhì)量。PSP的推出,在軟件工程界引起了極大的轟動(dòng),可以說(shuō)是由定向軟件工程走向定量軟件工程的一個(gè)標(biāo)志。

    然而實(shí)踐證明,僅有CMM和PSP還是不夠的,因此,CMU/SEI又在此基礎(chǔ)上提出了群組軟件過(guò)程TSP(Team Software Process)的方法。TSP指導(dǎo)項(xiàng)目組中的成員如何有效地規(guī)劃和管理所面臨的項(xiàng)目開發(fā)任務(wù),并且告訴管理人員如何指導(dǎo)軟件開發(fā)隊(duì)伍始終以最佳狀態(tài)來(lái)完成工作。TSP實(shí)施集體管理與自已管理自己相結(jié)合的原則,最終目的在于指導(dǎo)一切人員如何在最少的時(shí)間內(nèi),以預(yù)定的費(fèi)用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品;所采用的方法是對(duì)群組軟件開發(fā)過(guò)程的定義、度量和改進(jìn)。實(shí)施TSP的先決條件有3條:首先,需要有高層主管和各級(jí)經(jīng)理的支持,以取得必要的資源;其次,項(xiàng)目組開發(fā)人員需要經(jīng)過(guò)PSP的培訓(xùn)并有按TSP工作的愿望和熱情;第三,整個(gè)單位在總體上應(yīng)處于CMM二級(jí)以上。在實(shí)施TSP的過(guò)程中,首先要有明確的目標(biāo),開發(fā)人員要努力完成已經(jīng)接受的委托任務(wù)。在每一階段開始,要做好工作計(jì)劃。如果發(fā)現(xiàn)未能按期按質(zhì)完成計(jì)劃,應(yīng)分析原因,以判定問(wèn)題是由于工作內(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)按自己管理自己的原則管理軟件過(guò)程,如發(fā)現(xiàn)過(guò)程不合適,應(yīng)及時(shí)改進(jìn),以保證用高質(zhì)量的過(guò)程來(lái)生產(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é)合起來(lái),才能發(fā)揮最大的效力。因此,軟件過(guò)程框架應(yīng)該是CMM/PSP/TSP的有機(jī)集成,其相互關(guān)系可用圖1來(lái)表示。

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

    除了要認(rèn)識(shí)到過(guò)程改善工作是一把手工程這個(gè)關(guān)鍵因素外,還應(yīng)認(rèn)識(shí)到軟件過(guò)程成熟度的升級(jí)本身就是一個(gè)過(guò)程,且有一個(gè)生命周期。因此,過(guò)程改善工作必然具有一切過(guò)程所具有的固有特征,即需要循序漸進(jìn),不能一蹴而就,需要持續(xù)改善,不能停滯不前;需要聯(lián)系實(shí)際,不能照本宣科;需要適應(yīng)變革,不能凝固不變。而且我認(rèn)為,要將CMM/PSP/TSP引入軟件企業(yè),最有效的途徑是要對(duì)單位主管和主要開發(fā)人員進(jìn)行系統(tǒng)的培訓(xùn)。美國(guó) Carnegie Mellon 大學(xué)軟件工程研究所曾經(jīng)嘗試讓軟件工程師通過(guò)自學(xué)的方式來(lái)進(jìn)行,但實(shí)際上只有不到20%的人能夠堅(jiān)持到底。另外一個(gè)有效的途徑是自頂向下的課程培訓(xùn),即從高層主管依次普及到下面的工程師。 現(xiàn)在國(guó)內(nèi)軟件產(chǎn)業(yè)的發(fā)展可以說(shuō)已經(jīng)具有一定規(guī)模了,但除了北大方正、東大阿爾派、用友等大企業(yè)外,做軟件工程項(xiàng)目更多的是一些規(guī)模在數(shù)十人左右的中小企業(yè)。也許有人會(huì)問(wèn),像這樣一些人力物力資源匱乏的企業(yè),如何進(jìn)行軟件開發(fā)項(xiàng)目的管理呢?我建議這些中小企業(yè)可以以CMM為框架,先從PSP做起,然后在些基礎(chǔ)上逐漸過(guò)渡到TSP,以保證CMM/PSP/TSP確實(shí)在企業(yè)中生根開花。總之,我們必須從軟件過(guò)程、過(guò)程工程的角度來(lái)看待CMM的發(fā)展,從經(jīng)濟(jì)學(xué)的觀點(diǎn)來(lái)分析這個(gè)過(guò)程的價(jià)值。我相信在實(shí)施CMM/PSP/TSP的過(guò)程中,只要堅(jiān)持改善軟件工程的管理,并在實(shí)踐中注意總結(jié)適合自身的經(jīng)驗(yàn),一定能取得很好的效果。

    ==============================================================================

    總結(jié)

    以上是生活随笔為你收集整理的软件能力成熟度模型CMM的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。