1、過程是活動的集合,軟件過程是與軟件開發(fā)與維護相關(guān)的活動的集合。
2、過程管理是制定過程和對過程活動進行動態(tài)監(jiān)管。軟件過程管理的目的是最大限度地提高軟件產(chǎn)品的質(zhì)量和軟件開發(fā)過程的生產(chǎn)率。
3、軟件過程管理的途徑:軟件過程模型→ 組織標準軟件過程→ 項目定義軟件過程→ 過程實施與監(jiān)控→ 軟件過程改進。
4、過程的分類:產(chǎn)品實現(xiàn)過程;管理過程;支持過程。在軟件過程中,產(chǎn)品實現(xiàn)過程被稱為“工程過程”。
軟件工程( Software Engineering)
l 指導(dǎo)計算機軟件開發(fā)和維護的工程科學。
l 旨在確定軟件開發(fā)技術(shù)規(guī)范,其中軟件開發(fā)技術(shù)包含:軟件開發(fā)方法學、軟件工具和軟件工程環(huán)境。
l 應(yīng)用計算機科學(用于構(gòu)造模型預(yù)算法)、工程科學(用于制定規(guī)范、設(shè)計模型、評估成本及權(quán)衡利弊)和管理科學(用于計劃、資源、質(zhì)量、成本等管理)的基本原理。
l 與其他工程的區(qū)別:產(chǎn)品是程序。
l 特點:規(guī)范化、文檔化。
l 軟件過程是指軟件開發(fā)人員開發(fā)和維護軟件以及相關(guān)產(chǎn)品(如項目計劃、設(shè)計文檔、代碼、測試用例和顧客手冊)的一套行為、方法、實踐以及變化過程。
l 軟件過程管理的重要前提是:軟件產(chǎn)品質(zhì)量的好壞主要取決于開發(fā)和維護該產(chǎn)品所使用的軟件過程質(zhì)量。
l 有效的軟件過程可將人員、工具和方法進行有機結(jié)合。
軟件過程管理
l 對軟件開發(fā)全過程規(guī)范化及標準化的管理。
l 軟件過程管理技術(shù)包括:軟件管理學和軟件工程經(jīng)濟學。
l 目前,國外普遍采用的軟件過程管理方法是:美國卡內(nèi)基·梅隆大學軟件工程研究所(SEI) 提出的軟件能力成熟度模型(SW-CMM)。
l 目的:研究如何有效地對軟件開發(fā)項目進行管理,以便按照進度和預(yù)算完成軟件項目計劃,實現(xiàn)預(yù)期的經(jīng)濟效益和社會效益。
l 包括:成本估計、進度計劃、人員組織、質(zhì)量保證等。
軟件特殊性
l 軟件開發(fā)的進度難于控制
l 估計軟件工作量很困難
l 軟件質(zhì)量難于保證
l 修正維護軟件困難
軟件項目出現(xiàn)的典型問題
l 缺少用戶的參與
l 需求及其說明不完整或經(jīng)常變更
l 項目得不到高層管理者的支持
l 技術(shù)能力不足或?qū)π录夹g(shù)不熟悉
l 資源投入不足
l 預(yù)期要求過高
l 項目目標不清晰
l 人員配合存在問題
l 軟件開發(fā)項目是在規(guī)定的成本和時間內(nèi),開發(fā)和提交滿足客戶某些需求的軟件產(chǎn)品。
l 項目的三個基本特征是:成本、進度和質(zhì)量(代表軟件在多大程度上滿足客戶的要求)。
l 一個項目的成功與否在于它是否達到或者超過成本、進度或者質(zhì)量的預(yù)期目標。
l 項目失敗的原因可能有:不正確的估計、松散的需求管理、薄弱的項目管理、不正確的風險管理以及不好的工程解決方案等,這些原因都可以歸結(jié)為過程失敗(用于執(zhí)行軟件項目的過程)。
軟件項目失控的主要原因是:
過程失敗
l 目標不明確
l 計劃差
l 沒有項目管理方法
風險管理
l 使用新技術(shù)
l 沒有足夠的人員
軟件過程:
l 軟件過程是指軟件開發(fā)人員開發(fā)和維護軟件以及相關(guān)產(chǎn)品(如項目計劃、設(shè)計文檔、代碼、測試用例和顧客手冊)的一套行為、方法、實踐以及變化過程。
l 軟件過程管理的重要前提是:軟件產(chǎn)品質(zhì)量的好壞主要取決于開發(fā)和維護該產(chǎn)品所使用的軟件過程質(zhì)量。
l 有效的軟件過程可將人員、工具和方法進行有機結(jié)合。
l 對于機構(gòu)而言,包含多個項目,而實現(xiàn)機構(gòu)的高質(zhì)量和生產(chǎn)率,依賴于三個因素:過程、人和技術(shù)。
l 其中過程不僅僅是一系列步驟,還包含了機構(gòu)所積累的經(jīng)驗,包含了機構(gòu)可以從已成功的項目中所學到的一切。
l 通過以過程的形式獲取成功的經(jīng)驗,并在將來的項目中使用這些過程,機構(gòu)就可以確保項目的持續(xù)成功。
l 過程在有效地控制機構(gòu)發(fā)展方面充當了關(guān)鍵角色。
一個組織的生產(chǎn)率及其產(chǎn)品的質(zhì)量取決于所采用的過程的質(zhì)量。——Watts S.Humphrey
不成熟過程和成熟過程的比較
不成熟的過程 | 成熟的過程 |
●個性強、控制弱 ●高度依賴于專業(yè)人員 ●結(jié)果不可預(yù)測 ●成本、進度、質(zhì)量經(jīng)常出現(xiàn)問題 ●采用新技術(shù)風險大 | ●過程被定義并文檔化 ●過程得到很好控制 ●過程可以度量 ●關(guān)注的焦點是過程改進 ●過程本身受技術(shù)支持 |
不同成熟度的過程管理特征
不成熟的(幼稚的) | 成熟的 |
無序、個人英雄主義 | 有序、有組織的過程 |
無法預(yù)測 | 有可見性、可預(yù)測 |
個人經(jīng)驗主義 | 被業(yè)界的實踐證實 |
經(jīng)常管理失控、救火 | 可管理、可分析 |
沒有或很少有量化指標 | 擁有量化數(shù)據(jù): 質(zhì)量、進度、生產(chǎn)率、 功能度 |
基本術(shù)語
軟件過程能力software process capability:描述了遵循某軟件過程可能達到的預(yù)期結(jié)果的范圍。
軟件過程效能(性能)software process performance:表示遵循一個過程所達到的實際結(jié)果的一種度量。
由于項目要求和客觀環(huán)境的差異,軟件過程性能不可能充分反映軟件過程的整體能力,即軟件過程能力受限于它的環(huán)境。
軟件過程成熟度:是指針對具體的軟件過程進行明確定義、管理、測量、控制以及有效的程度。表明軟件工程能力增長的潛力,表明機構(gòu)軟件過程的豐富性以及其應(yīng)用于項目的一致性。
過程管理原則(五個)
過程的穩(wěn)定性:
片面強調(diào)個性的過程不可能進行有序而持久改進。
過程的明確性:
組織必須識別復(fù)雜過程的關(guān)鍵步驟,將關(guān)注焦點放在對其改進上。
過程和產(chǎn)品檢驗:
過程檢驗和產(chǎn)品檢驗同樣重要。
系統(tǒng)方法:
孤立地解決問題將導(dǎo)致過程惡化。
過程支持:
不要期望過程能通過自身獲得改進。
軟件產(chǎn)業(yè)與CMM的提出
l 專門針對軟件產(chǎn)業(yè)制定的CMM認證體系(SW-CMM)
l 世界上軟件發(fā)展的水平參差不齊。
n 美國、歐洲、日本和印度等國家:水平高、質(zhì)量好、規(guī)模大
n 我國進展顯著,發(fā)展速度相對落后。
什么是CMM
l CMM概況
l 用于解決“軟件危機”
l 將工程的概念、原理、技術(shù)和方法引入了軟件系統(tǒng)開發(fā),在一定程度上解決了軟件生產(chǎn)過程中遇到的問題。軟件工程成為軟件產(chǎn)業(yè)的重要分支。
l 管理是影響軟件研發(fā)項目全局的因素,而技術(shù)只影響局部。
l 1987年9月,美國卡內(nèi)基-梅隆大學軟件工程研究所發(fā)布了軟件過程成熟度框架,并提供了軟件過程評估和軟件能力評價兩種評估方法和軟件成熟度提問單。
l 4年之后,SEI將軟件過程成熟度框架進化為軟件能力成熟度模型(Capability Maturity Model For Software,簡稱SW-CMM)。
l 自CMM 1.1發(fā)布起,SEI相繼研制并發(fā)布了“人員能力成熟度模型”(P-CMM),“軟件訪問能力成熟度模型”(SA-CMM)和“系統(tǒng)工程能力成熟度模型”(SE-CMM)及其支持文件。
l 經(jīng)過試運行,產(chǎn)生了把SW-CMM, P-CMM, SA-CMM和SE-CMM合并在一起的想法,于是開始了名為“綜合能力成熟度模型”(英文縮寫為CMMI)的一個綜合性模型投入研制。
l 圍繞以CMM為基礎(chǔ)的軟件過程評估和軟件能力評價,建立了從審核員培訓到提供評估和評價的一整套服務(wù)體系。
CMM的理論基礎(chǔ)
“丹明鏈”
“全面質(zhì)量管理”
“質(zhì)量管理顧問公司(質(zhì)量研究所)”
SEI給CMM下的定義
對于軟件組織在定義、實現(xiàn)、度量、控制和改善其軟件過程的各個發(fā)展階段的描述。這個模型便于確定軟件組織的現(xiàn)有過程能力和查找出軟件質(zhì)量及過程改進方面的最關(guān)鍵的問題,從而為選擇過程改進戰(zhàn)略提供指南。
CMM的發(fā)展方向
CMM的主要特點
l 基于實際實踐
l 最好的反映了實踐的情況
l 反映了軟件過程改進和軟件過程評估執(zhí)行人員的需求
l 形成文檔
l 文檔可以公開使用
CMM是活的文檔,在穩(wěn)定性需求和不斷的過程改進之間提供適當和實際的平衡點。
l CMM為軟件企業(yè)的過程能力提供了一個階梯式的進化框架,它基于過去所有軟件工程成果的過程改善的框架,吸取了以往軟件工程的經(jīng)驗教訓。
l 它指明了一個成熟的軟件組織在軟件開發(fā)方面需要管理的那些主要工作、這些工作之間的關(guān)系、以及以怎樣的先后次序,一步一步的做好這些工作使軟件組織走向成熟。是目前國際上最流行也是最實用的軟件生產(chǎn)過程標準。
CMM的用途包括:軟件過程改進;軟件過程評估;軟件組織開發(fā)能力評價.但它不是特定的軟件開發(fā)技術(shù)。
設(shè)計CMM,就是為了指導(dǎo)軟件企業(yè)通過判斷當前自身的過程成熟度,提出幾個對軟件質(zhì)量和過程提高最為關(guān)鍵的問題,以此來選擇過程的提高策略。
CMM是一個模型,人稱“事實上的標準”
為什么我們需要學習CMM
對軟件企業(yè)而言:
l 規(guī)范軟件開發(fā)過程及其管理
l 規(guī)范市場競爭
l 幫助企業(yè)進行內(nèi)部軟件過程改進
l 增加企業(yè)的國際競爭力
l 降低軟件開發(fā)風險
理解CMM需要注意以下幾點
l 它僅指明該做什么,而沒有指明如何做,它不是方法論。
l 它僅指明該做的關(guān)鍵內(nèi)容,它僅描述軟件過程的本質(zhì)屬性,而并非面面俱到。抓問題的主要方面的思想貫穿在整個CMM模型中。
l 軟件過程是指軟件工程過程、軟件管理過程和軟件組織的過程三者的有機結(jié)合。
l 它是從軟件過程的角度考慮問題,而并非關(guān)注軟件開發(fā)工具。
l CMM為改善整個企業(yè)的軟件過程提供了指南,而并非針對某個具體項目。
l SW-CMM認為過程的不斷改進基于許多小的、進化的步驟而不是革命性的創(chuàng)新。
l 基于CMM的過程改善投資力度大、周期長,而技術(shù)投資則可能在短期內(nèi)有較快回報。單獨依靠技術(shù)改進可能在短期內(nèi)有較快回報,但最終可能一無所獲。
ISO 9001與CMM異同
CMM與ISO9001的設(shè)計思路不同,并且一個是“專用”,一個是“泛用”,因此,盡管兩者都由于涉及質(zhì)量管理和過程而有著相似之處,但也存在很大差別。
與ISO標準系列相比,CMM更為軟件產(chǎn)業(yè)所看好
原因是它專門針對軟件工程控制而設(shè)置的,不僅進行軟件企業(yè)工程能力的評估,更致力于軟件開發(fā)過程的管理,強調(diào)“對軟件開發(fā)過程進行持續(xù)改進”,引導(dǎo)軟件開發(fā)過程走向成熟。
相同點 | 不同點 |
CMM和ISO 9001標準系列都著眼于質(zhì)量和過程管理,二者都為了解決同樣的問題。 | CMM是動態(tài)的、開放的和持續(xù)改進的,強調(diào)沒有最好只有更好,強調(diào)不斷改進,強調(diào)人在軟件開發(fā)方面的思想認識和主動性,適用于軟件過程的改進。 CMM模型只關(guān)注軟件,它能解決“軟件危機” 這個世界性的問題。 ISO 9001是靜態(tài)的質(zhì)量控制,只要達到幾個關(guān)鍵指標就能完成質(zhì)量控制,更適用于硬件制造生產(chǎn)線的質(zhì)量控制。 ISO 9001的適應(yīng)范圍更廣,包括硬件、軟件和服務(wù)。 |
CMMI的起源
l CMMI 的全稱為Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本。
l CMMI 有兩種表示方法,一種是大家很熟悉的,和軟件CMM 一樣的階段式表現(xiàn)方法,另一種是連續(xù)式的表現(xiàn)方法。
l 這兩種表現(xiàn)方法的區(qū)別是:階段式表現(xiàn)方法仍然把CMMI 中的若干個過程區(qū)域分成了5 個成熟度級別,幫助實施CMMI 的組織建議一條比較容易實現(xiàn)的過程改進發(fā)展道路。而連續(xù)式表現(xiàn)方法則通過將CMMI 中過程區(qū)域分為四大類:過程管理、項目管理、工程以及支持。
l CMMI不是傳統(tǒng)的、僅局限于軟件開發(fā)的生命周期,它應(yīng)該被運用于更廣泛的一個范疇——工程設(shè)計的生命周期。TSP的建立,也是為了支持CMMI的這樣一個系統(tǒng)。
l 用一句話來概括什么是CMMI,它就是各個進程的一個關(guān)鍵的元素,在很多領(lǐng)域里面一個集成的點。
CMMI的兩種實施方法
CMMI有兩種不同的實施方法,不同的實施方法,其級別表示不同的內(nèi)容。
CMMI的一實施方法為連續(xù)式,主要是衡量一個企業(yè)的項目能力。企業(yè)在接受評估時可以選擇自己希望評估的項目來進行評估。僅僅表示企業(yè)在該項目或類似項目的實施能力達到了某一等級。
而另一種實施方法為階段性。它主要是衡量一個企業(yè)的成熟度,亦即是企業(yè)在項目實施上的綜合實力。企業(yè)在進行評估時,一定要由評估師來挑選企業(yè)內(nèi)部的任何項目,甚至于任何項目的任何部分。
聯(lián)系客服