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 能成为持续推进软件工程走向成熟的重要力量之一.