一,专家估算法
很简单,就是一群专家说几个数字,然后按照(a+4b+c)/6的公式计算成本。
成本=(a+4b+c)/6
a:乐观估计
b:正常估计
c:悲观估计
题目:项目经理正在进行一个图书馆信息查询系统的项目估算,他采用Delphi的专家估算法,邀请了3位专家进行估算,
第一位专家给出的估算值是:2万元、7万元、12万元
第二位专家给出的估算值是:4万元、6万元、8万元
第三位专家给出的估算值是:2万元、6万元、10万元
第一位专家的Ei=(2+4*7+12)/6=7
第二位专家的Ei=(4+4*6+8)/6=6
第三位专家的Ei=(2+4*6+10)/6=6
总Ei=(7+6+6)/6=6.33万元
二,参数模型估算法-COCOMO模型
这里只介绍基本COCOMO和中等COCOMO模型
PM=a*(Size)^b*(EM)
a:校准因子
Size:软件规模-一般是代码行
b:比例因子
EM:工作量乘数,题目会给出,直接相乘
基本模型的系数值 | ||
方式 | a | b |
有机型 | 2.4 | 1.05 |
半嵌入型 | 3.0 | 1.12 |
嵌入型 | 3.6 | 1.2 |
中等模型的系数值 | ||
方式 | a | b |
有机型 | 3.2 | 1.05 |
半嵌入型 | 3.0 | 1.12 |
嵌入型 | 2.8 | 1.2 |
题目1:某公司开发一个规模为30KLOC的银行应用项目,其功能以数据处理为主,试估算这个项目的工作量。
题目2:接题目1,随着项目的进展,可以确定其15个成本因子的情况,除了RELY,TURN,SCED因子的取值为1.15、0.87、1.08外,其余取值均为1.00,则估算项目的工作量是多少?
题目1:
因为项目主要是数据处理,可以看出是有机型项目。查表可以看出,a=2.4,b=1.05。
根据公式,PM=2.4*30^1.05=85.3人月
题目2:
引入了成本因子,看出来是中等COCOMO模型
根据公式,PM=3.2*30^1.05*(1.15*0.87*1.08)=123人月
三,功能点估算法
FP=UFC*TCF
UFC:表示未调整功能点计数
TCF:技术复杂因子计数
未调整功能点计数
计算未调整功能计数UFC时,应先计算5类功能组件的计数项
其中有内部逻辑文件、外部接口文件、外部输入、外部输出、外部查询。
先根据项目实际情况查定级表,再根据定级表查取值表,在计算总和。
外部输入定级表 | 数据元素 | ||
引用文件个数 | 1~4 | 5~15 | >15 |
0~1 | 低 | 中 | 高 |
2 | 低 | 中 | 高 |
>=3 | 中 | 高 | 高 |
外部输出、外部查询定级表 | 数据元素 | ||
引用文件个数 | 1~5 | 6~19 | >19 |
0~1 | 低 | 低 | 中 |
2~3 | 低 | 中 | 高 |
内部逻辑文件定级表 | 数据元素 | ||
引用文件个数 | 1-19 | 20~50 | >50 |
1 | 低 | 低 | 中 |
2~5 | 低 | 中 | 高 |
>5 | 中 | 高 | 高 |
级数 | EO-外部输出 | EQ-外部查询 | EI-外部输入 | ILF-内部逻辑文件 | EIF-外部逻辑文件 |
低 | 4 | 3 | 3 | 7 | 5 |
中 | 5 | 4 | 4 | 10 | 7 |
高 | 7 | 6 | 6 | 15 | 10 |
最后填写下表:
组件 | 组件复杂度 | ||
低 | 中 | 高 | |
外部输入 | 个数*3 | 个数*4 | 个数*6 |
外部输出 | 个数*4 | 个数*5 | 个数*7 |
外部查询 | 个数*3 | 个数*4 | 个数*6 |
外部逻辑文件 | 个数*7 | 个数*10 | 个数*15 |
内部逻辑文件 | 个数*5 | 个数* | 个数*10 |
总计 | a | b | c |
UFC | a+b+c |
技术复杂因子
题目会给出技术复杂因子的均值x
根据公式 TCF = 0.65 + 0.01*(14 * x)求出技术复杂因子