第3章 《软件工程 软件开发成本度量规范》标准解读
3.1 标准概述及其结构、范围、引用文件和符合性说明
3.1.1 概述
国家标准GB/T36964—2018《软件工程软件开发成本度量规范》已于2018年12月正式发布,于2019年7月正式实施。该标准规定了软件开发成本度量的方法、过程及原则,旨在帮助软件开发项目各利益相关方在成本度量方法上达成一致。本章从国家标准GB/T36964—2018中节选部分章节进行详细解读,以帮助读者更好地理解及应用标准。
3.1.2 标准的结构
GB/T36964—2018共分7章和1个附录A。该标准的前5章是关于标准的必备要素:第1章标准的范围,第2章标准中的规范性引用文件,第3章标准的术语和定义,第4章标准的缩略语,第5章标准中的符合性声明。
第6~7章是关于标准的主体内容。其中,第6章为软件开发成本的构成以及各个组成部分,第7章为软件开发成本的度量原则和过程。
附录A为该标准的典型应用场景。
3.1.3 标准的范围
【标准原文】
本标准规定了软件开发成本度量的方法及过程,包括符合性声明、软件开发成本的构成、度量过程及应用场景。
本标准适用于软件开发项目的成本估算、成本管理、合同变更以及相关合同编制。
【标准解读】
编制《软件工程 软件开发成本度量规范》的主要目的在于明确软件开发成本度量的方法及过程。因此,该标准主要内容包括符合性声明(标准应用的条件和要求)、软件开发成本的构成(什么是软件开发成本、成本估算的结果包括什么、不包括什么)、软件开发成本度量过程(应该依据什么原则、方法和步骤去估算或测量软件开发成本)、软件开发成本度量标准的应用场景(在不同的应用场景使用本标准的要点是什么)。
3.1.4 标准中的规范性引用文件
【标准原文】
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T18492—2001《信息技术 系统与软件完整性级别》
GB/T25000.10—2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第10部分:系统与软件质量模型》
SJ/T11617—2016《软件工程COSMIC-FFP一种功能规模测量方法》
SJ/T11618—2016《软件工程MKⅡ功能点分析计数实践指南》
SJ/T11619—2016《软件工程 功能规模测量NESMA方法》
SJ/T11620—2016《信息技术 软件和系统工程FiSMA 1.1功能规模测量方法》
ISO/IEC 20926:2009《软件与系统工程 软件度量IFPUG功能规模测量方法2009》(Software and systems engineering—Software measurement—IFPUG functional size measurement method 2009)
【标准解读】
在估算工作量时,需要考虑软件质量要求以及完整性级别对于估算结果的影响。其中,GB/T18492—2001《信息技术 系统与软件完整性级别》定义了完整性级别相关概念以及确定完整性级别的过程要求,配合《软件工程 软件开发成本度量规范》,可用于确定完整性级别的划分以及相关调整因子的取值;GB/T25000.10—2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第10部分:系统与软件质量模型》定义了质量模型所包含的特性及子特性,配合《软件工程 软件开发成本度量规范》,可用于确定质量要求相关调整因子的选择和取值。
在软件规模估算过程中,采用SJ/T11617、SJ/T11618、SJ/T11619、SJ/T11620和ISO/IEC 20926提供的5种功能点度量标准,在对软件规模进行功能点度量时,标准的使用方应选择其中一种或多种参考标准中的具体方法进行度量。
3.1.5 标准中的符合性说明
【标准原文】
本标准在使用时应满足以下条件:
a)在软件工程模式下进行开发的软件项目的成本度量;
b)不同利益相关方由于目的不同,宜采用的成本度量方法或过程会有所差异,如选用本标准进行软件成本度量时,应遵循第7章所建议的技术路线。
c)在进行规模估算时,应参考SJ/T11617—2016、SJ/T11618—2016、SJ/T11619—2016、SJ/T11620—2016和ISO/IEC 20926:2009的适用范围选择合适的估算方法。其中:
1)IFPUG、NESMA和FiSMA方法适用于商业应用软件的功能规模测量;
2)NESMA方法与IFPUG方法非常类似,但对功能点计数进行了分级,以便在估算的不同时期选择不同精度的方法进行估算;
3)COSMIC方法适用于商业应用软件和实时系统的功能规模测量;
4)MKⅡ方法适用于逻辑事务能被确定的任何软件类型。
本标准根据软件开发生存周期过程对应用场景进行划分,典型应用场景划分如下:
a)预算;
b)招投标;
c)项目计划;
d)变更管理;
e)结算、决算、后评价。
关于上述5种应用场景的成本度量过程和要求详见附录A。
【标准解读】
在不同的应用场景下,软件成本度量所采用的方法及过程会有所差异。例如,通常在项目早期,宜采用相对简单同时精度也较低的方法进行快速估算;而随着项目范围的逐步清晰,则可以采用相对精确(往往也意味着更高的使用成本)的方法进行估算。在同一场景下,也可以根据管理需要,同时采用多种方法进行估算并交差验证。
在进行软件规模估算时,通常选择标准所推荐的5种功能点分析方法中的一种。不同功能点分析方法的适用范围可参考各功能点标准中相关描述。
需要特别指出的是,GB/T36964—2018中关于不同功能点分析方法适用范围的说明与所引用标准中的表述不完全一致。例如,在GB/T36964—2018中,对IFPUG、NESMA等标准适用范围的描述为“IFPUG、NESMA和FiSMA方法适用于商业应用软件的功能规模测量”,而在电子行业标准SJ/T11619—2016中的相关描述为“可用于所有类型的软件项目”(IFPUG标准存在类似问题)。考虑GB/T36964—2018将相关功能点标准作为规范性引用文件,而未对功能点分析方法进行特别的定义和解释,在该标准表述与其所引用标准原文的表述存在差异时,应当以所引用标准的原文为准。
本标准介绍了预算、招投标、项目计划、变更管理、结算/决算/后评价5种典型的应用场景,并在后续的附录中进行了详细说明。
对打算在组织内应用标准的个人或团队而言,将这5种典型应用场景作为标准最佳实践,具有重要意义。上述场景仅为相关专家根据标准在行业中的应用情况总结的最典型的5种类型,本标准的应用不限于以上5种场景,相关方可在遵循本标准的基本原则和过程的基础上,结合具体需求进行应用。