IFPUG功能点分析介绍

合集下载

基于IFPUG功能点分析方法的软件测试成本估算

基于IFPUG功能点分析方法的软件测试成本估算

2021年第04期(总第220期)《蓿窟画蓿基于IFPUG功能点分析方法的软件测试成本估算杜艳红,陈浩月(上海计算机软件技术开发中心,上海2〇i m)摘要:软件测试(Software Testing)作为软件质量保证的主要手段之一,在软件开发过程中所占的比重日益增加,成为保 证软件质■量的重要环节,对提高软件质量具有重要意义。

将IFPUG(Intem ationalFunctionPointU serG roup)功能点分析 方法结合国家标准《GB/T32911-2016软件测试成本度量规范》引入软件测试成本估算过程中,以提高软件测试规模评估 的准确率。

关键词:软件工程造价;软件测试;成本评估;IFPUG中图分类号:TP309 文献标识码:B文章编号:2096-9759(2021)04-0141-05Software Test Cost Estimation Based on IFPUG Function Point Analysis MethodDu Yanhong,Chen Haoyue(Shanghai Development Center o f Computer Software Technology,Shanghai201112)A bstract:Software Testing,as one o f the main means o f Software quality assurance,occupies an increasing proportion in theprocess o f Software development.lt has become an important lin k to ensure Software quality and is o f great significance to im_ prove Software quality.The IFPUG(International Function Point User Group)Function Point analysis method combined w ith the national standard GB/T32911-2016 Software Test Cost Measurement Code was introduced into the process o f software test cost estimation to improve the accuracy o f software test scale evaluation.Keywords:software engineering cost;software testmg;cost evaluation;IFPUG〇引言软件测试成本估算是软件成本估算中的一个分支,在早期 的软件成本估算模型中,因为测试和开发没有明显的界限,所 以成本估算对象是整个项目。

IFPUG功能点估算基本方法

IFPUG功能点估算基本方法

IFPUG功能点估算基本方法IFPUG(International Function Point Users Group)功能点估算基本方法是一种常用的软件开发项目估算方法,通过对软件的功能需求进行分析和量化,以功能点(Function Point,FP)作为衡量软件规模的指标,从而对软件项目的工作量、进度和成本进行估算和控制。

1. 需求分析:首先,需要从用户对软件系统的需求描述中找出功能性需求(External Input、External Output、External Inquiry)和非功能性需求(Internal Logical Files、External Interface Files),并进行详细的分析和理解。

2.功能点计算:根据需求分析的结果,按照IFPUG的规定,对每个功能要素进行计数。

- External Input(EI):输入功能要素,描述软件系统接收外部输入数据并对其进行处理的功能。

- External Output(EO):输出功能要素,描述软件系统生成的输出数据。

- External Inquiry(EQ):查询功能要素,描述软件系统提供给用户的查询功能。

- Internal Logical Files(ILF):内部逻辑文件,描述软件系统内部生成、维护和管理的数据文件。

- External Interface Files(EIF):外部接口文件,描述软件系统与外部系统交互的数据文件。

根据功能要素的计数和权重,可以计算出各个功能要素的功能点数。

3. 加权计算:根据软件的特定环境和特性,对功能点数进行加权计算,得出修正功能点数(developed function points,DFP)。

加权计算可以考虑以下一些因素:-数据处理复杂性:软件系统对数据进行处理的复杂程度。

-逻辑处理复杂性:软件系统的逻辑处理的复杂程度。

-用户界面复杂性:用户界面的复杂程度。

-数据存储复杂性:数据存储结构的复杂程度。

IFPUG功能点估算方法使用指南

IFPUG功能点估算方法使用指南
1.1. 目的 ................................................................................................................................ 1 1.2. 预期读者 ......................................................................................................................... 1 1.3. 术语表............................................................................................................................. 1 1.4. 参考资料 ......................................................................................................................... 2
2.3.1. 决定分析的类型 ....................................................................................................... 2 2.3.2. 识别分析范围和应用边界......................................................................................... 3 2.3.3. 确定未经调整的功能点数(Unadjusted Function Point Count -- UFPC).............. 3

IFPUG功能点分析法

IFPUG功能点分析法

IFPUG功能点分析法1、功能点方法简介功能点方法是一种间接、但比较准确的软件开发工作量度量方法,目前普遍用于软件工作量估算。

功能点方法,自IBM的Albrech在1979年发表,随后被IFPUC (Internal Function Point UserCroup)继承,1999年发布了现行的4.1版。

一个功能点用一定规模的系统数据(ILF和EIF)及其处理(EI、EO、EQ)来表征,它囊括了为实现特定功能所固有和必需的需求分析、系统设计、编写文档和测试用例、编码、测试、部署、调优、培训等工作量。

功能点方法从用户需求和逻辑设计角度出发,根据软件需求规格说明书及IFPUG功能点分析法的操作规程,估算应用系统的功能点数,再从每个功能点的功能类型和复杂度两个维度,参考业界单功能点开发时长,测算出项目工作量,与具体技术和实现无关。

2、术语定义:●内部逻辑文件(ILF)是一组用户能够识别、存在内在逻辑关联、在系统边界之内被控制的数据或控制信息。

可理解为一个实体联系模型或一组关联的数据表。

●外部接口文件(EIF)是另外一个系统的ILF。

在本系统中被引用、在系统边界之外被控制。

●外部输入(EI),一个接受来自系统边界之外的数据或控制信息的基本处理。

其目的是维护一个内部逻辑文件,或改变系统的行为。

●外部输出(EO) -个向系统边界之外发送数据或控制信息的基本处理。

其目的是向用户展示一组经过了(除提取之外的)逻辑处理的数据或控制信息,也可能包括对内部逻辑文件的维护或改变系统的行为。

●外部查询(EQ) -个向系统边界之外发送数据或控制信息的基本处理。

其目的足向用户展示一组经过提取处理的数据或控制信息,不会引起对内部逻辑文件的维护或系统行为的改变。

界面.doc报表.doc业务逻辑.doc接口命令.doc 4、数据功能类型及事物功能类型复杂度权重对应表。

功能点分析法 IFPUG

功能点分析法 IFPUG

100 FPs
Impact Effort Schedule Cost
120 FPs
• State code input screen changed (3 FPs)
• Interface to N&A file added (10 FPs)
• N&A inquiry and state code inquiry added (7 FPs)
3
© Copyright 2001. International Function Point User Group 2001
..
IFPUG Mission Statement
• The mission of the International Function Point Users Group is to be a recognized leader in promoting and encouraging the effective management of application software development and maintenance activities through the use of Function Point Analysis and other software measurement techniques.
9
© Copyright 2001. International Function Point User Group 2001
..
Changes to Requirements
• Changes to Requirements
– Change Inevitable – Trade-offs – Customer Definition of Quality – Size

IFPUG功能点估算含示例

IFPUG功能点估算含示例

IFPUG功能点估算含示例IFPUG(International Function Point Users Group)功能点估算是一种常用的软件度量方法,它通过对软件的功能进行分类和量化来估算软件的规模和复杂度。

功能点估算可以帮助软件开发团队更好地理解项目的规模和工作量,有助于项目管理和项目成本的预测。

IFPUG功能点估算的核心思想是将软件的功能进行分类,然后将每个功能点按照一定的规则进行加权,并与标准功能点系数相乘得出最终的功能点数。

这样可以对不同的软件进行可比较的度量,并且提供了一个基准来评估相对规模和复杂度。

1.功能性功能点包括以下四个子类:-输入(EI)功能点:表示软件接收外部输入并处理的功能。

例如,一个图书管理系统可以接收读者的借书请求并进行处理。

-输出(EO)功能点:表示软件向外部输出信息的功能。

例如,一个图书管理系统可以向读者输出图书的归还日期。

-查询(EQ)功能点:表示软件进行内部或外部查询的功能。

例如,一个图书管理系统可以查询图书的借阅记录。

-文件(F)功能点:表示软件维护的逻辑文件(包括输入和输出文件)的功能。

例如,一个图书管理系统可以维护图书的借阅记录文件。

2.非功能性功能点包括以下三个子类:-外部接口文件(EIF)功能点:表示软件与外部系统进行数据交换的功能。

例如,一个图书管理系统可以与图书供应商的系统进行数据交换。

-外部查询文件(EQF)功能点:表示软件使用的外部查询文件的功能。

例如,一个图书管理系统可以使用图书供应商的系统提供的查询功能。

-内部逻辑文件(ILF)功能点:表示软件内部维护的逻辑文件的功能。

例如,一个图书管理系统可以维护图书的库存信息。

在IFPUG功能点估算中,每个功能点都有一个权重或复杂度,可以根据软件的特点和相对复杂度进行调整。

例如,一个图书管理系统的输入功能点可能比输出功能点更复杂,因此输入功能点的权重可能更高。

下面是一个示例,用于说明如何进行IFPUG功能点估算:假设我们要开发一个学生管理系统,该系统可以记录学生的基本信息、课程成绩和考试安排等。

IFPUG功能点分析介绍

IFPUG功能点分析介绍

IFPUG功能点分析介绍IFPUG功能点分析介绍引言IFPUG的功能点分析(FPA)方法是一种目前被广泛接受的关于软件规模度量的有效方法。

目前越来越多的组织在运用这个方法进行软件规模的度量。

故在此对功能点分析做一些简单的介绍,以供大家了解。

FPA简介FPA是从用户角度出发度量软件规模的一种方法。

它从用户的角度出发,将系统分为数据功能和交易功能两大类,分别根据具体的规则来计算功能点,最后结合系统的特征因子来调整功能点数,从而得到最终的系统规模。

具体的度量步骤如下所示:1.确定功能点计数类型2.识别软件的应用边界3.识别数据功能以确定其复杂度以及UFP4.识别事务功能以确定其复杂度以及UFP5.确定UFP数6.确定值调整因子7.计算调整FP数这里的用户指的是用户功能性需求的任何人和/或任何时候与软件通信或互动的任何人或事物。

所谓用户可识别是指为处理而定义的需求或/和能被用户和软件开发者赞同和读懂的数据组。

所以一定要注意功能点评估的方法一定是从用户角度出发,并能够得到用户的认可,它与具体采用何种开发语言,何种技术方案无关。

关于功能点计数类型功能点计数类型在IFPUG的FPA中分为三类:新开发类型、增强类型、应用系统。

其中新开发类型简单的来说就是从无到有的开发一个系统;增强类型简单的来说就是在原有系统基础上新增、完善甚至删除已有的功能。

应用系统则是指对已经存在的系统进行功能点计数。

这三种类型的系统在计算功能点的时候会采用不同的计算方法。

关于应用边界在FPA中强调在进行FPA之前一定要定义应用的边界。

因为这关系到后续在计算功能点的时候相关类型功能的识别以及最终的规模。

而所谓应用边界就是定义范围,从用户的角度出发,确定哪些业务包含在应用中,而哪些业务在应用之外。

关于数据功能在FPA中将数据功能分为两类:1、内部逻辑文件(Internal Logical File, ILF)2、外部接口文件(External Interface File, EIF)这里的文件指的是一组用户可识别的逻辑数据或者控制信息。

ibm功能点估算模型

ibm功能点估算模型

IBM功能点估算模型是由阿尔布雷克特在1979年提出,也称为IFPUG(国际功能点用户组织)功能点。

这是一种估算软件项目大小的方法,主要基于系统的逻辑设计,以及客观外部应用接口和主观的内部应用复杂度以及总体的系统性能特征,对软件功能规模进行间接定量估算。

功能点估算方法是一种间接度量,与代码行估算法(LOC)不同,它主要关注软件程序的“功能性”和“实用性”,而不是直接评估代码行数。

在功能点估算中,用户需求被分为功能性需求和非功能性需求,其中,功能点的估算方法有IFPUG、NESMA、SNAP等。

IFPUG和NESMA用于估算功能性用户需求的规模,而SNAP用于估算非功能性用户需求的规模。

NESMA估算法更多的在项目前期使用,它可以通过逻辑文件快速给出预估的功能点数量,起到指导作用。

NESMA估算法有三种类型的功能点估算,包括指示功能点计数、估算功能点计数和详细功能点计数,分别对应项目的前期、中期和后期的功能点估算需求。

功能点公式为FP=UFC*TCF,其中UFC为未调整功能点计数,TCF是技术复杂度因子。

UFC 从五个角度得出,这五个功能计数项为:“外部输入”、“外部输出”、“外部查询”、“外部接口文件”和“内部逻辑文件”。

功能点估算方法适用于三种项目类型,分别是新开发项目、二次开发项目以及功能增强项目。

以上信息仅供参考,建议咨询专业人士或查阅相关书籍资料了解更多有关IBM功能点估算模型的信息。

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

IFPUG功能点分析介绍引言IFPUG的功能点分析(FPA)方法是一种目前被广泛接受的关于软件规模度量的有效方法。

目前越来越多的组织在运用这个方法进行软件规模的度量。

故在此对功能点分析做一些简单的介绍,以供大家了解。

FPA简介FPA是从用户角度出发度量软件规模的一种方法。

它从用户的角度出发,将系统分为数据功能和交易功能两大类,分别根据具体的规则来计算功能点,最后结合系统的特征因子来调整功能点数,从而得到最终的系统规模。

具体的度量步骤如下所示:1.确定功能点计数类型2.识别软件的应用边界3.识别数据功能以确定其复杂度以及UFP4.识别事务功能以确定其复杂度以及UFP5.确定UFP数6.确定值调整因子7.计算调整FP数这里的用户指的是用户功能性需求的任何人和/或任何时候与软件通信或互动的任何人或事物。

所谓用户可识别是指为处理而定义的需求或/和能被用户和软件开发者赞同和读懂的数据组。

所以一定要注意功能点评估的方法一定是从用户角度出发,并能够得到用户的认可,它与具体采用何种开发语言,何种技术方案无关。

关于功能点计数类型功能点计数类型在IFPUG的FPA中分为三类:新开发类型、增强类型、应用系统。

其中新开发类型简单的来说就是从无到有的开发一个系统;增强类型简单的来说就是在原有系统基础上新增、完善甚至删除已有的功能。

应用系统则是指对已经存在的系统进行功能点计数。

这三种类型的系统在计算功能点的时候会采用不同的计算方法。

关于应用边界在FPA中强调在进行FPA之前一定要定义应用的边界。

因为这关系到后续在计算功能点的时候相关类型功能的识别以及最终的规模。

而所谓应用边界就是定义范围,从用户的角度出发,确定哪些业务包含在应用中,而哪些业务在应用之外。

关于数据功能在FPA中将数据功能分为两类:1、内部逻辑文件(Internal Logical File, ILF)2、外部接口文件(External Interface File, EIF)这里的文件指的是一组用户可识别的逻辑数据或者控制信息。

它与我们在具体实现时设计出来的物理模型是无关的。

内部逻辑文件(ILF)指的是一组用户可识别的在应用边界内且被维护的逻辑相关数据或者控制信息。

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

而外部接口文件(EIF)指的是一组在应用边界内被查询,但是在其它应用中被维护的、用户可识别的、逻辑相关数据或者控制信息。

从以上的定义可以看出来ILF与EIF的最大区别在于ILF会被应用维护,而EIF不会被应用维护。

识别ILF和EIF的有效工具是数据流图。

具体的ILF和EIF的识别规则在这里不详述,可以参照IFPUG的实践手册(CPM)。

在我们识别了ILF和EIF之后,我们就需要计算它们的复杂度。

在FPA中采用下面两个指标来计算ILF和EIF的复杂度:1、数据元素类型(Data Element Types, DET)2、记录元素类型(Record Element Types, RET)其中一个DET就是一个唯一的用户可认知的,不重复的数据域。

类似于数据库表中的字段,但不完全相同。

而一个RET就是一个ILF或者EIF内用户可认知的数据元素子集。

在FPA中有给ILF和EIF的DET以及RET定义详细的计算规则,可参考CPM。

根据对每个ILF和EIF计算出来的DET和RET的数量,在FPA中就会将ILF和EIF划分为低,中,高三个复杂度等级。

具体的划分规则可参照CPM。

关于交易功能在FPA中将交易功能划分为三种:1、外部输入(External Input, EI)2、外部输出(External Output, EO)3、外部查询(External inQuery, EQ)这里的EI指的是处理来自应用边界之外的数据或控制信息的基本处理过程。

EI的主要目的是维护一个或多个ILF并且/或者改变系统的行为。

EO指的是向应用边界之外发送数据或控制信息的基本处理过程.EO的主要目的是通过逻辑处理方式向用户呈现信息,而不只是直接恢复数据或控制信息。

该处理逻辑必须包含至少一个数学公式或计算过程,或生成派生数据。

一个EO也可能维护一个或多个ILF和/或改变系统行为。

EQ指的是向应用边界之外发送数据或控制信息的基本处理过程. EQ的主要目的是通过恢复数据或控制信息向用户呈现信息。

该处理逻辑不包括任何的数学公式或计算过程,不会生成任何的派生数据。

EQ处理过程中既不会维护任何ILF,也不会改变系统行为。

在FPA中有定义详细的对EI、EO、EQ三者的识别规则,在此不详述。

通常,这三种功能就是对用户提出的功能性需求的分类。

它关注的对象是具体的每一个功能。

对于交易功能,在FPA中采用DET和FTR(引用文件类型)两个指标来计算它们的复杂度。

其中FTR指的是一个被交易功能读取或维护的ILF或者是一个被交易功能读取的EIF。

根据对每个EI、EO、EQ计算出来的DET和FTR的数量,在FPA中也将它们划分为低、中、高三个复杂度等级。

具体划分规则可参见CPM。

根据以上计算出来的数据功能和交易功能的复杂度,FPA综合很多软件项目的数据,提供了一个复杂度与功能点的对应表,具体参见CPM。

根据上表识别出每个数据功能和交易功能的功能点,然后求和即为未经调整的功能点数(Unadjusted Function Point)关于调整系数在上面计算出来的未经调整的功能点数没有考虑到系统的非功能性需求,因此,FPA有定义14个系统调整因子来针对系统的非功能性需求来计算调整系数。

这14个系统调整因子分别是:1.数据通讯8.在线升级2.分布式数据处理9.复杂处理3.性能10.可重用性4.资源需求11.易安装性5.事务频率12.易操作性6.在线数据输入13.多点运行7.终端用户效率14.易变更对于以上的每一个影响因子,FPA将其影响程度定义为以下的5个等级。

•0 毫无影响• 1 偶然影响• 2 偏下影响• 3 一般影响• 4 重大影响• 5 强烈影响每个特征因子都有定义详细的识别规则,可参考CPM。

功能点调整系数(Value Adjustment Factor, VAF)=(TDI×0.01)+0.65。

其中TDI指以上14个特征因子影响程度分值的和。

根据以上的公式可以知道,VAF的值在0.65~1.35范围内。

计算已调整功能点(Adjusted Function Point,AFP)根据在第一步中识别的功能点计数类型,计算已调整功能点的公式有不同。

其中新开发项目功能点计算公式为:AFP=(UFP+CFP)×VAF其中,UFP=未调整功能点总数CFP=转换功能点此处转换功能指系统安装时需要用到,但不直接提供给最终用户使用的功能。

通常是实现诸如数据转换这样的功能。

有关其他两种类型的已调整功能点计算公式参见CPM。

关于功能点的应用功能点计算出来了,那它跟我们的工作有什么样的联系呢?通常,在项目规划及执行阶段,可以利用功能点来预估项目的人力费用、品质等。

例如,根据行业经验数据,Java语言开发时,一个功能点的生产时间在1~1.4天内(此处的生产时间仅指软件开发活动,它通常包含需求分析、设计、编码、测试等活动,但不包含项目管理、软件维护等支持性且因项目要求的不同而差异较大的活动)。

那么我们就可以根据计算出来的功能点推算出项目可能的人力。

典型公式:项目总生产人力=项目功能点数×生产效率。

在项目结束后来计算功能点,有助于我们根据实际的生产时间来计算单位内部的生产效率等度量指标。

典型公式:生产效率=项目总生产人力/项目功能点数重要的是,由于功能点分析是一个从用户角度出发的,与实现细节无关的评估方法,所以利用功能点计算出来相关数据(诸如生产效率、缺陷率等),有助于增强企业间生产能力比较的可信度,也有助于在行业内形成有比较基准的数据,作为企业运营过程中的参考。

后记以上仅仅对IFPUG的FPA的相关概念进行了简单的介绍。

目的是起到一个引导的作用,让读者了解IFPUG的FPA的基本内容。

真正要实践FPA还需要读者仔细去研习CPM(Counting Practices Manual),当前最新版本为4.2.1。

功能点分析(Function Point Analysis)学习笔记(一)前段时间,有抽空余时间对功能点分析进行了较深入的研习。

以下将研习过程中的内容摘要如下,以做备忘和参考:IFPUG维护的功能点分析(FPA)是众多功能点评估方法中的一种,目前应用较广泛。

当前最新版本是4.2.1.为了推动Function Point的方法在行业中的应用,IFPUG有推出CFPS的认证。

FPA是从用户角度出发度量软件规模的一种方法。

其目标是:1.度量用户要求和能够接收到的功能2.提供一种与具体实施方法和技术无关的对软件开发和维护进行度量的手段3.提供一种相对来说比较简单的对规模进行度量的方法4.提供一种在不同的项目和组织之间能够保持一致的度量方法相对于其他的软件度量方法而言(诸如代码行),其主要的特点是:该度量方法与技术无关,也就是说对于同一组用户需求,无论你采用什么开发语言,其规模都应该是一定的。

且该度量方法是面向用户的,从用户角度出发的,而其他的度量方法多从技术角度出发,很难让用户接收。

这里先讲几个基本的概念:用户:是指用户功能性需求的任何人和/或任何时候与软件通信或互动的任何人或事物用户视角:它是对业务功能的描述,此为,它应该:1.被用户认可2.能够被用来计算功能点3.能以不同的文档形式出现利用功能点分析的步骤如下图所示:功能点分析(Function Point Analysis)学习笔记(二)1、决定分析类型功能点计算的类型分为:•开发项目——开发项目功能点计算度量的是项目完成、用户第一次安装系统时提供给用户的功能•升级项目——升级项目功能点计算度量的是项目完成对已存在的应用系统新增、修改或者删除的功能•应用程式——应用程式功能点计算度量的是已经安装运行的系统提供给用户的功能。

2、识别计算范围和应用边界计算范围定义了一组(部分)被度量的软件•它由功能点计算的目的决定•它确定功能点计数中包括的功能•它可以包含一个或多个应用应用边界指出了被度量的软件之间的分界线•定义了应用的外部范围•内部应用与外部用户时间的概念接口;起一种“膜”的作用,数据就是通过这层膜进出应用•包括被应用维护的逻辑数据•协助识别在应用中查询但不在应用中维护的逻辑数据•依赖于用于对应用外部业务的视角;与技术和/或是是方式相独立识别计算范围和应用边界的规则•边界是从用户的角度来划分和决定•应用之间的边界是以用户能够看得见的可分隔的功能域为基础,而不是以技术考虑为出发点。

功能点分析(Function Point Analysis)学习笔记(三)3、计算数据功能3.1、基本概念3.1.1、数据功能类型•内部逻辑文件InternalLogical File (ILF)•外部接口文件External Interface File (EIF)此处的文件不是传统数据处理意义上的文件,而是指一组逻辑上相互关联的数据,并不是实现意义上的物理的数据集合。

相关文档
最新文档