软件项目工作量评估方法很多,如代码行法、类比法、WBS、故事点、用例点、NESMA、FPA、cosmic、COCOMOⅡ等。本文主要对功能点方法(FPA)简述。
功能点 FPA 方法
(一) 简介
FPA 是从用户角度出发度量软件规模的一种方法。它从用户的角度出发,将系统分为数据功能和事物功能两大类,分别根据具体的规则来计算功能点,最后结合系统的特征因子来调整功能点数, 从而得到最终的系统规模。
FPA 较适用于商业数据处理、管理信息系统的估算,因为它能更好地反映系统需求上的复杂度和数量。从满足客户需求的角度讲,FPA 具有阶段性,对用户早期参与项目管理、项目经理制定项目计划更有意义。
(二) 重要概念
功能点估算法是从用户视角出发,对软件的规模从逻辑设计的角度进行度量的标准方法。
在功能点估算的过程中,以下概念应贯穿始终:
1、 用户视角
用户视角(User View)是指功能点被用户所认可,由用户需求书面正式描述,且独立于所采用的开发技术。
2、 穿越系统边界
穿越系统边界(Application Boundary)是指数据或控制信息由系统内发送到系统外,或由系统外发送到系统内。
是否穿越系统边界是 FPA 重要的判断标准。
3、 IPO 的异同
输入(Input)、处理过程(Process)和输出(Output)的同与不同亦是FPA 重要的判断标准。
(三) FPA 估算方法基本步骤
1、 收集可得的文档
文档可以包括需求、数据/对象模型、类图、数据流图、用例、
过程描述、报表显示、界面显示、用户手册,以及其它软件开发文档。
2、 确定计数范围和边界并识别功能用户需求
计数范围和边界需识别计数目的。不同的计数目的决定了计数范围和软件边界的划分。实际使用过程中通常为系统的管理边界, 特殊系统会以架构为边界。
3、 度量数据功能
数据功能的计算工序(Counting Procedures)包括以下活动:
FPA 将数据功能分为两类,分别为内部逻辑文件(ILF)和外部接口文件(EIF)。
1) 识别内部逻辑文件 ILF
内部逻辑文件(Internal Logical File,简称ILF)是在系统边界内部维护的一组用户可识别的逻辑上相关的数据或控制信息。ILF 的首要目的是保存由被度量系统的一个或多个基本流程维护的数据。
2) 识别外部接口文件EIF
外部接口文件(External Interface File,简称 EIF)是用户可识别的、逻辑相关的数据组或控制信息组,其由被度量应用所引用,但在另一应用边界内维护。EIF 的主要目的是保存由被度量应
用的一个或多个基本过程引用的数据。这意味着一个应用的 EIF 必定是另一个应用的ILF。
3) 识别数据功能 DET
数据元素类型(Data Element Types,简称DETs)是指在一个
ILF 或EIF 内,用户可认知的、唯一的、非重复的字段。如客户姓名、年龄、地址、联系方式等。
4) 识别数据功能 RET
记录元素类型(Record Element Types,简称 RETs)是指在一个ILF 或EIF 内,用户可认知的数据元素子集。如客户的家庭信息为客户信息的 RET
5) 确定ILF 或EIF 的贡献度
根据每一个已确认的 ILF 和EIF 的复杂度(DETs 和RETs 数量),对其进行分类,并赋予未调节功能点数值(Unadjusted Function Points,简称UFP)的过程,即为确定其贡献度
6) 确定ILF 或EIF 的贡献度值
对用户而言,ILF 与EIF 的业务意义是完全不同。因此,对于贡献度相同的 ILF 和EIF,其未调节功能点值是不同的。
4、 度量事物功能
事物功能的计算工序(Counting Procedures)包括以下活动:
FPA 将事物功能分为三类,外部输入(EI)、外部输出(EO)和外部查询(EQ)。
1) 识别外部输入(EI):是处理来自系统边界外部的数据或控制信息的一个基本过程。其首要目的(Primary Intent,简称 PI) 是维护一个或多个ILFs 或者去改变系统行为。
2) 识别外部输出(EO):是发送数据或控制信息到系统边界外部的一个基本过程。其首要目的(PI)是通过处理逻辑呈现信息给用户,并非或者另外检索数据或控制信息。
3) 识别外部查询(EQ):是发送数据或控制信息到系统边界外部的一个基本过程。其首要目的(PI)是通过从一个 ILF 或EIF 检索数据或控制信息,呈现信息给用户。
4) 基本过程
把功能用户需求组合或分解为最小活动单元,满足以下条件:
1) 对用户有意义,构成一个完整的事务;
2) 自包含;
3) 使应用的业务保持持续状态,
例 :功能用户需求要求提供维护员工信息的功能。该需求被分解为较小的工作单元,如添加员工信息、修改员工信息、删除员工信息和查询员工信息。
5) 识别事物功能 DET
数据元素类型(Data Element Types,简称DET)是指在一个EI、EO 或EQ 内,用户可认知的、唯一的、非重复的字段。
6) 识别事物功能 FTR
引用文件类型(File Types Referenced,简称FTR)是指一个交易功能读取或维护的一个ILF,或者一个交易功能所读取的一个EIF。
7) 确定EI、EO 和EQ 的贡献度
根据每一个已确认的 EI、EO 和EQ 的复杂度(FTRs 和DETs 数量),对其进行分类,并赋予未调节功能点数值(Unadjusted Function Points)的过程,即为确定其贡献度。
8) 确定EI、EO 和EQ 的贡献度
我们应注意到,贡献度相同的 EI、EQ,其未调节功能点值是相同的;与EI、EQ 贡献度相同的 EO,其未调节功能点值略高。
5、计算功能规模
1) 计算未调整功能点数
UFP= ILFs EIFs EIs EOs EQs
2) 确定系统调节因子
在实际软件项目开发过程中因技术因素和环境因素会对软件项目工作量有不同程度的影响。可根据组织级基准库设定相关调整因子(System Adjustment Factor,简称SAF)。如应用类型、质量特征、开发语言、团队背景、评估时点等。
计算调整后的功能点数 AFP=UFP*SAF
3) 确定生产率PDR
可根据系统特点测算组织级系统基准生产率。4)测算工作量
工作量 AE=AFP*PDR
6、 报告功能点计数结果
将功能点计数过程和工作量计数结果编写报告呈现给读者。(中基数联版权所有,转载需标明出处。)
以上就是软件项目工作量评估方法简述之功能点方法(FPA)所有内容。