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

英文名:Basedonusecasepointstomeasuresoftwaresizeandmanagetheprogress

摘 要

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

关键词

用例点软件规模进度度量


AbstractThispaperpurposedanewmethodofmeasuringsoftwaresizeandtrackingprogressforsizeandprogressmanagementofsoftwareproject.Thedetailofusecasepointscountingisillustrated,UseCasePointsoftherolesareabandoned,Classificationofusecasesaregivenmorestringentrequirements,amoredetaileddefinitionofthestepisused,andthemaximumofstepsinthecomplexusecasesislimited.Completiondegreeofthestateofusecaseisdistinguished,andbasedonthisthemethodoftrackingprogressofongoingusecasesissetup.Andfurtherusageinre-userequirementsisalsocovered.

KeywordsUseCasePoint,Softwaresize,progress,measure


引言

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

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

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

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

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

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

FunctionPoints缩写FP

UseCasePoints缩写UCP

UserStoryPoints

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


用例点表达规模

第一步计算UCP

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

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

1用例分类权重对应表

用例类别

说明

权重

简单(小)

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

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

5

普通(中)

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

比如普通界面或复杂API

10

复杂(大)

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

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

15

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

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

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

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

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

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

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

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

Ø考虑所含信息要充分。

Ø都可以被黑盒测试。

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

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

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

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

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

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


第二步计算TCF

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

2项目TCF取值标准

权重

标准

0.8

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

1

代表一般

1.2

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


第三步计算ECF

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

3项目ECF取值标准

权重

标准

0.8

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

1

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

1.2

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


最后一步计算AUCP

AUCP是指AdjustedUseCasePoints

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

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

4UCP计算表格例子

模块

用例

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方法在实践中更为简单,并且分模块考查,更为细致及准确,得到了实践者的欢迎。








评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值