2014年2月20日,IEEE計算機協會發布了軟件工程知識體系 SWEBOK \\(Software Engineering Body of Knowledge\\)指南第 3 版.第3 版標志著 SWEBOK 項目到達了一個新的里程碑.作為本指南的聯合主編之一,筆者將介紹SWEBOK V3 的目標、項目組成員、制訂過程以及內容上的重大變化.
1 SWEBOK V3的目標.
軟件工程是一門獨立的學科,有自己的職業體系和教育課程體系.軟件工程職業化是軟件工程成熟的標志.1993 年,IEEE 計算機協會和 ACM 職合發起為軟件工程職業化制定相應的準則和規范,作為產業決策、職業認證和課程教育的依據,經稻草人階段\\(1994-1996 年\\)、石頭人階段\\(1998-2001 年\\)和鐵人階段\\(2003-2004 年\\),先后在 2001 年推出了 SWEBOK 第 1版和相應的軟件工程師認證\\(CSDP\\),2004 年推出了 SWEBOK 第 2 版,2008 年推出了面向大學應屆畢業生的初級軟件工程師認證\\(CSDA\\).
SWEBOK 的建立極大地推動了軟件工程理論研究、工程實踐和教育的發展,國內大多數軟件工程專業在制定本科培養方案時也都參考了SWEBOK.
在 SWEBOK V2發布的第六年\\(2009年\\),IEEE 計算機協會 啟 動 了 SWEBOKV3 的版本升級項目,項目目標包括: \\(1\\)增加近年軟件工程研究與實踐的新成果;\\(2\\)將SWEBOK和CSDA、CSDP、SE200\\(4軟件工程本科課程大綱\\)、GSwE2009\\(軟件工程碩士課程大綱\\)、SEVOCAB\\(軟件工程術語\\)等標準進行統一;\\(3\\)合并和更新以上各標準的參考文獻,遴選最重要的文獻,減少文獻數量,以利于讀者的學習.
2 SWEBOK V3項目組成員.
針對上述 3 個目標,2009 年組建了由加拿大魁北克大學高等技術學院 Pierre Bourque 副教授領導的編輯小組,成員由 5 個不同國家的軟件工程專家組成,除了筆者以外,還有來自美國軟件與系統工程協會的 Richard E. Fairley、加拿大魁北克大學高等技術學院 Alain Abran 教授、印度Tata 咨詢公司副總裁 Garki Keeni 女士和西班牙馬德里理工大學 Juan Garbajosa 教授.由上述 6位主編推薦,成立了由 25 名專家組成的知識域\\(KA\\)編輯組,其中來自中國的 3 名專家擔任了4 個知識域的更新,分別是,上海交通大學的鄒恒明教授負責計算基礎和軟件工程職業實踐;北京大學的孫艷春副教授負責軟件設計;復旦大學彭鑫副教授負責軟件構造.這是中國專家第一次參與 SWEBOK 的編輯工作.同時來自 33 個國家的約 150 名專家參與了評審.
3 SWEBOK V3的制訂過程整個
SWEBOK V3 的版本升級過程比預計更復雜更費時,經過了初稿、內部評審、公開評審和整合 4 個階段,歷時 4 年多時間,終于在 2014 年 2 月 20 日 發 布.在制訂過程中,專家們使用一個基于 Web的版本管理系統進行各知識域的更新、評審、核準、共享和整合,提交和處理了 1 500 多個變更,同時召開了許多次現場會議和網上遠程會議進行溝通和討論,最終形成 V3 Beta 版.下階段,SWEBOK 將被提交 ISO/IEC\\(國際標準化組織 /國際電工委員會\\),作為其技術報告發表.另一個任務是將其翻譯成多國語言出版或發布.
4 SWEBOK V3的主要變化
SWEBOK V3一共包括 15 個知識域,其中包括11 個軟件工程實踐知識域,分別是軟件需求、軟件設計、軟件構造、 軟 件 測 試、軟件維護、軟件配置管理、軟件工程管理、軟件工程過程、軟件工程模型和方法、軟件質量、軟件工程職業實踐;以及 4 個軟件工程教育基礎知識域--軟件工程經濟學、計算基礎、數學基礎和工程基礎.與 SWEBOK V2 相比,SWEBOKV3 的主要內容變化有以下幾個方面:
\\(1\\)更新了所有知識域的內容,反映出軟件工程近 10 年的新成果,并與 CSDA、CSDP、SE2004、GSwE2009 和 SEVOCAB 等標準進行了知識體系的統一.
\\(2\\)新增了 4 個基礎知識域\\(軟件工程經濟學、計算基礎、數學基礎和工程基礎\\)和一個軟件工程職業實踐知識域.
\\(3\\)在軟件設計和軟件測試中新增了人機界面的內容;把軟件工具的內容從原先的“軟件工程工具和方法”中移到其他各知識域中,并將該知識域重命名為“軟件工程模型和方法”,使其更關注方法.
\\(4\\)更突出了架構設計和詳細設計的不同,同時在軟件設計中增加了硬件問題的新主題和面向方面\\(aspect-oriented \\)設計的討論.
\\(5\\)新增了軟件重構、遷移和退役的新主題,更多地討論了建模和敏捷方法.
\\(6\\)在多個知識域中都增加了對保密安全性\\(security\\)的考慮.
\\(7\\)合并了多個標準中的參考文獻,并進行更新和遴選,減少了參考文獻數量.
5 結 語.
SWEBOK 描述的是廣泛共識的知識,隨著軟件技術的迅速發展,當前一些學術界的研究成果以及產業開始應用的新技術將逐漸普及,因此SWEBOK V3 項目組的最后一個目標是希望能建立 SWEBOK 每三年周期性更新的制度,持續改進知識體系.期待 SWEBOK 能成為持續推進軟件工程走向成熟的重要力量之一.