打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于软件系统定制开发成本估算方法的研究
userphoto

2023.01.29 湖北

关注

软件系统定制开发是指根据用户的具体需求进行有针对性的软件设计和开发。软件开发成本由软件功能、劳动力成本、开发经验等主要因素决定,软件系统开发费包括从项目中标到交付验收之间的需求分析、设计、编码、测试、部署实施及相关项目管理所产生的总费用。

软件系统开发费如何进行估算,我们一般采用多种方法综合估算,包括任务估算法、功能点估算法、Delphi专家估算法、COCOMO成本估算法和人工成本估算法等。

一、任务估算法

任务估算法是指按照WBS工作分解结构,把项目可交付成果分解成较小的、更易于管理的活动过程,即:项目→任务→工作→活动。然后自底向上逐项核算每个活动开发应投入工作量,乘以人月费率,汇总计算得出软件系统开发费。计算公式:

软件系统开发费=Σ工作量×人月费率

需说明的事项:

1、工作分解结构是以可交付成果为导向,对项目要素进行的分组,它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义。

2、WBS分解应简洁有效,不宜分太多层次,根据经验一般分解为三层即可满足估算要求,如系统→模块→具体功能

3、任务估算法需依靠专家的技术经验,基于项目建设方案、建设规模、系统架构、业务功能、人员配置、实施计划、项目属性等影响软件费用的因素,对开发费用进行综合分析评估。

二、功能点估算法

软件功能点是站在业务角度对软件规模的一种度量,功能点的多少代表软件规模的大小。功能点方法最早是在1970年代由IBM提出,并陆续成为许多国家估算软件规模的国家标准,我国是在2000以后把功能点方法引入国内,2018年工信部发布基于功能点方法的软件造价标准《GB/T 36964-2018软件工程 软件开发成本度量规范》。

(一)概述

功能点是对软件功能和大小的间接度量单位,一般通过与用户交互的数目来测算软件开发工作量的大小。功能点估算法将功能点分为以下5 类:

1、EI:External Input 外部输入,外部输入是指用户维护系统的内部逻辑文件的一个处理过程。

2、EO:External Output 外部输出,外部输出是指数据在系统中做了些处理后的输出,通常是指经过查询后的结果进行计算而得到的结果。

3、EQ:External Inquiry 外部查询,外部查询是数据的检索,是输入和输出的结合,输入立即引起输出的产生。

4、ILF:Internal Logical File 内部逻辑文件,软件内部需要维护的数据,通常是数据库的表或文件。

5、EIF:External Interface File 外部接口文件,在其它系统中维护但本软件需要调用的数据。

(二)适用范围

功能点估算法适用于事务性系统,包括:新开发项目、二次开发的项目和功能增强的项目。

(三)计算公式

工作量=未调整规模的功能点×规模变更调整因子×应用类型调整因子×基准生产率/人月折算系数

1、未调整规模的功能点。未调整规模的功能点可采用预估功能点(也称快速功能点估算法)和估算功能点两种方法进行计数。具体参考《软件工程—软件开发成本度量规范》(GB/T 36964-2018)。

采用预估功能点法时,计算公式为:UFP=Σ(35×ILF+15×EIF)×复用系数

采用估算功能点法时,计算公式为:UFP=Σ(10×ILF+7×EIF+4×EI+5×EO+4×EQ)×复用系数,复用系数根据对功能复用情况分析,取值为0.3~1。

2、规模变更调整因子。规模变更调整因子是指考虑到项目早前预算时需求较模糊,未来实施时可能会有隐含需求或存在需求变更而设置的调整系数,参考《中国软件行业基准数据》,规模变更调整因子取值标准如下:

3、应用类型调整因子。应用类型调整因子是指根据不同的软件应用类型而设定的调整因子。参考《中国软件行业基准数据》《软件工程功能规模测量NESMA方法》(SJ/T 11619-2016),结合实际情况,计取应用类型调整因子如下:

4、基准生产率。基准生产率是指开发每个功能点所消耗的人时数。参考《中国软件行业基准数据》,结合实际情况,基准生产率取值标准如下:

5、人月折算系数。人月折算系数是指每人每月因软件开发耗费的小时数,按照每人每月工作22天,每天工作8小时计算,取值为176(单位:人时/人月)。

三、Delphi专家估算法

Delphi专家估算法是指把软件项目功能分解为若干个相对独立的任务,再由专家作为个体分别估计完成每个任务需要的人员配比及投入时间。Delphi专家估算法的基本步骤是:

第一步,对系统每一个功能模块所需工作量给出3个规模的估计值,分别是:

①悲观工作量(Epi):这是一个最保守的估计,可能在编程人员技术不熟练,对业务理解不够,或有其他影响其正常工作的因素存在的情况下发生。

②正常工作量(Eni):这是一个正常的程序员可能付出的工作量估计。

③乐观工作量(Esi):这种情况可能在程序员技术相当熟练,对业务相当了解,且以前可能有类似项目开发经验的情况下所需的工作量。

第二步,针对每一项功能模块,计算出其开发工作量,计算公式如下:

Ei =(Epi+4×Eni+Esi)/ 6

第三步,汇总计算得出软件系统开发全部工作量。

四、COCOMO成本估算法

COCOMO成本估算法是指基于项目源代码,通过专家对源代码的有效性分析,并从功能属性、系统属性、人员属性和项目属性方面对系统规模进行评估。计算公式如下:

工作量=软件类型(ab)×代码行×项目属性调整因子,代码行单位为千行代码的估计值。

五、人工成本估算法

人工成本估算法是指对软件开发所耗费的人力和时间进行估算,也称工作量估算法。

工作量=Σ应投入人数×投入时间

总结,每一种估算方法都不是万能的,均存在一定的局限性。估算结果的准确性与估算模型及专家经验有关,估算结果与实际或许会存在差异,但并不一定能说明哪个更准确,要理性分析看待。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
软件开发费用计算,软件开发项目评估书
常用的5种软件成本度量方法
软件项目规模及工作量估算方法解析之用例点法
软件研发造价成本计算V1.0
1-《软件研发成本度量规范》深入解读及应用案例分享02
如何对一个软件项目的成本进行评估或估算?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服