功能点估算法

余年寄山水
645次浏览
2020年12月21日 17:22
最佳经验
本文由作者推荐

无尽透明的思念歌词-腾讯迷你首页

2020年12月21日发(作者:姜辅志)


功能点估算法是软件项目管理众多知识中比较有技术含量的一个。在软件项目管理中项
目 计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要,如果
项目负责人对项 目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等
因素进行估算,那么项目计划 也就没有存在的意义。
FP功能点估算法的特点
项目范围的估算在CMMI的“MA”度量 分析管理和“PP”项目计划中均有涉及,对软件
项目范围的估算有很多种方法,常见的就是LOC代码 行和FP功能点法,它们之间的区别和
关系如下:
1、 FP功能点估算法常用在项目开始或 项目需求基本明确时使用,这时进行估算其结
果的准确性比较高,假如这个时候使用LOC代码行估算法 ,则误差会比较大。
2、 使用FP功能点估算法无需懂得软件使用何种开发技术。LOC代码行估算法与软件
开发技术密切相关。
3、 FP功能点法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估
算的。
4、 通过一些行业标准或企业自身度量的分析,FP功能点估算法是可以转换为LOC代
码行的。
在项目刚开始的时候进行功能点估算可以对项目的范围进行预测,在项目开发的过程中
由于需求的变更和 细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同,
因此在项目结束时还需要对项目 的范围情况进行估算,这个时候估算的结果才能最准确反映
项目的规模。
功能点分析的步骤
在本文中将以国际标准IFPUG(International Function Point Users Group)组织提供
的功能点估算法V4.1.1为基础与大家进行讲解。如下图所示, 首先大家应该了解功能点估
算法的使用步骤。

功能点估算的步骤
1、 识别功能点的类型。
2、 识别待估算应用程序的边界和范围。
3、 计算数据类型功能点所提供的未调整的功能点数量。


4、 计算人机交互功能所提供的未调整的功能点数量。
5、 确定调整因子。
6、 计算调整后的功能点数量。


EI、EO、EQ
EI是处理来自于应用 程序边界外部的一组数据的输入,它的主要目的是维护一个或多
个ILF,以及或者更改系统的行为。
EO是输送数据到应用程序边界外部的过程。它的主要目的是通过逻辑处理过程向用户
呈现信息 。该处理过程必须包含至少一个数学公式或计算方法,或生成派生数据。一个EO
也可以维护一个或多个 ILF,并或改变系统行为。
EQ是向应用程序边界外发送数据基本处理的过程。其主要目的是从IL F或EIF中通过
恢复数据信息来向用户呈现。该处理逻辑不包括任何数学公式或计算方法,也不会生成 任何
派生数据。EQ不会维护任何一个ILF,也不会改变应用程序的系统行为。
EO和EQ的共同点
其主要目的都是通过基本操作过程展现数据给用户看。
主要目的
目的 EI EO EQ
改变应用程序的属性主次要不允
或行为 要目的 目的 许
维护一个或多个ILF 主次要不允
要目的 目的 许
显示信息给用户 次主要主要
要目的 目的 目的
主要行为
行为
数学公式或计算被执行
至少一个ILF被修改
EI
可以
至少选择
一次
至少一个ILF或EIF被引用 可选
数据被重新恢复 可选
EO
至少选择
一次
至少选择
一次
可选
可选
EQ

可以

可以




派生数据被创建
应用程序的行为或属性被
修改
准备或呈现信息到系统边
界外
接受进入系统边界内的数
据的能力

计算规则
可选
至少选择
一次
可选
必须
至少选择
一次
至少选择
一次
必选
可选








在IFPUG的定义中有一个重要的单词“Elementary Process”基本处理过程。该 过程对
用户来说是一个有意义的最小的活动单位,并且是一个自包含的活动。功能点的分类EI、
EO、EQ的识别都是基于“Elementary Process”基本处理过程的。
● EI的计算规则:
1. 从应用边界之外收到数据。
2. 如果进入系统边界内的数据不是一个改变系统行为的控制信息,那么至少一个ILF
应该被改变。
3. 对于已识别的处理过程,至少满足下面三个条件之一。
该基本处理过程的逻辑与本应 用系统中其它基本处理过程的逻辑不同。该基本处理过程
应该具有唯一性。例如:不能存在两个完全一模 一样的存盘操作。
在应用程序边界内,该基本处理过程所使用的这组数据应该与其他基本处理过程所使 用
的数据不同。
在应用程序边界内,基本处理过程所引用的ILF或EIF是不同于其它基本 处理过程所引
用的ILF或EIF。
● EO和EQ通用计算规则
必须全部满足以下内容才能被视为一个EO或EQ:
1、 从外部发送数据或控制信息到应用程序边界内。
2、 为了识别这个过程,以下三点必须满足一个:
该基本处理过程逻辑上必须是唯一的,该唯一性是指其在应用程序中与其他EO或EQ
的逻辑性 上保持唯一。


该基本处理过程所使用的数据应该是唯一的,该唯一性是指其在应用程序 中与其他EO
或EQ所使用的数据不同。
该基本处理过程所引用的ILF或EIF文件应该是 唯一的,该唯一性是指其在应用程序中
与其他EO或EQ所引用的ILF或EIF文件不同。
● EO补充的计算规则
除了要满足上面的通用规则外,还要满足下面其中一条:
在基本操作过程中至少包含一个数学公式或计算方法
在基本操作过程中要产生派生数据
在基本操作过程中至少要维护一个ILF
在基本操作过程中要改变系统的行为。
● EQ补充的计算规则
除了要满足上面的通用规则外,还要满足下面其中一条:
基本操作过程从ILF或EIF中获取数据。
基本操作过程不能包含数学公式或计算方法。
基本操作过程不能生成派生数据
基本操作过程不能维护任何一个ILF
基本操作过程不能改变系统的行为
EI、EQ和EO的技术复杂的计算
复杂性取决 于FIRs和DETs的数量。FTR是被一个事物操作读取或维护的一个ILF,或
者是被一个事物操 作读取的一个EIF。
EI中识别FTR规则
● 每一个ILF应该算做一个FTR。
● 通过EI读取操作的每个ILF或EIF都应该被计算为一个FTR。
● 即被EI维护又被读取的ILF仅计算一个FTR。
EI中识别DET规则
● 在EI的过 程中,以用户角度识别的,通过应用系统边界输入系统内部的非重复的字
段,那么该字段应算一个DET 。


● 如果在EI过程中,只要没有通过系统边界输入,就算它存在于系统内的一个I LF
中,也不能算为一个DET。



以员工管理系统为例,详细说明如何利用功能点估算法计算业务复杂度。

在员工管理系统中添加一个员工资料,会使用到员工的一般信息、教育情况、工作经历
和家属信息。员工 隶属于某个部门,在本系统中会有一个对部门进行维护的功能。员工的工
资则由另外一个财务系统提供。 因此,其用例图如下所示:


图1 员工管理系统用例图

假设员工基本信息如下所示:


员工ID(标签控件)
员工名称


















性别
生日
婚否
所属部门ID(标签控件)
所属部门名称
——受教育的时间
——学校名称
——所学专业
——工作时间
——工作单位
——工作部门
——工作职务
——亲属的姓名
——之间关系
——亲属年龄
——工作单位
假设部门信息如下所示:


部门ID(标签控件)
部门名称
假设工资表信息如下所示:

员工ID(标签控件)





员工姓名
金额
单位
ILF和EIF的功能点数
根据一下两张图可以识别功能点数:


本范例识别出来ILF和EIF功能点个数如下表所示。


ILF内部逻
辑文件

员工信息

部门信息

RET

DET个复杂未调整的




FP个数





复杂




7

7

员工基本信息、受教育情况、工作经历、
18

亲属信息,共4个。

部门基本信息,共1个。

2

DET个


EIF外部接口文
RET



工资表

未调整的FP个


5

员工基本信息、工资信息,共2
4个

个。

合计:19个

EI、EQ和EO的功能点数
本范例识别出来EI、EQ和EO功能点个数如下表所示。


EI

FTR

DET个数

复杂未调整的


FP个数

员工信息的两个标签控件内容不是用户输
入的,因此不算。共16个。
部门信息与员工信息中的部门字段重复,
添加员员工、部门、
因此一个都不算。


工信息

工资表

工资表中的员工ID和名称不能重复,因此
只能算金额和单位,所以共2个。

18个

修改员员工、部门、
工信息

工资表

删除员员工、部门、
工信息

工资表

添加部
部门

门信息

18个
同上

1个
员工ID

1个

一个标签控件的内容不是用户输入的,因
此不算

1个

修改部
部门

门信息

删除部
部门

门信息

一个标签控件的内容不是用户输入的,因
此不算

1个
部门ID

合计:25个







6

6

中等

4

3

3



3



EQ

FTR

DET个数

复杂度

未调整的FP个数

20

2

合计:9个





6

3

查询员工信息

员工、部门、工资表

查询部门信息

部门

EO

FTR

DET个数

复杂未调整的FP个




员工ID、员工名称、年份、年薪、
统计员工年员工、工资
单位







共5个

4

本系统的通用系统特性及其影响程度如下表所示。


系统特性

数据通讯

分布式数据处理

性能

高强度配置

交易速度

在线数据输入

最终用户效率

在线更新

负责的处理

可复用性

易安装性

易操作性

多场地

支持变更

合计:19

调整因子 = 19 * 0.01 + 0.65 = 0.84

分数

3

2

0

0

0

5

2

3

0

3

0

0

0

1


最终调整后的功能点数量为:(19 + 25 + 9 + 5)* 0.84 = 48.72个
功能点估算法是一个非常有用的对软件规模进行估算的国际通用技术,是 项目管理人员必须
掌握的工具。为了便于大家对功能点的技术进行理解和记忆,这里对其进行总结:

由于计算机软件就是为了实现无纸办公,那么在估算功能点时应该多以用户的纸质表单为依< br>据,每个表单就是一个ILF或EIF,表单上显示的字段都是DET,一个表单上的“核心”内容
不管是由几个数据表来分别存放数据的,每个表都是一个RET。

简单来讲,ILF 和EIF可以被看作数据库中的数据表,但是主、从表将被视为一个ILF
或EIF。那么,ILF和E IF的复杂度就是由数据表中的字段DET和一个ILF或EIF自身所包
含的主、从表个数RET来决 定。在计算DET时主、外键只能算作一个。



EI就是对应用户增加、 修改、删除的操作,EO和EQ都是用于用户查询的操作。EO和EQ
的区别是,EO查询时使用了数学 公式或计算方法。EI、EQ和EO的复杂度是由FTR和DET
决定的。FTR的个数由ILF和EI F的个数决定,可以由主表中主、外键的个数来计算。在
计算EI的DET时,只有用户在界面上直接输 入的信息才算作DET,通过页面自动计算或
转换的数据不能算作EI的DET。在EO和EQ计算DE T时,报表的标题、页码等信息不能
被计算为一个DET。

家庭酿制葡萄酒设备-广东的二本大学


品德与生活-麻将秘诀


好听女英文名-大堂副理职责


薰衣草枕头-酒店厨房


安全第一-戴梓伊


骨干路由器-企业保安


深圳湾车展-女公务员的日记免费阅读


十一法定假日-如何设置ie为默认浏览器