规模估算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目规模估算
下面所述是进行项目大小估算时使用的功能点估算方法,其实估算项目大小的方法有很多。

此方法是在项目初期,项目缺少历史参考数据和项目人员缺乏相应的行业经验时一个比较好的估算方法。

有人询问项目估算的意义
1.首先可以让项目大小有一个理性的认识,估算出的项目大小能够让整个项目团队明确项目进程中的工作重点和难点,有利于团队分工的展开
2.在估算功能点的过程中可以重新梳理项目思路,对于更细致理解项目需求有所帮助
3.在项目初期,特别是在投标的时候用来基本判断项目的工作量大小和成本估算有参考性价值
估算方法有很多,这里选其一给大家展开介绍,如果大家有兴趣,接下来的时间会再给大家介绍其他的项目估算方法。

在项目前期初步进行估算的时候,从需求出发的功能点估算往往比直接进行代码估算功能容易,而且可以使用功能点作为基点,粗略的计算出以代码行表
示的规模度量值。

功能点估算有很多不同的方法,大家可以在国际功能点用户组网站找到相应标准。

下面是步骤
I】确定系统模块五大基础部件类型(关于此点,如需了解更详细资料请参阅
/2008-09/122066 972761076.html和
/2008-09/122067 293561133.html两篇文章)
企业信息系统主要的功能是按企业的业务流程处理和数据有关的业务逻辑,所以功能点一般分为这么几块:
1.外部输入(EI):以登陆为例在登陆时输入的用户名和密码就是一个外部输入
2.外部输出(EO):程序最终供用户或其它程序设备使用的输出信息
3.外部查询(EQ):输入/输出组合,其中一个输入引出的一个即使的简单输出。

其和外部输出的区
别在于,查询直接从数据源中检索格式化好的数据,而输出需要处理,组合调配不同格式信息。

另外,内部逻辑文件与外部接口文件
4.ILF内部逻辑文件
内部逻辑文件是指一组以用户角度识别的,在应用程序边界内且被维护的逻辑相关数据或控制信息。

ILF 的主要目的是通过应用程序的一个或多个基本处理过程来维护数据。

(也可以理解成一个标准化的配置文件XML和此配置文件相关实现方法和类)
5.EIF外部接口文件
外部接口文件是指一组在应用程序边界内被查询,但它是在其他应用程序中被维护的,以用户角度来识别的,逻辑上相关的数据。

EIF的主要目的是为边界内的应用程序提供一个或多个通过基础操作过程来引用的一组数据或信息。

(系统对外提供信息源的标准化信息载体文件(xml)和与此相关的提供外部接口或通过外部接口
实现系统内功能的类)
II】估算各类型中的功能基础元素的个数
接下来决定系统模块或功能点的复杂程度,(这里更正一下昨天在会议时给大家传递信息时的不准
确的地方,请大家注意看评估复杂度的时候的依赖条件,是由一个标准矩阵列表来决定,而计算出的结果是原始功能计数点而不是LOC,LOC由功能点和编程语言语句表转化因子表乘积实现)
1.首先是DET 数据元素类型,可以看做是实现业务的字段数
2.另外是RET 记录元素类型,可以看做是业务关键点的基础类的个数
3.FTR,是被一个事物操作读取或维护的一个ILF,或者是被一个事物操作读取的一个EIF
III】根据公式计算功能个数复杂度,确定复杂度FTR和EI,EO,EQ组合计算出EI,EO,EQ功能方向
的复杂度(表一,表二)
RET和DET组合计算ILF/EIF功能点方向的复杂度(表三)
表一:EI复杂度计算矩阵
表二:EO和EQ复杂度计算矩阵
表三:ILF/EIF复杂度的矩阵如下
IV】接下来根据复杂度和原始功能点技术值使用乘数计算功能点数(表四)
表四:计算原始功能点结果(*号后面是功能点乘数,来自行业数据)
功能点
程序特性简单一般复杂
外部输入0*3 1*4 2*6
外部输出7*4 0*5 1*7
外部查询20*3 0*4 0*6
外部文件2*5 1*7 0*10
内部文件0*7 0*10 1*15
合计98 11 34
UFC 143
V】根据调整因子调整原始功能点个数(在我们此次毕业设计项目中酌情使用,第五部分范例转自/leejoongul/archiv e/2008/08/05/2771479.aspx)
计算调整因子
功能点的调整系数是通过通用系统特性及其影响程度来评定的,对每个常规系统特性的评估由其影响程度(DI)而定,分为0-5级:0 毫无影响1 偶然影响2 适度影响3 一般影响4 重要影响5 强烈影
响然后依次对以下14个系统常规特性进行打分,并
带入以下计算公式算出功能点的调整因子。

Value Ad justment Factor=( sum of (DI) * 0.01 ) + 0.6 5
1数据通讯
数据通讯指的是应用程序直接与处理器通讯的程度。

通常我们都是通过某种通讯手段来实现在一个应用中所使用的数据或者控制信息的。

连接到本地控制器上的终端被认为是使用通讯设施,而协议指的是两个系统或者两个设备之间进行通讯时所使用的一种约定。

所有的数据通讯链接都需要某种协议。

2分布式数据处理
分布式数据处理是应用在内部组件之间传递信息的程度。

这个特性是在应用边界内体现的。

3性能
性能是吞吐量、处理时间等指标对开发的影响。

用户所提出的性能要求将直接影响到系统的设计,实施,安装和支持。

4大业务量配置
大业务量配置指的是计算机的资源对应用开发的影响程度。

大业务量的运行配置对设计有特殊要求,是必须考虑的一个系统特性。

5事务处理率
事务处理率是业务交易处理速度的要求对系统的设计,实施,安装和支持等的影响。

6在线数据输入
在线数据输入是指数据通过交互的方式输入系统程度。

系统中包括在线数据输入和控制信息功能。

7最终用户效率
最终用户效率是指对应用的人文因素以及使用的便捷方面的考虑程度。

如下功能设计是针对最终用户效率的:
页面导航
菜单
在线帮助或文档
光标自动跳转
可以滚动
在线远程打印
预定义的功能键
在线做批量提交任务
光标可以选取界面上的数据
用户使用大量反白显示、重点显示、下划线或其他的标识
在线copy用户文档
鼠标拖动功能
弹出窗体
使用最少的界面完成某种商业功能
双语言支持(如果选择了这个就算4项)
多语言支持(如果选择了这个就算6项)
8在线更新
在线更新是指内部逻辑文件ILF 被在线更新的程度。

应用系统提供在线更新内部逻辑文件的功能。

9复杂处理
复杂处理描述了逻辑处理对应用开发的影响程
度。

它包含以下要素:
敏感控制(例如特殊的审核过程)和/或程序特定的安全处理
大量的逻辑处理
大量的数学处理
因为例外处理造成的需要重新处理的情况(例如,由TP中断、数据值缺少和验证失败导致的ATM事务)
多种可能的输入/输出造成的复杂处理
10可复用性
应用系统中的应用和代码经过特殊设计、开发和支持,可以在其他应用系统中复用。

11.易安装性
易安装性指应用系统的转换和安装容易度对开发的影响程度。

系统测试阶段提供了转换和安装计划和/或转换工具。

12.易操作性
易操作性指的是应用对运行的影响程度,如有效启动、备份和恢复规程的影响。

易操作性是应用提供的一种特性,它最小化了手工操作的要求。

13.多场地
多场地指应用系统经特殊设计、开发可以在多个组织、多个地点应用的程度。

14.支持变更
支持变更指的是应用在设计上考虑支持处理逻辑和数据结构变化的程度。

可以具有如下的特性:
提供可以处理简单要求的弹性查询和报告功能,如对一个ILF进行与(或)逻辑
提供可以处理一般复杂度要求的弹性查询和报告功能,如对多于一个的ILF进行的与(或)逻辑(当作两项计算)
提供可以处理复杂要求的弹性查询和报告功能,如对一个或多个ILF进行的与(或)逻辑的组合(当作三项计算)
业务控制数据被保存到用户通过在线交互进程维护的表中,但变更只会在第二个工作日生效
业务控制数据被保存到用户通过在线交互进程维护的表中,且变更即时生效
计算调整后的功能点个数
国际的IFPUG组织将软件项目分为三类,功能点估算法适用于任何一类项目,其计算公式中的术语请详见表1。

●功能点的原始计算公式:FP Count =UFP * VAF
●新开发项目有时新开发的软件项目也需要与其他现存的软件系统进行整合,例如:一个企业新开发的MIS内部管理系统经常会与财务系统进行整合。

这个时候除了考虑本身项目的功能点个数外,还要考虑系统整合或数据迁移部分的工作量,因此其功能点计算公式如下:FP Count =(UFP+CFP)* VAF
●二次开发的项目有时新开发的软件项目是在原有基础上进行二次开发的,只是为了增加一些新的功能,因此其功能点计算公式如下:FP Count = ADD * VAF
●功能增强的项目对于功能增强的项目功能点估算比较复杂,在功能点增强前大家需要计算有哪些是新增加的功能,有哪些是被修改的功能,还有哪些是属于数据迁移或系统整合的功能。

然后计算新系统技术复杂度的调整因子“VAFA”,并在此基础上计算系统功能点的数量。

当然此类项目也会去掉一些原有功
能,那么在原有系统的技术复杂度基础上重新计算功能点的调整因子“VAFB”,再计算所去掉功能贡献的功能点数量,因此其功能点计算公式如下:FP Count = [(ADD+CHGA+CFP)* VAFA]+(DEL * VAFB)表1 功能点技术公式术语
范例
以员工管理系统为范例,在添加一个员工资料时会使用到员工的一般信息、员工的教育情况、工作经历和家属信息。

员工又会隶属于某个部门,在本系统中会有一个对部门进行维护的功能。

员工的工资是由另外一个财务系统提供的。

因此其用例图如下所示:图员工管理系统用例图
Ø假设员工基本信息如下所示:
员工ID(标签控件)
员工名称
性别
生日
婚否
所属部门ID(标签控件)
所属部门名称
VI】如果需要把功能点转换成代码行,可以使用每功能点对应编程语言语句数转换表
每功能点对应编程语言语句数
语言最小值中等最大值
C 60 128 170 C# 40 55 80
C++ 40 55 140 Java 40 55 80 Perl 10 20 30 SQL 7 13 15 VB 15 32 41
来源:中译本<&lt;软件成本估算:COCOMOII模型方法>&gt;和Estimating Software Intensive Systems(Stutzke 2005)
经过上述过程,即使是没有技术经验和程序经验的人员,也能够按照一定方法来估算出项目大小了。

相关文档
最新文档