1、功能点计算方法,IFPUG起源,IFPUG起源 1979 IBM提出需求:以一种独立于计算机语言的方法来评估软件开发成果 20世纪80年代初,正式的FP使用指南发布 20世纪80年代末,IFPUG成立 1988 FP CPM release 2.0 1990 FP CPM release 3.0 1994 FP CPM release 4.0 1999 FP CPM release 4.1 2003 加入ISO/IEC标准 2004 FP CPM release 4.2,功能点标准概述,什么是功能点 功能点(Function Points)是度量软件规模的一个标准度量单元 一个软件的大小可以通
2、过交付给用户的功能点数来度量,成为一种国际标准。 在软件度量中广泛应用,将系统分解成更小的模块,便于理解和分析 为项目范围、工作量、资源、时间等因素进行估算提供了依据,FP与LOC的区别,常见的方法 FP功能点法 LOC代码行 估算时间 FP法常用在项目开始或项目需求基本明确时使用,估算的结果准确性较高 而使用LOC代码行估算法则误差较大 开发技术相关性 使用FP法无需懂得软件的开发技术 LOC法则与开发技术密切相关 估算角度 FP法以用户为角度进行估算 LOC法则以技术为角度进行估算,FP的特点,简单快速、甲方易理解、 可开展行业比对、完整估算方案、 有明确定义: 存在多个兼容的国际标准、
3、不同的估算者误差在10%以内, 有利于:需求分析、需求管理、绩效评价。 给我们一种视角来审视项目。,FP的适用范围,功能点:国际最流行的规模度量方法 功能点成功应用:从固定价格改为按功能点付费 哪些软件适用:以数据和交互处理为中心的;以功能多少为主要工作量和造价制约因素。例如:电子政务、银行、电信、办公自动化等开发技术相关性 不合用的软件:数据处理过程复杂、创意型软件、对性能或质量有特殊要求的,例如:杀毒软件、网络游戏、航空航天软件、视频和图形处理软件,功能点标准概述,功能点标准概述,功能点分析,功能点分析 功能点分析(Function Point Analysis)是从用户角度度量软件开发的
4、一种标准方法。 功能点分析基于用户的逻辑功能需求,而不考虑应用的物理实现,功能点计算步骤,项目,确定项目类型,开发项目 首次开发完成并安装使用 应用程序本身的功能点+数据转换带来的功能点 升级项目 对现有应用程序修改:新增、删除和改变功能 也可能含转换功能点 应用系统 已安装的应用程序 评估应用程序目前为最终用户提供的功能,目前正被使用和维护的所有应用程序功能点的和,识别项目的范围和边界,功能点分析方法,把用户的业务功能需求分为数据功能需求和处理数据的事务功能需求 数据分为应用内部逻辑数据和应用外部的接口数据,事务分为对数据的外部输入、输出和查询 分别分析这些组成部分的功能点,确定功能点类型,
5、数据类型的功能点 ILF 内部逻辑文件(Internal Logical File) EIF 外部接口文件(External Interface File) 对ILF和EIF复杂度的计算可简单理解为对业务数据复杂度的计算。复杂性由数据元素类型(DET)和记录元素类型(RET) 人机交互类型(事务)的功能点 EI 外部输入( External Input) EO 外部输出(External Output) EQ 外部查询(External Inquiry) 对EIEOEQ复杂度的计算可理解对为业务实现复杂度的计算,复杂性由数据元素类型(DET)和文件引用类型(FTR)决定,识别数据功能和识别事务
6、功能,ILF概念,ILF(Internal Logical Files)内部逻辑文件 概念:用户可识别的系统边界以内的一组逻辑关联的数据或者控制信息,ILF由系统的基本处理过程来维护 ILF识别规则:须满足以下条件: 数据和控制信息集合是逻辑的并且是用户可识别的 数据集合在系统边界内部由基本处理过程维护,EIF概念,EIF(External Interface Files)外部接口文件 用户可识别的,由其它系统维护,在本系统引用的一组逻辑相关数据或控制信息,由本系统的基本处理过程引用。是其它系统的内部逻辑文件 EIF识别规则:须满足以下条件 数据和控制信息集合是逻辑的并且是用户可识别的 数据组
7、是从系统外部被引用的 数据组不被系统维护 数据组被另外一个系统作为ILF维护,快速功能点计算方法,功能点计算: 规模=10*ILF(内部逻辑文件)+7*EIF(外部逻辑文件)+4*EL(输入)+5*EO(输出)+4*EQ(查询) 标准功能点数偏差在10% 需求文档和设计文档,可做功能点数计算 快速功能点的计算: 规模=35*ILF(内部逻辑文件)+15*EIF(外部逻辑文件) 快速功能点方法偏差20% 快速功能点方法:在招投标之前做估算或是需求提出阶段时,快速功能点计算方法,逻辑文件计数次数: 任何逻辑文件仅被计数一次: 多个模块重复操作一个ILF只识别1次 多个模块重复操作一个EIF只识别1
8、次 优先计算ILF,权值比较高(用模板操作的时候,正好是反过来) 配置信息(编码文件):配置文件、配置菜单、配置表等不属于文件,EI,EI(External Inputs)外部输入 EI是指一个处理来自本应用边界之外的一组数据或者控制信息的基本处理过程。 外部输入的基本目的是为了维护(包括增加、修改及删除数据等)一个内部逻辑文件(ILF)或者改变系统的行为。,EO,EO(External Outputs)外部输出 EO是指一个向应用边界之外或用户提供经过加工处理的数据或者控制信息的基本处理过程。 外部输出的基本目的是为了向用户展示一组经过了除了提取之外的其它逻辑处理的数据或者控制信息。这里的其
9、它处理包括至少一个数学演算或者对衍生数据的生成。 EO输出可以有两种方式,提供给应用外的数据以及给用户展示的数据。比较典型的输出就是系统产生的各种报表,EQ,EQ(External Inquiries)外部查询 EQ是指一个向应用边界之外发送数据或者控制信息的基本处理过程。 外部查询的基本目的是为了向用户展示提取的数据或者控制信息。 外部查询的逻辑处理里面不包含数学公式或者计算、不会修改ILF、也不改变系统行为,功能点标准概述,数据功能(Data Function) ILFEIF,功能点标准概述,事务功能(Transaction Function) EI,功能点标准概述,事务功能(Transaction Function) EO,功能点标准概述,事务功能 EQ,功能点标准概述,确定系统的14个特征值 FPA方法认为有14个因素影响FP的个数 这14个特征值根据SRS的内容来判断 非功能需求 设计约束 根据每个特征值的特点,决定它的取值,取值范围介于0到5之间,功能点标准概述,调整因子,计算调整系数 VAF=(TDI*0.01)+0.65 TDI(TOTAL DEGREE OF INFLUENCE) 0.65VAF1.35 基本公式:FP=UFP*VAF计算功能点 FPC=UFP*VAF,谢谢!,