摘要:长期以来,如何度量软件研发的成本一直是软件行业的难题,尤其是在预算、招投标、项目计划等活动中因为缺乏科学、统一的软件研发成本度量标准,较大程度上导致了做项目预算时无据可依、在竞标是出现恶性竞标、低价竞标的现象,在项目实施中出现费用超出预算的情况,本文结合国内外成熟的项目管理经验,介绍了软件成本度量中常用的几种方法以及评估流程,具有良好的应用前景。
关键字:软件开发 成本度量 方法
一、背景
在物联网、云计算、大数据等理念及技术的发展和推动下,软件服务成为信息消费中发展最快、最具活力的领域之一,我们正在进入一个“软件定义”的时代。近年来,随着两化融合管理体系的持续深入开展,系统建设需求日益增多,与传统工程类项目不同的是,软件是一种知识密集型产品,其成本估算和度量有其特殊性,主要体现在:1)在软件项目初期,我们很难了解到项目的全部需求,但由于软件的智力型特点,即使了解了所有的功能需求,估算和度量其规模也会有很大的偏差,著名软件工程经济学教授Barry Boehm[1]的相关研究表明,项目前期的估算,往往会产生3-4倍的偏差 ;2)软件成本估算和度量缺少统一的规范标准,多数企业项目成本的估算依然是凭借主观经验,导致项目费用下达时无据可依,同时针对建设单位提出的报价无法进行有效的衡量,在费用谈判上处于不利地位,给企业成本管控带来极大挑战。
二、几种常见的软件评估方法
1.软件规模估算简介
在软件研发成本度量(包括估算与测量)方面,对于软件规模本身的评价是首要任务。结合国内外软件行业实践,目前评价软件规模的方法有两种:基于业务视角和基于开发视角[2]。
基于开发视角的软件规模评估方法,优点是操作简单、容易实施,有利于项目开发团队内部沟通,在实际项目中有着普遍应用,但由于技术性较强的特点,其内容很难被用户所理解,使得开发团队和用户之间容易产生分歧。如果要在业务部门与开发部门、甲方与乙方之间约定软件开发的工期或费用等关键项目目标,则需要从业务视角出发,对软件项目进行标准、一致的的估算与评价。目前,行业常用的软件规模度量方法有功能点、对象点、用例点、故事点、代码行等五种方法,每个方法各有特点,按照方法有效性以及应用难度的角度进行对比,其结果如表2-1所示。
.png)
2.五种功能点度量方法的发展简述
功能点方法最初由IBM的工程师Allan J. Albrecht在1979年提出,经过几十年的实践与发展,在Allan功能点模型基础之上,逐步演化为ISO/IEC 14143“信息技术 软件度量 功能规模度量”系列标准及NESMA、IFPUG、COSMIC、Mark II、FiSMA五个具体的操作方法标准。
(1)NESMA:适用于预估功能点、估算功能点和详细功能点,同样适用于早期应用系统规模估算,目前已被越来越多的组织和用户接受。
(2)IFPUG:1984年正式发布了第一个功能点使用指南,1986年成立IFPUG组织,2003年被ISO组织接纳成为国际标准。
(3)COSMIC:前身来源于1997年所提出的FFP(Full Function Point,全面功能点)功能点标准,后来FFP组织又与COSMIC组织共同合作于1999年提出了COSMIC功能点标准,该标准历经修订,该标准也于2003年被ISO组织接纳成为国际标准。
(4)MkⅡ:Symnos先生在为毕马威咨询公司工作期间提出,在该操作方法的基础之上形成了MarkII功能点标准,该标准提出后被英国政府所采纳,目前该标准由英国软件行业协会维护。2001年被ISO组织接纳成为国际标准。
(5)FiSMA: FISMA功能点标准突出了“服务”概念,不再强调“功能”概念。另外,FISMA将软件的典型功能区分为28种服务,从而使得服务类型的划分更为细致,但同时也增加了操作方面的不便。三、软件研发成本评估流程
软件研发成本估算过程通常分为估算规模、估算工作量、估算工期和估算成本四个过程[3],其一般流程如图3-1所示。
.png)
图3-1 软件研发成本估算基本流程
通常情况下,软件成本估算的第一步就是要进行规模估算,这是后续软件项目的工作量、成本和进度的主要依据;其次,开展工作量评估,该阶段可以采用方程法、类比法和类推法三种方法。第三步评估算工期,该过程同样可以采用类比、类推、方程三种方法,工期估算的结果通常为一个范围而不是确定的值。最后就是估算成本,通常会对估算的结果进行交叉验证,如果不同的方法评估的结果差异不大(通常误差在20%以内),说明的估算结果是可用的,当然也可以对不同的方法的估算结果加权取均值,从而获得最终的结果。
四、总结
以用户视角出发、功能点分析为主的软件项目评估方法是对软件项目的功能点规模、工作量、工期、成本进行估算的一项技术,有效解决以往系统自主开发能力不足、开发成本受制于人的难题。该方法适用于需求管理、架构管理、系统开发等不同阶段,为项目管理人员提供了客观的、准确的评估数据,为领导的决策判断提供了全面的、科学的依据和支撑,具有良好的经济效益和社会效益。
参考文献
[1]许占庆. 论现代信息技术发展对软件开发工程造价的影响[J].工业B,2015,(11):132-133.
[2]王雪纯,周小翠,吴娟,潘杨. 软件开发项目工作量核算研究[J].信息通信,2019,(6):271-272.
[3]王海青.软件研发成本度量规范释义[M].北京:机械工业出版社,2017:13-14.