解读软件工程知识体系SWEBOK V3
2014-07-01沈备军
沈备军
2014年2月20日,IEEE计算机协会发布了软件工程知识体系SWEBOK(SoftwareEngineering 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 V2发布的第六年(2009年),IEEE计算机协会启动了SWEBOKV3的版本升级项目,项目目标包括:
(1)增加近年软件工程研究与实践的新成果;
(2)将SWEBOK和CSDA、CSDP、SE2004(软件工程本科课程大纲)、GSwE2009(软件工程硕士课程大纲)、SEVOCAB(软件工程术语)等标准进行统一;
(3)合并和更新以上各标准的参考文献,遴选最重要的文献,减少文献数量,以利于读者的学习。
2 SWEBOK V3项目组成员
针对上述3个目标,2009年组建了由加拿大魁北克大学高等技术学院Pierre Bourque副教授领导的编辑小组,成员由5个不同国家的软件工程专家组成,除了笔者以外,还有来自美国软件与系统工程协会的Richard E.Fairley、加拿大魁北克大学高等技术学院Alain Abran教授、印度Tata咨询公司副总裁Garki Keeni女士和西班牙马德里理工大学Juan Garbaiosa教授。由上述6位主编推荐,成立了由25名专家组成的知识域(KA)编辑组,其中来自中国的3名专家担任了4个知识域的更新,分别是,上海交通大学的邹恒明教授负责计算基础和软件工程职业实践;北京大学的孙艳春副教授负责软件设计;复旦大学彭鑫副教授负责软件构造。这是中国专家第一次参与SWEBOK的编辑工作。同时来自33个国家的约150名专家参与了评审。
3 SWEBOK V3的制订过程
整个SWEBOK V3的版本升级过程比预计更复杂更费时,经过了初稿、内部评审、公开评审和整合4个阶段,历时4年多时间,终于在2014年2月20日发布(http:∥www.swebok.org)。在制订过程中,专家们使用一个基于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能成为持续推进软件工程走向成熟的重要力量之一。
(编辑:彭远红)