学习总会给我们带来知识。
项目管理有10大知识领域,软件工程也有10大知识领域。
IEEE在年发布的《软件工程知识体系指南》中将软件工程知识体系划分为以下10个知识领域:
软件需求
这一知识领域主要涉及软件需求的获取、分析、形成规格说明以及确认的内容。
软件设计
这一知识领域包括描述软件的顶层结构、标识各种不同组件概要设计和详细地描述各个组件的详细设计两个内容。
软件构建
这一知识领域包括编码、验证、单元测试、集成测试和调试等内容。
软件测试
这一知识领域包括测试计划、设计测试用例、招待测试用例以及测试总结的内容。
软件维护
这一知识领域主要是针对软件交付使用后出现的问题进行相应地修改或演化,从而修正错误,改善性能或其他特征,以及使软件适应变化的环境等内容。
软件配置管理
这一知识领域就是对软件工作产品进行版本控制和变更控制的内容。
软件工程管理
这一知识领域指的是软件的开发和维护的管理活动,包括计划、协调、度量、监控、控制和报表。
软件工程过程
这一知识领域包括软件生命周期过程中技术的和管理的活动,也包括软件生命周期过程本身的定义、实现、评估、管理、变更和改进。
软件工程工具和方法
这一知识领域包括用于辅助软件生命周期过程的基于计算机的工具,也包括通过工具来支持特定的软件工程方法。
软件质量
这一知识领域包含软件质量预测和控制的内容。
我们实施GJBA,是为了提高组织的软件工程能力,那么,GJBA对软件工程的10大知识领域完全覆盖了吗?
GJBA对软件工程知识领域对应关系见下表:
软件工程知识领域GJBA过程域软件需求需求管理、需求开发软件设计技术解决方案软件构建技术解决方案、产品集成、验证软件测试确认软件维护——软件配置管理配置管理软件工程管理各管理类过程域软件工程过程组织过程定义、组织过程焦点、组织创新和部署软件工程工具和方法分布在各个过程域的的共用实践中软件质量——从上表中可以看出,10大软件工程知识领域中,软件维护和软件质量两个知识领域在GJBA中没有显性的过程域与之相对应。这在我们实施GJBA时要补齐两个知识领域的短板。
虽然现在GJBA的评价已经要求被评单位的软件体系要覆盖软件的全生命周期,即应当包含软件维护的内容,但在实际执行的过程中,软件维护因为没有纳入GJBA评价的范围,所以有些组织只是简单地规定了维护的要求,但并没有很好地执行。
而软件质量虽然是各组织都想要抓的内容,但并没有和建立的GJBA软件过程体系很好地融合起来。
总之,我们实施和推广GJBA,就是为了提高我们的软件工程能力,不要仅仅为了军软开发的资质而推进GJBA。
这正是:
推行五千何所为,提升能力壮军威
对照工程十领域,补齐短板大有为
参考书目:软件工程(第4版),作者:张海藩吕云翔,出版社:人民邮电出版社有限公司
作者简介:王小双,长期从事GJB推广、实施、评价、改进的工作,创建《软件工程之思》