基于用例点来度量软件规模并管理进度 之一

英文名:Based on use case points to measure software size and manage the progress

摘 要 

本文针对软件项目的规模度量和进度管理,提出了一种新的以用例点的方式来表达和跟踪的方法。本文详细介绍了经过调整过的用例点度量方法,舍弃了角色对应的用例点数,对用例分类给出了更严格的要求,采用了更细致的步骤定义,并限制了复杂用例的最多步骤。用例的状态完成度得到区分,在此基础上建立了过程中用例的进度跟踪方法。最后并阐述了在需求可复用情况下的使用方式。

关键词 

用例点 软件规模 进度 度量


Abstract This paper purposed a new method of measuring software size and tracking progress for size and progress management of software project. The detail of use case points counting is illustrated, Use Case Points  of the roles are abandoned, Classification of use cases are given more stringent requirements,  a more detailed definition of the step is used,  and the maximum of steps in the complex use cases is limited. Completion degree of the state of use case is distinguished, and based on this the method of tracking progress of ongoing use cases is setup. And further usage in re-use requirements is also covered.

Keywords Use Case Point, Software size, progress, measure


引言

软件规模度量方面,存在了不少难题:

1,开发语言发展快,最新的IDE能够自动生成大量代码

2,维护升级项目的规模难于估算

3,软件复用后的规模难于估算

4,不同软件项目的规模相关的比较

传统软件规模度量采用源代码行数,但源代码行数有明显的缺点。因此当前在软件行业,发展出了多种软件项目规模的度量方法,较有代表性的如下几种:

Function Points 缩写FP

Use Case Points 缩写UCP

User Story Points 

本文根据实践,参照原UCP方法[参考文献1],介绍了一种新的以用例点为单位的软件规模表达方法,并利用这个方法表达软件开发过程中的进度,对上述的问题进行了处理。


用例点表达规模

第一步 计算UCP

首先得到用例点数(UCP- Use Case Points ),原UCP中用例点数由角色的用例点数与用例的用例点数加和得到。本文介绍方法只计用例的用例点数。因为角色的用例点数所占比重很小,一般不超过2%

用例点数的计算方法是把用例分成三类,用例分析方法源自于经典用例分析方法[参考文献2],给予不同权重。

用例分类权重对应表

用例类别

说明

权重

简单(小)

基本流的步骤不超过3步,备选流或异常不超过3个。

比如简单用户界面或一般API

5

普通(中)

基本流的步骤有4~7步,备选流或异常不超过6个。

比如普通界面或复杂API

10

复杂(大)

基本流的步骤 8~ 12步,备选流或异常不超过9个。

比如复杂的用户界面或过程

15

上述说明中的四个关键名词的解释如下。

Ø 步骤——步骤定义为单个角色的原子操作。在一个步骤之内,只说明一个角色的连续动作,角色不发生转移;角色变换,是新的步骤。

Ø 基本流——也有称为主成功场景,达成用例目标的事件流。

Ø 备洗流——也有称为失败场景,基本流之外的不能达到用例目标的事件流。

Ø 异常——在基本流中直接说明的异常情况。

用例分类分析的要点有如下。

Ø 不遗漏,要能全面的反映软件需求,不能有任何遗漏的功能。

Ø 不重复,相同的功能不要反复说明。这会影响数量的统计。

Ø 考虑所含信息要充分。

Ø 都可以被黑盒测试。

Ø 一般的API用例,即使过程较为复杂,还是简单用例。

Ø 备选流和异常数量多时,提升用例的复杂度。

Ø 某一步骤是特别复杂(如一个步骤中角色的连续动作超过5个),提升用例的复杂度。

Ø 用例基本流步骤超过12步,分拆用例。

根据以上对应表和规则,对用例进行识别,然后把计算出各类别的用例数量,分别乘以权重,取总和就得到用例的用例点数。公式为:

UCP = ∑ 各类型用例数量 对应的权重


第二步 计算TCF

TCF是指 Technical Complexity Factor,技术复杂因数。原UCP方法设计了13个提问,每个提问都设置了各自的权重,根据提问,给出从0~5的影响值,然后各权重乘于影响值,再取和得TCF。原TCF考查对象是整个估算范围。本文给出的方法是对各模板分别考查,因此采用如下简化取值标准。

项目TCF取值标准

权重

标准

0.8

代表简单, 没有技术难点,30%以上部分有参考对象

1

代表一般

1.2

代表复杂有困难,30%以上部分没有先例,需要尝试新技术,比如支持不熟悉的操作系统


第三步 计算ECF

ECF是指 Environment Complexity Factor, 环境复杂因数。原UCP方法设计了8个提问,每个提问都设置了各自的权重,根据提问,给出从0~5的影响值,然后各权重乘于影响值,再取和得ECF。原ECF考查对象是整个估算范围。本文给出的方法是对各模板分别考查,因此采用如下简化取值标准。

项目ECF取值标准

权重

标准

0.8

代表主要开发人员熟悉类似项目,开发者必须有2年以上的项目经历或作为技术负责人(或主要参与人)经历二个相似项目

1

开发者必须有1年以上的项目经历或作为技术负责人(或主要参与人)经历至少一个相似项目

1.2

开发者只有不到1年的项目经历,或没有项目经历,并且没有作为技术负责人经历相似项目


最后一步 计算AUCP

AUCP是指Adjusted Use Case Points

首先以模块为单元来进行归类,识别模块的TCFECF,得到模块的AUCP,再合计得到总的AUCP。公式为AUCP = UCP * TCF * ECF。见下计算表格表4为例。

得到了总的AUCP后,就可以根据生产率来估算所需的工作量。

4 UCP计算表格例子

模块

用例

UCP

TCF

ECF

AUCP

简单

普通

复杂

录入

6

3

1

75

1

1.2

90

查询

15

10

5

250

0.8

1

200

总计

 

 

 

325

 

290

   说明:原UCP方法是计算得到UCP总和后再乘以TCFECFTCFECF都是考查估算范围整体情况,分别只有一个值。本文给出的调整UCP方法在实践中更为简单,并且分模块考查,更为细致及准确,得到了实践者的欢迎。








你可能感兴趣的:(软件工程)