【国标36964解读】《软件工程软件开发成本度量规范》(GB/T36964-2018)解读
国标36964是我国软件工程领域关于软件开发成本度量的核心国家标准,于2018年12月28日发布、2019年7月1日实施,由全国信息技术标准化技术委员会(SAC/TC28)归口,在《软件研发成本度量规范》(SJ/T11463-2013)基础上优化升级,重点解决了“软件开发成本怎么定义、怎么算、不同场景怎么用”的问题,适用于委托方、开发方、第三方(监理/审计/咨询)等所有利益相关方。
一、标准核心定位
《软件工程软件开发成本度量规范》(GB/T36964-2018)基于《软件研发成本度量规范》(SJ/T11463-2013)升级,保持成本度量的核心逻辑一致;同时,引入5类典型应用场景(预算、招投标、项目计划等)、明确不同功能规模测量标准的适用范围、优化工作量调整因子;但标准中明确不包含基准数据和估算模型,使用时需参考权威部门(如行业协会、主管机构)发布的最新基准数据(如CSBMK和CSBSG)和模型使用。相关基准数据和标准详细解读可查看:
软件行业基准数据之ISBSG,CSBSG以及CSBMK的区别与联系
【合集】各省市费用标准解读系列
本标准使用的核心场景主要为软件开发项目的成本估算(事前算)、成本管理(事中控)、合同变更(事中调)、合同编制(事前约定),但不包含数据迁移、软件维护(如运维)等项目外的成本,仅覆盖“项目立项→验收交付”所涉及的需求分析、概要设计,编码实现、集成测试、验收交付及相关的项目管理支持活动。
二、软件开发成本构成
软件开发成本主要为人力成本和非人力成本,构成如下:
1、直接人力成本
定义:项目组成员的人力资源代价(可直接计入项目);
包含人员:项目经理、需求分析师、设计/开发/测试人员、部署人员、文档编写者、QA、配置管理员等;
计算逻辑:非全职人员按“项目工作量占比”折算费用,如某开发员50%时间投入项目,仅算50%工资。
2、间接人力成本
定义:服务于整体开发管理、非项目组人员的代价(按工作量比例分摊);
包含人员:开发部门经理、项目管理办公室(PMO)、组织级QA、采购人员、IT支持等;
3、直接非人力成本
定义:专为该项目产生的非人力代价(分项计算);
核心类别:
办公费:项目专用办公用品、通讯费、印刷费等(如项目加班餐费);
差旅费:项目相关交通、住宿、差旅补贴;
培训费:项目专属培训(如为开发学新框架的培训费);
业务费:招待费、评审费、验收费;
采购费:项目专用设备(如测试服务器)、专用软件(如项目专属测试工具)、专利费。
4、间接非人力成本
定义:服务于整体开发、非项目专属的非人力代价(按工作量比例分摊);
核心类别:开发场地房租、水电物业、通用办公设备折旧(如公司共用电脑)、品牌宣传费分摊等;
标准明确编制预算/报价时,需额外考虑开发方合理毛利润;若项目包含数据迁移、长期维护等服务,需单独计算这些“非开发成本”。
三、软件开发成本度量过程
(一)软件规模估算
软件规模估算的核心是明确项目范围和系统边界(区分“本项目负责的功能”与“外部系统/用户负责的功能”),根据项目类型选择IFPUG、NESMA、FiSMA、COSMIC和MKII等5种功能规模测量标准,国内目前常用的是IFPUG和NESMA标准,其在核心测算方法上逻辑基本相同,差异可查看文章:IFPUG和NESMA功能点方法对代码数据的识别规则比对及差异分析。
调整因子:考虑需求变更,用公式调整规模:S=US×CF(S=调整后规模,US=未调整规模,CF=规模变更因子),不同阶段CF取值:
预算阶段:CF=2.0(需求最模糊,预留变更空间);
招标阶段:CF=1.5;
投标阶段:CF=1.26;
计划阶段:CF=1.0(需求最明确)。
特殊情况:若项目以非功能需求为主(如高并发、高安全)或含复杂算法,可:先用功能规模测量方法算基础规模,再用GSC(通用系统特性)调整;或直接用类比法/类推法估算工作量(无需先算规模)。
(二)工作量估算
工作量单位通常为“人时”或“人月”,核心是“基于规模+调整因子”计算,分“估算准备”和“估算与调整”两步:
(1)估算准备:明确影响因素
估算准备首先分析项目风险(如需求变更风险)、识别可复用功能(复用功能可减少工作量);其次确定影响工作量的主要属性,主要包括以下两方面:
委托方需关注的因素:软件规模、应用领域(委托方组织类型、软件业务领域和软件应用类型等)、完整性级别(分为A/B/C/D四个等级,确定的方法见GB/T18492-2001中第7章)、质量要求(可靠性/易用性/性能效率/可维护性/可移植性等,要求见GB/T25000.10-2016)、工期紧迫性等;
开发方额外关注的因素:采用技术、团队能力、过程成熟度等;
(2)估算与调整:三种方法的操作原则
调整后工作量:AE=UE×A×IL×L×T
式中:
AE=调整后工作量,UE=未调整工作量;
A=应用领域调整因子(0.8-1.2),IL=完整性级别因子(A级1.6-1.8,B级1.3-1.5,C级1.1-1.2,D级1.0),L=开发语言因子(0.8-1.2),T=团队规模因子(0.8-1.2);
结果要求:用基准数据的25/50/75百分位数测算软件开发费用的上中下限值的“合理范围区间”(如25分位为乐观值,50分位为最可能值,75分位为悲观值),避免单一数值。
(三)成本估算
(1)直接人力成本估算
公式:DHC=Σ(Ei×IFi)(DHC=直接人力成本,Ei=第i类人员工作量,IFi=第i类人员直接人力成本费率(元/人月));
人力成本费率需考虑地域差异,可参考行业数据或自有数据,人月费率取值可查看下面文章:
你知道各省市的定开软件人月单价吗?
各省市系统运维的人月单价标准大盘点
各省市政务信息化安全服务人月单价标准大盘点
(2)间接人力成本/间接非人力成本/直接非人力成本估算
间接人力成本:基于组织级间接人力总成本,按项目工作量占公司总工作量比例分摊;
间接非人力成本:基于组织级间接非人力总成本,同理分摊;
直接非人力成本:按“办公费、差旅费、培训费”等类别,结合历史数据或市场报价估算。
(四)确定软件开发总成本
标准提供3种计算方式:
1、基础公式:SDC=DHC+IHC+DNC+INC(SDC=总成本,IHC=间接人力,DNC=直接非人力,INC=间接非人力);
2、人力成本费率公式:SDC=Σ(Ei×Fi)+DNC(Fi=人力成本费率=IFi×(1+DP),DP=间接成本系数,即间接成本占直接人力成本的比例);
3、规模综合单价公式(常用):SDC=P×S+DNC(P=规模综合单价(元/FP),S=软件规模(FP))。
四、典型应用场景
标准将应用场景分为5类,明确不同场景下的操作要求,覆盖项目全生命周期:
(一)预算(委托方主导)
1、目的:确定项目立项预算;
2、估算依据:项目范围、行业基准数据、同类项目数据;
3、关键操作:
需求模糊时,用基准比对法直接估工作量/成本;
上报预算时用“百分位数范围”:需求明确→50分位(中值),需求模糊/高要求→75分位(悲观值),需求清晰无约束→25分位(乐观值);
审批时需评估预算合理性(可委托第三方)。
(二)招投标(招标方+投标方)
(1)招标方操作
估算合理招标价区间(参考行业基准+毛利率);
设定评标基准价/最低/最高合理报价:最低合理报价参考区间下限;最高合理报价参考区间上限或预算;评标基准价区间中值或有效报价平均值(超范围报价得0分);
招标文件需明确“规模估算方法、评分规则”。
(2)投标方操作
依据招标文件明确范围,算功能点;
报价不得低于成本,需考虑利润、商业策略(如为获客略降利润);
投标文件需附“功能清单+对应功能点数”。
(三)项目计划(开发方主导)
1、目的:制定详细开发计划(资源、时间);
2、关键操作:
将总工作量分解到各任务(如需求分析20人天,编码50人天),用专家评审验证;
若估算与约束冲突(如工期太紧),需提调整建议(如增加人员);
里程碑或假设变化(如迭代生产率偏差大)时,重算成本并更新计划。
(四)变更管理(多方协同)
1、触发条件:需求变更(如新增功能);
2、核心要求:
先明确变更范围(委托方+开发方达成一致);
按标准估算变更成本(算新增规模→工作量→成本);
变更成本需评审确认,未达成一致则磋商。
(五)结算、决算与后评价
1、结算:开发方验收后统计实际成本;
2、决算:委托方验收后统计实际投入;
3、后评价:
委托方:对比预算与实际成本,评价预算执行;
开发方:对比计划与实际,考核项目效果;
数据入基准库,用于后续项目估算和过程改进(如分析“为什么某类项目总是超支”)。
综上,GB/T36964-2018是软件开发成本“标准化度量”的核心依据,通过明确“成本构成、度量流程、场景要求”,解决了“成本算不清、算不准、争议多”的问题,适用于所有涉及软件开发成本的利益相关方,但标准不提供基准数据(如功能点耗时率、人力成本费率),需参考行业协会、主管部门的相关政策文件或企业自有数据库,落地时需结合这些数据和项目实际场景灵活应用。