NESMA功能点估算(三)

使用NESMA估算规模

 上文介绍了NESMA的功能点计数规则。基于这些规则,使用NESMA3种估算方法中的任意一种,都可以统计出应用系统的功能点规模。但是应用系统除了客户提出的功能性需求,还存在非功能性需求,估算工时时也要考虑各类调整因素。常见的调整因子包括通用系统调整因子、需求变更调整因子等。

  • 一、通用系统调整因子

应用程序的特点可以用14个一般系统特征来描述,最终目用来确定整个应用程序的处理复杂度。为了表达影响程度可以为每个特征设定一个权重,并通过累加形成每个特征的影响程度,以此来表示处理复杂度。通过估值调整因子,原始功能点计数被转换成校准功能点计数。

通过两个步骤来确定估值调整因子:
(1)通过对14个一般系统特征的影响程度进行逐个评估,累加得到总的影响程度,影响程度可以用范围在0~5之间的一个数值来表示。14个一般系统特征包括数据通信、分布式数据处理、性能、重度配置、处理速率、在线数据输入、最终用户使用效率、在线升级、复杂处理、可重用性、易安装性、易操作性、多场所、支持变更(IFPUG估算方法就采用了这14个一般系统特征,来反映非功能需求归规模估算的影响)。根据具体因子确定影响程度,总影响程度是指分配给一般系统特征的影响程度的总和,其取值范围为0~70。
(2)通过计算估值调整因子,使用如下公式:

VAF = 0.65+0.01\times SUM(A_{i})

其中,VAF为估值调整因子,A_{i}是14个通用系统特征,SUM(A_{i})的取值范围为0~70。估值调整因子VAF的上限值是1.35,下限值是0.65。

  • 二、需求变更调整因子

项目执行过程中,需求的变更在所难免。尤其是有些早期阶段的需求文档,如预算、招投标等阶段的需求不明晰,包含很多隐含需求及可能的需求变更,与最终交付的软件功能有较大的差异。
因此,为了更加准确地预测项目的实际规模,可以根据功能点估算时所处的项目阶段,对未调整的功能点数乘以一定的系数进行调整,使得估算的规模更接近于实际值。公式如下:
S=UFP \times CF
式中,S为调整后的软件规模,单位为功能点;UFP为调整前的功能点数:CF为规模变更调整因子,依据行业数据,预算阶段CF通常取值为2。如果预算阶段需求较为清晰,可对该因子取值进行适当调整。招标阶段的CF取值为1.5,投标阶段的 CF取值为1.26,计划及以后阶段的CF取值为1。

  • 三、案例分析

  • 1.案例需求

签报模块:签报发起人拟稿,经由所在部门负责人核稿。如果暂时不提交审核,可以先暂存签报。签报内容:签报标题、签报号、密级、急缓等级、天数、事由、附件等。签报号由拟稿部门、年份、序列号三部分组成,拟稿部门通过下拉列表选择,默认拟稿人所属部门,也可以发起非本部门签报。密级包括工作秘密、商密。急缓等级包括普通、急件、特急,如果急缓等级是急件及特急,必须指定天数。如果签报在指定天数前一天仍未审批完成,系统需向待审批人发送提醒消息。附件支持文件上传、下载,允许多文件上传。文件上传时需要填写附件名称、备注。

待办模块:待办模块用来处理个人的待处理任务事项。待办事项列表按照时间倒序,审核/审批人可以处理事项列表中的任务。审批通过,流程即跳转到下个审批人。拒绝通过就填写拒绝意见,流程结束(流程需求简化处理)。

草稿箱:签报暂存后处于草稿状态,存放在草稿箱中。

  • 2.功能点计数

  • 预估算功能点分析

预估算功能点分析需要计算逻辑文件数量。从需求中识别逻辑文件的着手点就是提炼出需求中的所有名词,只有名词才可能成为逻辑文件。然后在此基础上识别各对象之间的依赖关系,从而识别出最终的逻辑文件。

据上表得知,总共识别了4个内部逻辑文件和2个外部逻辑文件。使用预估算功能点分析公式计算:UFP=ILF\times35+EIF\times15=4\times35+2\times15=170。

因此,采用预估算功能点分析方法,计算得到的未调整功能点总数为170。

  • 估算功能点分析

估算功能点分析除了统计逻辑文件,还要统计事务功能的规模。事务功能点的计数主要关注需求的动词部分,大部分情况下都是动词才能描述事务行为。

注意:密级、急缓等级下拉列表不能作为EO。因为下拉列表只有数据来自EIF、ILF时才能计数1个EO,来自FPA数据表不计数。所以,上述计数表中要去除这个EO。

据上表可知:UPF =ILF\times7+EIF\times5+EI\times4+EO\times5+EQ\times4=4\times7+2\times5+7\times4+8\times5+1\times4=105。

根据估算功能点分析法统计的未调整功能点数为105,与预估算功能点分析相比,偏差超过60%。因此,当需求比较清楚的时候,采用估算功能点分析是更合适的选择。

  • 详细功能点分析

详细功能点分析在估算功能点分析的基础上,还要识别每个功能项的复杂度。对数据类功能项ILF、EIF的复杂度识别需要统计每个逻辑文件的RET、DET数量。事务类功能项复杂度的识别需要统计每个过程的FTR、DET数量。所以,详细功能点分析对需求本身提出了很高的要求,需求需要尽可能的清楚明晰。以签报需求为例,利用详细功能点分析来计数功能点规模。下表为具体规模估算结果:

不同于估算功能点分析法的是,详细功能点分析中,每个功能点的复杂度不再使用默认值,而是逐个计数,根据DET、RET和FRT计算求得。据上表得知,功能点计数规模UFP= \sum EI +\sum EO +\sum EQ+\sum ILF+\sum EIF=110。详细功能点估算法与估算功能点分析法的计数规模比较接近,误差已经小于5%。

  • 3.规模调整

  • 3.1 GSC调整因子
通用系统特征描述得分

G1

数据通信

应用程序不仅仅只有一个前端程序,通过远程交互更新内部逻辑文件,而不是通过批处理程序。但是只支持一种类型的远程处理通信协议,得分4。

4

G2

分布式数据处理

采取分布式数据存储,动态处理用户请求、服务请求。web服务器和服务都有负载均衡策略,保证根据实时的可用性来动态选择。5

G3

性能

性能复杂度需要考虑响应时间和吞吐量对应用的影响。该系统响应时间和吞吐量的要求一般

3

G4

高强度配置

考虑计算机资源的限制对应用程序开发的影响程度。有一定影响,多数应用程序的得分为2。2

G5

交易速度

这里是业务交易处理速度的需求,直接影响到了系统的设计、实施、安装和维护。对事务交易速度有一定的要求。3

G6

在线数据输入

指的数据通过交互处理进入系统的程度。5

G7

最终用户效率

指的是应用程序中的人性化、易用性程度。应用没有交互就为0;要得到5就必须进行用户友好性测试。3

G8

在线更新

指内部逻辑文件ILF被在线更新的程度。如果代码考虑数据丢失保护就得4;如果应用程序具有自动化的数据修复能力就得5。4

G9

复杂的处理

指业务处理逻辑的复杂程度对设计开发的影响。应用程序提供了审计处理、认证与授权等,按一般复杂度执行。3

G10

可复用性

指应用在其他应用程序中利用的程度。无特别的复用要求,流程引擎、用户权限等基础模块具有复用性。2

G11

易安装性

在测试阶段提供、并测试验证安装部署计划、数据迁移工具等,确保手册、工具都是经过测试的。按一般复杂度。3

G12

易操作性

指应用对系统启动、数据备份、程序恢复的影响。3

G13

多场地

对公系统,用户办公使用的客户端设备环境具有高度的相似性,对应用影响较小。因此,该项得分1.1

G14

支持变更

指应用程序在业务逻辑处理和数据结构变更时的应对程度,体现可扩展性。按一般程度处理3

据上表求得,VAF=0.65+0.01\times44=1.09。

以详细估算功能点的规模为例,调整后的功能点FP=110\times1.09=119.9.

  • 3.2 规模调整

考虑项目所处阶段再次调整估算规模。比如以投标阶段为例,CF取1.26.

调整后的规模S=119.9\times1.26=151.07(FP)。

关于后续的工作量、成本估算,可以延续前面的计算流程。

  • 四、GSC调整因子存在的问题

功能点分析法是站在用户角度分析和度量的,但这存在较大的局限性,一定程度上忽略了复杂度极高的逻辑处理、技术和质量方面的投入成本,而在软件开发过程中这部分会耗费极大的工作量和成本。IFPUG开始就引入了值调整因子,作为对功能点分析法忽略这部分需求的一种补偿,NESMA也沿用了该值调整因子。

随着软件行业的飞速发展,软件技术架构也变得愈发复杂,值调整因子已经暴漏出越来越多的争议。特征的选择已经越来越不能适应当今的技术架构选型,特征描述晦涩难懂,同时VAF计算规则也不尽合理。问题简单描述一下:

  • 1.系统特征有些比较过时,特征无法有效区分。

比如,“数据通信”、“分布式数据处理”、“在线数据输入”、“在线更新”。互联网的高速普及和web技术的快速进步为BS架构提供了切实可行的方案标准,“数据通信”、“在线数据输入”、“在线更新”是所有web应用的共性,没有任何特性上的区别,几项特征的得分都在4-5分。“分布式数据处理”同样区分作用不明显,当今大多数系统的基础技术架构都具有多应用服务器、多数据库服务器,负载均衡技术无论在应用服务器还是在服务端都近乎标配,多数系统的该特征得分多为5分,最少也有4分。这种情况下,这几项特征几无存在的必要。适用当前应用系统的特征:系统的可靠性、安全性、用户友好度等可以称为可选的度量特征。

  • 2.个别特征的名称晦涩难懂

比如,“高强度配置”(Heavily Used Configuration)。该特征体现的就是系统对资源的利用率,比如CPU、内存的利用等,可改为资源利用率。

  • 3.VAF计算规则

VAF计算公式:VAF = 0.65+0.01\times \sum GSC_{i},每个GSC的特征值区间都是0~5,共14个特征,所以VAF的值区间为0.65~1.35。其中,0.01相当于每个特征值的权重,也就是说每个特征的权重都是相同的,很明显,这不太合理。复杂的逻辑处理、交易速率这些特征明显比在线数据输入、在线更新这些特征更为重要的,所以针对不同特征来定制不同的权重就成为必要。不同类型系统对相应特征的权重要求也不同。一些系统可能对交易量、性能这些要求高,而某些系统可能用户友好度要求高。比如,企业办公门户就可能对用户友好度要求很高。

系统特征可以根据各自企业的实际去定制,包括每个特征的取值规则。虽然VAF的浮动区间为±35%,实际上,据一些统计表明,一半左右的项目VAF的调整值在±5%左右。不好企业因此直接舍弃了VAF的统计,甚至包括一些估算模型也没有统计。因此,对一些简单的系统、中小型系统,VAF直接取值为1也未尝不可。但对相对复杂的系统,个人认为还是要统计系统特征的,这也符合IFPUG的初衷。毕竟,功能点估算也只能提现功能层面的规模,不能衡量出复杂逻辑、技术和质量需求层面的投入。

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值