项目估算方法
项目估算方法 -- 估算是基于经验和历史数据的工作,适当增加余量
1. 常用词汇
1) PDP,项目定义过程,project define progress/program
2) SS,范围说明书,scope statement
3) SOW,工作说明书,statement of work
4) WBS,工作分解结构图,work breakdown structure:项目阶段、阶段产出、开始结束标准、里程碑节点,目的是为了分解任务,对项目进行准确估算
项目分解成任务,任务分解为工作,工作分解为日常活动,日常活动产出交付成果(工作包 workpackage,80H原则;工作细目,workitem),所有工作都要落实到具体的人、执行时间、投入成本。
5) 自项向下(宏观模型,按阶段和组成进行估算,系统性强但粒度粗,不易控制执行细节) 和 自底向上(微观模型,从项目组成组件、工作着手,对项目可能的工作进行假设评估,工作详尽但工作间联系会缺少整体考虑,不易控制过程),项目估算方法。
2. 估算内容
- 规模
- 工作量 = 规模/生产率
- 进度/工期 = 工作量/资源
3. 估算方法
1)类比估算
基于历史经验/类似案例进行评估。需要有项目积累,适合于同一行业或领域的项目。
2)Delphi/专家估算
项目领域专家或具有项目应用环境知识/经验的人员进行评估。依靠个人主观看法/经验,通过多次评审、讨论最终达成一致。
3)PERT三点估算(Program Evaluation an Review Technique)
估算结果 = (乐观估计 + 悲观估计 + 4*最可能估计)/ 6 +- (悲观估计 - 乐观估计)/6
4)FP估算 -- function point,功能点估算,规模估算 -> 工作量
基本原则 | 从用户角度识别项目范围和边界,进行评估;即对用户有意义的FP才是真正的FP -- 做客户要求做的 |
FP估算标准 | 国际发布5项标准:IFPUG方法、NESMA 方法、COSMIC方法、FISMA方法、MARK II方法。 |
IFPUG方法(International Function Point Users Group) | |
基本步骤 | 1)识别功能点的类型 2)识别待估算应用程序的边界和范围 3)计算数据类型功能点(不可见,数据/业务流)所提供的未调整的功能点数量 4)计算人机交互功能点(可见,界面可操作)所提供的未调整的功能点数量 5)确定调整因子 6)计算调整后的功能点数量 |
基本公式 | AFP(调整后功能点)= UFP (未调整功能点数目)* AF (影响因子) |
功能点类型 | 1.数据类型功能点,Data Function,对最终用户不可见的数据功能(流程),对数据库复杂度的计算 1)ILF:Internal Logical File内部逻辑/控制文件 -- 系统内部处理对象,处理内部数据 2)EIF: External Interface File外部接口文件 -- 系统外部交互对象,处理交互数据 2.人机交互事务类型功能点,Transaction Function,对最终用户可见的交互功能,对程序开发复杂度的计算 1)EI: External Input外部输入,能过增/删/改对ILF进行更改和维护 2)EO: External Output外部输出 -- 对数据处理运算操作的EQ,改变ILF 3)EQ: External Inquiry外部查询 -- 不对数据处理,不更改ILF * Elementary Process基本处理过程 从用户角度有意义的、最小的活动单位,EI EO EQ是基本处理过程的基本处理单元 |
数据类型功能点复杂度 ILF/EIF计算 | * ILF判定规则:应用程序边界内,用户进行了增/删/改/查操作的数据 * EIF判定规则:应用程序边界内查询,应用程序边界外保存的数据; * DET(Data element type)-- 数据对象属性 用户角度识别的、非重复的、有业务逻辑意义的字段,ILF维护 或 ILF/EIF的返回字段 业务逻辑对数据对象处理的料度(整体处理 1 DET,分别处理 N DET) 数据库表字段 + 业务处理对象 * RET(Record element type)-- 数据对象集处理 = 必选集合 + 可选集合 = 处理对象/信息集合 DET集合,可以理解为数据库处理的对象表集合,ILF/EIF被计算为一个RET |
交互 事务类型功能点 | * FTRS = EI读取/维护的ILF/EIF + EO/EQ读取/维护的ILF/EIF -- file type record FTR,file type record,文件类型记录 |
通俗理解 | * ILF:系统处理对象/数据; * EIF:交互外部系统/数据 -- DET + RET * EI:系统对象增/删/改; * EO:对象数据处理展示; * EQ:对像数据查询展示 -- DET + FTR DET必须为外部边界输入或维护的字段;RET/FTR是处理的记录集(单个字段或字段集合) |
复杂度 | S: simple - A: average, C - complex ****** ILF\EIF复杂度 RET/DET 1-4 5-15 >15 1 S S A |
权重 | 功能点/复杂度 S A C EI 3 4 6 EQ 3 4 6 EO 4 5 7 EIF 5 7 10 ILF 7 10 15 |
调整因子 | 影响度 无影响 影响小 有一定影响 重要 比较重要 很重要 DI 0 1 2 3 4 5 VAF(调整因子) = 0.65 + TDI*0.01 --- DI(影响度值,由系统14项基本特征评估构成) TDI(总影响程度) = SUM(DI) 1)数据通讯 2)分布式数据处理 3)性能 4)大业务量配置 5)事务处理率 6)在线数据输入 7)最终用户效率(用户界面友好程度) 8)在线更新 9)复杂处理(算法) 10)可复用性 11)易安装性 12)易操作性 13)多场地(多点运行) 14)支持变更(客户化程度) |
网络 教程 实例
| 1.数据类型功能点
2.人机交互事务类型功能点
3. 调整因子 = 0.65+19*0.01 = 0.84
4. 调整FP = (1. + 2.)*0.84 = (19 + (25 + 9 + 4))*0.84 = 57*0.84 = 47.88
|
相关文章
- 【方法3:Perl版本】删除Map中Value重复的记录,并且只保留Key最小的那条记录
- SpringWeb项目启动后,执行一个方法,并且只执行一次
- Android apk签名的两种方法
- Python生成随机数组的方法小结
- PHP格式化数字和SMARTY格式化数字的方法
- 设置Ubuntu环境变量 PATH 的方法 及配置备份
- 最新微信小程序抓包方法
- Template Method 模板方法 MD
- 如何利用市场细分方法构建更好的预测模型?
- 58. 使用工厂方法在运行时动态创建不同类型的 SAP UI5 列表行项目控件
- JSP项目报错在build path里找不到javax.servlet.http.HttpServlet的解决方法
- Atitit smp prj 项目简化方法总结 目录 第一章 俩大原则准则1 第一节 极简主义原则 + 自由主义原则1 第二章 简单化架构1 第一节 简单语言php vs java1 第二
- Atitit usrQC27模块化的规范模块化法 v4 t77 目录 1. 模块化层级(软件项目1 1.1. 子项目》命名空间package机制》类》类文件》方法函数级别》语句1 2. 常见的
- Atitit mvc框架的实现 mvc的原理demo v2 sbb.docx 目录 1. 原理流程,1 1.1. 项目启动的时候启动mvc框架扫描,建立url 方法对应表1 1.2. 执行ur
- paip.批处理清理java项目冗余jar的方法
- Python之Pypi:Pypi的简介、使用方法(如何将自己的Python项目(自定义程序代码库)发布到PyPI全流程的简介)之详细攻略
- android 多线程开发 正确关闭线程的方法
- Ubuntu部署Django项目方法详解
- Socket一些常用的方法封装
- db2 存储过程迁移方法
- Win11查看文件资源管理器选项卡的方法
- 基于OOP设计项目的基本方法
- cocos2d-x 2.2.3 创建项目的方法
- 对话框窗口过程的另外一种实现方法
- Tomcat 中如何给 web 项目配置虚拟目录的方法
- C#中4种深拷贝方法介绍
- 使用SQLPLUS的方法技巧
- 项目中封装的一些公用方法
- 改变鼠标指针样式的方法【项目优化——cursor】
- 【方法指南】如何读论文-李沐