摘要:由于软件的代码行数和功能点越来越多,软件系统规模和开发成本也越来越大,导致软件成本估算越来越复杂。本文研究了如何通过功能规模测量方法估算信息系统的规模、工作量和成本,将有助于准确评估软件开发的投入和产出,能帮助企业更好的做决策。
关键词:信息系统;造价评估;规模测量方法;功能点度量
近年来,我国信息技术产业蓬勃发展,软件产业每年都以较高速度在推动着社會进步。与之不适应的是我国的软件总体水平还存在不足。这种不足表现在信息系统造价标准方面的缺失,导致这些年来如何科学评估一款软件的开发成本一直是软件项目投资管理的一大难点。在软件项目的投资管理中,经常采用经验法,靠“拍脑袋”来评估软件成本,缺乏科学权威的依据。为了解决此问题,我们需要运用信息系统造价的专业技能,为软件项目需求、设计、构建、测试、实施、运维等各个阶段提供软件费用管理的服务。同时站在行业的角度,为软件项目管理费用概算提供科学可信的依据,从而解决软件成本评估的难题。
一、适用范围及场景
在软件项目的投资管理中,甲方经常会遇到一些困扰。首先,项目在招/投标阶段,软件开发方提供的预算清单与实际价格存在偏差,由于甲方对于软件开发过程和软件开发技术不熟悉,无法确定这个报价是否正确。其次,在项目预算、立项时,甲方想对开发方的预算金额进行评估,但缺少有效的评估方法。再者,在项目在结项、决算、后评估阶段,甲方想知道开发方实际完成的系统开发工作量是否匹配合同金额。此外,在项目实施过程中,变更或者新增需求时,甲方希望酌减开发费用,而开发方则希望追加开发费用,这时矛盾产生。
为了解决这些问题,信息系统造价评估可应用于软件项目管理的全过程,包括预算、立项、招标、投标、开发、项目计划、资源配置、产品质量管理等各个环节。无论对甲方(项目方)、乙方(开发方),都适用。
应用场景也可分为三个阶段。在项目招投标阶段,按照要求进行以功能点为基础估算项目工作量,作为确定招投标价格的依据,从而避免毫无根据的报高价,或恶意报低价的情况发生。在项目预算、立项阶段,对预算金额、质量目标进行应用和评估,使预算、立项过程客观、公正。在项目结项、决算、后评估阶段,可以对结项时项目的实际规模、成本和质量进行评价,结合预算执行情况对项目做出评价。最后,在实施过程中,需要协商解决变更或新增需求时的费用问题。通过信息系统造价评估,可以避免审计风险、恶性竞标、低价中标等问题,促进软件产业的健康发展和社会发展。
二、造价评估过程
(一)评估的依据
在信息化建设过程中,软件研发、测试、运维成本评估一直是业界面临的难题。这些困难也导致了一系列问题,如软件产品质量低下,软件项目预算浪费或预算不足;项目涉及的甲乙双方无法对软件项目的合理价格达成共识等。为此国内、国际发布了多个标准和要求,对软件研发、测试、运维成本的估算和度量工作做出了明确的指引和说明。例如:国际标准GB/T 36964-2018 软件工程软件开发成本度量规范;团体标准T/CQAE 11011-2019软件工程造价评估指南;基准数据CSBMK-202110《中国软件行业基准数据》等。
(二)评估过程
信息系统造价评估过程主要包括造价评估背景调研、造价评估方案设计、造价评估实施、造价评估报告编制等过程。
造价评估背景调研通过对软件相关的调研,获取软件业务需求,调研分析同类软件产品背景情况,潜在软件产品技术实现方式、复杂度情况,相应软件开发企业技术能力、团队人员、过程成熟度等。
造价评估方案设计明确评估范围、评估方式、具体评估流程、数据采集内容和方法、成本计算具体方法等。
造价评估实施根据软件评估方案对软件评估进行实施。
造价评估报告编制是在造价评估实施完成后,评估人员收集评估过程各项数据,将评估内容、评估方法、评估过程、评估结果通过评估报告方式进行展现。
(三)数据评估模型
功能点估算法是通过对项目建设需求的分析,分解项目应包含的各项业务逻辑,根据国际通用的功能点换算系数来确定软件应具有的规模,在结合本行业本地区软件人员生产率确定软件项目建设所需工作量的一种方法。具体数据模型见公式:
SDC=(S×PDR)×SWF×RDF/174 ×F+DNC
成本=(规模×生产率)×软件因素×开发因素 ×人力成本费率+非直接人力成本
(四)规模测量方法
目前常用的规模估算模型可以分为类比模型和算法模型。类比模型是一种直觉方法,使用以往项目的经验,它是非数学形式的,主要依赖经验和判断,其代表方法有DELPHI法、 类比法等;算法模型是借助于算术方程说明影响估算的各种因素之间的关系,根据以往项目进行校准,其代表方法有功能点估算法、MARK II 功能点法等。
常用的功能点估算法有IFPUG和NESMA功能点估算法。IFPUG功能点估算法是推广比较久的功能点分析方法,对需求要求质量较高,而项目早期,需求精度达不到要求,无法使用此方法。NESMA功能点估算法与IFPUG概念统一,增加了指示功能点计数、估算功能点计数、详细功能技术方法,更加方便快捷,适用于项目各阶段进行造价评估估算。其中,NESMA提供了三种类型的功能点估算方法:指示法、估算法、详细法。
指示法一般用于项目计划,招投标阶段,因为此阶段需求文件多不完善,故而只需关注逻辑文件即可。计算公式:UFP=35×ILF+15×EIF
估算法一般用于项目开发执行阶段,此时需求文件较为完善,故需要关注逻辑文件和相应的事务处理。计算公式:
UFP=7×ILF+5×EIF+4×EI+5×EO+5×EQ
详细法主要用于事后评估阶段,此时功能需求非常详细,可关注逻辑文件、相应事务处理和复杂度。计算公式:
UFP=∑(各功能项UFP)
其中,功能点度量法的五要素(内部逻辑文件ILF、外部接口文件EIF、外部输入EI、外部输出EO、外部查询EQ),前两种属于文件,后三种属于事务处理,它们涵盖了终端用户和信息系统对象之间存在的所有可能的交互内容。
(五)调整因子
1.规模调整因子
项目建设需求会随着系统不断深入开发设计,其功能逻辑描述就更加明确,对项目规模的影响就越小,发生需求变更的概率就越小。因此项目处于的阶段要素是影响项目规模变更的重要因素。不同阶段的调整因子是根据历史经验整理归纳而得。例如:估算早期(如概算、预算阶段)为1.39;估算中期(如投标、项目计划阶段)为1.21;估算晚期(如需求分析阶段)为1.10;项目交付后及运维阶段为1.00。
2.工作量调整因子
软件因素调整因子:针对系统软件非功能性的要求也决定了系统的复杂程度,影响着软件开发成本。
业务领域调整因子中业务领域和调整因子分别有政府(0.93);信息技术、电信(1.02);金融(2.63);其他(1.00)。
应用类型调整因子中应用类型和调整因子分别有业务处理(1.0)、应用集成(1.2)、科技(1.2)、多媒体(1.3)、智能信息(1.7)、系统(1.7)、通信控制(1.9)、流程控制(2.0)。
质量要求调整因子=(分布式处理因子+性能因子+可靠性因子+多重站点因子)×0.025+1
开发语言调整因子中开发语言和调整因子分别有C及其他同级别语言/平台(1.5);JAVA、C++、C#及其他同级别语言/平台(1.0);PowerBuilder、ASP及其他同级别语言/平台(0.6)。
开发团队背景调整因子中开发团队背景和调整因子分别有为本行业(政府)开发过类似的软件(0.8);为其他行业开发过类似的软件,或为本行业(政府)开发过不同但相关的软件(1.0);没有同类软件及本行业(政府)相关软件开发背景(1.2)。
(六)基准生产率
结合软件行业经验值确定基准生产率的乐观值P25、中位数P50、悲观值P75。例如:电子政务(P25:3.49、P50:6.65、P75:11.89);金融(P25:5.72、P50:11.88、P75:16.35);电信(P25:5.08、P50:11.32、P75:18.44);制造(P25:3.97、P50:8.58、P75:17.66);能源(P25:3.55、P50:7.08、P75:18.17);交通(P25:3.34、P50:7.89、P75:14.43)。
(七)人月基准单价
参考20YY年中国软件行业基准数据(CSBMK?-20YYMM),确定所在地区软件工程师平均人月单价。如表1所示。表中人月费率代表该地区统计数据中位数(P50),费用包含软件开发的直接人力成本、间接人力成本、间接非人力成本及合理利润(含税),但不包括直接非人力成本。
三、案例分析
上海某公司统一收付平台造价评估,由于项目目前所在系统在估算中期(如投标、项目计划阶段),因此采用NESMA中的估算功能点计数法进行软件规模估算。信息系统包括收付平台系统、OA系统改造、NC系统改造、税务云系统改造、影像系统改造、SAP系统改造。如表2所示。
通过系统功能点统计清单,首先可统计各类ILF、EIF、EI、EO、EQ逻辑文件数量。再对未调整功能规模和调整后的功能规模进行计算,然后对工作量调整因子、软件开发工作量、软件开发成本等进行评估,最终得出信息系统造价评估结果。由此可得,收付平台预估工作量下限3036.63人日,中值6095.59人日,上限2854.14人日;基准报价(不包含直接非人力成本)下限为424.82万元,中值为852.77万元,上限为1264.32万元。如表3所示。
未调整功能规模UFP=(7×164+5×45+4×295 +5×168+4×94)FP=3769FP
项目处于招投标阶段,CF取值为1.21。规模变更调整因子,由于本项目的阶段为估算中期(如投标、项目计划阶段),依据《中国软件行业基准数据》(CSBMK?-202110),估算中期(如投标、项目计划阶段)取值为1.21。
调整后的功能规模S=UFP×CF=3769FP×1.21 =4560.49FP
四、结束语
信息系统造价评估对软件项目管理的全过程提供了重要的作用。本文从信息系统造价评估所适用范围及场景、评估过程、数据评估模型、规模测量方法等方面进行了详细的阐述。并在此基础上,通过案例分析了NESMA在信息系统造价评估中的具体应用,对造价评估过程中的调整因子、基准生产率、人月基准单价等因素提出了判断方式,为企业建立规范的信息系统造价评估体系提供了有力的依据。总之,合理使用信息系统造价评估这把钥匙,不仅能够正确规范软件市场行为,还能维护价格公平的竞争。
作者单位:杜春业 上海计算机软件技术开发中心
参 考 文 献
[1]俞冬梅,秦思,张海峰.IFPUG功能点分析法在激光测距软件中的建模和应用[J].标准科学,2022(05):46-50,58.
[2]林风.软件工程预决算审核中的功能规模测量NESMA方法应用[J].电子技术,2021,50(08):92-93.
[3]孔祥贤,申晨.浅谈预估功能点法在公安机关软件造价评估中的应用[J].廣东公安科技.2021,29(03):1-4.
[4]任女尔,郭芳郁,赵锋云,等.功能点法在软件造价评估中的应用[J].电脑与电信, 2020,(08):59-63.
[5]范雪梅.浅谈工程造价在资产评估中的应用[J].计算机工程,2019(12):95.
[6]程星星,黄松,惠战伟,等. IFPUG度量方法的改进及应用[J].南通大学学报:自然科学版,2016,15(4):22-27.