基于NESMA功能点分析方法
2017-03-22王志华李克文
王志华++李克文
摘 要本文阐述了基于NESMA功能点分析方法的基本原则和方法,针对一个实例公司资料管理系统,实施基于NESMA功能点分析法,统计该系统的功能点数。
【关键词】功能点 NESMA 功能点计算
1 引言
软件项目早期阶段,首要的工作就是提交给客户的软件系统的规模、完成它所需要的工作量和成本估计。其中软件规模估计是进行项目工作量、成本及进度估计的前提条件,因此本文着重研究与规模估计相关的技术方法。目前,国际上已经存在很多软件规模估计方法和模型,如功能点(Function Point)、代码行(Line of Code)、德尔菲(Delphi)、用例点(Use Case Point)等,
NESMA功能规模度量是从用户角度来估计规模,通过量化与外部数据输入、输出或文件类型等有关的功能性处理信息,来度量软件规模的方法,不去考虑软件的具体实现。
2 NESMA功能点分析方法研究
2.1 概述
功能点分析法FPA(FunctionPointAnalysis)是由IBM的工程师Allan JAlbrecht于20世纪70年代末提出的,是一种与程序语言无关,能够有效衡量软件规模的方法。荷兰软件度量协会(Netherland Software Measurement Association)推出了NESMA功能点,都是Albrecht功能点分析理论的发展和细化。
2.2 规模估计过程
一般分为以下几个步骤:
(1)确定估计的类型,根据可收集到的文档;
(2)确定估计范围和系统边界;
(3)度量数据功能和事务功能;
(4)确定未调整功能点数;
(5)确定调整因子;
(6)计算调整后的功能点数。
2.3 功能类型
軟件项目管理中的功能点估计法将功能点分为5类:
2.3.1 内部逻辑文件(ILF Internal Logical File)
在应用程序边界内维护的用户可识别的逻辑相关数据组或控制信息。其主要目的是保存由被计数的应用程序的一个或多个基本处理所维护的数据。
2.3.2 外部接口文件(EIF External Interface File)
被一应用程序引用但在另一应用程序边界内被维护的,用户可识别的逻辑相关数据组或控制信息, 其主要目的是保存由被计数的应用程序边界内的一个或多个基本处理所引用的数据。
2.3.3 外部查询(EQ External Inquiry)
发送数据或控制信息到应用程序边界外的一个基本处理,其主要目的是通过检索来自内部逻辑文件或外部接口文件的数据或控制信息,向用户提供信息。处理逻辑既不包含数学公式或计算,也不创建新的数据。处理期间不维护内部逻辑文件,也不改变系统行为。
2.3.4 外部输入(EI External Input)
数据或控制信息由外向内穿越应用程序边界的一个基本处理过程,其主要目的是维护一个或多个 内部逻辑文件和/或改变系统行为。
2.3.5 外部输出(EO External Output)
发送数据或控制信息到应用程序边界外的一个基本处理,其主要目的是通过检索数据或控制信息, 此外还通过处理逻辑来向用户提供信息,其处理逻辑必须包含至少一个数学公式或计算,或创建派生 的数据。一个外部输出也可以维护一个或多个内部逻辑文件,和/或改变系统行为。
其中:
(1)数据类型:ILF、EIF
(2)事务类型:EI、EO、EQ
2.4 确定未调整功能点数
(1)计算各模块的内部逻辑文件、外部接口文件、查询、输入、输出的数目;
(2)计算未调整功能点数UFP=事务功能+数据功能,即等于ILF、EIF、EO、EI、EQ的总和。
2.5 确定调整因子
UFP 是通过建立一个准则来确定某个特定的度量参数进行计算。 调整后的功能点数=UFP *TCF(技术复杂因子,technical complexity factor)
其中TCF 共由 14 个因素组成,如下所示:数据通信、分布式数据处理、性能、大量使用配置、事物处理速率、在线数据输入、最终用户使用效率、在线更新、复杂处理、复用性、易于安装、易于操作、多站点、支持变更。
2.6 计算调整后的功能点数
调整后的功能点数S:=UFP*TCF
S:调整后的功能点数
3 应用实例
以公司内部资料管理系统为例,资料管理系统主要包括管理员基本信息、资料信息管理、借阅管理及查询等。应用NESMA功能点分析方法进行软件项目规模估计。
资料管理系统功能点:
EI:资料续借、资料借阅、添加和修改资料、修改规则
EO:借阅者信息统计、借阅详细信息、
EQ:查看规则信息、查看借阅者信息、查询资料信息、
EIF:管理员信息文件、借阅者信息文件、员工信息文件
LIF:规则信息文件、权限信息文件、资料信息文件
未调整功能点表 :UFP=ILF+EIF+EO+EI+EQ=95+60+23+25+20=223
调整后的功能点数:S=UFP*TCF=223*(0.65+0.01*Fi)=223*1.3=289.9
4 结束语
本文首先阐述了基于NESMA的功能点的分析方法,以及如何按照NESMA步骤对应用系统功能点的分析和统计,最后根据实例:资料管理系统,实施NESMA功能点分析方法。
鉴于篇幅的原因,基于NESMA的功能点的分析方法未能详细的描述清楚,在以后的工作中,继续探索简化NESMA功能点分析方法,提高项目估计的准确度。
参考文献
[1]DavidGarmus&DavidHerros著功能点分析[M].北京:清华大学出版社,2003.
[2]Harold Kerzner著.项目管理--计划、进度和控制的系统方法[M].北京:电子工业出版社,2002.
[3]冯静,朱小冬,甘茂治.软件发布周期费用估计方法研究[J].微计算机信息,2006,7-3:288-290.
[4]李帜,林立新,曹亚波.软件工程项目管理-功能点分方法与实践[M].北京:清华大学出版社,2005.
作者简介
王志华(1978- ),女,中国石油大学(华东)计算机与通信工程学院硕士研究生,研究方向为项目管理。
李克文(1969-),男,中国石油大学(华东)计算机与通信工程学院教授,博士。
作者单位
中国石油大学(华东)计算机与通信工程学院 山东省青岛市 266000