文章目录
一、前文
上篇博文《软件系统开发费用的估算——功能点方法》发出去之后,就有博友私信我说,看的还不是很明白,有没有更加直观的示例。
那么今天他来了!
首先需要说明的是,实际应用中会有一个《功能点报审模板.xlsx》。模板中:
二、项目特征
本次应用实例,用一个考勤打卡项目作为示例。
其项目特征如下:
2.1 规模计数时机
规模计数时机
即 规模变更调整因子
规模变更调整因子为什么跟项目时期(早期/中期/完成)挂钩?
那是因为考虑到项目时期越早,需求越模糊,不管是项目经理还是产品经理都无法保证当前写的功能点不会有遗漏和错误。
随着项目的进行,功能点会根据实际情况进行增删改。
所以在项目早期和中期的时候,调整因子>1,给项目功能点调整留一部分buffer。
而如果到了项目完成的时候,功能点已经完全清晰明了,那么那时的调整因子是1.0。
规模时机 | 调整因子 |
---|---|
项目早期 | 1.39 |
项目中期 | 1.22 |
项目完成 | 1.00 |
2.2 应用类型
不同类型的项目,给的生产率
并不相同。
电子政务类系统相对简单,同样数量的功能点完成最快,所以生产率
最低。
大数据类项目最为复杂,可能包含仿真、建模、人工智能等耗时的工作,所以生产率
最高。
应用类型 | 描述 | 生产率 |
---|---|---|
电子政务类系统 | 如无特殊说明的项目 | 6.32 |
非电子政务类系统 | 7.10 | |
大数据类项目 | 12.37 |
2.3 质量特性
就算都是同一种类型的系统,也有不同的质量要求。
- 比如
健康码
这种,对性能和可靠性要求就特别高。 - 比如
考勤打卡
系统,就相对低很多。
那么两者系统的调整因子是有差异的。体现在如下四个方面。
质量特性的整体公式是
= 1 + 0.025 ∗ ( 分 布 式 处 理 调 整 因 子 + 性 能 调 整 因 子 + 可 靠 性 调 整 因 子 + 多 重 站 点 调 整 因 子 ) =1+0.025*(分布式处理调整因子+性能调整因子+可靠性调整因子+多重站点调整因子) =1+0.025∗(分布式处理调整因子+性能调整因子+可靠性调整因子+多重站点调整因子)
分布式处理
判断标准 | 调整因子 |
---|---|
没有明示对分布式处理的需求事项 | -1 |
通过网络进行客户端/服务器及网络基础应用分布处理和传输 | 0 |
通过特别的设计保证在多个服务器及处理器上同时相互执行应用中的处理功能 | 1 |
性能
判断标准 | 调整因子 |
---|---|
没有明示对性能的特别需求事项或仅需提供基本性能 | -1 |
应答时间或处理率对高峰时间或所有业务时间来说都很重要,存在对连动系统结束处理时间的限制 | 0 |
为满足性能需求事项,要求设计阶段开始进行性能分析,或在设计、开发阶段使用分析工具 | 1 |
可靠性
判断标准 | 调整因子 |
---|---|
没有明示对分布式处理的需求事项 | -1 |
通过网络进行客户端/服务器及网络基础应用分布处理和传输 | 0 |
通过特别的设计保证在多个服务器及处理器上同时相互执行应用中的处理功能 | 1 |
多重站点
判断标准 | 调整因子 |
---|---|
在相同的硬件或软件环境下运行 | -1 |
在设计阶段需要考虑不同站点的相似硬件或软件环境下运行需求 | 0 |
在设计阶段需要考虑不同站点的不同硬件或软件环境下运行需求 | 1 |
2.4 开发语言
不同的开发语言,调整因子也不一样,且相差还很多。
有同学就会说,这不是语言歧视吗。
其实并不是,因为这也是基于开发语言特性来说。
同一个功能点,C语言来实现就相对更加麻烦,更加耗时。
用Java/C++/C# 语言来实现就比较简单,更加省事。
开发语言 | 调整因子 |
---|---|
C及其他同级别语言/平台 | 1.5 |
JAVA、C++、C#及其他同级别语言/平台 | 1.0 |
PowerBuilder、ASP及其他同级别语言/平台 | 0.6 |
2.5 开发团队背景
开发团队背景 | 调整因子 |
---|---|
为本行业(政府)开发过类似的软件 | 0.8 |
为其他行业开发过类似的软件,或为本行业(政府)开发过不同但相关的软件 | 1.0 |
没有同类软件及本行业(政府)相关软件开发背景 | 0.6 |
三、规模估算
本次应用实例,用一个考勤打卡项目作为示例。
简单写了下功能点。并不是真实示例,这是一个学习演示示例。
功能点计数项和类别的说明请查看上一篇博文:软件系统开发费用的估算——功能点方法
重用程度是指两个功能点之间的重用度。
比如本系统中的App个人模块
->用户信息查询
和后台权限管理模块
->查询用户详情
,两者一个是后台实现,一个是App实现,不尽相同,但是走得是一个接口,所以重用程度中
。
重用程度越高,功能计数项US会越低,则最终的开发费用估算也越低。
重用程度调整系数 | 调整因子 |
---|---|
高 | 0.33 |
中 | 0.67 |
低 | 1.00 |
修改类型是指,你这个功能是新增功能,还是修改功能,还是删除功能。
我们的示例项目是项目早期,项目还没开始时候,所以所有功能都是新增。
修改类型调整系数 | 调整因子 |
---|---|
新增 | 1.0 |
修改 | 0.80 |
删除 | 0.20 |
四、开发费用估算
整体开发费用估算表如下,最终本示例项目的开发费用基准报价是5.96万元。
4.1 调整后规模(单位:功能点)
- 估算出来的功能点 :
72.67
- 规模计数时机,项目早期:
1.39
- 调整后规模(单位:功能点): 72.67 ∗ 1.39 = 101.01 72.67*1.39=101.01 72.67∗1.39=101.01
4.2 未调整工作量(单位:人天)
- 调整后规模(单位:功能点): 72.67 ∗ 1.39 = 101.01 72.67*1.39=101.01 72.67∗1.39=101.01
- 基准生产率(单位:人时/功能点),非电子政务类系统: 7.10 7.10 7.10
- 未调整工作量(单位:人天): 101.01 ∗ 7.10 8 = 89.64 \frac{101.01*7.10}{8}=89.64 8101.01∗7.10=89.64
4.3 调整后工作量(单位:人天)
- 未调整工作量(单位:人天): 89.64 89.64 89.64
- 调整因子: 0.98 ∗ 1.00 ∗ 1.00 = 0.98 0.98*1.00*1.00=0.98 0.98∗1.00∗1.00=0.98
- 质量特性: 1 + 0.025 ∗ ( − 1 + 0 + 0 + 0 ) = 0.98 1+0.025*(-1+0+0+0)=0.98 1+0.025∗(−1+0+0+0)=0.98
- 开发语言: 1.00 1.00 1.00
- 开发团队背景: 1.00 1.00 1.00
- 调整后工作量(单位:人天): 89.64 ∗ 0.98 = 87.40 89.64*0.98=87.40 89.64∗0.98=87.40
4.4 基准报价(单位:万元)
- 调整后工作量(单位:人天): 87.40 87.40 87.40
- 人月基准单价(单位:万元/人天): 1.5 / 22 = 0.0682 1.5/22=0.0682 1.5/22=0.0682
- 基准报价(单位:万元): 87.40 ∗ 0.0682 = 5.96 87.40*0.0682=5.96 87.40∗0.0682=5.96
觉得好,就一键三连呗(点赞+收藏+关注)