《软件项目估算指南》由会员分享,可在线阅读,更多相关《软件项目估算指南(11页珍藏版)》请在金锄头文库上搜索。
1、 Page 1 of 11 项目估算指南 Version 1.1 文档名称: CMMI5- 项目估算指南 -V1.1.doc 项目估算指南Version 1.1 Page 2 of 11 修订历史记录 日期版本号修改说明修改人核准人 项目估算指南Version 1.1 Page 3 of 11 目录 1目的 4 2范围 4 3术语、缩写词 4 4估算过程 4 4.1简要说明 . 4 4.2流程图 . 5 4.2.1自顶向下的方法. 5 4.2.2自底向上的方法. 6 4.3估算规程 . 6 4.4裁剪指南 . 7 5估算方法 7 5.1UCP 估算算法 . 7 5.1.1估算 UUCP 8 5
2、.1.2估算 TCF调整因子 . 8 5.1.3估算 EF 调整因子 . 9 5.1.4估算 UCP . 10 5.1.5估算工作量 . 10 5.1.6估算进度 . 10 5.1.7估算成本 . 10 6附录 11 6.1生产率数据来源 . 11 6.2进度估算数据来源 11 项目估算指南Version 1.1 Page 4 of 11 项目估算指南 1目的 本文用于估算软件项目的规模、进度、工作量、成本,以指导项目作出合理的估算。 2范围 本文件包括软件项目估算的各个方面,包括规模、进度、工作量、成本,并包括其在项目的中 的分布估算。本文件适用于公司所有项目。 3术语、缩写词 UCP Us
3、e Case Point,用例点 4估算过程 4.1简要说明 准确的估算是最大可能加快开发速度的基础,没有准确的进度估算,再有效的进度计划也无从 谈起。不切实际的估算、不正确的期望是带来项目问题的主要原因。 估算是一个不断改进的过程,只有当详细地理解了每个功能,你才有可能准确估算出软件开发 的进度和成本。因此,能够提前做出的决策越多,估算的精确度就越高。 准确的估算可以更好的控制项目的规模、进度、成本。工作量和进度估算通常在提交建议书及 制定项目计划时进行,在项目实施过程中,也可能要对工作量和进度重新估计。 对于软件规模的估算主要有三种方法:代码行,功能点,用例点。本公司现在主要使用用例点 方
4、法。 对于工作量的估计,主要有两种方法: 自顶向下的方法(Top-down approach) ,用一个简单的方程从估计的规模求出估计的总工 作量,各阶段的工作量可以根据它们占总工作量的百分比而得到。在需求不太明确时,规 模估计比较困难,这时估算的误差会比较大。 自底向上的方法(Bottom-up approach) ,首先获得项目各部分估计的规模,然后得到整个 项目估计的规模。在这种方法主要依据WBS 来估算,首先将项目进行分解,列出主要工 作,然后估计每件工作的工作量,汇总就可以得到整个项目的工作量。 对以上两种方法比较如下: 方法类别优点缺点适用情况 自 顶 向 下 的方法 可以较好的利
5、用过程数据 库及历史数据 需求不明确时,规模不容易估算 项目情况与组织标准能力可能有 需求 比较明确(一 般在需求分析完成 之后 ) 项目估算指南Version 1.1 Page 5 of 11 不需要进行工作分解 较大差别 自 底 向 上 的方法 不需要估算规模在 WBS 中可能会忽略某些重要的 任务,工作分解比较困难 对某管理性工作不容易直接估算 不容易积累经验 需求 不明确时(一 般在撰写建议书或 需 求 分 析 完 成 之 前) 当工作量已经知道或确定以后,就可以根据历史数据,计算项目最适合的总进度,然后根据项 目的人力分配情况及历史数据,计算出各主要进程碑的进度计划。 4.2流程图
6、4.2.1自顶向下的方法 需求分解 开始 估算产品规模 估算工作量 估算进度 估算成本 估算跟踪 结束 规模历史 信息 生产率历 史信息 估算表 报价表 工作量、进度 分解 度量表 根据需要 重新估算 实际数据 进度历史 信息 自顶向下的估算方法 估算核准 项目管理计划 项目估算指南Version 1.1 Page 6 of 11 4.2.2自底向上的方法 需求分解 开始 工作分解 估算工作量 估算进度 估算成本 估算跟踪 结束 估算表 报价表 工作量、进度 分解 度量表 根据需要 重新估算 实际数据 进度历史 信息 自底向上的估算方法 估算核准 项目管理计划 WBS 4.3估算规程 Entr
7、y Criteria 1 RFP,客户发出招标书,投标时 2 项目启动时 3 重大需求变更时 4 项目范围变化时 Inputs 1 SRS 2 合同及建议书 3 历史信息 Steps 1 需求分解:在估算时,首先需要当需求细分,需求分解越清楚、 明确,估算的准确度越高。需求随着项目的进展而不断明确。 2 自顶向下的方法 估算产品规模:本公司现在对产品规模采用UCP(用例点)来计 算。估算规模可以用以下几种方法: 项目估算指南Version 1.1 Page 7 of 11 (1)用估算算法进行估算 (2)采用 Delphi 法,根据历史数据,进行类比分析 自底向上的方法 将项目的工作进行分解,
8、列出项目的工作分解结构WBS,并估 算出每件工作的工作量。 3 自顶向下的方法 估算工作量:根据产品规模及生产率历史数据推算出工作量,工 作量用人月(PM, Person-Month )来衡量。 表单: UCP估算表 自底向上的方法 将 WBS 中所有工作的工作量汇总后,就可以得到整个项目的工 作量。 表单: WBS估算表 4 估算进度:根据工作量推算出最合适的进度。 5 估算成本:根据工作量及项目需要的资源,估算出成本。 具体处理方式见:建议书和合同评审过程 表单:报价表 6 工作量、进度分解:将总的工作量及进度根据历史资料中的分配 比例,分解到各阶段和活动中。 具体处理方式见:项目度量与分
9、析指南。 表单:软件项目度量表 7 估算核准:项目估算应写到项目管理计划中,并报开发部经理、 业务部经理核准。 具体处理方式见:项目管理过程。 表单:项目管理计划 8 估算跟踪:项目经理应定期跟踪项目估算,将其与实际执行情况 进行比较。若产生偏差,则要采取纠正和预防措施。必要时,要 进行重新估算,重复以下28 步。 具体跟踪措施,见:项目度量与分析指南。 Outputs 1 UCP 估算表 2 WBS 估算表 3 报价表 4 软件项目度量表 5 项目管理计划 Exit Criteria 1 估算通过核准 4.4裁剪指南 当不需要估算成本时,估算步骤中第5 步可裁剪。 5估算方法 5.1UCP
10、估算算法 UCP 是用例点估算模型,估算流程包括以下步骤: 1.估算 UUCP(未经过调整的UCP) 项目估算指南Version 1.1 Page 8 of 11 2.估算 TCF 调整因子 3.估算 EF 调整因子 4.估算 UCP 5.估算工作量 6.估算进度 7.估算成本 估算时使用UCP估算表。 5.1.1估算 UUCP 将软件需求用Use Cases方式表达后,利用Actor(参与者)和Use Case (用例)的数量乘以相 应的权值来计算UUCP(未经过调整的UCP) 。 对于增强型项目,只计算新增及修改用例的UUCP。 计算 UUCP 时, Actor (参与者)和Use Cas
11、e(用例)权值定义如下: 类别复杂度复朵度标准权值 Actor Simple GUI 1 Average Interactive or protocal-driver interface 2 Complex API / low level interactions 3 Use Case Simple 1-3 transactions/scenarios(事务 /场景 ) 5 Average 4-7 transactions/scenarios(事务 /场景 ) 10 Complex 7 transactions/scenarios(事务 /场景 ) 15 5.1.2估算 TCF 调整因子 估算
12、 TCF(Technical Complexity Factor ,技术复杂度因素) ,要考虑以下因素: FactorDescriptionValue(0-5)Weight Extended Value T1Distributed system 分布式系统2 T2Response objectives 响应或吞吐量绩效要求2 T3End-user efficiency 终端用户效率(联机)1 T4 Complex internal processing 复杂的内部处理过 程 1 T5Reusable code 可重用性1 T6Easy to install 易安装性0.5 T7Easy to
13、use 易使用性0.5 项目估算指南Version 1.1 Page 9 of 11 T8Portable 可移植性2 T9Easy to change 易更改性1 T10Concurrent 并发处理要求1 T11Security features 安全要求1 T12 Provides direct access for third parties 为第三方 提供访问接口 1 T13 Special user training required 特殊的用户培训 要求 1 Tfactor (sum of extended values) = Technical Complexity Facto
14、r (TCF) = 0.60 + (0.01 *Tfactor) = 其中: 1.Extended Value = Value * Weight 2.Weight 值已给定 3.Value 根据各因素的影响等级来确定: 0:表明因素与项目无关 3:影响程度中等 5:表示必不可少的因素,在整个软件开发过程中都有较强的影响 5.1.3估算 EF 调整因子 估算 EF(Environmental Factor ,环境因素 ),要考虑以下因素: FactorDescriptionValue(0-5)Weight Extended Value T1Familiar with UML ,熟悉 UML1.5
15、 T2Application experience,开发经验0.5 T3Object-oriented experience,面向对象的经验1 T4Lead analyst capability ,系统分析能力0.5 T5Motivation ,积极性1 T6Stable requirements, 稳定的需求2 T7Part-time workers , 兼职员工-1 T8 Difficult programming Language,复杂的编 程语言 -1 EFactor (sum of extended values) = Environmental Factor (EF) = 1.40
16、 + (-0.03 * EFactor) = 其中: 1.Extended Value = Value * Weight 2.Weight 值已给定 3.Value 根据各因素的影响等级来确定: 0: not true for any team members,项目组成员都不具备该因素 项目估算指南Version 1.1 Page 10 of 11 对于与经验有关的因素,表示没有该主题的经验 对于积极性,表示没有积极性 对于需求的稳定性,表示非常不稳定的需求 对于兼职员工,表示全为兼职员工 对于编程语言,表示容易掌握的编程语言 3: average,影响程度中等 5: true for all team members, 所有项目组成员都具有该因素 对于与经验有关的因素,表示专家水平 对于积极性,表示积极性高 对于需求的稳定性,表示不变的需求 对于兼职员工,表示全为全职员工 对于编程语言,表示非常难的编程语言 5.1.4估算 UCP UCP 计算公式如下