【摘要】卡耐基·梅隆大學軟件工程研究所提出的CMM(capacity maturity model,軟件能力成熟度模型),提出了軟件開發中從混亂的、個別的過程達到成熟的規范化過程的一個框架。其中SQA(software quality assurance )是CMM第2等級中的一個關鍵過程域。SQA通過貫穿整個軟件開發過程的質量監控,可以顯著改善軟件產品的質量。教育軟件的開發同樣如此。本文從SQA規范的角度出發審視教育軟件的開發,探討其對教育軟件開發的啟示。
【關鍵詞】教育軟件開發,CMM模型,SQA規范
【中圖分類號】G420【文獻標識碼】B【論文編號】1009—8097(2006)02—0015—04
一、引言
近幾年來,隨著以計算機和網絡為主的信息技術的迅速發展,它在教育中的應用受到社會各界的普遍關注。從實踐情況來看,全國各地中小學校的信息技術硬件基礎設施建設已經初具規模,一些經濟發達地區的學校硬件基礎設施配備其豪華程度甚至超過了英美等發達國家的平均水平。但是,教育信息化的順利實施,僅有硬件的支撐是不夠的,更重要的是教學軟件資源的建設。據慧聰商情統計[1],2002~2003年度我國教育信息化投資達210億元,其中教育軟件方面的投資占34億元,教育軟件銷售量在整個軟件零售市場中所占份額約為34%。然而根據K12網站最近做的一次調查[2](教師、學生、家長和其他人士共1461人參與)發現:對教育軟件的開發,只有10.61%的人感到比較滿意,感覺一般的為31.9%,感覺不太滿意或非常不滿意高達57.49%。為什么教育軟件市場不斷升溫,而人們對教育軟件的滿意程度如此低下?產品的最終質量很大程度上取決于產品的生產過程中,一個規范的軟件開發過程對于保證軟件的質量有著極其重要的意義。廣大教師普遍覺得當前教育軟件總體上來說數量很多,但真正適合自己使用的卻很少。許多教育軟件僅僅是教材內容的電子化,有些甚至存在科學性錯誤,有些不能進行二次開發,還有些教育軟件存在兼容性問題等等。教育軟件的質量是影響教育資源有效應用和整個軟件市場健康發展的一個關鍵,如何開發出高質量的、滿足師生需求的教育軟件自然成為眾多教育軟件企業苦苦思索的一個問題。
本研究之所以選擇CMM模型中的SQA規范,主要是因為目前眾多軟件生產企業都將通過CMM等級認證作為規范企業開發行為、保證產品質量、提高企業競爭力的重要手段,從我國教育軟件企業的實際情況出發,參考CMM2級的標準進行軟件過程改進是有其可行性的,在教育軟件的開發中,引入SQA對于解決目前教育軟件開發過程中存在的問題進而保證生產出高質量的教育軟件都有著重要的意義。
二、CMM和SQA規范介紹
1、CMM(軟件能力成熟度模型)簡介
CMM(Capacity Maturity Model,軟件能力成熟度模型)模型是卡耐基·梅隆大學以Watts Humphrey為首的專家們總結了大量的軟件工程項目的經驗后形成的研究成果。CMM按軟件過程的不同成熟程度劃分了5個等級(初始級、可重復級、已定義級、已管理級、優化級),它是衡量軟件組織過程成熟度的尺度,為企業改進過程提供了導向的路線圖。具體而言,各個成熟度等級的管理差異、特征和關鍵過程域(Key Process Area,KPA:即要達到每個等級的目標所要做的關鍵的實踐工作)可以用下表1(鄭人杰等,2003)加以描述。
從上表可以看出,CMM中的第1級屬于初始級,是個別的、混亂的、不可預測的過程,其中并沒有關鍵活動域。第2級是可重復級,引入了項目管理的思維,注重過程的可重復性,有六個關鍵過程域,對于保證軟件的質量是極其重要的。第3、4、5級是日臻完善的過程,處在較高成熟度等級上的軟件企業通常具有較高的生產率、較高的產品質量和較低的項目風險。教育軟件企業可以借鑒CMM中的標準和規范來改進開發過程,保證最終產品的質量。
CMM給出了CMM模型體現了軟件工程和軟件管理的優秀實踐,它集中了許多軟件工作者合作總結出的一套過程和實踐,對于指導軟件組織改進過程有著重要意義。目前全球的軟件企業都把通過CMM的等級認證作為規范企業開發行為,保證產品質量,提高企業競爭力的重要手段。
2、SQA規范的具體描述
為CMM第2等級的軟件質量保證(software quality assurance,SQA),本文主要是采用1991年IEEE所提出的定義。具體而言,SQA是一種有計劃的、系統化的行動模式,它是為項目或產品符合已有技術需求提供充分信任所必需的、設計用來評價開發或制造產品的過程的一組活動(IEEE,1991;Daniel Galin,2004)。SQA規范的具體內容,如表2(鄭人杰等,2003)所示。
在軟件項目的早期階段,SQA的參與人員與項目開發人員一起制定開發計劃(SDP),同時SQA的人員制定一個質量保證計劃(SQAP)。軟件質量保證計劃是成功進行軟件質量保證工作關鍵的第一步,實際上在SQAP中所制定的一系列計劃涵蓋了SQA的所有活動。在整個軟件的生存周期中,SQA選擇適當時機評審項目活動、審核軟件產品、驗證規程和標準的符合情況。SQA把評審收集上的信息及時反饋給軟件工程組,當問題無法在工程組內解決時,再向上級管理者匯報,以求解決問題。從軟件需求階段開始到系統測試為止,軟件質量保證過程與軟件開發過程是同步的,并且與軟件開發過程的信息交流是雙向反饋的。
需要說明一點的是,SQA與軟件測試并不是一回事,軟件測試是軟件開發過程的一個階段,而SQA是貫穿整個軟件開發過程;軟件測試的結果可供SQA使用,軟件測試不能代替軟件質量保證。
三、SQA對于教育軟件開發的啟示
SQA規范在一般軟件開發中的應用已經取得了良好的效果,在教育軟件開發過程中,我們同樣可以引入SQA規范,通過其在開發過程中的應用來保證教育軟件產品的質量。具體而言,SQA規范對教育軟件開發的啟示主要體現在以下三個方面。
1、設立SQA組并制定SQAP
對于教育軟件來說,所謂的高質量并不僅僅體現在軟件功能的實現上,更重要的是其是否承載著先進的教學理念,能否滿足教師和學生在教學和學習方面的需求。只有從教育軟件的教育性入手,深入分析師生的需求,深入分析教學內容,運用教育學、心理學、視聽心理學、媒體設計理論、軟件工程等知識來指導軟件的開發,才能開發出高質量的教育軟件。
因此,我們提倡在開發過程中設立一個有教學設計人員和學科專家參與的SQA組,這樣可以保證教育軟件的科學性和教育性。SQA組的人員與教育軟件的開發人員彼此獨立。基于教育軟件公司的成本考慮,其SQA組建議主要由管理人員、程序設計人員、教學設計專家、學科專家組成。
SQA中的第一個目的是確保軟件質量保證活動是有計劃的,所以設立完SQA組后的首要任務是制定軟件質量保證計劃(SQAP),其中的具體內容包括:(1)SQA員工的職責和權力;(2)SQA活動的日程表和投資;(3)SQA參與制定的項目的SDP、標準和規程的情況;(4)SQA對項目活動和產品的評價、審核情況;(5)SQA向軟件工程組和高級管理者反饋信息的文檔。實際上在SQAP中所制定的一系列計劃涵蓋了SQA的所有活動。在整個軟件的生存周期中,SQA選擇適當時機評審項目活動、審核軟件產品、驗證規程和標準的符合情況。SQA把評審收集上的信息及時反饋給軟件工程組,當問題無法在工程組內解決時,再向上級管理者匯報,以求解決問題。從軟件需求階段開始到系統測試為止,軟件質量保證過程與軟件開發過程是同步的,并且與軟件開發過程的信息交流是雙向反饋的。
2、建立有效的交流協調機制
SQA的另一個目的是“受影響的組和個人接到軟件質量保證活動和結果的通知”,相應地SQA組定期向軟件工程組報告其活動結果。建立有效的交流機制體現在兩個方面,一個方面是SQA組和開發組之間要建立有效的交流機制,從項目開始 SQA就參與制定的項目的開發計劃、標準和規程,所以從一開始SQA組就要和開發組有所溝通,和開發組一起制定合理而有效的開發計劃;在項目的開發過程中,SQA組中的管理人員主要審核開發組的開發計劃是否合理、開發成本是否合理、開發風險是否可控等問題;程序設計人員審核開發的技術是否合適,代碼和文檔的編寫是否合乎規范,軟件測試是否符合要求等問題;教學設計專家和學科專家審核資源內容是否具有科學性和適用性、資源內容的組織是否合理、資源的表現方式是否符合特定學習者的認知方式、資源建設是否符合特定的標準等問題;SQA組會定期將這些評價和審核的情況都會以文檔的形式反饋給開發組和高級管理者,以便開發組及時調整開發活動。所以SQA組和開發組的有效交流機制的建立非常重要。另一方面開發組內部的成員也要建立有效的交流機制。開發組內部的項目經理要做好教學設計專家、學科專家與程序設計人員的管理工作,協調他們之間的交流,如果不能協調好就會出現程序員和教學設計專家、學科專家之間彼此不能明白對方的意思。保證相互之間明確對方的開發意圖,對于保證教育軟件的教育性和提高質量有著重要的意義。
3、教育軟件產品和開發活動要符合規范
SQA的第二個目的是軟件產品和活動遵守適用的標準,規程和需求的情況得到客觀驗證。從教育軟件的開發活動來看,開發活動要符合規范。
首先,開發人員組成要合理。從公司調研的實際情況來看,目前許多教育軟件的開發并沒有教學設計人員和學科專家的直接參與。通常的情況是教育軟件項目組中只有少數的幾個核心骨干組成,并且一個開發人員(技術骨干)身兼數職,既要做需求分析,選題策劃,又要做程序設計和軟件測試。教育軟件的開發人員一般由以下人員構成:項目管理人員、程序設計人員、需求分析員、腳本寫作人員、教學設計專家、學科專家等。將開發人員確定為一個項目組,并根據預先制定的計劃具體安排每一項活動,人人各司其職、反對技術骨干身兼數職。
其次,教育軟件的開發要經過詳細的需求分析。全國教育科學“十五”課題“信息技術在中小學教育中應用的有效性研究”課題組2004年4月在北京、內蒙古、安徽和遼寧四省市做了教師對于教學資源需求的問卷調查,共發放800份問卷,回收679份,有效問卷668份,回收率84.9% 有效率98.4%。調查結果表明,93.2%的教師表示教育軟件公司從來沒有調查過他們對教學資源開發的需求信息(徐恩芹,劉美鳳,2005)。如果沒有針對廣大教師用戶進行需求分析,就很難做出高質量高的教育軟件產品。從這一點也可以看出,在最初的需求分析階段就體現出了教育軟件的開發過程缺乏規范性。
第三,教育軟件產品的開發要符合教育領域內的資源建設元數據標準,目前國內的標準主要有:Celts-3 (學習對象元數據規范) ,Celts-9(內容包裝規范),Celts-41(教育資源建設技術規范),Celts-42(基礎教育資源建設元數據規范),基礎教育教學資源元數據規范(celts-42)等標準,國外的標準有:OCLC 的Dublin Core元數據規范,IMS的LRMS(Learning Resource Metadata Specification)規范和CPS(Content Packaging Specification)規范, IEEE LTSC的LOM(Learning Object Metadata)規范,ADL(Advanced Distributed Learning)組織的SCORM(Sharable Content Object Reference Model)模型等標準。
最后,教育軟件的開發過程中要加強文檔管理。從我國目前教育軟件開發企業的實際情況來看,教育軟件項目一般來說都是一些小型的項目。在1998年的關于CMM和小項目的軟件工程過程小組會議上,“小”被定義為周期為3-4個月且員工不超過5個的項目;Brodman和Johnson把小型組織定義為軟件開發人員不超過50人的組織,把小項目定義為開發人員不超過20人的項目(劉春頌,楊壽保,2002)。小型項目中由于人員少、任務少、人員交流方便等一系列原因導致在整個開發過程中并不重視文檔編制,例如:開發計劃和過程文檔只是簡單的提綱,并沒有對其進行細致的描述。在實際的開發過程中,應遵循“先文檔后程序”的思想,對整個的開發過程進行全面的文檔化管理。文檔化的管理不僅能夠使所有在開發過程中發生的活動有案可查,而且能夠為公司開發類似的項目積累開發經驗,提高軟件的生產率。
四、小結
CMM模型自1987年面世以來,已經在各國軟件業產生了巨大的影響。我國的教育軟件生產企業可以借鑒其中的某些思想和規則來更好地指導教育軟件的開發,開發出質量更高的產品,提升我國教育軟件生產企業的競爭力。本研究從CMM的第2級的SQA關鍵過程域的活動中得到啟示,思考目前的教育軟件開發過程中存在的問題,通過規范開發過程來提高教育軟件開發的質量。希望這些研究結果能夠對我國目前教育軟件企業的開發工作有所啟發和借鑒。
——————————
參考文獻
[1]中國軟件產業分析報告.上海德明管理顧問有限公司http://www.denemc.com/pdf_files/中國軟件產業分析報告.pdf,2005
[2] Capability Maturity ModelSM for software, Version 1.1http://www.cmu.com, 2005
[3] 呂森林(2004).重建教育軟件產業鏈[J].中國遠程教育, 2004,(8):61-64
[4] 鄭人杰,王維,王方德,蔡愉祖等(2003).基于軟件能力成熟度模型(CMM)的軟件過程改進—方法與實施[M].北京:清華大學出版社,2003:126-138
[5] [以色列] Daniel Galin(2004).軟件質量保證[M].王振宇,陳利,王志海等譯.北京:機械工業出版社,2004:10-19
[6] 徐恩芹.劉美鳳(2005).我國中小學教師對教學資源需求的調查報告[J].中國電化教育,2005(3):74-77
[7] 劉春頌,楊壽保(2002).CMM導入小型軟件企業 /小型軟件項目的研究[J] .計算機工程與應用, 2002,(18):88-91
[8] 王旭坪(2004).基于CMM的中國軟件企業評測模型[J].中國軟科學,2004(3):76-79
[9] [美]Sami Zahran(2002).軟件過程改進[M].陳新,羅勁楓等.北京:機械工業出版社,2002:21-25
[10]馬閏娟,梁成才(2003).CMM二級KPA軟件質量保證的一個實施方案[J].計算機工程,2003,(2):112
[11]凌云(2003).我國教育軟件企業發展對策研究[J].經濟師,2003,(3):80-81
The Implication of SQA for Instructional Software Development
Zhong MingyangLiu MeifengDu Yuan
School of Education Technology, Beijing Normal University, Beijing, 100875
Abstract: As the key process areas of Capacity Maturity Model (CMM), Software Quality Assurance (SQA) improved the quality of software a lot by monitoring the quality during the whole development process. In this paper, we analyzed the development process of instructional software in the perspective of SQA, and drawn out some guidelines to the instructional products development.
Keywords: Instructional Product Development, CMM, SQA
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文