2011年西藏高考零分作文
四年级 记叙文 12783字 58人浏览 慕容云云烽火

COPOTE_SPP_GUI_EST

1/18

版权所有:湘邮科技股份有限公司

软件估算指南

文档编号:COPOTE_SPP_GUI_EST

文档信息:公司级别项目策划过程指南文件 文档名称:软件估算指南

文档类别:项目管理过程类

密 级: 机密

版本信息:1.0

建立日期:2009-9-1

创 建 人: 龚伟

审 核 者:

批 准 人:

批准日期:

保 管 人:

存放位置:配置管理库

编辑软件:Microsoft Office 2003 中文版

COPOTE_SPP_GUI_EST

2/18

版权所有:湘邮科技股份有限公司

文档修订记录

*变化状态:A ——增加,M ——修改,D ——删除

COPOTE_SPP_GUI_EST

3/18

版权所有:湘邮科技股份有限公司

目 录

1. 简介 ................................................................................................................................................... 4

1.1

目的 ....................................................................................................................................... 4 1.2

适用范围 ............................................................................................................................... 4 1.3

文档结构 ............................................................................................................................... 4 1.4

引用文件 ............................................................................................................................... 4 1.5

术语表 ................................................................................................................................... 4 1.6

参考资料 ............................................................................................................................... 4 2. 规模估计的方法 ............................................................................................................................... 4 2.1

Wideband Delphi 技术 .......................................................................................................... 5 2.2

Pert Sizing 技术 . .................................................................................................................... 8 2.3

Sizing By Analogy(类比法) ............................................................................................. 8 2.4

可重用代码 ........................................................................................................................... 9 2.5

IFPUG 方法 ........................................................................................................................... 9 2.6

快速功能点估算方法 . ......................................................................................................... 14 3. 工作量估计的方法.......................................................................................................................... 15 3.1

运算法(ALGORITHMIC COST MODELS) ................................................................. 15 3.2

专家判断法(EXPERT JUDGEMENT) .......................................................................... 15 4. 估计系数表 ..................................................................................................................................... 16

4.1

开发工具系数...................................................................................................................... 16 4.2

规模系数 ............................................................................................................................. 16 4.3

生产力系数 ......................................................................................................................... 17 4.4

成本系数 ............................................................................................................................. 17 4.5

配置管理系数...................................................................................................................... 17 4.6

质量保证系数...................................................................................................................... 18 4.7

改善项目规模系数 . ............................................................................. 错误!未定义书签。 4.8 估计策略检查表和例子 . ..................................................................................................... 18

COPOTE_SPP_GUI_EST

4/18

版权所有:湘邮科技股份有限公司 1. 简介

1. 1 目的

本文的目的是为软件估计提供指南。

1. 2 适用范围

本文档的适用范围为公司的所有软件项目。

1. 3 文档结构

无。

1. 4 引用文件

无。

1. 5 术语表

● Wideband Delphi:是一种鼓励参加估计的人员之间就相关问题进行讨论的方法。

● Pert Sizing :这种方法共估计三个值: 软件产品预期规模的一般值、最大值和最小

值。通过这三个值的计算可得到一个统计学上的期望值和一个标准偏差。

1. 6 参考资料

【1】Paulk, Mark C., et al. Capability Maturity Model for Software, Version 1.1

CMU/SEI-93-TR-24

【2】Paulk, Mark C., et al. Key Practices of the Capability Maturity Model,Version 1.1,

CMU/SEI-93-TR-25

2. 规模估计的方法

下面说明一些常用的估计方法,它们是Wideband Delphi Technique,Pert Sizing Technique,Sizing By Analogy ,Reused Code 。由于估计的不准确性,因此建议用两种以上的方法进行规模估计,不要单独依靠任何一个方法。

COPOTE_SPP_GUI_EST

5/18

版权所有:湘邮科技股份有限公司 2. 1 W i d e b a n d D e l p h i 技术

Wideband Delphi Technique是一种鼓励参加估计的人员之间就相关问题进行讨论的方法,用这种方法能充分发挥集体的力量,使估计的结果更切合实际,下面的表格是使用这样方法估计的步骤:

下面是估计反馈表的格式:

COPOTE_SPP_GUI_EST

6/18

版权所有:湘邮科技股份有限公司 范围:

下次:

模块A: SLOC

模块B:模块C: SLOC

模块D: SLOC

模块E:模块F:模块G: SLOC

X – 估计

X* – 你的估计

X!– 估计的中间值

请给出你下一轮的估计(合计):备注:

在这里写下需要特殊说明的问题

20 40 60 80 20 40 60 80 20 40 60 80 20 40 60 80 20 40 60 80 20 40 60 80 20 40 60 80

举例说明如下:

假如由一个由a 、b 两个模块组成的项目:例子项目,甲是召集人,乙和丙是参加估计的人。

首先,甲将项目相关的资料和估计表格发给乙和丙, 并召开一个甲乙丙参加的会议,分析项目的问题。

乙估计a 模块用2000行代码,b 模块用4000行代码,丙估计a 模块用6000行代码,b 模块用8000行代码,然后乙和丙分别匿名的填写估计表格,甲收集表格后,进行汇总,然后将下面

COPOTE_SPP_GUI_EST

7/18

版权所有:湘邮科技股份有限公司 表格反馈给乙和丙。

项目:例子项目

日期:2001/6/1

这是第 1 轮的估计范围:范围:下次:

模块A :模块B :模块C :模块D :模块E :模块F :模块G :X – 估计

X* – 你的估计

X!– 估计的中间值

请给出你下一轮的估计(合计):备注:

在这里写下需要特殊说明的问题

0 20 40 60 80 1000 20 40 60 80 1000 20 40 60 80 1000 20 40 60 80 1000 20 40 60 80 1000 2k(x) 4k(x!) 6k(x) 10k

0 4k(x) 6k(x!) 8k(x) 10k

0 2k 4k 6k 8k 10k0 2k 4k 6k 8k 10k

甲召集乙和丙举行一个会议讨论估计的差异,然后分别重新估计,填写估计表,甲收集后重新汇总,形成新的反馈表交给大家,重复这个过程,直到得出的偏差在可接受范围内(例如第一阶段偏差为40%,第二阶段偏差为20%,第三阶段偏差为10%即为可接受的规模估

COPOTE_SPP_GUI_EST

8/18

版权所有:湘邮科技股份有限公司 计),完成对软件规模的估计。

2. 2 P e r t S i z i n g 技术

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

公式:PERT 公式估计的预期规模是E ,标准偏差是SD:

a + 4b + c c - a E = , SD =

.

6 6

举例说明,假如一个新的通信程序:

a=最小可能的规模 例如:10KSLOC

b=软件产品的正常规模 例如 12KSLOC C=软件产品的最大可能规模 例如 15KSLOC 那么根据PERT 公式估计的预期规模是E ,标准偏差是SD:

a + 4b + c c – a E = , SD =

.

6 6

既:

10 + 4(12) + 15 E = = 12.167 KSLOC

6

15 – 10 SD = = .833

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

2. 3 S i z i n g B y A n a l o g y (类比法)

当待估计项目与已完成项目在应用、环境和复杂度方面相类似时,可以使用本估计方法。 本估计法的基本步骤如下:

1. 从软件过程数据库和文档库中找到类似项目的相关估计数据和文档。

2. 列出已完成项目中可类比的功能点和和完成这些功能点的代码行数

3. 标识待估计项目和已完成项目可类比功能点之间的差异

COPOTE_SPP_GUI_EST

9/18

版权所有:湘邮科技股份有限公司 4. 依据2、3步的结果进行估计, 形成对软件产品规模的估计。

很明显,这种估计的准确性依赖于已完成项目的完成程度和数据的准确程度,因此使用这种估计方法要求有一个内容丰富、准确、可靠的软件过程数据库。

2. 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. 5 I F P U G 方法

IFPUG 方法的基本思想是将软件的功能进行不断分解,识别每个基本功能,判断其复杂度(低/中/高),乘以相应的权重,得到该功能的功能点数,计算总的功能点数。

IFPUG 方法中包括五种基本功能:

数据功能:

• ILF (Internal Logical File)

• EIF (External Interface File)

事务处理功能:

• EI (External Input)

• EO (External Output)

• EQ (External Inquiry)

方法的流程如下:

COPOTE_SPP_GUI_EST

10/18

版权所有:湘邮科技股份有限公司

(1) 确定估算类型

有三种估算类型:新开发项目功能点计算、升级项目功能点计算、应用程序功能点计算。其中,新开发项目功能点计算测量的是项目完成时,第一次交付安装的版本的功能点数,反映项目第一次开发的规模。升级项目功能点计算测量的是对现有应用程序的修改,即,新增功能+改变的功能+删除的功能。应用程序,也称基线功能点计算,测量的是已安装的应用程序,为最终用户提供的实际功能点数。

(2) 确定估算范围和应用边界

确定计算范围是计算全部的功能,还是某类特定的功能。应用边界指的是该应用程序与其它外部程序/用户域之间的边界。这是从用户角度来看的,并且是基于业务功能,而不是基于技术方面来考虑。

(3) 计算数据功能

数据功能也称文件功能,指的是为满足用户的内部和外部数据需求而提供的功能(储存数据的容器)。是从商业用户的角度进行数据建模,来观察、识别的。在一定程度上与E-R 图中的实体/关联对应。

数据功能包括ILF (内部逻辑文件)和EIF (外部接口文件)两种。

▪ ILF :用户可识别的一组逻辑上相关的数据组或控制信息,并且在应用程序内部

维护。

▪ EIF :用户可识别的一组逻辑上相关的数据组或控制信息,它们被应用程序所使

用,但是是在其它应用程序内部维护的。

▪ 数据功能的复杂度(低/中/高),由该功能相关的DET 和RET 的数量(范围)

决定。

▪ DET (Data Element Type ) :用户可以识别的唯一的、不可重复的字段或属

性。

▪ RET (Record Element Type) :数据功能中用户可识别的数据元素子集

数据功能复杂度矩阵:

COPOTE_SPP_GUI_EST

11/18

版权所有:湘邮科技股份有限公司

对ILF :

对EIF :

计数DET 时的一些常用规则

▪ 同一个数据功能(ILF/EIF),在不同的应用程序中,具有不同的DET

▪ 数据功能间的关联(相当于foreign key)计为一个DET

▪ 由于技术实现的原因,在一个数据功能中出现多次的DET ,只计为一个DET

▪ 格式相同、具有相似意义的多个字段

(4) 计算事务处理功能

事务处理功能,指应用程序所提供给用户的用来处理数据的功能。它们都必须是一个基本处理,即,对用户有意义的、最小的活动单位,并且使程序的业务逻辑处于一致性状态。包括EI (外部输入)、EO (外部输出)和EQ (外部查询)三类。

▪ EI :应用程序处理来自本应用程序边界之外的数据或控制信息。

▪ EI 的基本目的是为了维护一个ILF 或者改变系统的行为。EI 的一些例子:新增

用户、修改用户信息、删除用户、将用户分配到某个项目。

▪ EO :应用程序向边界之外提供数据或控制信息。

▪ EO 的基本目的是向用户提供经过处理逻辑加工的信息(除了检索之外)。至少

包含一个数学公式或计算、或生成衍生数据、或改变ILF 或系统行为。EO 的一

些例子:报表、多数柱状图/饼图、多数“打开文件”操作。

▪ EQ :是一个向应用程序边界之外发送数据或控制信息查询的基本处理。

COPOTE_SPP_GUI_EST

12/18

版权所有:湘邮科技股份有限公司 ▪ EQ 的基本目的是向用户展示提取的数据或者控制信息。逻辑处理里面不包含数

学公式、计算、衍生数据的生成,不维护ILF ,不引起系统行为的改变。EQ 的一些例子:查询、浏览、不包含计算的简单报表、下拉列表(注意)、登录屏幕、帮助。

事务处理功能的复杂度(低/中/高),由该功能相关的DET 和FTR 的数量(范围)决定。

▪ DET (Data Element Type ) :用户可以识别的唯一的、不可重复的字段或属

性。

▪ FTR (File Type Referenced) :该事务处理功能所涉及到的文件功能(读取、维

护ILF 或EIF 。

事务处理功能的复杂度矩阵:

EI 类型:

EO/EQ类型:

事务处理功能的功能点数:

EI/EQ类型:

EO 类型:

COPOTE_SPP_GUI_EST

13/18

版权所有:湘邮科技股份有限公司

计数DET 时的一些常用规则

▪ 进入/退出边界的每个用户可识别的字段计为一个DET

▪ (EO/EQ)既进入又退出应用程序边界的字段,只计一个DET

▪ 未穿越系统边界的字段不是DET

▪ 引发一个基本处理的多种方法,只计为一个DET

▪ 出错信息,确认操作成功等信息只计一个DET

▪ (EO/EQ)报表标题,栏标题等不是DET

▪ (EO/EQ)页码信息和系统标签(例如时间标记)不是DET

▪ 从下拉列表中选择一项,或选择某个单选按钮

▪ 饼图、柱状图常包含2个DET

(5) 确定调整因子

UFP 只考虑到了每个具体的功能及其复杂程度,而没有考虑项目的总体特征。根据14个系统基本特征GSC (General System Characteristic),计算出调整因子VAF (Value Adjustment Factor ),来对UFP 加以调整。

注意:调整因子争议较多,功能点分析国际标准(ISO-14143)已删除了这一步。因此这一步是可选的。通常的做法:放到成本估算(COCOMO II 模型……)中去考虑。FPA 只反映功能需求(Functional Size),不反映质量需求或技术需求!

14个GSC :

▪ 1. 数据通讯(Data Communications)

▪ 2. 分布式数据处理(Distributed Data Processing)

▪ 3. 性能(Performance )

▪ 4. 使用强度高的配置(Heavily Used Configuration)

▪ 5. 处理速度(Transaction Rate)

▪ 6. 在线数据输入(Online Data Entry)

▪ 7. 最终用户的效率(End-User Efficiency)

▪ 8. 在线更新(Online Update)

▪ 9. 复杂的处理(Complex Processing)

COPOTE_SPP_GUI_EST

14/18

版权所有:湘邮科技股份有限公司 ▪ 10. 可重用性(Reusability )

▪ 11. 安装的简易性 (Installation Ease)

▪ 12. 运行的简易性(Operational Ease)

▪ 13. 多场地(Multiple Sites)

▪ 14. 允许变更(Facilitate Change)

对每个GSC 进行打分,分数取值范围为0(无关)~5(强关联)。

(6) 决定未调整功能点数

将全部的数据功能、事务处理功能的功能点数相加,得到未调整的功能点数UFP (Unadjusted Function Points)。

(7) 计算调整后的功能点数

用V AF 对UFP 进行调整,最终得到调整后的功能点数AFP (Adjusted Function Points)。

▪ 对新开发项目的计算:AFP =(UFP+CFP) ×V AF

▪ 对升级项目的计算:AFP =[(ADD+CHGA +CFP) ×VAFA]+(DEL×V AFB)

▪ 典型情况下(升级后V AF 不发生变化)简化为AFP =(ADD+CHGA +DEL +CFP) ×

V AF

▪ 对应用程序功能点数的计算:

初始:AFP =ADD ×V AF

升级后:AFP =[(UFPB+ADD +CHGA) -(CHGB+DEL)]×V AFA

2. 6 快速功能点估算方法

常见的情况:早期需求不完整

几种快速估算方法:

1.将全部事务处理功能的复杂度默认为“中”,数据功能的复杂度默认为“低”

2.UFP=35*ILF数+15*EIF数 (UFP、ILF 和EIF 相关知识参考2.5章节)

3.根据历史数据

14

10.65[/100]i VAF Ci ==+∑

COPOTE_SPP_GUI_EST

15/18

版权所有:湘邮科技股份有限公司 3. 工作量估计的方法

关于工作量估计的方法有很多,除了Delphi 方法外,下面简单介绍其中的几种方法,但使用时并不限于这几种方法,估计时可以使用其他的方法:

3. 1 运算法(A L G O R I T H M I C C O S T M O D E L S )

运算法是一种简单直观的估计方法,它根据规模估计的结果和相应的系数运算得到工作量估计:

工作量 = p*s*(1+e)

p = 软件产品的规模(SLOC )

s = 生产力系数(1/每人月的代码行)

e = 管理工作量系数

3. 2 专家判断法(E X P E R T J U D G E M E N T )

本估计方法需要使用者有类似系统的经验,结合规模估计的结果和WBS 综合分析,形成对工作量的估计,可以按照下面的步骤进行:

1. 结合WBS ,根据经验和规模来估计WBS 中每项原子功能的工作量。

2. 根据每个功能点实现难度和风险的大小,适当调整工作量的估计

3. 按阶段合计需要的工作量,形成总的工作量的估计

COPOTE_SPP_GUI_EST

16/18

版权所有:湘邮科技股份有限公司

4. 估计系数表

估计过程中需要使用很多的系数,这些系数在各个项目中是不同的,每个项目都可以根据实际情况确定自己的系数,可以参考其它项目或由项目内经验丰富的人来确定,随着软件过程数据库的丰富,不断的进行修正。

当系数表中没有合适的系数时,可以使用最相近的系数或由项目内经验丰富的人来确定,增加到系数表中。

所有系数的修改和增加,都应报告给SEPG ,经高级管理者批准后更新到系数表中才可以使用。

4. 1 开发工具系数

在进行软件工作量的估计时,由于选用的开发工具不同,开发的效率会有差异,影响工

作量的估计。估计时,必需跟据使用的开发工具,选择合适的系数对估计结果进行修正,下面是常用工具的系数。

4. 2 规模系数

软件规模的大小对工作量估计也有影响,需要根据规模修正。规模和工作量一般情况下

并非成线性关系,系统的规模越大,规模对工作量估计的影响就越小。使用时可以根据软件规模,选择合适的参数进行修正,当规模不在下表中的时候,请选择比估计规模小的最近似的系数,规模小于系数表中最小的规模时使用最小的规模。

下面是规模系数表:

COPOTE_SPP_GUI_EST

17/18

版权所有:湘邮科技股份有限公司

4. 3 生产力系数

生产力系数是组织生产力水平的体现,是用平均每人月的代码行来计算的。这个平均每人月的代码行不仅仅指编码阶段,它包括从分析、设计、编码、测试的整个过程的平均,这个系数因为项目类型的不同有所不同,使用时可以从下面的表8中选择。

4. 4 成本系数

成本系数反应的是组织内人力资源的平均成本,单位是 元/人月,项目的工作量乘以成本系数,就是整个项目的开发成本。

4. 5 项目管理系数

管理系数是用于根据规模计算管理所用工作量的系数,用软件开发工作量乘以项目管理系数可以计算出项目管理的工作量。项目管理系数已包括了配置管理系数和质量保证系数。

4. 6 配置管理系数

配置管理系数是用于根据规模计算配置管理所用的工作量的系数,用软件开发工作量乘以配置管理系数可以计算出配置管理的工作量。

COPOTE_SPP_GUI_EST

18/18

版权所有:湘邮科技股份有限公司

4. 7 质量保证系数

质量保证系数是用于根据规模计算质量保证的工作量的系数,用软件开发工作量乘以质

量保证系数可以计算出质量保证活动所需要的工作量。

4. 8 估计策略检查表和例子

以下两个项目的情况举例说明估计策略:

在第一情况中,客户需求已被很好的定义,不会有很多改变。而且开发人员在应用领域有足够的经验。工程处理和以前做的项目相近,企业有可靠的历史数据。在这种情况下,一个可行的策略应包括:

▪ 在项目定义时为整个项目做高级别的估计; ▪ 在每一个阶段开始前进行详细的阶段估计;

▪ 在每个项目结束后,在进行详细的阶段计划时,更新高级别估计。

▪ 在第二种情况,客户需求没有被很好的定义,或没有被开发人员审阅。企业对这个应用

领域或将使用的技术没有经验,由于在开始时对项目了解的很少,合理的测路额应包括:

▪ 开始时,只估计需求定义阶段;

▪ 完成了需求定义阶段后,准备设计阶段的详细估计和项目的其余部分的粗略估计; ▪ 在每一个阶段开始时进行详细阶段估计,如有必要,对余下的阶段修改高级别估计。