标签:服务 c++ pad bottom 特性 还需 生产管理 ora 智能
基于 功能点 估算项目规模 ifpug
? ?
? ?
? ?
功能分为 2 大类, 5种类型
?
? ?
"在这里,文件的概念并非是传统意义的文件, 而是一组逻辑上相关联的数据的集合。 "
? ?
? ?
识别交易功能时,要 按 基本处理 elementary process 的原则进行识别
? ?
? ?
对 数据功能,进一步按 元素类型进行计数度量 ,识别出 相关数据功能的复杂程度,以便基于复杂度调整 相应功能的功能点数
? ?
对于 交易功能,进一步按 元素类型进行细化计数度量,识别出 相关交易功能的复杂程度,以便基于复杂度调整 相应功能的功能点数
? ?
? ?
在进行计数实践的时候,按照估算的时机,或者文档的完备性,可以分为 3 种估算模式
? ?
1, 预估功能点【用于项目早期】
只 用识别出 数据功能,即 ILF 和 EIF 的数量
然后 按 公式 35*ILF + 15* EIF 计算出 初始功能点个数
? ?
2, 估算功能点【用于项目中期】
识别出 数据功能,以及 交易功能, 即 ILF 和 EIF 的数量 以及 EI、EO、EQ的数量
然后 按公式 10*ILF + 7* EIF + 4*EI + 5*EO + 4*EQ 计算出 初始功能点个数
? ?
3, 详细估算功能点【用于项目完成】
识别出 数据功能 ILF,EIF,同时要 识别数据元素的规模,即 DET 和 RET, 然后基于数据元素的规模识别 相应功能的复杂度, 再根据复杂度赋予数据功能 功能点数
? ?
识别出 交易功能 EI、EO、EQ, 同时 要识别数据元素的规模,即 DET 和 FTR , 然后基于数据元素的规模识别 相应功能的复杂度, 再根据复杂度赋予交易功能 功能点数
? ?
最后,按公式 ILF功能点数 + EIF功能点数 + EI功能点数 + EO功能点数 + EQ功能点数 计算出 初始功能点个数
? ?
3 种估算模式,只是 估算过复杂程度不一样,估算结果的精确性不一样, 模式1最简易,也最不准确;模式3最精确,也更复杂。
? ?
模式 1 是 模式2 的一般化,模式2 是模式3 的一般化
? ?
? ?
在估算功能点数时,可以按 复用程度、修改类型进行 功能点数调整, 调整系数 为 复用程度系数* 修改类型系数
复用程度 | 系数 |
高 | 1/3 |
中 | 2/3 |
低 | 1 |
? ?
修改类型 | 系数 |
新增 | 1 |
修改 | 0.8 |
删除 | 0.2 |
? ?
? ?
初始功能点 确定后,需要按调整系数进行调整
估算模式 | 系数 |
预估 | 1.39 |
估算 | 1.22 |
详细估算 | 1.0 |
? ?
工作量 = 功能点数 * 基准生产率
? ?
例如, 调整之后的功能点数为 480.75 , 基准生产率为7.10 人时/功能点 , 那么 工作量 = 480.75 功能点 * 7.10 人时/ 功能点 =3,413.325 人时 【480.75*7.10=3,413.325 人时 】 = 3,413.325/8 = 426.6656 人天
? ?
基准生产率可以查行业数据,一般取中位数
? ?
按 功能点计算出 工作量后,再 根据下面的因数 进行调整
应用类型 |
质量特性 |
完整性级别 |
开发语言 |
开发团队背景 |
? ?
应用类型
应用类型 | 描述 | 调整因子 |
业务处理 | 办公自动化系统、日常管理及业务处理用软件等 | 1.0 |
应用集成 | 企业服务总线、应用集成等 | 1.2 |
科技 | 科学计算、仿真、基于复杂算法的统计分析等 | 1.2 |
多媒体 | 多媒体数据处理;地理信息系统;教育和娱乐应用等 | 1.3 |
智能信息 | 自然语言处理、人工智能、专家系统等 | 1.7 |
系统 | 操作系统、数据库系统、集成开发环境、自动化开发/设计工具等 | 1.7 |
通信控制 | 通信协议、仿真、交换机软件、全球定位系统等 | 1.9 |
流程控制 | 生产管理、仪器控制、机器人控制、实时控制、嵌入式软件等 | 2.0 |
? ?
质量特性
调整因子 | 判断标准 | 调整因子 |
分布式处理 | 没有明示对分布式处理的需求事项 | -1 |
?? | 通过网络进行客户端/服务器及网络基础应用分布处理和传输 | 0 |
?? | 通过特别的设计保证在多个服务器及处理器上同时相互执行应用中的处理功能 | 1 |
性能 | 没有明示对性能的特别需求事项或仅需提供基本性能 | -1 |
?? | 应答时间或处理率对高峰时间或所有业务时间来说都很重要,存在对连动系统结束处理时间的限制 | 0 |
?? | 为满足性能需求事项,要求设计阶段开始进行性能分析,或在设计、开发阶段使用分析工具 | 1 |
可靠性 | 没有明示对可靠性的特别需求事项或仅需提供基本的可靠性 | -1 |
?? | 发生故障时带来较多不便或经济损失 | 0 |
?? | 发生故障时造成重大经济损失或有生命危害 | 1 |
多重站点 | 在相同的硬件或软件环境下运行 | -1 |
?? | 在设计阶段需要考虑不同站点的相似硬件或软件环境下运行需求 | 0 |
?? | 在设计阶段需要考虑不同站点的不同硬件或软件环境下运行需求 | 1 |
? ?
完整性级别
完整性级别 | 调整因子 |
没有明确的完整性级别或等级为C/D | 1.0 |
完整性级别为A/B同时为达成完整性级别要求采取了特殊的设计及实现方式 | 1.1 |
完整性级别为A同时为达成完整性级别要求在软件开发全生命周期均采取了特定、明确的措施 | 1.3 |
? ?
开发语言
开发语言 | 调整因子 |
C及其他同级别语言/平台 | 1.5 |
JAVA、C++、C#及其他同级别语言/平台 | 1.0 |
PowerBuilder、ASP及其他同级别语言/平台 | 0.6 |
? ?
开发团队背景
开发团队背景 | 调整因子 |
为本行业开发过类似的软件 | 0.8 |
为其他行业开发过类似的软件,或为本行业开发过不同但相关的软件 | 1.0 |
没有同类软件及本行业相关软件开发背景 | 1.2 |
? ?
例如, 相关因子 得分如下
应用类型 | 1.00 |
质量特性 | 1.08 |
完整性级别 | 1.30 |
开发语言 | 0.60 |
开发团队背景 | 1.00 |
? ?
调整系数 为 1*1.08 * 1.3 *.6 * 1 = 0.8424
? ?
所以调整后的 工作量 = 426.6656 人天 * 0.8424 = 359.4231 人天
? ?
? ?
? ?
软件开发价格 = 开发工作量 * 开发费用/ 人月
其中:
开发工作量 = 估算工作量 * 风险系数 * 复用系数
开发费用/人月 = 工资 +【国家规定的福利 + 奖金以及奖励 + 办公成本 + 人力资源成本 + 设备/基础设施 + 税金和利润 】 * 管理系数 * 优质系数
国家规定的福利 = 工资 * 0.476
奖金以及奖励 = 工资 * 1/5
办公成本 = 工资 * 1/3
人力资源成本 = 工资 * 1/5
设备/基础设施 = 工资 * 0.15
税金和利润 = 工资 * 1/3
? ?
管理系数 取值于 1~ 1.2
优质系数 按 ISO9000 质量 或者 CMMI 认证确定,分别取值 1.05, 1.1,1.2,1.3
? ?
一般 综合下来, 按 平均月薪 * 3.23 作为开发费用/人月
? ?
人月开发费用,也可以采取 行业基准数据, 例如 2019年软件开发行业基准人月单价 2.8767 万元 /人月, 不包含 直 接非人力成本
? ?
继续 上例 359.4231 人天 换算为 人月, 为 359.4231/21.75=16.5252 人月,软件开发价格为 47.538 万 【 16.5252 * 2.8767=47.538 】
? ?
如果采用 月平均工资 * 3.23, 例如 月平均工资为 1.5W , 则软件开发价格为 80.0646 万 【 16.5252*1.5 *3.23 = 80.0646 】
? ?
? ?
? ?
注意, ifpug 方法是以 瀑布模式 为项目管理模型的,如果是采用敏捷模型,从工作量上应该要少很多。。。
? ?
? ?
? ?
? ?
对于系统集成项目
? ?
? ?
标签:服务 c++ pad bottom 特性 还需 生产管理 ora 智能
原文地址:https://www.cnblogs.com/odoouse/p/13215416.html