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(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功能点估算方法使用指南
2.3.1. 决定分析的类型 ....................................................................................................... 2 2.3.2. 识别分析范围和应用边界......................................................................................... 3 2.3.3. 确定未经调整的功能点数(Unadjusted Function Point Count -- UFPC).............. 3
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
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(International Function Point Users Group)功能点估算是一种常用的软件度量方法,它通过对软件的功能进行分类和量化来估算软件的规模和复杂度。
功能点估算可以帮助软件开发团队更好地理解项目的规模和工作量,有助于项目管理和项目成本的预测。
IFPUG功能点估算的核心思想是将软件的功能进行分类,然后将每个功能点按照一定的规则进行加权,并与标准功能点系数相乘得出最终的功能点数。
这样可以对不同的软件进行可比较的度量,并且提供了一个基准来评估相对规模和复杂度。
1.功能性功能点包括以下四个子类:-输入(EI)功能点:表示软件接收外部输入并处理的功能。
例如,一个图书管理系统可以接收读者的借书请求并进行处理。
-输出(EO)功能点:表示软件向外部输出信息的功能。
例如,一个图书管理系统可以向读者输出图书的归还日期。
-查询(EQ)功能点:表示软件进行内部或外部查询的功能。
例如,一个图书管理系统可以查询图书的借阅记录。
-文件(F)功能点:表示软件维护的逻辑文件(包括输入和输出文件)的功能。
例如,一个图书管理系统可以维护图书的借阅记录文件。
2.非功能性功能点包括以下三个子类:-外部接口文件(EIF)功能点:表示软件与外部系统进行数据交换的功能。
例如,一个图书管理系统可以与图书供应商的系统进行数据交换。
-外部查询文件(EQF)功能点:表示软件使用的外部查询文件的功能。
例如,一个图书管理系统可以使用图书供应商的系统提供的查询功能。
-内部逻辑文件(ILF)功能点:表示软件内部维护的逻辑文件的功能。
例如,一个图书管理系统可以维护图书的库存信息。
在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功能点估算模型是由阿尔布雷克特在1979年提出,也称为IFPUG(国际功能点用户组织)功能点。
这是一种估算软件项目大小的方法,主要基于系统的逻辑设计,以及客观外部应用接口和主观的内部应用复杂度以及总体的系统性能特征,对软件功能规模进行间接定量估算。
功能点估算方法是一种间接度量,与代码行估算法(LOC)不同,它主要关注软件程序的“功能性”和“实用性”,而不是直接评估代码行数。
在功能点估算中,用户需求被分为功能性需求和非功能性需求,其中,功能点的估算方法有IFPUG、NESMA、SNAP等。
IFPUG和NESMA用于估算功能性用户需求的规模,而SNAP用于估算非功能性用户需求的规模。
NESMA估算法更多的在项目前期使用,它可以通过逻辑文件快速给出预估的功能点数量,起到指导作用。
NESMA估算法有三种类型的功能点估算,包括指示功能点计数、估算功能点计数和详细功能点计数,分别对应项目的前期、中期和后期的功能点估算需求。
功能点公式为FP=UFC*TCF,其中UFC为未调整功能点计数,TCF是技术复杂度因子。
UFC 从五个角度得出,这五个功能计数项为:“外部输入”、“外部输出”、“外部查询”、“外部接口文件”和“内部逻辑文件”。
功能点估算方法适用于三种项目类型,分别是新开发项目、二次开发项目以及功能增强项目。
以上信息仅供参考,建议咨询专业人士或查阅相关书籍资料了解更多有关IBM功能点估算模型的信息。
功能点分析法IFPUG
功能点分析法IFPUG功能点分析法(IFPUG)是一种常用的软件功能点评估方法,用于对软件开发中的各个功能点进行评估和估算。
它是由国际功能点用户组织(IFPUG)提出和推广的一种评估方法,是目前业界使用最广泛的功能点分析方法之一首先是鉴别功能点。
在这个步骤中,需要识别出软件系统中的各个功能点。
一个功能点是用户对系统的一个可视功能需求,它可以是一个输入项、一个输出项、一个查询项或一个用户界面。
通过分析需求文档和与客户的沟通,可以确定系统中的功能点。
接下来是计算功能点。
在这个步骤中,需要根据功能点类型的不同来计算功能点的数量。
对于输入项、输出项和查询项,可以根据其数量来计算功能点的数量。
对于用户界面,可以根据其复杂程度和用户思维的变化来计算功能点的数量。
通过计算功能点的数量,可以对软件开发的工作量进行估算。
然后是功能点评估。
在这个步骤中,需要对鉴别出的功能点进行评估。
评估功能点的复杂程度和难度,以确定其对开发工作的影响。
评估结果可以用来调整功能点的数量和开发工作的时间和资源,以更准确地完成开发任务。
最后是功能点估算。
在这个步骤中,需要根据功能点的数量和评估结果来进行功能点的估算。
通过将功能点的数量乘以每个功能点的工作量,可以得到整个软件开发任务的工作量。
根据团队的能力和资源,可以确定开发任务的时间表和资源分配。
1.精确度高:功能点分析法(IFPUG)可以通过对软件系统的功能点进行细致的评估和估算,从而得到比较准确的开发工作量和时间估算结果。
2.简洁易懂:功能点分析法(IFPUG)的方法和计算公式相对简单明了,易于理解和操作,可以快速进行功能点的评估和估算。
3. 适用性广泛:功能点分析法(IFPUG)不仅适用于传统软件开发,也适用于Web应用、移动应用和嵌入式系统等各种类型的软件开发项目。
总之,功能点分析法(IFPUG)是一种有效的软件功能点评估方法,通过对软件系统的功能点进行评估和估算,可以更加准确地确定开发工作量和时间表,提高软件开发的效率和质量。
IFPUG功能点估算基本方法
IFPUG功能点估算基本方法IFPUG 功能点估算基本方法Function Point Estimation 功能点估算是一种用来估算项目大小的技术。
项目经理从已经界定的软件范围开始,并根据该陈述将软件分解为可以被单独估算的功能单元,然后估算每一个功能的FP值。
这种分析方法是按照功能为估算单元进行分解,同样如果以其它元素作为估算单元,例如类、对象、业务过程,以下都以功能分解进行讨论。
注意:功能单元是指分解到的最小可估算单元。
FP值是按照经验,使用复杂度参数进行估算调整过的量化的数值。
估算的基本过程:a) 界定项目范围;b) 分解项目到可以被估算的最小功能单元;c) 识别功能单元的类型,估算复杂度;d) 计算总体系统特征值;e) 计算调整因子;f) 应用公式计算FP值。
1. 界定项目范围界定项目范围这次不讨论。
2. 分解项目到可以被估算的最小功能单元系统用5种信息域特征进行描述:事务(Transaction):外部输入( External Input EI)外部输出(External Output EO)外部查询(External Inquiry EQ)数据存储:内部逻辑文件(Internal Logical File ILF)外部接口文件(External Interface File EIF)。
内部文件(ILF)指每个逻辑主文件(即数据的一个逻辑组合,它可能是某大型数据库的一部分或者是一个独立的文件),例如数据库表。
注意不是一个数据库表就是一个ILF,例如合同数据可以包括合同信息、合同条款、合同付款计划。
外部接口:所有机器可读的接口,是不由本系统维护的逻辑文件,是其它系统的ILF。
例如:web service取回的数据,一个人工维护的Excel表格。
3. 估算功能点的复杂度数据元素类型(Data Element Types DET)是一个用户可识别的、唯一性的、非递归的域。
记录元素类型(Record Element Types RET)是ILF或者EIF中用户能够识别的数据元素小组。
IFPUG评估法
IFPUG评估法主要将各功能点按照EI、EO、EQ、ILF、EIF几种类型进行评估,根据各类型相关元素的个数统计为低中高三个级别,从而核算出单个功能点的理论工作量。
一开始使用IFPUG评估法,对于单个功能到底属于那种功能类型可能会常常搞不清楚,因此通过上网查询各种资料后,按照心得进行以下整理,算是分享给大家也算是留作个人备忘:一、功能类型划分EI官方说明:获得数据的过程,对终端用户的输入进行相关的处理;判断标准:1) 数据是从系统边界外部获取的2) 事务处理是对ILF的插入、修改、删除操作说人话:实现对数据库进行增、删、改操作的功能可定义为EI类型,如新增客户信息;统计项:FTR(逻辑)、DET(字段)EO官方说明:反馈数据的过程,完成对票据、报表等的输出;判断标准:1) 向系统边界的外部输出数据2) 一般可以包含下列业务处理逻辑:A-一个以上的数学运算处理B-由基础数据生成新的数据C-对一个以上的ILF进行插入、修改、删除操作D-执行系统动作的变更说人话:涉及到对系统内部数据处理后输出一个新的数据或数据集的功能可定义为EO类型,如业务报表统计;统计项:FTR(逻辑)、DET(字段)EQ官方说明:针对终端用户的查询请求,输出相应的检索结果;判断标准:1) 从系统边界外部获取数据2) 向系统边界外部输出数据3) 如果包含下列处理逻辑,则不是EQ:A-一个以上的数学运算处理B-由基础数据生成新的数据C-对一个以上的ILF进行插入、修改、删除操作D-执行系统动作的变更说人话:对数据库进行简单检索操作后输出数据库中已有字段的功能可定义为EQ类型,如客户信息详情展示;统计项:FTR(逻辑)、DET(字段)ILF官方说明:是在信息系统内部,为了完成相关功能使用的逻辑文件,包括顺序文件、数据库表、临时文件等;判断标准:在计测系统范围内,有检索操作,同时也有插入、更新、删除操作的数据说人话:涉及到配置业务逻辑的功能可定义为ILF类型,如业务阈值控制;统计项:DET(字段)、RET(记录,字段的组合)EIF官方说明:该系统和外部其他信息系统为了交换数据而使用的接口文件;判断标准:1) 在计测范围内的系统检索,在计测范围外的系统保存的数据2) 在计测系统范围内,没有插入、更新、删除等操作的数据3) 是计测范围外系统的ILF说人话:相关系统接口可定义为EIF类型,如成员订购接口;统计项:DET(字段)、RET(记录,字段的组合)二、功能类型对应UFC统计各功能类型对应工作量的统计分为几步:1、先确定对应功能点所属类型的复杂度(参见复杂度对照表);EI 复杂度对照表EO、EQ 复杂度对照表ILF、EIF 复杂度对照表2、根据各功能点的复杂度和所属类型统计出对应UFC(参见UFC取值对照表);五要素UFC取值对照表。
IFPUG功能点估算方法使用指南
IFPUG 功能点估算方法使用指南
- I/2 -
3.4.4. EIF 识别规则 .......................................................................................................... 10 3.4.5. 复杂度和贡献的定义和规则 ................................................................................... 10 3.4.6. ILF/EIF 计数流程 .....................................................................................................11 3.4.7. 复杂度和贡献确定流程 .......................................................................................... 12 3.4.8. 数据功能计数技巧 ................................................................................................. 13 3.5. 计数交易功能................................................................................................................ 14 3.5.1. 定义 ....................................................................................................................... 14 3.5.2. EI,EO,EQ 计数规则 ................................................................................................ 18 3.5.3. 复杂度和贡献的定义和规则 ................................................................................... 20 3.5.4. EI,EO,EQ 的计数流程 ............................................................................................ 22 3.5.5. 复杂度和贡献确定流程 .......................................................................................... 23 3.5.6. 交易功能计数技巧 ................................................................................................. 25 3.6. 决定调整系数................................................................................................................ 27 3.6.1. 调整系数的决定 ..................................................................................................... 27 3.6.2. 确定 VAF 的流程.................................................................................................... 27 3.6.3. 通用系统特性及其影响程度的评定 ........................................................................ 28 3.7. 计算调整功能点 ............................................................................................................ 37 3.7.1. 开发项目功能点的计算 .......................................................................................... 37 3.7.2. 升级项目功能点的计算 .......................................................................................... 38 3.7.3. 应用功能点的计算 ................................................................................................. 39
基于模块分解的IFPUG功能点分析方法应用研究
基于模块分解的IFPUG功能点分析方法应用研究作者:侯成功谭裴叶敏来源:《软件导刊》2017年第04期摘要:传统的IFPUG功能点分析方法对行业应用软件项目进行软件规模度量时,调整因子考虑的是系统整体特征。
该方法对典型的管理信息系统较为有效,但当系统或者系统的部分模块具有一些其它技术特征时,度量结果会出现较大偏差。
针对行业应用软件专业化和复杂化的特点,首先按照软件应用的业务流程和技术特征,对软件进行模块分解,针对不同模块分别考虑通用系统特征和调整因子,提出模块分解的基本过程和改进的通用调整因子计算方法;然后基于不同的模块权重计算加权后的功能点总数;最后利用上述方法选取了实际项目进行软件规模度量分析。
实验结果表明,与传统的IFPUG功能点分析方法相比,改进后的功能点计算结果与项目实际功能点数更为接近。
关键词:软件规模度量; IFPUG-FPA;模块分解;调整因子;权重中图分类号: TP319文献标识码:A文章编号:16727800(2017)0040159040引言随着企业信息化的不断发展和升级,各行业软件应用呈现数量多、应用专业化、系统复杂化等特点,不同行业间的软件应用也存在不同特征。
在众多的软件项目中,有效地度量软件规模正成为项目管理过程中越来越重要的环节。
合理的软件规模度量能够有助于管理部门最大程度地利用预算资金,同时有助于生产部门准确地把握项目时间和项目进度等。
目前,国际流行的软件规模度量方法是功能点分析方法。
本文主要基于软件模块分解,研究改进适用于不同软件特征的功能点分析方法。
1IFPUG功能点分析方法概述1.1功能点分析方法功能点分析方法[1](Fuction Point Analysis,FPA)对于软件功能规模的度量主要从用户需求方面考虑,并不考虑软件的具体物理实现和采用的技术手段。
目前,常用的FPA方法[2]包括Mark II-FPA、COSMIC-FPA和IFPUG-FPA,其中IFPUG-FPA应用最为广泛。
IFPUG-CPM4.2-功能点实践手册(中文摘要)
中其它 EI 的数据元素。
增强后应用功能点总数
=[(UFPB+ADD+CHGA)-(CHGB+DEL)]*VAFA
调整系数=(全部影响度*0.01)+0.65
ADD=增加的功能点
CFP=转换功能点
CHGA=增强后改变功能的 UFP
CHGB=增强前改变功能的 UFP
DEL=被删除功能点
UFP=未调整功能点总数
UFB=项目前应用 UFP
相关数据或者控制信息。ILF 的主要目的是通过应用的一
个或几个基本处理过程维护数据。 下面的所有规则用来判断 ILF: 该组数据或控制信息是逻辑相关的且由用 户定义。 该组数据在应用的边界之内且通过一个或 几个基本处理过程来维护。
外部接口文件(EIF) 是一组在应用边界内被查询,但是在其它应用中被
1
即使有多种方法调用同一功能,则多个功能 键算一个 DET。
对那些虽然被保存、返回、派生的没有穿越 边界的字段不计算 DET。
文字的,页面的,系统产生的标签不计算 DET。
1-5 DET 6-19 DET 20 或更多
0-1FTR
低
低
一般
2-3FTR
低
一般
高
4 FTR 或更多
一般
高
高
内部逻辑文件(ILF) 是一组用户可识别的在应用边界内且被维护的逻辑
软件开发规模的功能点分析法
efficiency?
7.
终端用户效率
应用程序设计考虑到终端用户的效率
吗?
On-Line update
How many ILF ’ s are updated by On-Line
transaction?
8.
在线更新
多少ILF被在线事务所更新?
Complex processing
Does the application have extensive logical or
被度量系统的边界(Boundary) 对于计算机系统来说,同其他计算机系统交 互是一个非常普遍的事情,因此,在分类组件之前必须划出每个被度量的系统的
边界。必须要从用户的角度来划边界。简而言之,边界表明了被度量的系统或应 用同外部系统或应用之间的界限。一旦边界被建立,则组件就能够被分类、分级 和评分。
How difficult is conversion and installation?
易安装性
升级或者安装的难度如何?
11.
Operational ease
How effective and/or automated are start-up,
back-up, and recovery procedures?
外部输入
___x 3=___ ___x 4=___ ___x 6=___
外部输出
___x 4=___ ___x 5=___ ___x 7=___
外部查询
___x 3=___ ___x 4=___ ___x 6=___
内部逻辑文件 ___x 7=___ ___x 10=___ ___x 15=___
外部接口文件 ___x 5=___ ___x 7=___ ___x 10=___
IFPUG简介
IFPUG简介1功能点分析法国际功能点用户组是一个非盈利组织,最初成立于1986年,是基于美国的全球性组织功能点分析度量软件的用户。
官方网站地址:。
功能点分析法(FPA:function point analysis)是一种相对抽象的方法,是一种”人为设计”出的度量方式,主要解决如何客观,公正,可重复地对软件地规模进行度量的问题.FPA法由IBM的工程师艾伦·艾尔布策(Allan Albrech)于20世纪70年代提出,随后被国际功能点用户协会(IFPUG:The International Function Point Users'Group)提出的IFPUG方法继承,从系统的复杂性和系统的特性这两个角度来度量系统的规模,其特征是:“在外部式样确定的情况下可以度量系统的规模”,“可以对从用户角度把握的系统规模进行度量”。
功能点可以用于“需求文档”、“设计文档”、“源代码”、“测试用例”度量,根据具体方法和编程语言的不同,功能点可以转换为代码行。
经由ISO组织已经有多种功能点估算方法成为国际标准,如:①加拿大人艾伦·艾布恩(Alain Abran)等人提出的全面功能点法(full function points);②英国软件度量协会(UKSMA:United Kingdom Software Metrics Association)提出的IFPUG功能点法(IFPUG function points);③英国软件度量协会提出的Mark II FPA功能点法点(Mark II function points);④荷兰功能点用户协会(NEFPUG:Netherlands Function Point Users Group)提出的NESMA功能点法;⑤软件度量共同协会(COSMIC:the Common Software Metrics Consortium)提出的COSMIC-FFP方法。
IFPUG 功能点估算基本方法
IFPUG 功能点估算基本方法Function Point Estimation 功能点估算是一种用来估算项目大小的技术。
项目经理从已经界定的软件范围开始,并根据该陈述将软件分解为可以被单独估算的功能单元,然后估算每一个功能的FP值。
这种分析方法是按照功能为估算单元进行分解,同样如果以其它元素作为估算单元,例如类、对象、业务过程,以下都以功能分解进行讨论。
注意:功能单元是指分解到的最小可估算单元。
FP值是按照经验,使用复杂度参数进行估算调整过的量化的数值。
估算的基本过程:a) 界定项目范围;b) 分解项目到可以被估算的最小功能单元;c) 识别功能单元的类型,估算复杂度;d) 计算总体系统特征值;e) 计算调整因子;f) 应用公式计算FP值。
1. 界定项目范围界定项目范围这次不讨论。
2. 分解项目到可以被估算的最小功能单元系统用5种信息域特征进行描述:事务(Transaction):外部输入( External Input EI)外部输出(External Output EO)外部查询(External Inquiry EQ)数据存储:内部逻辑文件(Internal Logical File ILF)外部接口文件(External Interface File EIF)。
内部文件(ILF)指每个逻辑主文件(即数据的一个逻辑组合,它可能是某大型数据库的一部分或者是一个独立的文件),例如数据库表。
注意不是一个数据库表就是一个ILF,例如合同数据可以包括合同信息、合同条款、合同付款计划。
外部接口:所有机器可读的接口,是不由本系统维护的逻辑文件,是其它系统的ILF。
例如:web service取回的数据,一个人工维护的Excel表格。
3. 估算功能点的复杂度数据元素类型(Data Element Types DET)是一个用户可识别的、唯一性的、非递归的域。
记录元素类型(Record Element Types RET)是ILF或者EIF中用户能够识别的数据元素小组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)此处的文件不是传统数据处理意义上的文件,而是指一组逻辑上相互关联的数据,并不是实现意义上的物理的数据集合。