- 估算技术教程
- 估算技术 - 首页
- 估算技术 - 概述
- 估算技术 - 功能点
- 估算技术 - 功能点计数
- 估算技术 - 用例
- 估算技术 - 德尔菲法
- 估算技术 - 三点估算
- 估算技术 - PERT
- 估算技术 - 类比估算
- 估算技术 - 工作分解结构 (WBS)
- 估算 - 扑克计划
- 估算技术 - 测试
- 估算技术资源
- 估算技术 - 快速指南
- 估算技术 - 资源
- 估算技术 - 讨论
估算技术 - 用例点
用例是一系列用户与系统之间相关的交互,使用户能够实现目标。
用例是一种捕获系统功能需求的方法。系统的用户被称为“参与者”。用例本质上是文本形式的。
用例点 – 定义
用例点 (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