估算技术 - 用例点



用例是一系列用户与系统之间相关的交互,使用户能够实现目标。

用例是一种捕获系统功能需求的方法。系统的用户被称为“参与者”。用例本质上是文本形式的。

用例点 – 定义

用例点 (UCP)是一种软件估算技术,用于使用用例来衡量软件规模。UCP 的概念类似于功能点。

项目中的 UCP 数量基于以下因素:

  • 系统中用例的数量和复杂性。
  • 系统中参与者的数量和复杂性。
    • 各种非功能性需求(例如可移植性、性能、可维护性),这些需求未以用例的形式编写。

    • 项目将开发的环境(例如语言、团队的积极性等)。

使用 UCP 进行估算要求所有用例都以目标编写,并且大致处于同一级别,提供相同数量的细节。因此,在估算之前,项目团队应确保他们编写的用例具有明确的目标和详细的级别。用例通常在一个会话内完成,并且在实现目标后,用户可以继续执行其他活动。

用例点历史

用例点估算方法由 Gustav Karner 于 1993 年提出。这项工作后来被 Rational Software 授权,后者并入 IBM。

用例点计数过程

用例点计数过程包含以下步骤:

  • 计算未调整的 UCP
  • 根据技术复杂性进行调整
  • 根据环境复杂性进行调整
  • 计算调整后的 UCP

步骤 1:计算未调整的用例点。

首先,您可以通过以下步骤计算未调整的用例点:

  • 确定未调整的用例权重
  • 确定未调整的参与者权重
  • 计算未调整的用例点

步骤 1.1 – 确定未调整的用例权重。

步骤 1.1.1 – 查找每个用例中的事务数量。

如果用例是用用户目标级别编写的,则事务相当于用例中的一个步骤。通过计算用例中的步骤数来查找事务数。

步骤 1.1.2 – 根据用例中的事务数量,将每个用例分类为简单型、平均型或复杂型。此外,分配用例权重,如下表所示:

用例复杂度 事务数量 用例权重
简单型 ≤3 5
平均型 4 到 7 10
复杂型 >7 15

≥8

步骤 1.1.4 – 使用下表查找未调整的用例权重 (UUCW):

用例复杂度 用例权重 用例数量 乘积
简单型 5 NSUC(简单用例数) 5 × NSUC
平均型 10 NAUC(平均用例数) 10 × NAUC
复杂型 15 NCUC(复杂用例数) 15 × NCUC
未调整的用例权重 (UUCW) 5 × NSUC + 10 × NAUC + 15 × NCUC

其中:

NSUC 是简单用例的数量。

NAUC 是平均用例的数量。

NCUC 是复杂用例的数量。

步骤 1.2 – 确定未调整的参与者权重。

用例中的参与者可能是人、另一个程序等。某些参与者,例如具有已定义 API 的系统,需求非常简单,只会稍微增加用例的复杂性。

某些参与者,例如通过协议交互的系统,需求更多,会在一定程度上增加用例的复杂性。

其他参与者,例如通过 GUI 交互的用户,会对用例的复杂性产生重大影响。基于这些差异,您可以将参与者分类为简单型、平均型和复杂型。

步骤 1.2.1 – 将参与者分类为简单型、平均型和复杂型,并分配参与者权重,如下表所示:

参与者复杂度 示例 参与者权重
简单型 具有已定义 API 的系统 1
平均型 1 2
复杂型 通过协议交互的系统 3

2

通过 GUI 交互的用户

参与者复杂度 参与者权重 3 乘积
简单型 1 步骤 1.2.2 – 对每个参与者重复此步骤,并获取所有参与者权重。未调整的参与者权重 (UAW) 是所有参与者权重的总和。 步骤 1.2.3 – 使用下表查找未调整的参与者权重 (UAW):
平均型 2 参与者数量 NSA(简单参与者数)
复杂型 3 1 × NSA NAA(平均参与者数)
2 × NAA NCA(复杂参与者数)

其中:

3 × NCA

未调整的参与者权重 (UAW)

1 × NSA + 2 × NAA + 3 × NCA

NSA 是简单参与者的数量。

NAA 是平均参与者的数量。

NCA 是复杂参与者的数量。

步骤 1.3 – 计算未调整的用例点。

未调整的用例权重 (UUCW) 和未调整的参与者权重 (UAW) 一起给出系统的未调整大小,称为未调整的用例点。

未调整的用例点 (UUCP) = UUCW + UAW

接下来的步骤是根据技术复杂性和环境复杂性调整未调整的用例点 (UUCP)。 步骤 2:根据技术复杂性进行调整 步骤 2.1 – 考虑 13 个影响项目技术复杂性对用例点的影响的因素及其相应的权重,如下表所示:
因素 描述 2.0
权重 T1 1.0
分布式系统 5 1.0
T2 响应时间或吞吐量性能目标 1.0
4 T3 1.0
最终用户效率 4 .5
T4 复杂的内部处理 .5
3 T5 2.0
代码必须可重用 3 1.0
T6 易于安装 1.0
2 T7 1.0
易于使用 2 1.0
T8 可移植性 1.0

2

T9

易于更改

2

T10

接下来的步骤是根据技术复杂性和环境复杂性调整未调整的用例点 (UUCP)。 步骤 2:根据技术复杂性进行调整 并发 2 T11
因素 描述 2.0
权重 T1 1.0
分布式系统 5 1.0
T2 响应时间或吞吐量性能目标 1.0
4 T3 1.0
最终用户效率 4 .5
T4 复杂的内部处理 .5
3 T5 2.0
代码必须可重用 3 1.0
T6 易于安装 1.0
2 T7 1.0
易于使用 2 1.0
T8 可移植性 1.0
包含特殊安全目标

3

T12

为第三方提供直接访问

3

接下来的步骤是根据技术复杂性和环境复杂性调整未调整的用例点 (UUCP)。 步骤 2:根据技术复杂性进行调整 步骤 2.1 – 考虑 13 个影响项目技术复杂性对用例点的影响的因素及其相应的权重,如下表所示:
T13 需要特殊的用户培训设施 1.5
3 这些因素中的许多都代表项目的非功能性需求。 .5
步骤 2.2 – 对这 13 个因素中的每一个,评估项目并从 0(无关)到 5(非常重要)进行评分。 步骤 2.3 – 根据因素的影响权重和项目的评分值计算因素的影响: 1.0
因素的影响 = 影响权重 × 评分值 步骤 (2.4) – 计算所有因素影响的总和。这将得出总技术因素 (TFactor),如下表所示: .5
权重 (W) 评分值 (0 到 5) (RV) 1.0
影响 (I = W × RV) 总技术因素 (TFactor) 2.0
步骤 2.5 – 计算技术复杂性因素 (TCF): TCF = 0.6 + (0.01 × TFactor) -1.0
步骤 3:根据环境复杂性进行调整 步骤 3.1 – 考虑 8 个可能影响项目执行的环境因素及其相应的权重,如下表所示: -1.0

F1

熟悉所使用的项目模型

2

4

接下来的步骤是根据技术复杂性和环境复杂性调整未调整的用例点 (UUCP)。 步骤 2:根据技术复杂性进行调整 并发 2 T11
T13 需要特殊的用户培训设施 1.5
3 这些因素中的许多都代表项目的非功能性需求。 .5
步骤 2.2 – 对这 13 个因素中的每一个,评估项目并从 0(无关)到 5(非常重要)进行评分。 步骤 2.3 – 根据因素的影响权重和项目的评分值计算因素的影响: 1.0
因素的影响 = 影响权重 × 评分值 步骤 (2.4) – 计算所有因素影响的总和。这将得出总技术因素 (TFactor),如下表所示: .5
权重 (W) 评分值 (0 到 5) (RV) 1.0
影响 (I = W × RV) 总技术因素 (TFactor) 2.0
步骤 2.5 – 计算技术复杂性因素 (TCF): TCF = 0.6 + (0.01 × TFactor) -1.0
步骤 3:根据环境复杂性进行调整 步骤 3.1 – 考虑 8 个可能影响项目执行的环境因素及其相应的权重,如下表所示: -1.0
F2

应用程序经验

4

F3

面向对象经验

3

F4

首席分析师的能力

  • 3

  • F5

  • 积极性

  • 3

  • F6

稳定的需求

  • 2

  • F7

  • 兼职员工

  • 2

复杂的编程语言
2