估计技术 - FP 计数过程


FP 计数过程涉及以下步骤 -

  • 步骤 1 - 确定计数类型。

  • 步骤 2 - 确定计数的边界。

  • 步骤 3 - 确定用户所需的每个基本流程 (EP)。

  • 步骤 4 - 确定唯一的 EP。

  • 步骤 5 - 测量数据函数。

  • 步骤 6 - 衡量交易功能。

  • 步骤 7 - 计算功能规模(未调整的功能点数)。

  • 步骤 8 - 确定值调整因子 (VAF)。

  • 步骤 9 - 计算调整后的功能点数量。

- 一般系统特性 (GSC) 在 CPM 4.3.1 中为可选,并移至附录。因此,可以跳过步骤8和步骤9。

步骤 1:确定计数类型

功能点计数分为三种类型 -

  • 开发功能点数
  • 应用功能点数
  • 增强功能点数

开发功能点数

功能点可以在开发项目从需求阶段到实施阶段的所有阶段进行计数。这种类型的计数与新的开发工作相关联,并且可能包括原型,该原型可能需要作为临时解决方案,以支持转换工作。这种类型的计数称为基线功能点计数。

应用功能点数

应用程序计数按交付的功能点计算,不包括任何转换工作(原型或临时解决方案)和可能已存在的现有功能。

增强功能点数

当软件在生产后进行更改时,它们被视为增强。为了确定此类增强项目的规模,需要在应用程序中添加、更改或删除功能点计数。

步骤 2:确定计数的边界

边界表示被测量的应用程序与外部应用程序或用户域之间的边界。(见图1)

要确定边界,请理解 -

  • 功能点计数的目的
  • 正在测量的应用范围
  • 如何以及哪些应用程序维护哪些数据
  • 支持应用程序的业务领域

第 3 步:确定用户所需的每个基本流程

将功能用户需求组合和/或分解为最小的活动单元,满足以下所有标准 -

  • 对用户有意义。
  • 构成一次完整的交易。
  • 是独立的。
  • 使应用程序的业务保持一致的状态。

例如,功能用户需求-“维护员工信息”可以分解为更小的活动,例如添加员工、更改员工、删除员工和查询员工。

由此确定的每个活动单元都是一个基本过程 (EP)。

步骤 4:确定独特的基本过程

比较已识别的两个 EP,如果它们 -

  • 需要同一组 DET。
  • 需要相同的 FTR 集。
  • 需要同一套处理逻辑来完成EP。

不要将具有多种处理逻辑形式的 EP 拆分为多个 Ep。

例如,如果您已将“添加员工”标识为 EP,则不应将其分为两个 EP 来考虑员工可能有或没有家属的事实。EP 仍然是“添加员工”,并且处理逻辑和 DET 有所不同,以考虑家属。

第 5 步:测量数据函数

将每个数据函数分类为 ILF 或 EIF。

数据功能应分类为 -

  • 内部逻辑文件 (ILF),如果它由正在测量的应用程序维护。

  • 外部接口文件 (EIF)(如果被测量的应用程序引用但不维护)。

ILF 和 EIF 可以包含业务数据、控制数据和基于规则的数据。例如,电话交换由所有三种类型组成:业务数据、规则数据和控制数据。业务数据才是实际的调用。规则数据是呼叫应如何通过网络路由,控制数据是交换机如何相互通信。

请考虑以下用于计算 ILF 和 EIF 的文档 -

  • 拟议系统的目标和限制。
  • 有关当前系统的文档(如果存在这样的系统)。
  • 用户感知的目标、问题和需求的文档。
  • 数据模型。

步骤 5.1:计算每个数据函数的 DET

应用以下规则来计算 ILF/EIF 的 DET -

  • 为通过执行 EP 在 ILF 或 EIF 中维护或检索的每个唯一用户可识别、非重复字段计算 DET。

  • 仅计算当两个或多个应用程序维护和/或引用相同数据函数时测量的应用程序正在使用的那些 DET。

  • 为用户与另一个ILF或EIF建立关系所需的每个属性计算一个DET。

  • 查看相关属性以确定它们是分组并计为单个 DET 还是计为多个 DET。分组将取决于 EP 如何在应用程序中使用属性。

步骤 5.2:计算每个数据函数的 RET

应用以下规则来计算 ILF/EIF 的 RET -

  • 为每个数据函数计算一个 RET。
  • 为以下每个额外的 DET 逻辑子组计算一个额外的 RET。
    • 具有非键属性的关联实体。
    • 子类型(第一个子类型除外)。
    • 归属实体,处于非强制性 1:1 关系。

步骤 5.3:确定每个数据功能的功能复杂性

雷特 数据元素类型 (DET)
1-19 20-50 >50
1 L L A
2至5 L A H
>5 A H H

功能复杂性:L = 低;A = 平均值;H = 高

步骤 5.4:测量每个数据函数的函数大小

功能复杂性 ILF 的 FP 计数 EIF 的 FP 计数
低的 7 5
平均的 10 7
高的 15 10

第 6 步:衡量交易功能

要衡量交易功能,以下是必要的步骤 -

步骤 6.1:对每个事务功能进行分类

事务功能应分类为外部输入、外部输出或外部查询。

外部输入

外部输入 (EI) 是处理来自边界外部的数据或控制信息的基本过程。EI 的主要目的是维护一个或多个 ILF 和/或改变系统的Behave。

必须应用以下所有规则 -

  • 数据或控制信息是从应用程序边界外部接收的。

  • 如果进入边界的数据不是改变系统Behave的控制信息,则至少维持一个ILF。

  • 对于已确定的 EP,必须适用以下三个声明之一 -

    • 处理逻辑不同于其他 EI 为该应用程序执行的处理逻辑。

    • 所识别的数据元素集不同于为应用程序中的其他 EI 所识别的数据元素集。

    • 引用的 ILF 或 EIF 与应用程序中其他 EI 引用的文件不同。

外部输出

外部输出 (EO) 是向应用程序边界之外发送数据或控制信息的基本进程。EO 包括外部询问之外的额外处理。

EO 的主要目的是通过除数据或控制信息检索之外的处理逻辑向用户呈现信息。

处理逻辑必须 -

  • 包含至少一个数学公式或计算。
  • 创建派生数据。
  • 维护一个或多个 ILF。
  • 改变系统的Behave。

必须应用以下所有规则 -

  • 将数据或控制信息发送到应用程序边界外部。
  • 对于已确定的 EP,必须适用以下三个声明之一 -
    • 处理逻辑与其他 EO 为该应用程序执行的处理逻辑是不同的。
    • 所识别的数据元素集与应用程序中的其他 EO 不同。
    • 引用的 ILF 或 EIF 与应用程序中其他 EO 引用的文件不同。

此外,必须适用以下规则之一 -

  • 处理逻辑包含至少一个数学公式或计算。
  • 处理逻辑维护至少一个ILF。
  • 处理逻辑改变系统的Behave。

外部询价

外部查询 (EQ) 是一个向边界之外发送数据或控制信息的基本过程。EQ 的主要目的是通过检索数据或控制信息向用户呈现信息。

处理逻辑不包含数学公式或计算,并且不创建派生数据。处理期间不会维护 ILF,系统的Behave也不会改变。

必须应用以下所有规则 -

  • 将数据或控制信息发送到应用程序边界外部。
  • 对于已确定的 EP,必须适用以下三个声明之一 -
    • 处理逻辑不同于应用程序的其他均衡器执行的处理逻辑。
    • 所识别的数据元素集与应用程序中的其他 EQ 不同。
    • 引用的 ILF 或 EIF 与应用程序中其他 EQ 引用的文件不同。

此外,以下所有规则必须适用 -

  • 处理逻辑从 ILF 或 EIF 检索数据或控制信息。
  • 处理逻辑不包含数学公式或计算。
  • 处理逻辑不会改变系统的Behave。
  • 处理逻辑不维护 ILF。

步骤 6.2:计算每个事务功能的 DET

应用以下规则来计算 EI 的 DET -

  • 检查跨越(进入和/或退出)边界的所有内容。

  • 对于在处理事务功能期间跨越(进入和/或退出)边界的每个唯一的用户可识别的、非重复的属性,计算一个DET。

  • 即使存在多条消息,每个事务功能也仅计算一个 DET,以便能够发送应用程序响应消息。

  • 即使有多种方法可以启动操作,每个事务功能也仅计算一个 DET。

  • 不要将以下项目算作 DET -

    • 由事务功能在边界内生成并保存到 ILF 而不退出边界的属性。

    • 文字,例如报表标题、屏幕或面板标识符、列标题和属性标题。

    • 应用程序生成的标记,例如日期和时间属性。

    • 分页变量、页码和定位信息,例如“211 的第 37 至 54 行”。

    • 导航辅助,例如使用“上一个”、“下一个”、“第一个”、“最后一个”及其图形等效项在列表中导航的能力。

应用以下规则来计算 EO/EQ 的 DET -

  • 检查跨越(进入和/或退出)边界的所有内容。

  • 对于在处理事务功能期间跨越(进入和/或退出)边界的每个唯一的用户可识别的、非重复的属性,计算一个DET。

  • 即使存在多条消息,每个事务功能也仅计算一个 DET,以便能够发送应用程序响应消息。

  • 即使有多种方法可以启动操作,每个事务功能也仅计算一个 DET。

  • 不要将以下项目算作 DET -

    • 属性在边界内生成,不跨越边界。

    • 文字,例如报表标题、屏幕或面板标识符、列标题和属性标题。

    • 应用程序生成的标记,例如日期和时间属性。

    • 分页变量、页码和定位信息,例如“211 的第 37 至 54 行”。

    • 导航辅助,例如使用“上一个”、“下一个”、“第一个”、“最后一个”及其图形等效项在列表中导航的能力。

步骤 6.3:计算每个事务功能的 FTR

应用以下规则来计算 EI 的 FTR -

  • 为每个维护的 ILF 计算一个 FTR。
  • 计算 EI 处理期间每个 ILF 或 EIF 读取的 FTR。
  • 对于维护和读取的每个 ILF 仅计算一个 FTR。

应用以下规则来计算 EO/EQ 的 FTR -

  • 在 EP 处理期间对每个 ILF 或 EIF 读取计数一个 FTR。

此外,应用以下规则来计算 EO 的 FTR -

  • 为 EP 处理期间维护的每个 ILF 计算一个 FTR。
  • 对于由 EP 维护和读取的每个 ILF,仅计算一个 FTR。

步骤 6.4:确定每个事务功能的功能复杂性

FTR 数据元素类型 (DET)
1-4 5-15 >=16
0-1 L L A
2 L A H
>=3 A H H

功能复杂性:L = 低;A = 平均值;H = 高

确定每个 EO/EQ 的功能复杂性,但 EQ 必须至少具有 1 FTR -

EQ 必须至少有 1 FTR

FTR

数据元素类型 (DET)
1-4 5-15 >=16
0-1 L L A
2 L A H
>=3 A H H

功能复杂性:L = 低;A = 平均值;H = 高

步骤 6.5:测量每个事务功能的功能规模

根据每个 EI 的功能复杂性来衡量其功能规模。

复杂 FP 计数
低的 3
平均的 4
高的 6

根据每个 EO/EQ 的功能复杂性来衡量其功能规模。

复杂 EO 的 FP 计数 EQ 的 FP 计数
低的 4 3
平均的 5 4
高的 6 6

步骤 7:计算功能规模(未调整的功能点数)

要计算功能大小,应遵循以下步骤 -

步骤7.1

回忆一下您在步骤 1 中发现的内容。确定计数类型。

步骤7.2

根据类型计算功能规模或功能点数。

  • 开发功能点统计请参见步骤7.3。
  • 应用功能点计数请参见步骤7.4。
  • 对于增强功能点计数,请转至步骤 7.5。

步骤7.3

开发功能点计数由两个功能组成部分组成 -

  • 应用程序功能包含在项目的用户需求中。

  • 转换功能包含在项目的用户需求中。转换功能由仅在安装时提供的功能组成,用于转换数据和/或提供其他用户指定的转换要求,例如特殊转换报告。例如,现有的应用程序可能会被新系统替换。

DFP = 添加 + CFP

在哪里,

DFP = 开发功能点数

ADD = 开发项目交付给用户的功能大小

CFP = 转换功能的大小

ADD = FP 计数 (ILF) + FP 计数 (EIF) + FP 计数 (EI) + FP 计数 (EO) + FP 计数 (EQ)

CFP = FP 计数 (ILF) + FP 计数 (EIF) + FP 计数 (EI) + FP 计数 (EO) + FP 计数 (EQ)

步骤7.4

计算应用功能点数

法新社=添加

在哪里,

AFP = 应用功能点数

ADD = 开发项目交付给用户的功能大小(不包括任何转换功能的大小),或计算应用程序时存在的功能。

ADD = FP 计数 (ILF) + FP 计数 (EIF) + FP 计数 (EI) + FP 计数 (EO) + FP 计数 (EQ)

步骤7.5

增强功能点计数考虑以下四个功能组成部分 -

  • 添加到应用程序的功能。
  • 应用程序中修改的功能。
  • 转换功能。
  • 从应用程序中删除的功能。

EFP = 添加 + CHGA + CFP + 删除

在哪里,

EFP = 增强功能点数

ADD = 增强项目添加的功能规模

CHGA = 增强项目改变的功能规模

CFP = 转换功能的大小

DEL = 增强项目删除的功能大小

ADD = FP 计数 (ILF) + FP 计数 (EIF) + FP 计数 (EI) + FP 计数 (EO) + FP 计数 (EQ)

CHGA = FP 计数 (ILF) + FP 计数 (EIF) + FP 计数 (EI) + FP 计数 (EO) + FP 计数 (EQ)

CFP = FP 计数 (ILF) + FP 计数 (EIF) + FP 计数 (EI) + FP 计数 (EO) + FP 计数 (EQ)

DEL = FP 计数 (ILF) + FP 计数 (EIF) + FP 计数 (EI) + FP 计数 (EO) + FP 计数 (EQ)

步骤8:确定数值调整系数

GSC 在 CPM 4.3.1 中成为可选的,并移至附录。因此,可以跳过步骤8和步骤9。

价值调整因子 (VAF) 基于 14 个 GSC,这些 GSC 对所统计的应用程序的一般功能进行评级。GSC 是独立于技术的用户业务约束。每个特征都有相关的描述来确定影响程度。

系统总体特性 简要描述;简介
数据通讯 有多少通信设施可以帮助应用程序或系统传输或交换信息?
分布式数据处理 如何处理分布式数据和处理功能?
表现 用户是否需要响应时间或吞吐量?
频繁使用的配置 执行应用程序的当前硬件平台的使用率如何?
交易率 每天、每周、每月等执行交易的频率如何?
在线数据输入 在线输入信息的百分比是多少?
最终用户效率 该应用程序是否旨在提高最终用户的效率?
在线更新 通过在线交易更新了多少个ILF?
复杂加工 该应用程序是否具有广泛的逻辑或数学处理?
可重复使用性 该应用程序是为了满足一个或多个用户的需求而开发的吗?
安装方便 转换和安装有多困难?
操作简便 启动、备份和恢复过程的有效性和/或自动化程度如何?
多个站点 该应用程序是否经过专门设计、开发并支持在多个组织的多个站点安装?
促进变革 该应用程序是否是专门为促进变革而设计、开发和支持的?

影响程度范围为0到5,从无影响到有强影响。

评分 影响程度
0 不存在或没有影响
1 附带影响
2 中等影响
3 平均影响力
4 显着的影响
5 全程影响力强

确定 14 个 GSC 中每一个的影响程度。

由此获得的 14 个 GSC 值的总和称为总影响度 (TDI)。

TDI = Σ 14影响度

接下来,计算价值调整因子 (VAF):

VAF=(TDI×0.01)+0.65

每个 GSC 的变化范围为 0 到 5,TDI 的变化范围为 (0 × 14) 到 (5 × 14),即 0(当所有 GSC 都为低时)到 70(当所有 GSC 都为高时),即 0 ≤ TDI ≤ 70。因此,VAF 的变化范围为 0.65(当所有 GSC 都较低时)到 1.35(当所有 GSC 都较高时),即 0.65 ≤ VAF ≤ 1.35。

步骤9:计算调整后的功能点数

根据使用 VAF 的 FPA 方法(V4.3.1 之前的 CPM 版本),这是由以下因素决定的:

调整后的 FP 计数 = 未调整的 FP 计数 × VAF

其中,未调整的 FP 计数是您在步骤 7 中计算的函数大小。

由于 VAF 的变化范围为 0.65 至 1.35,因此 VAF 对最终调整后的 FP 计数产生 ±35% 的影响。

功能点的好处

功能点很有用 -

  • 衡量解决方案的大小而不是问题的大小。

  • 因为需求是功能点计数所需的唯一内容。

  • 因为它独立于技术。

  • 因为它独立于编程语言。

  • 在评估测试项目时。

  • 估算总体项目成本、进度和工作量。

  • 在合同谈判中,它提供了一种更容易与业务团体沟通的方法。

  • 因为它对软件中功能的实际用途、接口和目的进行量化和赋值。

  • 与其他指标(例如工时、成本、人数、持续时间和其他应用程序指标)创建比率。

FP 存储库

国际软件基准测试标准组织 (ISBSG) 发展并维护两个 IT 数据存储库。

  • 发展及提升项目
  • 维护和支持应用程序

开发和增强项目存储库中有 6,000 多个项目。

数据以 Microsoft Excel 格式提供,使您可以更轻松地进行进一步分析,甚至可以将数据用于其他目的。

ISBSG 存储库许可证可以从 - http://www.isbsg.com/购买

ISBSG 为 IFPUG 会员提供 10% 折扣,使用折扣码“IFPUGMembers”进行网上购物。

ISBSG 软件项目数据发布更新可在以下位置找到:http://www.ifpug.org/isbsg/

COSMIC 和 IFPUG 合作制定了软件非功能和项目需求术语表。可以从 - cosmic-sizing.org下载