[摘 要]作為國際通行的軟件評估標準,CMM已經(jīng)被越來越多中國的軟件企業(yè)所接受,它已成為我國軟件企業(yè)走向世界的通行證。基于CMM核心理念,可以設計三個由簡單到復雜的軟件小項目,將CMM的過程關鍵域的活動融入軟件工程實踐教學中,幫助學生理解和掌握CMM的關鍵要素。
[關鍵詞]軟件工程 課程改革 CMM 案例教學
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 2095-3437(2014)17-0099-02
一、引言
目前,作為國際通行的軟件評估標準,CMM已經(jīng)被越來越多中國的軟件企業(yè)所接受,它已成為我國軟件企業(yè)走向世界的通行證。但是,目前大學里大部分軟件工程的教材都沒有涉及或者很少涉及CMM核心理論。另外,現(xiàn)有的軟件工程教學內容仍采用傳統(tǒng)的基本原理,與實際的軟件工程實踐有明顯的差距,這顯然不利于培養(yǎng)高層次的實用型工程化軟件研發(fā)人才。我們深入分析CMM核心理念,并將其融入軟件工程課程教學中;基于CMM核心理念,精心設計三個典型的軟件小項目;安排學生到一些已經(jīng)通過CMM一定級別認證的公司觀摩和學習,從而激發(fā)學生學習的主動性和創(chuàng)造性。
二、CMM核心理念分析
CMM是指“能力成熟度模型”,其英文全稱為Capability Maturity Model for Software,英文縮寫為SW-CMM,簡稱CMM。CMM的核心思想是將軟件開發(fā)視為一組過程,并將過程組織成五個成熟度等級。除第一級外,每一等級包含一組過程目標。CMM定義了為達到過程目標所需的關鍵活動,這些關鍵活動成為關鍵過程域(KPA)。每一等級的達到,就會使軟件過程的一些相應重要成分穩(wěn)定下來,從而使軟件開發(fā)組織過程能力得到一定程度的增長,進而提升軟件質量和降低軟件開發(fā)風險。CMM等級跟軟件質量和軟件風險的關系如圖1所示。①初始化級:軟件過程沒有任何標準和規(guī)章,軟件產(chǎn)品的質量具有不可預測性,軟件風險很高。②可重復級:軟件研發(fā)有固定過程和簡單的過程管理,以前的開發(fā)經(jīng)驗成為開發(fā)新產(chǎn)品能否成功的極為重要的制約因素。這個級別的關鍵過程域包括:需求管理、軟件項目計劃、軟件質量保證、軟件配置管理、軟件項目跟蹤和監(jiān)控、軟件轉包合同。③定義級:軟件工程和過程管理緊密結合起來,形成了可復制的“標準軟件過程”。在該級增加了7個KPA:組織過程焦點、組織過程定義、培訓大綱、集成軟件管理、軟件產(chǎn)品工程、組間協(xié)調和同行評審。軟件質量得到較大提升,軟件風險得到一定程度的控制。④管理級:針對軟件過程的每一個階段進行監(jiān)控、取樣和定量分析,軟件質量和軟件風險得到較好的控制。在該級增加了2個KPA:定量過程管理、軟件質量管理。⑤優(yōu)化級:整個軟件開發(fā)機構的重心轉移到優(yōu)化軟件過程。在該級增加了3個KPA:缺陷防范、技術改革管理和過程變更管理。實施該過程后基本不存在軟件開發(fā)風險,軟件質量得到很好的保證。
三、循序漸進案例教學法
基于CMM的核心理念以及我校學生能力的基本情況,我們設計了如圖2所示的基于實際項目的實施過程。這里面有幾個關鍵點:CMM級別的選擇,實踐項目的設計,學生的分組,軟件工程知識傳授的時機等。
由于CMM管理級別和優(yōu)化級別難度很大,并且需要參與者有多個復雜項目的實踐經(jīng)驗,所以本課改內容不考慮在內。關于實踐項目設計,我們精心準備三個相對簡單的項目:學生信息管理系統(tǒng)、圖書管理系統(tǒng)和教學管理系統(tǒng)。這些系統(tǒng)所需的領域知識一般學生都能基本掌握,都是信息管理系統(tǒng),系統(tǒng)的實現(xiàn)所需的技能學生基本具備。我們根據(jù)各個學生的學習能力、分析能力和組織能力進行分組,每個小組為6-8人。
關于軟件工程傳授的時機,一方面采用逐漸傳授的策略,另一方面采用先實踐后傳授的策略。具體內容描述如下。
(一)第一階段——初始化級
使用圖書管理系統(tǒng)作為軟件工程學習的初始項目。首先將圖書管理系統(tǒng)的需求陳述給各小組,要求各小組在4個星期內完成該項目,并上交完成該項目的代碼和文檔。
第5周進行全體成員參與項目驗收的評審。各小組指派一名成員用10-15分鐘的時間對自己小組的項目匯總文檔進行講解,教師和學生就這些項目所存在的問題進行討論,分析其中存在的軟件質量問題以及因為開發(fā)管理所帶來的軟件風險問題,并提出解決這些問題的基本思路。教師講解軟件工程的基本概念和CMM的基本概念,分析CMM中可重復級別的關鍵過程域,重點放在需求管理、軟件項目計劃、軟件項目跟蹤與監(jiān)控和軟件配置管理上,討論和分析這些關鍵過程域是如何解決在本階段中軟件開發(fā)所存在的問題的。
(二)第二階段——可重復級
以家庭財務管理系統(tǒng)作為這個階段的實踐項目,各個小組按照可重復級的關鍵過程域的要求開展相應的活動。因為項目沒有外包情況,可以排除軟件子合同管理過程域。在該階段中,對文檔的規(guī)范性和編程的規(guī)范性有嚴格的要求。時間長度也為4個星期。
第5周進行全體成員參與項目驗收的評審。教師和學生一起分析第二階段所做項目的方法跟第一階段所做項目的方法的差別,分析兩種方法差異對項目帶來的影響。教師結合項目完成情況穿插講解可重復級的關鍵過程域活動的要點,使學生加深對這些關鍵過程域的理解。教師和學生一起分析可重復級階段所存在的軟件質量問題和軟件風險問題,并提出解決這些問題的基本思路。
(三)第三階段——可定義級
以教學管理系統(tǒng)作為這個階段的實踐項目,各小組按照可定義級的關鍵過程域的要求開展相應活動,重點放在培訓程序、集成軟件管理和同級評審上。在該階段,重點關注知識的分享和融合。時間長度為4個星期。
第5周進行全體成員參與項目驗收的評審。教師和學生一起分析第三階段所做項目的方法跟第二階段所做項目的方法的差別及其對項目所帶來的影響。教師結合項目完成情況穿插講解可定義級的關鍵過程域活動的要點,使學生加深對這些關鍵過程域的理解。安排學生到本地已經(jīng)通過CMM三級認證的公司參觀訪問和邀請公司的骨干員工跟學生一起座談,大家一起討論CMM在執(zhí)行中遇到的困難以及克服這些困難的良策。
四、結束語
軟件工程課程是計算機科學相關專業(yè)的一門實踐性很強的課程,軟件開發(fā)工具和軟件開發(fā)模型也在不斷發(fā)展中,軟件工程課程的實踐教學方法與教學過程設置有待我們不斷地研究與實踐。下一步我們將考慮跟已經(jīng)通過CMM三級認證的本地企業(yè)一起合作進行軟件工程課程的教學改革工作。
[ 參 考 文 獻 ]
[1] 美國卡內基梅隆大學.能力成熟度模型(CMM):軟件過程改進指南(英文版)[M].北京:人民郵電出版社,2002.
[2] 張耀民.“項目驅動+案例教學”模式在軟件工程教學中的應用[J].中國職業(yè)技術教育,2012.
[責任編輯:覃侶冰]