用例点
用例( UCP或UCP )是一种软件估计技术,用于预测软件开发项目的软件大小。当统一建模语言(UML)和合理统一过程(RUP)方法用于软件设计和开发时,使用UCP。 UCP的概念基于使用用例编写的系统的要求,这是UML建模技术集的一部分。软件尺寸(UCP)是根据系统用例的元素以及考虑到技术和环境考虑因素来计算的。然后,可以使用项目的UCP来计算项目的估计工作。
历史
UCP技术是由古斯塔夫·卡纳(Gustav Karner)于1993年开发的,该技术在当时被称为对客体系统时,后来又合并为理性软件,然后合并为IBM 。创建了UCP方法来解决以估计面向对象的系统的软件大小。它基于与功能点(FP)估计方法相似的原理,但是为基于用例的针对对象的系统和系统需求的特定需求而设计的。
方法
确定开发系统尺寸估计的方法是基于具有以下元素的计算:
- 未调整的用例重量(UUCW) - 说明用例的数量和复杂性的软件的点大小。
- 未经调整的演员体重(UAW) - 说明参与者数量和复杂性的软件的点大小。
- 技术复杂性因子(TCF) - 用于根据技术考虑的因素来调整大小的因素。
- 环境复杂性因子(ECF) - 用于根据环境考虑因素来调整大小的因子。
一旦计算了前四个要素,就可以计算最终大小估计值。该最终数字称为软件开发项目的用例或UCP。
以下各节详细介绍了各种计算,以确定项目的UCP。
未调整的用例重量(UUCW)
UUCW是导致正在开发软件大小的因素之一。它是根据系统用例的数量和复杂性计算得出的。为了找到系统的UUCW,必须根据用例包含的交易数来识别并归类为简单,平均或复杂的每个用例。每个分类都有一个预定义的重量。一旦所有用例都被归类为简单,平均或复杂的,总重量(UUCW)是通过将每个用例的相应权重求和来确定的。以下图表显示了根据交易数量和分类中每个用例分配的权重值的不同分类。
用例分类 | 交易数 | 重量 |
---|---|---|
简单的 | 1至3个交易 | 5 |
平均的 | 4至7交易 | 10 |
复杂的 | 8或更多交易 | 15 |
- uucw =(简单用例总数x 5) +(总数的平均用例x 10) +(总编号复杂用例x 15)
未经调整的演员体重(UAW)
UAW是有助于开发软件大小的另一个因素。它是根据系统的参与者的数量和复杂性来计算的。与找到UUCW相似,必须根据参与者的类型来识别并将每个参与者归类为简单,平均或复杂。每个分类还分配了预定义的权重。 UAW是每个演员的总权重。以下图表显示了参与者的不同分类和分配的权重值。
演员分类 | 演员的类型 | 重量 |
---|---|---|
简单的 | 必须使用定义明确的API与系统交互的外部系统 | 1 |
平均的 | 必须使用标准通信协议与系统交互的外部系统(例如TCP/IP,FTP,HTTP,数据库) | 2 |
复杂的 | 使用GUI应用程序接口的人类演员 | 3 |
- uaw =(简单演员的总数x 1) +(总数的平均演员x 2) +(总编号复杂演员x 3)
技术复杂性因子(TCF)
TCF是适用于软件估计尺寸的因素之一,以考虑系统的技术考虑。它是通过分配0(因子无关)和5(因子是必不可少的)来确定的,以对下表中列出的13个技术因素中的每个因素中的每个(必不可少)确定。然后将此分数乘以每个因素的定义加权值。所有计算值的总数是技术因素(TF)。然后使用TF用以下公式计算TCF:
- TCF = 0.6 +(TF/100)
因素 | 描述 | 重量 |
---|---|---|
T1 | 分布式系统 | 2.0 |
T2 | 响应时间/绩效目标 | 1.0 |
T3 | 最终用户效率 | 1.0 |
T4 | 内部处理复杂性 | 1.0 |
T5 | 代码可重复使用 | 1.0 |
T6 | 易于安装 | 0.5 |
T7 | 便于使用 | 0.5 |
T8 | 其他平台的可移植性 | 2.0 |
T9 | 系统维护 | 1.0 |
T10 | 并发/并行处理 | 1.0 |
T11 | 安全功能 | 1.0 |
T12 | 访问第三方 | 1.0 |
T13 | 最终用户培训 | 1.0 |
环境复杂性因子(ECF)
ECF是适用于软件估计大小的另一个因素,以说明系统的环境考虑。它是通过为下表中列出的8个环境因素中的每个因素分配0(无经验)和5(专家)的分数来确定的。然后将此分数乘以每个因素的定义加权值。所有计算值的总数是环境因子(EF)。然后使用EF用以下公式计算ECF:
- ECF = 1.4 +(-0.03 x EF)
因素 | 描述 | 重量 |
---|---|---|
E1 | 熟悉所使用的开发过程 | 1.5 |
E2 | 申请经验 | 0.5 |
E3 | 团队面向对象的体验 | 1.0 |
E4 | 主要分析师能力 | 0.5 |
E5 | 团队的动力 | 1.0 |
E6 | 要求的稳定性 | 2.0 |
E7 | 兼职人员 | -1.0 |
E8 | 艰难的编程语言 | -1.0 |
用例(UCP)
最后,一旦确定了未经调整的项目规模(UUCW和UAW),技术因素(TCF)和环境因素(ECF),就可以计算UCP。 UCP是根据以下公式计算的:
- ucp =(UUCW + UAW)X TCF X ECF
例子
为了说明计算UCP的过程,将使用在线购物系统。下图描述了要开发系统的用例图。
未调整的用例重量(UUCW)
要计算UUCW,必须定义用例,并确定每个用例的交易数量。在线购物系统用例图描绘了该系统存在九个用例。假设这些用例中的2个很简单,3个平均和4个复杂,则UUCW的计算如下:
- uucw =(简单用例总数x 5) +(总数的平均用例x 10) +(总编号复杂用例x 15)
- 对于在线购物系统,UUCW =(2 x 5) +(3 x 10) +(4 x 15)= 100
- UUCW = 100
未经调整的演员体重(UAW)
要计算UAW,必须确定参与者。在线购物系统用例图描绘了五个演员;对于每个人类用户的演员(即在线客户,营销管理员,仓库店员,仓库经理)的付款处理系统和四个复杂的一个简单。
- uaw =(简单演员的总数x 1) +(总数的平均演员x 2) +(总编号复杂演员x 3)
- 对于在线购物系统,UAW =(1 x 1) +(0 x 2) +(4 x 3)= 13
- uaw = 13
技术复杂性因子(TCF)
为了计算TCF,每个技术因素都是根据技术方面与所开发的系统的重要性分配值的。下图显示了在线购物系统的分配值。值乘以加权值,并确定总TF。
因素 | 描述 | 重量 | 分配的值 | 重量x分配值 |
---|---|---|---|---|
T1 | 分布式系统 | 2.0 | 5 | 10 |
T2 | 响应时间/绩效目标 | 1.0 | 5 | 5 |
T3 | 最终用户效率 | 1.0 | 3 | 3 |
T4 | 内部处理复杂性 | 1.0 | 2 | 2 |
T5 | 代码可重复使用 | 1.0 | 3 | 3 |
T6 | 易于安装 | 0.5 | 1 | 0.5 |
T7 | 便于使用 | 0.5 | 5 | 2.5 |
T8 | 其他平台的可移植性 | 2.0 | 2 | 4 |
T9 | 系统维护 | 1.0 | 2 | 2 |
T10 | 并发/并行处理 | 1.0 | 3 | 3 |
T11 | 安全功能 | 1.0 | 5 | 5 |
T12 | 访问第三方 | 1.0 | 1 | 1 |
T13 | 最终用户培训 | 1.0 | 1 | 1 |
总计(TF): | 42 |
接下来,计算TCF:
- TCF = 0.6 +(TF/100)
- 对于在线购物系统,TCF = 0.6 +(42/100)= 1.02
- TCF = 1.02
环境复杂性因子(ECF)
为了计算ECF,每个环境因素都是根据团队经验级别分配的值。下图显示了在线购物系统的分配值。该值乘以加权值,并确定总EF。
因素 | 描述 | 重量 | 分配的值 | 重量x分配值 |
---|---|---|---|---|
E1 | 熟悉所使用的开发过程 | 1.5 | 3 | 4.5 |
E2 | 申请经验 | 0.5 | 3 | 1.5 |
E3 | 团队面向对象的体验 | 1.0 | 2 | 2 |
E4 | 主要分析师能力 | 0.5 | 5 | 2.5 |
E5 | 团队的动力 | 1.0 | 2 | 2 |
E6 | 要求的稳定性 | 2.0 | 1 | 2 |
E7 | 兼职人员 | -1.0 | 0 | 0 |
E8 | 艰难的编程语言 | -1.0 | 4 | -4 |
总计(EF): | 10.5 |
接下来,计算ECF:
- ECF = 1.4 +(-0.03 x EF)
- 对于在线购物系统,ECF = 1.4 +(-0.03 * 10.5)= 1.085
- ECF = 1.085
用例(UCP)
一旦确定了未经调整的用例重量(UUCW),未调整的参与者重量(UAW),技术复杂性因子(TCF)和环境复杂性因子(ECF),就可以使用以下公式来计算使用情况点( UCP):
- ucp =(UUCW + UAW)X TCF X ECF
- 对于在线购物系统,UCP =(100 + 13)x 1.02 x 1.085 = 125.06
- UCP = 125.06
对于在线购物系统,开发软件的总估计尺寸为125.06用例点。
现在已经知道了项目的规模,可以估计项目的总努力。对于在线购物系统示例,将使用每个用例28小时。
- 估计工作= UCP X小时/UCP
- 对于在线购物系统,估计的工作= 125.06 x 28
- 估计工作= 3501小时
进一步的发展
用例点方法的一个主要弱点是,由于缺乏统计数量足够数量的项目,它从未使用回归分析对其进行彻底校准。此外,karners方法的线性模型不会考虑到软件开发项目中发生的规模不经济。尽管如此,易于适用的尺寸方法和计数规则为早期阶段的估计提供了许多好处,因此可以快速产生应用程序或IT产品的FSM(功能大小测量,在这种情况下为UUCW + UAW)。然后可以将此FSM与统计验证的估计模型(如Cocomo II)结合使用,以获得更可靠的估计结果。