软件项目估算指南
初中语文课件-破解管理员密码
项目估算指南
Version 1.1
文档名称:CMMI5-项目估算指南-
<公司名称>
Page 1 of 11
项目估算指南
日期
版本号
Version 1.1
修订历史记录
修改说明
修改人
核准人
<公司名称>
Page 2 of 11
项目估算指南
Version
1.1
目录
1
2
3
4
目的 ....
..................................................
..................................................
........................ 4
范围 ................
..................................................
..................................................
............ 4
术语、缩写词.........................
..................................................
......................................... 4
估算过程 .........................................
..................................................
............................... 4
4.1
4.2
简要说明 .............................
..................................................
.......................................... 4
流程图 ..........................................
..................................................
................................. 5
4.2.1
4.2.2
4.3
4.4
自顶向下的方法 ..........................
..................................................
....................... 5
自底向上的方法 ........
..................................................
......................................... 6
估算规程 .........................................
..................................................
.............................. 6
裁剪指南 ....
..................................................
..................................................
................. 7
5 估算方法 ...............
..................................................
..................................................
....... 7
5.1
UCP估算算法.................
..................................................
................................................
7
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
5.1.6
5.1.7
估算UUCP .........................
..................................................
............................... 8
估算TCF调整因子 ....................................
..................................................
......... 8
估算EF调整因子 .....................
..................................................
.......................... 9
估算UCP .......
..................................................
..................................................
10
估算工作量 .................................
..................................................
.................... 10
估算进度 .............
..................................................
............................................
10
估算成本 ..................................
..................................................
....................... 10
6 附录 ..........
..................................................
..................................................
................ 11
6.1
6.2
生产率数据来源 ......................................
..................................................
..................... 11
进度估算数据来源 ........
..................................................
................................................
11
<公司名称>
Page 3 of 11
项目估算指南
Version
1.1
项目估算指南
1 目的
本文用于估算软件项目的规模、进度、工作量、成本,以指导项目作出合理的估算。
2
范围
本文件包括软件项目估算的各个方面,包括规模、进度、工作量、成本,并包括
其在项目的中
的分布估算。本文件适用于公司所有项目。
3 术语、缩写词
UCP
Use Case Point,用例点
4
4.1
估算过程
简要说明
准确的估算是最大可能加快开发速度的基础,没有准确的进度估算,再有效的进度计
划也无从
谈起。不切实际的估算、不正确的期望是带来项目问题的主要原因。
估算是一个不断
改进的过程,只有当详细地理解了每个功能,你才有可能准确估算出软件开发
的进度和成本。因此,能够
提前做出的决策越多,估算的精确度就越高。
准确的估算可以更好的控制项目的规模、进度、成本。工
作量和进度估算通常在提交建议书及
制定项目计划时进行,在项目实施过程中,也可能要对工作量和进度
重新估计。
对于软件规模的估算主要有三种方法:代码行,功能点,用例点。本公司现在主要使用用例
点
方法。
对于工作量的估计,主要有两种方法:
自顶向下的方法(Top-
down approach),用一个简单的方程从估计的规模求出估计的总工
作量,各阶段的工作量
可以根据它们占总工作量的百分比而得到。在需求不太明确时,规
模估计比较困难,这时估算的误差会比
较大。
自底向上的方法(Bottom-up approach),首先获得项目各部分估计的规模
,然后得到整个
项目估计的规模。在这种方法主要依据WBS来估算,首先将项目进行分解,列出主要工
作,然后估计每件工作的工作量,汇总就可以得到整个项目的工作量。
对以上两种方法比较如下:
方法类别
自顶向下
的方法
优点
可以较好的利用过程数据
库及历史数据
缺点
需求不明确时,规模不容易估算
项目情况与组织标准能力可能有
适用情况
需求比较明确(一
般在需求分析完成
之后)
<公司名称>
Page 4 of 11
项目估算指南
不需要进行工作分解
自底向上
的方法
不需要估算规模
较大差别
在WBS中可能会忽略某些重要的
任务,工作分解比较困难
对某管理性工作不容易直接估算
不容易积累经验
Version 1.1
需求不明确时(一
般在撰写建议书或
需求分析完成之
前)
当工作量
已经知道或确定以后,就可以根据历史数据,计算项目最适合的总进度,然后根据项
目的人力分配情况及
历史数据,计算出各主要进程碑的进度计划。
4.2
4.2.1
流程图
自顶向下的方法
开始
需求分解
估算产品规模
规模历史
信息
生产率历
史信息
进度历史
信息
估算表
报价表
估算工
作量
估算进度
估算成本
工作量、进度
分解
度量表
估算核准<
br>根据需要
重新估算
项目管理计划
估算跟踪
实际数据
结束
自顶向下的估算方法
<公司名称>
Page 5 of 11
项目估算指南
Version
1.1
4.2.2 自底向上的方法
开始
需求分解
工作分解
WB
S
估算工作量
估算进度
进度历史
信息
估算表
报价表
估算成本
工作量、进度
分解
度量表
估算核准
根据需要
重新估
算
项目管理计划
估算跟踪
实际数据
结束
自底向上的估算方法
4.3 估算规程
Entry Criteria
Inputs
Steps
1
2
3
4
1
2
3
1
2
RFP,客户发出招标书,投标时
项目启动时
重大需求变更时
项目范围变化时
SRS
合同及建议书
历史信息
需求分解:在
估算时,首先需要当需求细分,需求分解越清楚、
明确,估算的准确度越高。需求随着项目的进展而不断
明确。
自顶向下的方法
估算产品规模:本公司现在对产品规模采用UCP(用例点)来
计
算。估算规模可以用以下几种方法:
<公司名称>
Page 6 of 11
项目估算指南
Version
1.1
3
4
5
6
7
8
Outputs
Exit Criteria
1
2
3
4
5
1
(1)用估算算法进行估算
(2)采用Delphi法,根据历史数据,进行类比分析
自底向上的方法
将项目的工作进行分解,列出项目的工作分解结构WBS,并估
算出每件工作的工作量。
自顶向下的方法
估算工作量:根据产品规模及生产率历史数据推算出工作量,工
作量用人月(PM,
Person-Month)来衡量。
表单:UCP
估算表
自底向上的方法
将WBS中所有工作的工作量汇总后,就可以得到整个项目的工
作量。
表单:WBS
估算表
估算进度:根据工作量推算出最合适的进度。
估算成本:根据工作量及项目需要的资源,估算出成本。
具体处理方式见:
建议书和合同评审过程
表单:
报价表
工作量、进度分解:将总的工作量及进度根据历史资料中的分配
比例,分解到各阶段和活动中。
具体处理方式见:
项目度量与分析指南
。
表单:
软件项目度量表
估算核准:项目估算应写到项目管理计划中,并报开发部经理、
业务部经理核准。
具体处理方式见:
项目管理过程
。
表单:
项目管理计划
估算跟踪:项目经理应定期跟踪项目估算,将其与实际执行情况
进行比较。若产生偏差,则要采
取纠正和预防措施。必要时,要
进行重新估算,重复以下2~8步。
具体跟踪措施,见:
项目度量与分析指南
。
UCP估算表
WBS估算表
报价表
软件项目度量表
项目管理计划
估算通过核准
4.4 裁剪指南
当不需要估算成本时,估算步骤中第5步可裁剪。
5
5.1
估算方法
UCP估算算法
UCP是用例点估算模型,估算流程包括以下步骤:
1.
估算UUCP(未经过调整的UCP)
<公司名称>
Page 7 of 11
项目估算指南
2.
估算TCF调整因子
3.
4.
5.
6.
7.
估算EF调整因子
估算UCP
估算工作量
估算进度
估算成本
Version 1.1
估算时使用UCP
估算表
。
5.1.1 估算UUCP
将软件需求用Use
Cases方式表达后,利用Actor(参与者)和Use
Case(用例)的数量乘以相
应的权值来计算UUCP(未经过调整的UCP)。
对于增强型项目,只计算新增及修改用例的UUCP。
计算UUCP时,Actor(参与者)和Use Case(用例)权值定义如下:
类别
Actor
Use Case
复杂度
Simple
Average
Complex
Simple
Average
Complex
GUI
Interactive or protocal-driver interface
API low level interactions
1-3
transactionsscenarios(事务场景)
4-7
transactionsscenarios(事务场景)
>7
transactionsscenarios(事务场景)
复朵度标准 权值
1
2
3
5
10
15
5.1.2
估算TCF调整因子
估算TCF(Technical Complexity
Factor,技术复杂度因素),要考虑以下因素:
Factor
T1
T2
T3
T4
T5
T6
T7
Description
Distributed system 分布式系统
Response
objectives 响应或吞吐量绩效要求
End-user efficiency
终端用户效率(联机)
Complex internal processing
复杂的内部处理过
程
Reusable code 可重用性
Easy to install 易安装性
Easy to use
易使用性
Value(0-5)
Weight
2
2
1
1
1
0.5
0.5
Extended
Value
<公司名称>
Page 8 of 11
项目估算指南
T8
T9
T10
T11
T12
T13
Portable 可移植性
Easy to
change 易更改性
Concurrent 并发处理要求
Security features 安全要求
Provides direct
access for third parties 为第三方
提供访问接口
Special user training required
特殊的用户培训
要求
Version 1.1
2
1
1
1
1
1
Tfactor (sum of extended
values) =
Technical Complexity Factor
(TCF) = 0.60 + (0.01 *Tfactor) =
其中:
1.
2.
3.
Extended Value = Value *
Weight
Weight值已给定
Value根据各因素的影响等级来确定:
0:表明因素与项目无关
3:影响程度中等
5:表示必不可少的因素,在整个软件开发过程中都有较强的影响
5.1.3
估算EF调整因子
估算EF(Environmental
Factor,环境因素),要考虑以下因素:
Factor
T1
T2
T3
T4
T5
T6
T7
T8
Description
Familiar with UML
,熟悉UML
Application experience,开发经验
Object-oriented experience,面向对象的经验
Lead analyst capability,系统分析能力
Motivation,积极性
Stable requirements,
稳定的需求
Part-time workers, 兼职员工
Difficult programming Language,复杂的编
程语言
Value(0-5)
Weight
Extended
Value
1.5
0.5
1
0.5
1
2
-1
-1
EFactor (sum of extended values) =
Environmental Factor (EF) = 1.40 + (-0.03 *
EFactor) =
其中:
1.
2.
3.
Extended Value = Value * Weight
Weight值已给定
Value根据各因素的影响等级来确定:
0:not true for any
team members,项目组成员都不具备该因素
<公司名称>
Page 9 of 11
项目估算指南
对于积极性,表示没有积极性
对于与经验有关的因素,表示没有该主题的经验
Version 1.1
对于需求的稳定性,表示非常不稳定的需求
对于兼职员工,表示全为兼职员工
对于编程语言,表示容易掌握的编程语言
3:average,影响程度中等
5:true for all team members, 所有项目组成员都具有该因素
对于与经验有关的因素,表示专家水平
对于积极性,表示积极性高
对于需求的稳定性,表示不变的需求
对于兼职员工,表示全为全职员工
对于编程语言,表示非常难的编程语言
5.1.4 估算UCP
UCP计算公式如下:UCP=UUCP*EF*TCF
计算出的结果就是产品的规模。
5.1.5 估算工作量
根据产品规模及历史项目的生产率资料,可以计划出项目的工作量,公式如下:
Effort=Size*Productivity,effort单位为PM()。
pr
oductivity要根据组织内项目的实际历史数据来确定。根据业界经验,建议每个UCP需要20
人时,即2.5人日UCP。数据来源见附录。
5.1.6 估算进度
以下是计算进度的一种方法:
Time(工作日)=C * Effort ^ P
C为进度调整系数,一般取3.0;
P 为组织内部开发能力调整系数,一般取0.35,此
系数要根据组织内实际项目执行的数据进行
调整,以适合公司的实际能力.
数据来源见附录。
5.1.7 估算成本
成本估算主要根据项目的工作量及项目需要的其它资源来计算,并要考
虑风险等因素,具体请
参考项目管理过程。
<公司名称>
Page 10 of 11
项目估算指南
Version
1.1
6
6.1
附录
生产率数据来源
公司建议生产率为每个UCP需要20人时,即2.5人日UCP。来源依据为:
《
Estimating Software Development Effort
based on Use
》
Karner [13] proposed a
factor of 20 staff hours per use case point for a
project estimate, while
Sparks states that
field experience has shown that effort can range
from 15 to 30hours per use
case point [21].
Schneider and Winters recommend that the
environmental factors should
determine the
number of staff hours per use case point[18]. The
number of factors in F1 through
F6 that are
below 3 are counted and added to the number of
factors in F7 through F8 that are
above 3. If
the total is 2 or less, use 20staff hours per UCP;
if the total is 3 or 4, use 28 staff hours
per
UCP. If the number exceeds 4, they recommend that
changes should be made to the project
so the
number can be adjusted. Another possibility is to
increase the number of staff hours to 36
per
use case point.
《
》
This varies
from 10 hours to 40 Hours per UCP. The variation
is due to factors that have not been
taken
into account such as nature of the team, the
project, and the processes used by the
organization
6.2 进度估算数据来源
进度估算的公式为:Time(工作日)=C * Effort ^ P
其中C=3.0;
P=0.35,数据来源于:
《快速软件开发》(
Rapid
Development
)
P145
以及COCOMOII
模型。
<公司名称>
Page 11 of 11