软件项目估算、软件规模估算、工作量估算

软件项目估算步骤包含:软件规模估算、工作量估算。

一、规模估算

1.1 Wideband Delphi 技术

Wideband Delphi Technique是一种鼓励参加估算的人员之间就相关问题进行讨论的方法,用这种方法能充分发挥集体的力量,使估算的结果更切合实际。使用这样方法估算的步骤如下:
步骤 活动
1 召集人召集所有参加估算的人员,并将估算内容和估算用表格分发给大家
2 召集人召集所有参加估算的人员进行一个会议,讨论有关软件规模的问题
3 参加估算的每个人提交估算结果
4 参加估算的人员讨论估算结果差异(项目组自行定义差异阈值,一般推荐20%),对超出估算结果差异的估算内容,给出最大值和最小值的估算人员要做出解释
5 参加估算的人员根据讨论的结果,提交另一次估算
6 重复4~6直到达成关于软件规模最大程度的一致

1.2 Pert Sizing 技术(三点估算法)

这种方法共估算三个值: 软件产品预期规模的一般值、最大值和最小值。通过这三个值的计算可得到一个统计学上的期望值和一个标准偏差。
公式:PERT公式估算的预期规模是E,标准偏差是SD:

E =(a + 4b + c)/6 , SD = (c - a )/6

举例说明,假如一个新的通信程序:
a=最小可能的规模 例如:10KSLOC
b=软件产品的正常规模 例如 12KSLOC
C=软件产品的最大可能规模 例如 15KSLOC
那么根据PERT公式估算的预期规模是E,标准偏差是SD:

E =(a + 4b + c)/6
SD =(c – a)/6
既:
E =(10 + 4(12) + 15)/6 =12.167 KSLOC
SD =(15 – 10)/6 =0.833KSLOC
软件项目估算、软件规模估算、工作量估算_第1张图片

这就是说,有68%的可能规模会在11.334(12.167-0.833)和13(12.167+0.833)之间。本估算方法的前提是对规模的估算没有偏见,经验表明,估算偏低的倾向大于偏高的倾向,使用时应加以考虑。

1.3 Sizing By Analogy(类比法)

当待估算项目与已完成项目在应用、环境和复杂度方面相类似时,可以使用本估算方法。本估算法的基本步骤如下:
a) 从软件过程数据库和文档库中找到类似项目的相关估算数据和文档;
b) 列出已完成项目中可类比的功能点和和完成这些功能点的代码行数;
c) 标识待估算项目和已完成项目可类比功能点之间的差异;
d) 依据2、3步的结果进行估算, 形成对软件产品规模的估算。
很明显,这种估算的准确性依赖于已完成项目的完成程度和数据的准确程度,因此使用这种估算方法要求有一个内容丰富、准确、可靠的软件过程数据库。

1.4 可重用代码

本方法仅适用于对可重用模块的规模估算。本方法涉及三个参数,分别是新设计的百分比(%Redesign)、重新编码的百分比(%Recode)和重新测试的百分比(%Retest),使用这三个参数可以计算使用重用模块的代码规模计算公式为:
([%Redesign + %Recode + %Retest]/3) x Existing Code = Equiv SLOCs
举例说明,如果想重用一个有10000行代码的模块,其中40%需要重新设计,50%需要重新编码,60%需要重新测试,那么等价的新开发的代码量是:
([40%+50%+60%]/3)*10000 = 5000 SLOC
改善项目估算,本方法适合用于估算改善一个项目的规模,改善一个项目的规模和待改善的项目的规模相关,通过将待改善项目的规模乘以改善项目规模系数,可以估算出改善一个项目的规模,可以用如下的公式表示:
规模 = 待改善项目的规模 * 改善项目规模系数

二、工作量估算

2.1 运算法(ALGORITHMIC COST MODELS)

运算法是一种简单直观的估算方法,它根据规模估算的结果和相应的系数运算得到工作量估算:
总工程工作量 wt = psc
wt = 软件模块或产品的总工程工作量
p = 软件模块或产品的规模(SLOC)
s = 开发人员生产力系数(1/每人月的代码行)
c = 估算调整系数
运算计算出的是软件模块或产品的总工作量,该软件模块在各个阶段的阶段工作量(如需求分析阶段的工作量、设计阶段的工作量等)或管理工作量(QA、CM等活动)需要根据在该阶段中的工作量比例进行推算:
阶段工作量 wst = wt * a
wst = 阶段工作量
a = 某阶段工作量比例/某种类型活动的工作量比例
项目总工作量 = 项目工程工作量 + 项目管理工作量

2.2 专家判断法(EXPERT JUDGEMENT)

本估算方法需要使用者有类似系统的经验,结合规模估算的结果和WBS综合分析,形成对工作量的估算,可以按照下面的步骤进行:
a) 结合WBS,根据经验来估算WBS中每项功能的工作量;
b) 根据每个功能点实现难度和风险的大小,适当调整工作量的估算;
c) 按阶段合计需要的工作量,形成总的工作量的估算。

你可能感兴趣的:(GJB,5000,经验分享,项目管理)