赵鹏 李智勇 蔡文亮
武汉东湖学院 湖北省武汉市 430000
摘要:第一届国际软件工程知识体系指南演化研讨会于2005年7月 25日 ~ 28日在苏格兰的爱丁堡与 COM PSAC 2005联合举行, 研讨会的目标如下:①制定增删指南知识域的标准;② 制定专门的增删指南专题标准的准则;③制定专门的取代、增加和删除指南的参考资料标准的准则;④推荐知识域范围的增加、删除或重大修改 ;⑤提名指南适应性修改的潜在起草人。 本文认为我国相关的研究也亟待加强, 不仅要从计算机工程和计算机科学本身以及其相关的六个学科入手, 还需要从知识科学和系统科学的高度来研究。
关键词:软件工程;标准化;软件工程知识体系
一、软件工程知识体系指南的历史
1998年 , 美国联邦航空管理局在启动一个旨在提高该局技术和管理人员软件工程能力的项目时, 发现他们找不到软件工程工程师应该具备的公认的知识结构。 他们向美国联邦政府提出了关于开发“软件工程知识体系指南”的项目建议。 美国 Embry-Riddle航空大学计算与数学系的 Thomas
B. Hilburn教授接受了该研究项目, 并且于 1999年 4月完成了《软件工程知识本体结构 》的报告。很快人们普遍接受了这样的认识:建立软件工程本体知识的结构是确立软件工程专业至关重要的一步;如果没有一个得到共识的软件工程本体知识结构, 将无法验证软件工程工程师的资格, 无法设置相应的课程, 或者无法建立对相应课程进行认可的判断准则 。对建立权威的软件工程知识本体结构的需求迅速从世界各地反映出来。 1999年 5月, ISO和 IEC的第一联合技术委员会( ISO /IEC /JTC1)为顺应这种需求, 立即启动了标准化项目 ——— “软件工程知识体系指南” (Guide to theSofwt are Eng ineering Body of K now ledge, SW EBOK, h ttp:/ /www.swebok. o rg /)。 美国电子电气工程师学会与美国计算机联合会联合建立的软件工程协调委员会(SECC)、加拿大魁北克大学以及美国 M ITRE公司(与美国 SEI共同开发 SW-CMM 的软件工程咨询公司)等共同承担了 ISO /IEC / JTC1“ SWEBOK 指南”项目任务。
二、软件工程知识体系指南的目标
SW EBOK 指南的目的是为软件工程学科的范围提供一致的确认, 为支持该学科的本体知识提供指导。 SWEBOK 指南2006年第 10期万江平等 :软件工程知识体系指南综述将软件工程学科的本体知识分为 10个知识域, 各种重要概念之间的区别在每个知识域描述中阐述, 便于读者迅速查找感兴趣的专题。SW EBOK 指南的目标是 :①促进软件工程本体知识达成世界范围的共识;②澄清软件工程与其他相关学科如计算机科学、项目管理、计算机工程以及计算机数学的关系, 并且确定软件工程学科的范围;③反映软件工程这个学科内容的特征;④确定软件工程本体知识的各个专题;⑤为相应的课程和职业资格认证材料的编写奠定基础。SW EBOK 指南面向全世界的广大读者 。 它适合于有关的公共和私营组织——— 它为软件工程规定教育和培训要求、划分职业类别、拟订绩效评价政策或确定开发任务提供一致的见解;它适合于从事具体执行或管理工作的软件工程师和负责制定职业许可政策及指南的政府官员;它适合于负责规定认证规则、大学课程认可政策以及职业实践指南的职业工作者和教育工作者;它也适合于正在学习软件工程专业的学生和从事课程设置及课程内容设计的教育工作者和培训工作者。
三、SW EBOK 指南用层次的组织结构将每个知识域分
解成一组可以识别的专题。 二或三层的细目分类给读者提供了一个合理的方法去找到感兴趣的专题。 指南将会用一种与主流的思想
学派相兼容、与在工业和软件工程文献及标准中通用的细目分类方法相兼容的方式来处理所选择到的专题。 专题的细目分类不假定特殊的应用域、商业用途、管理哲学、开发方法等。 每个专题的说明范围将仅符合读者成功找到参考资料的需要, 知识体系毕竟是在参考的资料中得到, 而不是在指南本身。指南为每个知识域确定了参考资料。 它们可能是书本的章节、参考论文或任何其他公认的权威消息的来源———但参考资料必须用英文写成而且通常是可获得的。 我们更需要那些不是 IEEE计算机协会或 ACM 早已拥有版权的资料, 因为我们想在 I n t e r n e t上免费得到这些参考资料。 指南将会按 B l o o m的分类学(T a x o n o m y ofEducationalObjectives:The Classificationo f Educa tiona lG oa ls, M ackay, 1956)来组织 。 B loom 的分类学是众所周知并广泛使用的认知经验分类方法。
四、软件工程知识体系指南的十大知识域
每个知识域的选择、命名和说明均保留了对专题的注解、评审和修正。 而诸如测量 、工具和标准的专题跨越了知识域却被独立地分开了, 这些内容在指南的后续版本中都将要评审。以下为10个知识域:软件需求、软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工具、软件工程方法、软件质量。
五、软件工程知识体系指南的应用思考
与亚洲的印度和欧洲的爱尔兰等国相比, 中国软件产业发展还不太尽如人意, 原因很多。 从 SWEBOK 指南发展中至少有下面两点启示 :①我国软件工程知识教育必须与国际接轨;②我国必须关注软件工程知识指南的最新发展。在已经比较成熟的计算机科学教育中, 不乏有关的理论知识, 但缺少的是软件工程的“行为”以及对于“工程”而言至关重要的人员问题和过程问题。 在长期软件工程实践活动中已经积累了大量行之有效的经验和知识, 其中有一些经过反复探讨和验证之后还被制定成了标准。 SWEBOK 是指南, 不是软件工程知识本身, 软件工程方面的知识已经存在。 SWEBOK指南的宗旨是在众多知识中圈定“属于”软件工程学科域的知识, 规定软件工程教育和培训方面的要求和制定出评价原则,并且在世界范围内求得公认。 它还试图为从事软件实践的工程师和负责制定有关职业指导原则政策的官员提供指南;此外, 制定高等院校课程认证规则、认可政策和职业实践指南的社会职业工作者和教育工作者以及从事软件工程职业学习的学生也可以从 SWEBOK 指南中得到收益。 本文至今还没有发现SWEBOK指南应用于我国软件工程的教育实践。
参考文献:
[1] SWEBOK, Guide to Software the Sofwtare Engineering Body ofKnow-ledge[ EB /O L] . h ttp:/ /www. sw ebok. org ,/ 2004.
[2] Pierre Bourque, et a.l The Guide to the Software Engineering Body ofK now ledge[ J] . IEEE Softw are, 1999, 16(6):35-44.
[3] 万江平, 杨建梅. 软件过程改进的复杂性工作程序研究——— SW-CMM 实施方法论 [ M ]. 北京 :科学出版社 , 2004