中國聯(lián)通研究院 北京 100032
云計算技術的出現(xiàn)為電信運營商提供了業(yè)務擴展、服務升級的機遇,構建基于云計算PaaS技術的綜合平臺成為電信運營商轉型的重要舉措[1]。隨著云計算技術的不斷成熟,許多重要軟件企業(yè)和云計算公司都推出了自己的PaaS產品,基于PaaS架構構建運營商平臺已成為一種趨勢。但由于PaaS項目具有新穎性,具備技術含量高、規(guī)模大、工期緊的特點,往往需要對整個項目的質量進行管理。隨著國內對軟件管理工程認識的不斷加深,這種趨勢使得中國的軟件企業(yè)逐步走向標準化、規(guī)范化、國際化的道路。
云計算產品和傳統(tǒng)軟件產品的本質區(qū)別在于整體性,傳統(tǒng)的產品只考慮局部應用,比如智慧城市只考慮某個城市的局部應用,而不考慮和其它城市的關聯(lián)關系。真正的云計算產品是站在國家層面上進行設計,既可以應用在小區(qū)域,又可以應用在更大的區(qū)域。
PaaS(Platform as a Service,平臺即服務)[2]是一個應用程序開發(fā)平臺,能夠在線提供端到端的開發(fā)環(huán)境,開發(fā)人員可以在線調試、部署、運行及管理,開發(fā)部署及運行都在同一開發(fā)環(huán)境下進行,避免平臺不兼容的問題,能大大縮短開發(fā)周期。開發(fā)人員無需配置服務器及部署環(huán)境,無需考慮存儲子系統(tǒng)及安全問題等,平臺提供部分封裝服務,開發(fā)人員可以快速創(chuàng)建修改程序以滿足不斷變更的需求,從而簡化開發(fā)過程、縮短開發(fā)時間、降低開發(fā)風險。不同的平臺各有其特點:Google App Engine[3]提供java/Python運行平臺和數(shù)據存儲等接口;Amazon的EC2[4]提供通用的基礎設施服務等。
在計算機領域,“質量”一詞通常定義產品或服務是否能夠滿足客戶需求,換一種說法就是“適用”。很多人在質量和成本方面存在一個誤區(qū),認為高質量意味著高成本,也有部分技術人員會認為標準抑制創(chuàng)造性,因此,不愿遵從標準的規(guī)定,其實這些都是沒有完全理解質量管理標準的內涵造成的。軟件質量保證的正式定義是指為整個軟件產品的適用性提供證據的系統(tǒng)化活動。大部分軟件質量保證活動可劃分為軟件測試(即驗證與確認)、軟件配置管理和質量控制。如圖1所示[5],軟件質量的成功還依賴于標準、規(guī)程、慣例及規(guī)約的支持。
CMMI(集成能力成熟度模型)模型是有助于企業(yè)提升項目過程的最佳實踐的集合,因此,可以將其融入到PaaS項目中,從而實現(xiàn)對項目進度及過程中關鍵成果質量的有效監(jiān)控和控制以及對項目過程中風險及問題的有效跟蹤。
圖1 質量保證組成
就質量管理而言,大多數(shù)人會認為只需要對產品進行評估就可以了,孰不知過程決定產品,過程的評審同樣重要。如編碼標注的文檔化,方法和工具的規(guī)定和使用,變更管理,以及缺陷記錄和跟蹤等,通過對這些過程進行管理,可以在過程中發(fā)現(xiàn)潛在的風險,并及時規(guī)避風險。從項目開始進行質量管理,盡可能減少所開發(fā)軟件的缺陷,控制產品質量。據統(tǒng)計,由于未檢測出的軟件缺陷而損失數(shù)千萬、數(shù)億甚至數(shù)十億美元的例子數(shù)不勝數(shù)。周期的縮短也使得開發(fā)風險越來越大,產品周期從數(shù)年被壓縮到數(shù)月、數(shù)周甚至數(shù)天。如此緊張的時間限制,使得開發(fā)軟件存在很多風險,CMMI作為一種質量管理標準,是SEI(美國卡內基-梅隆大學的軟件工程研究所)于2000年發(fā)布的CMM[6]的新版本,不僅包括軟件開發(fā)過程改進,還包含系統(tǒng)集成、軟硬件采購等方面的過程改進內容,因此,能夠從管理和過程的兩個角度對整個項目進行監(jiān)控,并定義多個過程域,根據不同項目的特點,可以對過程域進行裁剪,其最終目的是保證項目成果的質量、性能、可用性,降低軟件開發(fā)生命周期的總成本[7-8]。
缺陷清除率是衡量軟件質量的一個指標,所謂缺陷清除率即軟件在開發(fā)過程中(提交之前)發(fā)現(xiàn)的所有缺陷數(shù)D1與軟件中發(fā)現(xiàn)的缺陷總數(shù)D之比。其中D=D1+軟件提交后發(fā)現(xiàn)的缺陷數(shù)D2。眾所周知,清除軟件缺陷的難易程度是不同的。
表1反映的是CMM五個等級是如何影響軟件質量的,其數(shù)據來源于美國空軍1994年委托SPR(美國一家著名的調查公司)進行的一項研究。從表1中可以看出,CMM級別越高,缺陷清除率也越高。
表1 SEI CMM級別潛在缺陷與清除
實施CMMI對企業(yè)的好處主要體現(xiàn)在:1)能保證軟件開發(fā)的質量與進度;2)有利于成本控制;3)有助于提高軟件開發(fā)者的職業(yè)素養(yǎng);4)能夠解決人員流動帶來的問題;5)有利于提升公司和員工績效管理水平,以持續(xù)改進效益。
CMMI模型設計之初就是應對軍方大型項目的,所以CMMI模型框架龐大,存在文檔過載、過程繁冗等諸多問題,它包含22個過程域,各個企業(yè)的軟件項目在應用CMMI時,必須進行適當?shù)募舨靡赃m應本企業(yè)的特點,而項目特點是裁剪依據和出發(fā)點。
1995年,在一次關于CMM裁剪的學術討論會之后,人們達成的共識是應該集中關注如何根據企業(yè)的具體情況裁剪CMM的方法,而不是企圖得到一個“裁剪版”的CMM。 集成能力成熟度模型CMMI相比軟件能力成熟度模型CMM在實踐對應多個目標方面做了重大改進。CMMI是關注過程改進的過程模型,包含多個組件。
CMMI-DEV V1.2 過程域(連續(xù)型表述)可以被歸為四類。1)過程管理類(Process Management):與組織層面聯(lián)系比較緊密的過程域;2)項目管理類(Project Management):與項目管理相關的過程域;3)工程類(Engineering):與項目實際開發(fā)聯(lián)系比較緊密的過程域;4)支持類(Support):項目過程中支持項目正常進行的相關過程域。
所謂裁剪即增加、刪除、替換和修改,策略是選擇適當?shù)纳芷谀P停訌娦枨蟮墨@取、管理項目的技術、市場的風險,重視設計和測試。針對云計算項目的特點,從可操作的層面出發(fā),可以對質量管理的過程域進行刪減。
CMMI3流程過于繁雜,所以實際展開的時候比較困難,需要對流程進行適當?shù)牟眉?。CMM分為三個級別的裁剪,即組織級、同一類項目級、單一項目級。項目經理一般關心的都是單一項目級,也就是從OSSP(Organization Standard Software Process,組織標準軟件過程)到PDP(Project Def i ne Process,項目定義過程)的過程,項目經理需要結合項目的特點、規(guī)模(項目是管理高風險還是技術高風險,工期緊還是相對寬松,工期第一位還是質量第一位等)進行裁剪。本實例主要關注裁剪問題,介紹了如何根據項目特點和項目計劃進行有針對性的裁剪,每個裁剪都需要有一定的理由。
針對每個過程都會有相應的裁剪指南,具體的項目裁剪程度不一樣,都應記錄在PHB中。如:①根據客戶意愿進行裁剪,②根據項目類型、規(guī)模進行適當?shù)牟眉簦缧№椖?NBNC 1-3K、總進度在2周~2月且總工作量小于6人),可以將概設與詳設合并為設計階段,裁剪掉集成測試階段等。
聯(lián)通PaaS平臺除了具有一般傳統(tǒng)云計算的特點外,其特殊性也決定了其裁剪策略的可實施性,比如過程管理類和工程類過程域被裁剪掉的理由是,該PaaS平臺項目對組織過程沒有進行要求,因此不需要進行質量管理,另外該項目屬于建設管理類項目不屬于工程類,因此不需要進行管理。 其他過程域同樣是從實際實施可落地角度出發(fā)進行裁剪的。這樣裁剪的理由是更加精細化,更加具有可操作性。
結合筆者參與的實際PaaS平臺建設體驗,采用CMMI3的標準對平臺及平臺上的應用進行了質量控制。根據該項目的特點對過程域進行了裁剪,如表2所示:去掉不合符本項目的相關過程域及CCMI3以上標準涉及到的過程域(如表2中的刪除線),另外在工程類過程域裁剪過程中(表2中的雙刪除線),從軟件項目生命周期模型出發(fā),對各生命階段進行了質量管理,將過程域修改為:項目準備、項目計劃、需求分析階段、設計階段、開發(fā)階段、測試階段和實施階段。這樣裁剪的目的是從項目的實際特點和具體可落地的層面出發(fā),去掉那些無法滿足的過程域。
表2 過程域裁剪結果
基于CMMI3能力成熟度模型以及該項目特點,對模型核心過程域進行裁剪,裁剪的過程中明確了過程域的檢查點及檢查方式。表3給出了項目管理類中PMC過程域的實際質量監(jiān)控的檢查點、檢查方式等。實際質量管理中采用參與評審、檢查記錄及文檔規(guī)范性檢查等方式對項目關鍵過程和成果進行跟蹤檢查。
表3 PMC過程域檢查方式
通過這樣的裁剪,降低項目風險,加快項目的進度,并使龐大的項目得到了有效控制;項目管理者能夠對項目的整體進行把控,清楚項目進展的每個細節(jié),并可以通過檢查點來衡量項目是否存在風險以及是否會影響整個項目的進度。實際的項目經驗說明,不同的項目具有不同的裁剪策略,因此,要結合實際情況酌情考慮。
在現(xiàn)有的項目實踐中一般只給出了每個過程域的輸入和輸出物,本實例給出了每個過程域的檢查點、檢查方式、相關責任人和頻率,注重可操作性, 從直觀上能夠給質量管理者一個清晰的指導。對里程碑報告的檢查,需要明確每個里程碑的完成情況,并檢查每個里程碑的標志物,相關子系統(tǒng)的項目經理應該及時提交報告,質量管理者在每個里程碑檢查點進行檢查。
云計算技術的出現(xiàn)對運營商是一個機會也是一個挑戰(zhàn),云計算帶給運營商一次業(yè)務擴展、服務升級、平臺整合的機會,但也對其組織架構帶來了沖擊和挑戰(zhàn)。對軟件項目進行質量管理的最終目的是實現(xiàn)持續(xù)質量改進。本文結合具體項目實踐,在CMMI給出的做什么的基礎上給出了怎么做,并對過程域進行了裁剪,主要依據了項目類型和項目質量與過程目標進行裁剪,可為以后項目實踐的參考。
參考文獻
[1]陸鋼.電信運營商云計算PaaS發(fā)展關鍵問題探析[J].廣東通信技術,2011,31(7),1-5
[2]Lawton,G.Developing Software Online With Platformas-a-Service Technology[J].Computer 2008,41(6):13-15
[3]IBM DeveloperWorks[EB/OL].[2015-03-10].http://www.ibm.com/developerworks/cn/webservices/0610_jinge/index3.html
[4]董玉萍,鄒承明,鐘珞.基于XML的異構數(shù)據源共享技術的研究[J].2002,24(9):90-92
[5] 陳紹英,劉建華,等.軟件測試與持續(xù)質量改進(第3版)[M].北京:人民郵電出版社,2011:11-23
[6]高巍.C M M在中小軟件企業(yè)的裁剪[J].程序員,2002,(08):42-44
[7]齊小玲,馮大鵬.CMMI體系建立過程及在項目管理中的作用[J].計算機科學,2013,40(z2):436-437
[8]鄧軍.基于CMMI的企業(yè)軟件過程與質量管理平臺設計[J].湖南師范大學自然科學學報,2014,37(1):63-66