1. 什么是軟件過(guò)程?
軟件過(guò)程(Software Process)是指一套關(guān)于項(xiàng)目的階段、狀態(tài)、方法、技術(shù)和開(kāi)發(fā)、維護(hù)軟件的人員以及相關(guān)Artifacts(計(jì)劃、文檔、模型、編碼、測(cè)試、手冊(cè)等)組成。目前有三種方法:UP(the unified process),The OPEN Process,OOSP(The Object-Oriented Software Process)。
軟件過(guò)程(Software Procedure)是指軟件生存周期所涉及的一系列相關(guān)過(guò)程。過(guò)程是活動(dòng)的集合;活動(dòng)是任務(wù)的集合;任務(wù)要起著把輸入進(jìn)行加工然后輸出的作用;顒(dòng)的執(zhí)行可以是順序的、重復(fù)的、并行的、嵌套的或者是有條件地引發(fā)的。
軟件過(guò)程可概括為三類:基本過(guò)程類、支持過(guò)程類和組織過(guò)程類;具^(guò)程類包括獲取過(guò)程、供應(yīng)過(guò)程、開(kāi)發(fā)過(guò)程、運(yùn)作過(guò)程、維護(hù)過(guò)程和管理過(guò)程。支持過(guò)程類包括文檔過(guò)程、配置管理過(guò)程、質(zhì)量保證過(guò)程、驗(yàn)證過(guò)程、確認(rèn)過(guò)程、聯(lián)合評(píng)審過(guò)程、審計(jì)過(guò)程以及問(wèn)題解決過(guò)程。組織過(guò)程類包括基礎(chǔ)設(shè)施過(guò)程、改進(jìn)過(guò)程以及培訓(xùn)過(guò)程。
軟件過(guò)程主要針對(duì)軟件生產(chǎn)和管理進(jìn)行研究。為了獲得滿足工程目標(biāo)的軟件,不僅涉及工程開(kāi)發(fā),而且還涉及工程支持和工程管理。對(duì)于一個(gè)特定的項(xiàng)目,可以通過(guò)剪裁過(guò)程定義所需的活動(dòng)和任務(wù),并可使活動(dòng)并發(fā)執(zhí)行。與軟件有關(guān)的單位,根據(jù)需要和目標(biāo),可采用不同的過(guò)程、活動(dòng)和任務(wù)。
2. 為什么我們需要一個(gè)軟件過(guò)程?
有效的軟件過(guò)程可以提高組織的生產(chǎn)能力:
■理解軟件開(kāi)發(fā)的基本原則,可以幫我們做出明智的決定;
■可以標(biāo)準(zhǔn)化你的工作,提高軟件的可重用性和Team間的協(xié)作;
■我們所采用的這種機(jī)制本身是不斷提高的,我們可以跟上潮流,使自己不斷接收新的,最好的軟件開(kāi)發(fā)經(jīng)驗(yàn);
有效的軟件過(guò)程可以改善我們對(duì)軟件的維護(hù):
■有效地定義如何管理需求變更,在未來(lái)的版本中恰當(dāng)分配變更部分,使之平滑過(guò)渡;
■首先在具體操作和相關(guān)支持中定義如何平滑地改造軟件,并且這種具體操作和支持是可實(shí)施的;不可實(shí)施的軟件過(guò)程將很快被束之高閣;
為什么要采用軟件過(guò)程?歸根結(jié)蒂,形勢(shì)所逼!
3. 實(shí)施軟件過(guò)程的必要條件
CMM(Capability Maturity Modeling)作出了明確的定義(由The Software Engineering Institute提出 http://www.sei.cmu.edu ,國(guó)內(nèi)我就知道用友在實(shí)施中)
4. 五個(gè)成熟等級(jí)
第一級(jí):初始級(jí)
在初始級(jí),企業(yè)一般不具備穩(wěn)定的軟件開(kāi)發(fā)與維護(hù)的環(huán)境。常常在遇到問(wèn)題的時(shí)候,就放棄原定的計(jì)劃而只專注于編程與測(cè)試。處于這一等級(jí)的企業(yè),成功與否在很大程度上決定于有杰出的項(xiàng)目經(jīng)理與經(jīng)驗(yàn)豐富的開(kāi)發(fā)團(tuán)隊(duì)。因此,能否雇請(qǐng)到及保有能干的員工成了關(guān)鍵問(wèn)題。項(xiàng)目成功與否非常不確定。雖然產(chǎn)品一般來(lái)說(shuō)是可用的,但是往往有超經(jīng)費(fèi)與不能按期完成的問(wèn)題。
第二級(jí):可重復(fù)級(jí)
在這一級(jí),建立了管理軟件項(xiàng)目的政策以及為貫徹執(zhí)行這些政策而定的措施;谶^(guò)往的項(xiàng)目的經(jīng)驗(yàn)來(lái)計(jì)劃與管理新的項(xiàng)目。企業(yè)實(shí)行了基本的管理控制。符合實(shí)際的項(xiàng)目承諾是基于以往項(xiàng)目以及新項(xiàng)目的具體要求而作出的。項(xiàng)目經(jīng)理不斷監(jiān)視成本、進(jìn)度和產(chǎn)品功能,及時(shí)發(fā)現(xiàn)及解決問(wèn)題以便實(shí)現(xiàn)所作的各項(xiàng)承諾。
通過(guò)具體地實(shí)施這一級(jí)的各個(gè)關(guān)鍵過(guò)程領(lǐng)域的要求,企業(yè)實(shí)現(xiàn)了過(guò)程的規(guī)范化、穩(wěn)定化。因而,曾經(jīng)取得過(guò)的成功成為可重復(fù)達(dá)到的目標(biāo)。
第三級(jí):定義級(jí)
在這一級(jí),有關(guān)軟件工程與管理工程的一個(gè)特定的、面對(duì)整個(gè)企業(yè)的軟件開(kāi)發(fā)與維護(hù)的過(guò)程的文件將被制訂出來(lái)。同時(shí),這些過(guò)程是集成到一個(gè)協(xié)調(diào)的整體。這就稱為企業(yè)的標(biāo)準(zhǔn)軟件過(guò)程。
這些標(biāo)準(zhǔn)的過(guò)程是用于幫助管理人員與一般成員工作得更有效率。如果有適當(dāng)?shù)男枰,也可以加以修改。在這個(gè)把過(guò)程標(biāo)準(zhǔn)化的努力當(dāng)中,企業(yè)開(kāi)發(fā)出有效的軟件工程的各種實(shí)踐活動(dòng)。
同時(shí),一個(gè)在整個(gè)企業(yè)內(nèi)施行的培訓(xùn)方案將確保工作人員與管理人員都具備他們所需要的知識(shí)與技能。
非常重要的一點(diǎn)是,項(xiàng)目小組要根據(jù)該項(xiàng)目的特點(diǎn)去改編企業(yè)的標(biāo)準(zhǔn)軟件過(guò)程來(lái)制訂出為本項(xiàng)目而定義的過(guò)程。
一個(gè)定義得很清楚的過(guò)程應(yīng)當(dāng)包括:準(zhǔn)備妥當(dāng)?shù)呐袚?jù),輸入,完成工作的標(biāo)準(zhǔn)和步驟,審核的方法,輸出和完成的判據(jù)。因?yàn)檫^(guò)程被定義得很清楚,因此管理層就能對(duì)所有項(xiàng)目的技術(shù)過(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ì)量。
一個(gè)企業(yè)范圍的數(shù)據(jù)庫(kù)被用于收集與分析來(lái)自各項(xiàng)目的過(guò)程的數(shù)據(jù)。這些度量建立起了一個(gè)評(píng)價(jià)項(xiàng)目的過(guò)程與產(chǎn)品的定量的依據(jù)。項(xiàng)目小組可以通過(guò)縮小他們的效能表現(xiàn)的偏差使之處于可接受的定量界限之內(nèi),從而達(dá)到對(duì)過(guò)程與產(chǎn)品進(jìn)行控制的目的。
因?yàn)檫^(guò)程是穩(wěn)定的和經(jīng)過(guò)度量,所以在有意外情況發(fā)生時(shí),企業(yè)能夠很快辨別出特殊的原因并加以處理
第五級(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)行修改的建議。整個(gè)企業(yè)都致力于探索最佳軟件工程實(shí)踐的創(chuàng)新。