摘 要:通過運用CMM模型對RUP進行評估,計算出了RUP對CMM2級和CMM3級中的每個KPA所支持的百分比,根據(jù)計算結(jié)果分析了RUP與CMM2級和3級的差異,提出了RUP在軟件開發(fā)過程中的不足,并針對軟件子合同管理一項進行了充分的分析,提出了改進建議。
關鍵詞:RUP開發(fā);軟件能力成熟度模型;軟件子合同管理
中圖分類號:TP311.5
21世紀是信息社會高速發(fā)展的世紀,軟件成為信息技術的核心,并起著至關重要的作用。伴隨著信息產(chǎn)業(yè)不斷發(fā)展,人們開始關注軟件開發(fā)過程中管理的規(guī)范化及標準化問題,軟件質(zhì)量的不斷提高對于企業(yè)或集團的生存和發(fā)展都有著舉足輕重的意義。因此,人們逐漸將研究重點轉(zhuǎn)向軟件開發(fā)過程。期間陸續(xù)出現(xiàn)了許多軟件質(zhì)量和過程的改進模型,比較重要的兩種模型是RUP和CMM。
RUP所研究的是軟件開發(fā)過程,可以用其他的軟件模型對其進行評估和改進。而本文之所以選擇CMM,是由于CMM在全世界范圍內(nèi)得到了廣泛應用,影響極為深遠并取得了很大成功。
1 對RUP、CMM的介紹
1.1 RUP簡介
RUP(Rational Unified Process)是一個軟件開發(fā)過程,使用的是生命周期迭代法。它提供了在一個開發(fā)團隊內(nèi)分配任務和職責的一套嚴格的方法。它的目標是在可預測的進度和預算內(nèi)完成高質(zhì)量軟件的生產(chǎn),滿足用戶的需要[1]。作為一個典型的軟件過程模型,RUP的主要特點是用例驅(qū)動過程。用例不僅定義了系統(tǒng)需要,同時驅(qū)動了系統(tǒng)的設計、分析、執(zhí)行和測試。
RUP是一個二維的開發(fā)模型。橫軸是過程展開的生命周期特征,通過時間來組織,體現(xiàn)了軟件開發(fā)過程的動態(tài)結(jié)構(gòu),術語主要包括迭代(Iteration)、階段(Phase)、周期(Cycle)和里程碑(Milestone);縱軸體現(xiàn)自然的邏輯活動,通過內(nèi)容來組織,體現(xiàn)了軟件開發(fā)過程的靜態(tài)結(jié)構(gòu),用來描述它的術語主要包括工作流(Workflow)、產(chǎn)物(Artifact)、工作者(Worker)、和活動(Activity)。如圖1:
圖1 RUP迭代模型
RUP的生命周期在時間上被分解為4個階段,分別是初始階段、細化階段、構(gòu)造階段和交付階段。每個階段包含著一個或更多的迭代。一個典型的迭代將包括9個核心工作流,分別是商業(yè)建模、需求、分析和設計、實現(xiàn)、測試、部署、配置和變更管理、項目管理、環(huán)境。每個階段在一個主要的里程碑處結(jié)束;每個階段的本質(zhì)實質(zhì)上是兩個里程碑之間的時間跨度。如果想要確定這個階段的目標是否已經(jīng)滿足,那么需要在每個階段的結(jié)尾執(zhí)行一次評估。若評估結(jié)果令人滿意的話,可以允許項目進入到下一個階段。
1.2 CMM模型簡介
CMM(Capability Maturity Model),即軟件能力成熟度模型,是由美國卡內(nèi)基梅隆大學的軟件工程研究所研發(fā)的。該模型提供了一個軟件工程成果和管理方法的框架,旨在幫助軟件企業(yè)保證軟件產(chǎn)品的質(zhì)量并提高軟件企業(yè)的管理水平[2]。CMM包含5個成熟度等級,如初始級、可重復級、已定義級、已管理級和優(yōu)化級。除初始級以外,CMM對每個等級規(guī)定了關鍵過程域(key process areas,KPA),每個KPA都關聯(lián)著一些目標。這些目標滿足了該KPA過程所需的要求。不同成熟度的KPA可以用于評估現(xiàn)有的過程能力,也可以識別出哪些領域需要加強,便于軟件開發(fā)過程從低成熟度級別向高成熟度級別遞進。
關鍵實踐(key practice,KP)是一種基礎設施和活動,其對KPA的有效實現(xiàn)和制度化起到了非常重要的作用。在軟件組織取得更高級別的過程成熟度時,每一項KPA中所要執(zhí)行的特定KP都將得到進一步展開。根據(jù)KP的共同特征(common features),我們可將關鍵實踐分為五大類:執(zhí)行約定,執(zhí)行能力,進行的活動,測量和分析,驗證實施。
2 運用CMM對RUP的評價及其結(jié)果分析
2.1 評估
在該評估過程中,RUP以Rational公司2001年3月份發(fā)布的《Rational統(tǒng)一過程》為準,CMM中有關KP的規(guī)定以《Key Practices of the Capability Maturity Model》,Version 1.1為基準。
制定的評估的方針是評價RUP是否支持CMM2和CMM3中的KP標準,看CMM2和CMM3中的KP是否在RUP的一系列活動、角色、產(chǎn)物和工作流中得到了實施。當這種支持率達到75%以上時,那么就認為此KP得到了RUP的支持。
表1-表2是運用CMM2和3對RUP進行評估和計算后的結(jié)果。[3]
表1 RUP所支持的KP數(shù)量及支持率
關鍵過程域(KPA)關鍵實踐(KP)
總數(shù)支持個數(shù)支持率
同行評審9667%
組間協(xié)調(diào)171376%
軟件產(chǎn)品工程201680%
集成化軟件管理191579%
培訓大綱1600%
組織過程定義11982%
組織過程焦點16744%
軟件配置管理211886%
軟件質(zhì)量保證171059%
軟件子合同管理2200%
項目跟蹤與監(jiān)督242083%
軟件項目計劃252080%
需求管理121083%
表2 去除執(zhí)行能力后對KP的支持率
關鍵過程域(KPA)關鍵實踐(KP)
總數(shù)支持個數(shù)支持率
同行評審66100%
組間協(xié)調(diào)1212100%
軟件產(chǎn)品工程1616100%
集成化軟件管理161594%
組織過程定義99100%
組織過程焦點12650%
軟件配置管理1616100%
軟件質(zhì)量保證13969%
項目跟蹤與監(jiān)督191895%
軟件項目計劃211886%
需求管理88100%
2.2 評估結(jié)果分析
表1列出了CMM2和CMM3中KPA的KP的總數(shù),以及KP得到RUP支持的個數(shù)和支持率。表1中對KP支持率達75%以上的,我們認為其得到了RUP的支持。但我們可以看出,RUP對軟件質(zhì)量保證、組織過程焦點和同行評審的支持率較低,其原因歸結(jié)如下:
(1)RUP未協(xié)調(diào)好軟件開發(fā)人員和質(zhì)量保證人員的關系,二者處于對立地位;衡量軟件質(zhì)量保證的成本和進度狀況的方法在RUP中也未進行闡述;
(2)RUP沒有闡明如何實施、協(xié)調(diào)和實現(xiàn)組織當前過程和改進域;
(3)RUP沒有對項目資源和投資進行評審。
RUP不支持軟件子合同管理和培訓大綱。RUP認為這兩項不屬于軟件過程的范圍,但組織應對這兩項提供支持。因此在表2中這兩項被裁剪。
表2列出了在去掉執(zhí)行能力后各KPA所得到的支持率。通過分析我們可以看出,KPA所得到的支持率都有所提高,有些甚至達到100%。這也表明RUP強調(diào)的是軟件開發(fā)過程,而不是與系統(tǒng)管理有關的其他方面。這是因為RUP不是從項目管理過程演化來的,是從統(tǒng)一軟件開發(fā)方法演變而來。[4]
3 對RUP的改進
根據(jù)前面的分析,影響RUP對CMM2和CMM3中各KPA支持率的原因有很多,但主要集中在以下三個方面:沒有對計算機資源進行較好的評估和監(jiān)督;未對員工進行有效的培訓;沒有對子合同進行充分管理。下文主要針對子合同管理方面提出改進建議。
3.1 軟件子合同管理概述
所謂軟件子合同管理SSM(Software Subcontract Management),是指主承包方所承制的產(chǎn)品中有一部分軟件利用組織外的其它力量來完成,為此簽訂合同,并按合同進行管理的過程。實質(zhì)上與合同管理基本一樣,只是要受顧客要求的約束,要符合顧客所提的要求。是確保主承包商產(chǎn)品質(zhì)量的重要環(huán)節(jié)。
一般軟件子合同管理分為6個主要階段進行:
(1)準備和策劃:確定外購的產(chǎn)品及外購時間;
(2)子合同定義:將外購需求文檔化,并確定潛在資源;
(3)招標:從潛在子承包商處獲取其解決方案;
(4)評價和選擇:選擇合格的一個或幾個子承包商;
(5)管理和控制:監(jiān)督和管理子承包商的有關活動;
(6)子合同結(jié)束:驗收、完成子合同,解決殘留問題。[5]
3.2 CMM的關鍵過程域SSM
SSM的目的在于選擇合格的軟件子承包商并有效地管理它們。內(nèi)容包括選擇軟件子承包商、建立和子承包商的約定,及跟蹤和評審子承包商的性能和結(jié)果。這些實踐包括對純軟件子合同的管理,也包括對子合同的軟件成分的管理,后者含有軟件、硬件和可能有的其它系統(tǒng)成分。
為使軟件子合同管理活動能順利進行并取得成功,首先必須有必要的領導支持和保證條件。所謂領導支持,是要制定管理軟件子合同的書面的組織方針,并要求項目遵守,同時指派一個子合同經(jīng)理負責建立和管理軟件子合同;必要的保證條件包括提供足夠的資源和投資、進行必要的培訓和定向培訓。
其次,為使該過程制度化和不斷改進,還必須對過程活動的實施情況進行測量分析和驗證。對軟件子合同管理活動進行測量,分析測量結(jié)果用來確定該管理活動的狀態(tài)。而對過程活動的驗證包括如下幾點:
(1)高級管理者定期參與評審軟件子合同的管理活動;
(2)項目經(jīng)理既定期地也事件驅(qū)動地參與評審管理軟件子合同的活動;
(3)軟件質(zhì)量保證組評審(或)審核軟件子合同的管理活動和工作產(chǎn)品,并報告其結(jié)果。[6]
圖2-圖3是軟件子合同管理過程活動的概要和活動流程
圖2 SSM活動概要
圖3 SMM活動流程
3.3 結(jié)合SSM改進RUP
由于RUP是從統(tǒng)一軟件開發(fā)方法而不是從項目管理過程演化而來,所以在軟件子合同管理等方面未能給予充分的重視。而在軟件項目的實施過程中,妨礙SSM成功的因素有很多,包括:
(1)沒有選擇子承包商的準則;
(2)沒有管理子合同的規(guī)范;
(3)缺乏溝通;
(4)對術語、文化、專有信息等方面缺乏理解;
(5)缺少戰(zhàn)略伙伴共同發(fā)展的思想。
那么在實際的軟件項目開發(fā)過程中,要盡量克服以上因素,將軟件子合同管理真正融入到其中,不斷完善RUP使其成為滿足各自項目的利器,而不再只是一種單純的框架模式。
4 結(jié)束語
RUP雖然作為一套成熟的軟件過程管理方法,但因為其演化背景所限,并沒有涉及太多整個系統(tǒng)管理的其他方面,如人力資源管理、子合同管理等等。
對于一些希望通過采用RUP來通過CMM2級或3級的組織來說,必須對RUP進行合理的改進。想要通過CMM2級的組織必須對子合同進行有效管理,對計算機資源進行有效評估和跟蹤,完善同行評審。對于一些想通過CMM3的組織,除了完善上述機制以外,還需要對組織的軟件過程進行持續(xù)改進,制定軟件過程的改進計劃并交由高級經(jīng)理進行評審,同時對員工進行有效的培訓,從而滿足需要。
參考文獻:
[1]張俊惠.基于RUP的質(zhì)量管理系統(tǒng)的研究與實現(xiàn)[D].大連海事大學,2006.
[2]楊華煜.CMM在我國中小型軟件企業(yè)中應用的研究[D].哈爾濱工程大學,2003.
[3]Lisandra V.Manzoni and Roberto T.Price,Member,IEEE.Identifying Extensions Required by RUP(Rational Unified Process) to Comply with CMM(Capability Maturity Model) Levels 2 and 3[J].IEEE TRANSACTIONS ON SOFTWARE ENGINEERING.2003.VOL2:NO2.
[4]趙岳松,張亞軍.運用CMM對RUP的評估和改進[J].微機發(fā)展,2004(14):100.
[5]Software Subcontract Management Process,Version 2.0,CIG Software Engineering Process Group,March,1997.
[6]王霞.軟件外包項目管理的CMM實踐[J].福建電腦,2004(04):25.
作者簡介:侯文昊(1987-),男,河北遷安人,研究生,主要從事工業(yè)工程方面的研究。
作者單位:北京建筑大學機電與車輛工程學院,北京 100044