張璇



摘要:軟件項目管理是建立軟件生產線的必經之路,軟件項目管理是以模型和理論為指導的,理解并結合軟件組織的自身特征和開發現狀的。CMMI(Capability Maturity Model Integration,即能力成熟度模型集成)是幫助軟件項目控制和改進軟件開發和管理過程,從而不斷改進提高軟件質量的國際通行標準,CMMI提出了軟件項目管理并給出了達到各成熟等級的標準,但是CMMI缺少具體可操作的實施方法和確實有效的實施措施。該文從CMMI出發,選定網絡學習空間軟件項目為特定研究對象,分析了項目實施中遇到的問題和原因,結合CMMI第二級和CMMI第三級的關鍵過程域,提出了改進網絡學習空間軟件項目管理的策略,并對比了實施效果,以期通過提升項目管理水平使得網絡學習空間的軟件質量有所保證。
關鍵詞:軟件項目管理;CMMI;軟件質量;軟件過程改進
中圖分類號:G434 文獻標識碼:A
一、前言
隨著信息技術的發展,網絡學習空間軟件的復雜性與規模化不斷增長,但是網絡學習空間的實踐過程階段不明顯,在軟件質量保證、項目管理等方面尚未得到足夠的認識和重視,缺乏系統、完整、科學、適用的方法論和模型體系的指導和規范,開發風險不斷增大,軟件質量很難得到有效的保證。在這樣的現實環境下,使得構建軟件的過程(即軟件過程)得到了更多的關注。基于此,卡內基—梅隆大學軟件工程研究院(SEI)提了軟件能力成熟度模型(CMM)。CMM的核心是對軟件的實踐過程進行管理和研究,使其流程化、科學化,最后達到保證軟件質量的目的。
CMM模型的提出后,衍生了多種模型,分別針對軟件過程的各個不同階段和不同對象,但是這些模型又在配置管理、需求管理等方面有共同的方面,因此SEI整合了不同模型中的最佳實踐,建立了覆蓋不同領域的統一模型CMMI。CMMI被認為是把各種CMM和其衍生模型集成為一個系列的模型,CMMI在支持軟件過程改進和提高的同時,減少了重復工作,消除了多種模型共存的不一致性和混亂性,CMMI的源模型包含:軟件能力成熟度(CUU)2.0版,EIA-731系統工程能力評估模型,集成的產品開發能力模型IPDCMM(IPD)0.98a版。
二、研究理論
(一)CMMI模型
1.外部結構
CMMI有兩種表示法:階段表示法、連續表示法。階段表示法是一個五級的階梯式進化結構,具體描述如下:
(1)初始級:無計劃、無流程、無管理,軟件項目完成情況不穩定,隨意變更項目計劃,是否能成功完成項目主要依靠項目負責人的經驗和能力。
(2)完成級:建立了最基本的管理規則,初步實現標準化開發流程,開發計劃能穩定完成。但是,開發計劃和項目管理依賴于以往的項目實踐經驗,盲目重復采用以往成功項目的條件。
(3)管理級:開發過程(包括研發和管理)實現配置管理,并建立了培訓制度、同行評審制度,有效控制了各項實踐活動,基本保證系統成功達到需求目標。
(4)定義級:建立了定量的質量目標,建立了過程數據庫,實現了過程控制。開發活動中的生產率和質量是可量度的,因此可以預測軟件質量趨勢,如預測有偏差,實現及時糾正。
(5)優化級:能夠防止出現缺陷、識別薄弱環節,可獲得過程有效性的數據,并據此進行分析,采用新技術、新方法,從而改進現有過程,最終得出最佳實踐方法。
連續表示法將過程域劃分為四個類型,分別為“過程管理、項目管理、工程管理、支持服務管理”,并將過程域分成基礎和高級,分別在每個過程域中建立實現基準。每個過程域的能力等級有六級:不完整級、執行級、管理級、定義級、量化管理級和持續優化級。在連續表示法中,項目可以追求單獨的類型上的提升。
本文采用的是階段表示法。
2.內部結構
CMMI模型每級的內部結構包括:等級特性、關鍵過程域(KPA)、關鍵實踐(KP),這三者共同定義CMMI模型的每個成熟度等級,它們構成了成熟度等級的關鍵成功因素。CMMI階段表示法的五個等級中共包括22個關鍵過程域,每個等級中的關鍵過程域都有特定目標,并有與之相應的關鍵實踐用來實現這些目標,關鍵實踐包括管理、技術和人員三方面的因素。通過對關鍵過程域的識別,能夠找出過程成功所需的關鍵實踐,從而確定項目活動的優先次序。
除初始級外的其他等級都包含了實現該級特定目標的若干個關鍵實踐,不同的關鍵實踐都有具體的實踐活動的描述。通過分析各等級與關鍵過程域在管理、人員和技術三方面的因素,可以得出第二級與第一級相比最大的提高是在管理方面具有了需求管理以及項目跟蹤和監督,第三級與第二級相比最大的提高是具有配置管理、人員培訓和同行評審。由此可知,第二級和第三級是兩個非常重要的階段,在第二級中開始建立基本制度和規程,第三級中實現了標準化管理,處于該等級時,實踐活動為軟件質量的保證提供良好的基礎。CMMI第二級和第三級共有18個關鍵過程域(PA),占據了五個等級所有關鍵過程域的八成。
3 CMMI的實施方案
對于軟件項目,CMMI的實施需要基本的五個步驟:
第一步:調查分析研究。通過調查項目中開發、管理等關鍵流程,發現具有共性的重要問題,研究出現問題的潛在原因,并與項目組成員商議解決方案。
第二步:明確職責,優化結構。根據問題原因,明確重要崗位的職責,確定科學的組織架構,調整部分職責模糊的崗位和人員。
第三步,優化項目過程,配備管理工具。優化項目管理的流程,整合商務、研發和管理過程規范,配備與流程規范相配套的管理工具。
第四步,內部培訓。為項目組成員提供全面的培訓,讓成員掌握過程規范和管理工具。
第五步,執行改進方案。項目組根據改進后的過程規范開展項目工作,項目過程改進人員監督并記錄執行的情況,將問題反饋給項目組,然后再優化改進過程。如此反復,形成持續改進的良性循環,建立更加有效的項目運作機制,提高產品質量,控制生產成本和降低開發風險。
(二)軟件項目管理
實施軟件項目管理的目的是為了使軟件項目的生命周期在控制之下,以預定的成本、進度、質量順利完成并交付用戶使用。軟件項目管理主要涉及人員組織管理、項目計劃、風險管理、配置管理、軟件質量保證、軟件過程能力評估等。
三、網絡學習空間項目開發過程中存在的問題
(一)項目中存在的問題
影響軟件質量的因素有很多,在本項目中主要存在的問題有:需求不明確、項目計劃不充分、項目監控不到位、評審機制不完善、團隊的組織不恰當等等。通過本項目的實施,并結合目前存在的一些普遍問題,歸納總結了兩個產生嚴重影響的問題。
1.項目進度滯后
在項目初期,對網絡學習空間系統的復雜性缺乏充分的估計,對需求沒有進行詳細分析和實際驗證的情況下就開始盲目開發,項目計劃制定的不充分、不到位。同時,項目很多工作完全依賴項目負責人協調溝通,沒有明確的工作流程,項目關鍵內容缺少了必要的文檔化。在項目執行過程中,出現了臨時更改系統功能的情況,且沒有可以采用的應對計劃。在功能更改后,忽視了跟蹤需求變更和評審開發內容。因此,影響了整體的開發的進度,導致項目進度延誤,項目計劃分成六個階段45天完成,實際完成時間是51天,進度延誤偏差率為13%。延誤最為嚴重的環節是需求分析和測試階段,需求分析計劃天數是12天,實際完成是15天,測試計劃天數是4天,實際完成時間是5天,這兩個階段的實際完成時間進度延誤偏差都高達25%。
2.軟件質量偏低
在項目的整個實施過程中,由于項目計劃部分失效,出現了計劃外的任務,造成軟件出現明顯缺陷。而這些計劃外的任務多出現于開發階段的后期,而此時完成這些計劃外的任務所付出的成本代價是非常高的。另外,在缺陷管理方面,僅僅依賴測試報告來記錄系統缺陷情況,造成在系統缺陷追蹤上不暢通,出現了修復一個缺陷后繼而暴漏出其他缺陷的惡性循環,從而嚴重的影響了軟件質量。通過比較各個階段的軟件缺陷分布率,得知在需求分析階段的缺陷率比較高,這說明了項目人員沒有完全理解應用需求,并且對需求缺乏深入詳細的挖掘以及分析,錯失了潛在需求,忽視了功能后的實際應用效果,所以越來越多的缺陷逐漸暴漏在后續活動中;另外,測試階段缺陷率也較高,在項目前期階段,預防和及早發現缺陷,有利于控制項目預算和項目進度,而到了測試階段,修復軟件缺陷的成本代價將會成倍的擴大,缺陷越多,進度越延誤。
(二)問題的原因分析
1.需求不明確,需求分析不透徹,需求管理活動混亂,導致不斷修改需求,同時缺乏有效的管理,無法保證軟件過程順利進展,造成項目延期。
2.不重視項目的實際度量和分析,設計開發等進程建立在以往的項目經驗上,缺乏科學的實施流程,項目進度完全依靠項目負責人協調溝通去推進。
3.缺乏設計和實施過程的標準定義,文檔結構各異且版本管理混亂,出現交叉測試等缺乏管理規則的活動,忽略了設計開發與測試各個步驟之間的關聯性,造成項目實現過程中缺少連貫性,項目只好停滯返工,重新設計開發,從而導致不能按照原定計劃按時完成。
4.在開發中缺少有效的項目監管和評審機制,項目不能順利交付,出現大大小小的偏差,致使項目進度滯后,軟件質量偏低。
四、基于CMMI的改進建議
CMMI給出了規范化的過程,關注在開發過程中加強過程域的監督和管理,解決軟件實施中的實際問題,并通過持續改進提升軟件質量。以往項目進展只是依靠項目負責人的經驗,實施過程無序且不可控,僅僅達到CMMI第一級的要求。顯而易見,達到CMMI 1(初始級)并不能解決上文中提到的問題。因此,上述三個問題,本文以CMMI 2、3級為依據找到影響問題的關鍵過程域,提出網絡學習空間的軟件過程改進措施。主要的改進措施包括完善需求管理和質量保證體系、規范實施過程、建立監管和評審機制,涉及到的關鍵過程域有需求管理過程、技術解決方案、過程和產品質量保證、配置管理、項目監督和控制。
(一)完善需求管理
CMMI模型對需求管理提出了明確的目的是就軟件項目中需要滿足的各種功能性和非功能性需求建立約定。針對項目中存在的問題,從以下幾個方面對需求管理進行了改進。
(1)在項目開始時,根據實際情況制定需求管理制度,并規定文檔化的內容。建立需求管理小組,確定角色和責任。制定需求跟蹤方案,明確需求偏離后的糾正流程,確立需求變更評審制度。對需求管理小組人員進行培訓,從業務上加深需求理解。
(2)需求管理小組中有一定經驗的設計人員、開發人員和測試人員協助進行需求調研,有益于項目各個執行部分對系統的理解,有效規避由于溝通不暢引起的問題。
(3)需求調研之后,對獲得的需求進行分析和整理,定義各項需求的重要性和優先級,形成規范文檔。
(4)變更管理是需求管理中最重要的部分,首先,需求變更規格化,必須由書面化的方式提出;其次,評審確定是否接受變更;如接受,在執行變更后驗證是否成功。
(5)針對需求定期進行追蹤,追蹤每一個需求從定義到實現到驗證的全過程,確保需求、設計、開發和測試之間的一致性,保證最終成果符合需求。
(二)完善質量保證體系
過程和產品的質量保證體系是為了向項目組提供軟件過程的客觀信息。網絡學習空間軟件項目出現進度延期、軟件缺陷率高等問題,歸根到底其本質是對軟件過程把控的不足,對質量保證關注的不夠。因此,參照CMMI第二級和第三級的關鍵過程域,對質量保證體系提出了改進建議,涉及到管理、人員、技術三個方面。
1.增設質量管理崗位
根據CMMI增設了軟件質量管理人員,主要負責項目評審和驗證并及時更新相關文檔,檢查開發活動和管理活動是否與已經制定好的策略一致。為保障評審的客觀性,軟件質量管理人員獨立于項目組。
2.完善配置管理
配置管理作為CMMI第三級的關鍵過程域,其目的是用標識、控制、統計和審計等活動來保證網絡學習空間軟件的完整性和項目的可回溯性。根據CMMI的規定,配置管理分成三個部分:配置項、基線和變更控制,貫穿于網絡學習空間軟件項目的整個生命周期。
3.建立缺陷管理
在網絡學習空間軟件項目實施過程中出現的缺陷主要來源于需求和測試階段,技術問題和管理問題混雜在一起。現將技術問題和管理問題區分管理,并且建立缺陷等級制度。缺陷等級分為三級:第一級不會影響項目進度,由項目組協商解決;第二級可能影響項目進度,需要記錄缺陷并上報項目負責人,隨后采取相應措施;第三級嚴重影響項目進度,可能導致項目停滯,上報項目負責人后,召開專家會議確定缺陷解決方案,專人全程跟蹤并記錄解決過程。
規范和完善的缺陷處理流程。首先,發現缺陷后記錄,然后將其提交給負責人,通過評審,最后進行任務分配并解決缺陷問題,由缺陷發現人跟蹤解決情況直至問題關閉。缺陷處理好后,評審人員對修復結果進行評審,確認無誤后,此任務關閉,并將結果記錄。為保證缺陷信息的完整性和即時性,項目負責人跟蹤處理過程并記錄過程,在結項時進行匯總統計。
五、基于CMMI的網絡學習空間實現過程
在基于CMMI的網絡學習空間的設計與實現過程中,強調文檔標準化、準確化和完善化,強調項目順利完成和軟件質量很大程度上取決于實現過程。同時,網絡學習空間采用開源B/S結構,下面將結合其技術特點討論合理的系統實現流程,從過程上加以改進實現流程,達到標準化流程的要求,采用分步驟逐步推進的方法。
(一)網絡學習空間的設計模式
網絡學習空間展示頁面設計模式采用的是JSP+持久層框架,后臺管理頁面設計模式采用的是JSP+EXT+持久層框架,完全基于W3C技術構建,具有很高的代碼復用率,為敏捷開發提供了較好的解決方法。
(二)網絡學習空間開發流程實現
在網絡學習空間項目實施前,確認需求后,將實現流程映射到迭代增量開發模型,得到一個完整的基于CMMI三級和網絡學習空間軟件的開發流程,如下圖所示,結合網絡學習空間的自身特點,半年分四個階段完成,四個階段分別是:啟動階段、計劃階段、建設階段和交付階段。如下圖所示。
每一個階段通過質量保證體系,及時跟進并反饋項目進度、關鍵資源應用、問題缺陷等情況,分析跟蹤結果,一旦出現項目進展和系統功能偏離項目計劃時,采取糾正措施,直至項目結束,促使項目按照計劃時間、預算、達到既定質量要求的情況下交付。下面幾個步驟是具體的開發實例說明。
1.初始階段
首先,調研網絡學習空間的需求,建立需球管理,明確各類人員的分工和職責,利用適當的時間組織培訓,加深開發人員對需求的理解,并確定技術路線。
2.計劃階段
對網絡學習空間的開發過程進行適當的裁剪,確定其系統框架,建立項目里程碑,并用經驗估算法對工作量進行估算。結合前兩個階段,網絡學習空間功能模塊及實現優先級如表1所示。
3.建設階段
建設階段的關鍵環節是系統設計與開發,該環節重點改進的是變更控制,包括配置管理和缺陷問題管理。同時,監督與評審也是網絡學習空間的開發進行到第三個階段的關鍵工作過程。綜上所述,在此階段,項目負責人監督項目進展和系統性能,一旦出現項目進展偏離項目計劃或開發缺陷問題時,采取糾正措施,直至項目結束。
4.交付階段
合理的環境和數據選擇是網絡學習空間部署實施的關鍵要素,發布系統并記錄問題以及處理情況。最后,進行同行評審,確認無誤后交付系統。
六、應用與改進效果
(一)網絡學習空間的實際應用反饋
截止到本文發稿前,網絡學習空間已經上線應用,其功能需求和性能需求都得到了百分百的實現。前臺界面展示簡潔友好,適合多種瀏覽器;后臺管理操作簡單便捷,易用性強。應用后的用戶實際反饋如表2所示。
(二)開發過程改進效果
在項目進度方面,按照改進后的實現過程,網絡學習空間開發進度延期情況明顯改善,尤其是延誤最為嚴重的需求分析和部署實施,初始進度延誤偏差高達到20%,實施改進方案后,需求分析延誤偏差為10%,系統實施階段按時完成,無延誤。
在軟件缺陷方面,改進方案實施后,采用了較為科學的過程裁剪,選擇了適合網絡學習空間的開發過程顆粒度,使得開發過程較為順利,軟件質量得到基本保證,無明顯需求偏離。
七、總結與展望
本文通過診斷并分析開發網絡學習空間系統過程中遇到的問題及問題產生的原因,以CMMI第二級、第三級中關鍵過程域為基礎,在軟件項目管理上采取了一些改進措施,有效解決了部分問題。在系統開發過程中,出現缺陷問題是在所難免的,及時發現并提出行之有效的解決措施是提升軟件質量的明智之舉。CMMI模型只能提供理論框架,因此,不能一味地盲目追求。在軟件項目管理的過程中,結合實際建立適合軟件項目的管理體系,做好項目監管和質量評審工作,促進軟件質量滿足實際應用的需求,順應教育教學的發展需求,迎合教育用戶的消費心理,不斷提升軟件質量,才可以有利于教育軟件持續發展,開創教育軟件發展的新天地。