官术网_书友最值得收藏!

1.3 過程模型

在軟件過程管理的研究中,專家提出過許多模型,下面介紹幾個典型的模型。一個組織的過程體系建設可以參考以下過程模型。

1.CMM/CMMI

軟件能力成熟度模型(Capability Maturity Model for Software,SW-CMM)是由美國卡內基·梅隆大學(Carnegie Mellon University)軟件工程研究所(Software Engineering Institute)(CMU/SEI)建立的。為了保證軟件產品的質量,80年代中期,美國聯邦政府提出對軟件承包商的軟件開發能力進行評估的要求。因此,美國卡內基·梅隆大學軟件工程研究所(CMU/SEI)于1987年研究發布了軟件過程成熟度框架,并提供了軟件過程評估和軟件能力評價兩種評估方法,以及軟件成熟度提問單。4年之后,CMU/SEI將軟件過程成熟度框架進化為軟件能力成熟度模型(SW-CMM),并發布了最早的SW-CMM 1.0版。經過兩年的試用,1993年SEI正式發布了SW-CMM1.1版,這是目前使用最為廣泛的版本。CMM主要側重于項目在研發過程中的管理。

自1991年SW-CMM首次發布后,CMU/SEI又開發了其他成熟度模型,包括:系統工程、采購、人力資源管理和集成產品開發等。雖然各個模型針對的專業領域不同,但彼此之間也有一定的重疊,畢竟它們同出一轍;另外,這些模型在表現形式上又有不統一之處:系統工程模型是連續式的,而其他模型采用了分級式。當SEI開始開發新一代成熟度模型的時候,其發起人提出了新的要求:整合不同模型中的最佳實踐,建立統一模型,覆蓋不同領域,供企業進行整個組織的全面過程改進。所以,SEI于2001年12月正式發布了能力成熟度集成模型(Capability Maturity Model Integration,CMMI)1.1版本,這次發布標志著CMMI的正式使用。SEI也正式宣布,將不再維護SW-CMM的CBA-IPI評估方法。在CMMI 1.1發布后的兩年內,SEI還提供有關SW-CMM 和CBA-IPI主任評估員的培訓,并接收評估數據,但這一切已于2003年12月底正式停止。這里需要注意的是,SEI并沒有廢除CMM模型,而是以CMMI的SCAMPI評估方法取代CMM的CBA-IPI評估方法。CMM/CMMI主要應用在兩大方面:能力評估和過程改進。

CMM/CMMI的思想來源于已有多年歷史的產品質量管理和全面質量管理。Watts Humphrey和Ron Radice在IBM公司將全面質量管理的思想應用于軟件工程過程,收到了很大的成效。SEI的軟件能力成熟度框架就是在以Humphrey為主的軟件專家實踐經驗的基礎上發展而來的。軟件能力成熟度模型中融合了全面質量管理的思想,以不斷進化的層次反映了軟件過程定量控制中項目管理和項目工程的基本原則。CMM/CMMI所依據的想法是只要不斷地對企業軟件工程過程的基礎結構和實踐進行管理和改進,就可以克服軟件生產中的困難,增強開發制造能力,從而能按時、不超預算地制造出高質量的軟件。

在CMMI模型組件中,SE/SW是核心,SE/SW/IPPD、SE/SW/IPPD/SS是在此基礎上擴展而來的。CMM模型基于眾多軟件專家的實踐經驗,是組織進行軟件過程改善和軟件過程評估的一個有效的指導框架。CMMI項目更為工業界和政府部門提供了一個集成的產品集,其主要目的是消除不同模型之間的不一致和重復,降低基于模型改善的成本。CMMI將以更加系統和一致的框架來指導組織改善軟件過程,提高產品和服務的開發、獲取和維護能力。

SEI評估報告顯示,從1996年到2003年,全球有2000多個組織進行了CMM/CMMI評估,其中大部分為商業組織,有將近一半的組織規模在100人以下。這些數據表明,CMM/CMMI評估已經引起軟件及IT企業的高度關注,并且這種評估同樣適合中小企業。

2.PSP/TSP

美國卡內基·梅隆大學軟件工程研究所(CMU/SEI)主持研究與開發的CMM/PSP/TSP技術,為軟件工程管理開辟了一條新的途經。PSP(個體軟件過程)、TSP(團隊軟件過程)和CMM為軟件產業提供了一個集成化的、三維的軟件過程改革框架,如圖1-5所示。PSP注重于個人的技能,能夠指導軟件工程師如何保證自己的工作質量,TSP注重團隊的高效工作和產品交付能力,CMM注重于組織能力和高質量的產品,它提供了評價組織的能力、識別優先改善需求和追蹤改善進展的管理方式。

圖1-5 CMM/PSP/TSP模型的關系

PSP(Personal Software Process)是一種可用于控制、管理和改進個人工作方式的自我持續改進過程,是一個包括軟件開發表格、指南和規程的結構化框架。PSP與具體的技術(程序設計語言、工具或者設計方法)相對獨立,其原則能夠應用到幾乎任何的軟件工程任務之中。PSP能夠說明個體軟件過程的原則;幫助軟件工程師做出準確的計劃;確定軟件工程師為改善產品質量要采取的步驟;建立度量個體軟件過程改善的基準;確定過程的改變對軟件工程師能力的影響。

TSP(Team Software Process)指導項目組中的成員如何有效地規劃和管理所面臨的項目開發任務,并且告訴管理人員如何指導軟件開發隊伍,始終以最佳狀態來完成工作。TSP實施集體管理與自我管理相結合的原則,最終目的在于指導開發人員如何在最少的時間內,以預定的費用生產出高質量的軟件產品,所采用的方法是對群組開發過程的定義、度量和改進。

PSP和TSP是專門設計來優化及規范化個人和團隊工作的,通過讓個人和團隊使用這些預定義的標準流程來建立可測量的目標,跟蹤目標的完成情況,從而提高質量。從整個企業角度來看,所有經驗證明PSP、TSP能加速CMM在企業范圍內的實施,同時也是維持過程改進的需要。開發人員通過PSP的實踐能夠學到軟件過程管理和項目管理方面最先進的技能和最佳實踐管理,要開發高質量的軟件就要求開發軟件的每個工程師都能高質量地完成工作;作為開發團隊,TSP的實施能夠在較短時間內建立高績效的團隊,確保團隊開發產品的質量、安全性。

3.敏捷模型

2001年,為了解決許多公司的軟件團隊陷入不斷增長的過程泥潭的問題,一批業界專家一起概括出了一些可以讓軟件開發團隊具有快速工作、響應變化能力的價值觀和原則,他們稱自己為敏捷聯盟。敏捷開發過程的方法很多,主要有:SCRUM,Crystal,特征驅動軟件開發(Feature Driven Development,FDD),自適應軟件開發(Adaptive Software Development,ASD),以及最重要的極限編程(Xtreme Programming,XP)。極限編程是1998年由Smalltalk社群中的大師級人物Kent Beck首先倡導的,它是為了適應快速的需求變化而積累的最佳實踐。

在敏捷軟件開發中的各個方法集也都在相似的理念下各自擁有抽象或具體的過程管理模型。

4.IPD

IPD(Integrated Product Development,集成產品開發)是一套領先的、成熟的產品開發的管理思想、模式和方法,是業界流行的最佳實踐,它的起源是美國20世紀80年代出現的PACE(產品及周期優化法)理論。IPD作為先進的產品開發理念,其核心思想概括如下:

(1)新產品開發是一項投資決策。IPD強調要對產品開發進行有效的投資組合分析,并在開發過程設置檢查點,通過階段性評審來決定項目是繼續、暫停、終止還是改變方向。

(2)基于市場的開發。IPD強調產品創新一定是基于市場需求和競爭分析的創新。為此,IPD把正確定義產品概念、市場需求作為流程的第一步。

(3)跨部門、跨系統的協同。采用跨部門的產品開發團隊(Product Development Team,PDT),通過有效的溝通、協調及決策,達到盡快將產品推向市場的目的。

(4)異步開發模式,也稱并行工程。就是通過嚴密的計劃、準確的接口設計,把原來的許多后續活動提前進行,這樣可以縮短產品上市時間。

(5)重用性。采用公用構建模塊(Common Building Block,CBB)提高產品開發的效率。

(6)結構化的流程。產品開發項目的相對不確定性,要求開發流程在非結構化與過于結構化之間找到平衡。

主站蜘蛛池模板: 永泰县| 安溪县| 磴口县| 昂仁县| 徐州市| 益阳市| 浪卡子县| 庆云县| 峨眉山市| 保亭| 青州市| 偃师市| 金川县| 昭苏县| 舒兰市| 烟台市| 安陆市| 惠州市| 昭通市| 漾濞| 偏关县| 新巴尔虎左旗| 瑞安市| 台州市| 巴林左旗| 赤峰市| 红桥区| 周至县| 衡南县| 鹤岗市| 正宁县| 廉江市| 同江市| 拉孜县| 建宁县| 黄大仙区| 罗定市| 喀喇| 吉首市| 犍为县| 孟村|