阿尔布雷希特功能点方法



功能点度量提供了一种标准化的方法来测量软件应用程序的各种功能。它从用户的角度测量功能,即基于用户请求并获得的回报。功能点分析是从用户的角度衡量软件开发的一种标准方法。

阿尔布雷希特最初提出的功能点度量,随着1986年国际功能点用户组(IFPUG)的成立而越来越受欢迎。2002年,IFPUG功能点成为国际ISO标准——ISO/IEC 20926。

什么是功能点?

FP(功能点)是用于量化软件应用程序最广泛使用的功能类型度量。它基于五个用户可识别的逻辑“功能”,这些功能分为两种数据功能类型和三种事务功能类型。对于给定的软件应用程序,这些元素中的每一个都被量化和加权,计算其特征元素,例如文件引用或逻辑字段。

结果数字(未调整的FP)被分组到已添加、已更改或已删除的功能集,并与价值调整因子(VAF)组合以获得最终的FP数量。每种计数类型(应用程序、开发项目或增强项目)都使用不同的最终公式。

应用阿尔布雷希特功能点方法

现在让我们了解如何应用阿尔布雷希特功能点方法。其程序如下:

确定组件的数量(EI、EO、EQ、ILF和ELF)

  • EI - 外部输入的数量。这些是派生数据跨越边界从外部传递到内部的基本过程。在一个示例图书馆数据库系统中,输入现有用户的图书馆卡号。

  • EO - 外部输出的数量。这些是派生数据跨越边界从内部传递到外部的基本过程。在一个示例图书馆数据库系统中,显示借给用户的书籍列表。

  • EQ - 外部查询的数量。这些是具有输入和输出组件的基本过程,这些过程导致从一个或多个内部逻辑文件和外部接口文件中检索数据。在一个示例图书馆数据库系统中,确定当前借给用户的书籍。

  • ILF - 内部逻辑文件数量。这些是完全位于应用程序边界内、通过外部输入维护的用户可识别的一组逻辑相关数据。在一个示例图书馆数据库系统中,图书馆书籍的文件。

  • ELF - 外部逻辑文件数量。这些是仅用于参考目的、完全位于系统外部的用户可识别的一组逻辑相关数据。在一个示例图书馆数据库系统中,包含图书馆计费系统中交易的文件。

计算未调整的功能点计数 (UFC)

  • 将每个组件评定为低、平均

  • 对于事务(EI、EO和EQ),评级基于FTRDET

    • FTR - 更新或引用的文件数量。

    • DET - 用户可识别的字段数量。

    • 根据下表,引用2个文件和10个数据元素的EI将被评为平均

FTRs DETs
1-5 6-15 >15
0-1 平均
2-3 平均
>3 平均
  • 对于文件(ILF和ELF),评级基于RETDET

    • RET - ILF或ELF中用户可识别的数目元素。

    • DET - 用户可识别的字段数量。

    • 根据下表,包含10个数据元素和5个字段的ILF将被评为

RETs DETs
1-5 6-15 >15
1 平均
2-5 平均
>5 平均
  • 将评级转换为UFCs

评级
EO EQ EI ILF ELF
4 3 3 7 5
平均 5 4 4 10 7
6 5 6 15 10

计算最终功能点计数 (FPC)

  • 基于14个一般系统特征(GSC)计算价值调整因子(VAF)

一般系统特性 简短描述
GSC 1 数据通信 有多少通信设施可以帮助与应用程序或系统交换信息?
GSC 2 分布式数据处理 如何处理分布式数据和处理功能?
GSC 3 性能 用户是否需要响应时间或吞吐量?
GSC 4 大量使用的配置 应用程序将在其上执行的当前硬件平台的使用频率如何?
GSC 5 交易率 交易每天、每周、每月等的执行频率如何?
GSC 6 在线数据输入 在线输入的信息百分比是多少?
GSC 7 最终用户效率 应用程序是否针对最终用户效率而设计?
GSC 8 在线更新 有多少ILF通过在线事务更新?
GSC 9 复杂处理 应用程序是否具有广泛的逻辑或数学处理?
GSC 10 可重用性 应用程序是为满足一个还是多个用户的需求而开发的?
GSC 11 安装简易性 转换和安装有多困难?
GSC 12 操作简易性 启动、备份和恢复程序的有效性和/或自动化程度如何?
GSC 13 多个站点 应用程序是否专门设计、开发和支持在多个站点为多个组织安装?
GSC 14 促进变更 应用程序是否专门设计、开发和支持以促进变更?
  • 根据其影响程度(无影响到强烈影响)在0到5的范围内对每个GSC进行加权。

  • 计算FPC如下:

    FPC = UFC * (0.65+(sum(GSC) * .01))

复杂性

复杂性是规模的一个单独组成部分。它分为两种类型:

  • 问题的复杂性 - 这是针对问题寻求最佳解决方案所需的资源量。

  • 解决方案的复杂性 - 这是实施特定解决方案所需的资源。它有两个方面,如下所示:

    • 时间复杂度 - 资源是计算机时间。

    • 空间复杂度 - 资源是计算机内存。

测量复杂性

复杂性的一方面是效率。它测量任何可以建模为算法的软件产品。

例如:如果解决特定问题的所有实例的算法需要f(n)次计算,那么如果对于具有复杂性g的任何其他解决问题的算法,fO(g),则f(n)是渐近最优的。那么,给定问题的复杂度就是问题的解决方案的渐近最优算法的大O

广告