英文名: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],给予不同权重。

表1 用例分类权重对应表

用例类别

说明

权重

简单(小)

基本流的步骤不超过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考查对象是整个估算范围。本文给出的方法是对各模板分别考查,因此采用如下简化取值标准。

表2 项目TCF取值标准

权重

标准

0.8

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

1

代表一般

1.2

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

第三步 计算ECF

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

表3 项目ECF取值标准

权重

标准

0.8

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

1

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

1.2

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

最后一步 计算AUCP

AUCP是指Adjusted Use Case Points。

首先以模块为单元来进行归类,识别模块的TCF和ECF,得到模块的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总和后再乘以TCF和ECF,TCF和ECF都是考查估算范围整体情况,分别只有一个值。本文给出的调整UCP方法在实践中更为简单,并且分模块考查,更为细致及准确,得到了实践者的欢迎。

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

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

    复用后的规模估算 需求复用 在需求可复用的情况下,识别可复用的用例所占的完成度,求和可得初始折算已完成用例点数,规模数据为全部用例点数减去初始折算已完成用例点数,以折算已完成用例点数来跟踪进度时,注意 ...

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

    用例点表达进度 识别用例的状态 根据生命周期要求,识别用例的状态及转移. 典型的如瀑布型,一般依次有如下状态:用例识别,用例确认,用例已设计,用例已编码,用例已测试. 采用测试驱动开发(TDD)的一个 ...

  3. 基于用例点来度量软件规模并管理进度 之结束语

    这篇文章是我在2009年到2010年写完成的. 按照了严谨的学术论文格式所写,在2010年投过一次稿,被退回了. 后来,我曾经把它上传到水木清华的软件工程版上,在首届中国UML认证专家委员会组建时,我 ...

  4. 《基于图像识别的垃圾分类应用》 软件项目组织与管理 课程设计

    <基于图像识别的垃圾分类应用> 软件项目组织与管理 课程设计 摘要 目前垃圾处理的主要方法有露天堆放.卫生填埋.焚烧.堆肥,这些传统的垃圾处理方式,释放出大量有害物质严重污染环境.危害生物 ...

  5. 怎么度量软件规模:代码行技术?LOC(Lines of Code,代码行)估算代码尺寸

    软件工程是一项工程,所以我们要去度量软件开发项目的规模,那我们应该怎么去度量呢?衡量标准是什么?最简单的就是代码行估算技术.什么是代码行呢?就是LOC(Lines of Code,代码行)估算代码尺寸 ...

  6. 基于Team Fundation Server 的Task软件生产与管理

    前段时间刚跳公司的SPM研发项目,在即将离别之际自己总结了在项目所得所失,感慨万千呀,虽然该项目在我个人心中应该算一个失败的项目(研发项目吗,都说是无底洞),但项目的一些规范与管理方式我个人认为还是可 ...

  7. 快速学习COSMIC软件规模度量方法

    转载:快速学习COSMIC软件规模度量方法 – 绿盟科技技术博客 最近与某运营商开展合作项目时,客户需要我方输出一份COSMIC软件规模度量数据用于评估项目预算,由于此前未接触过COSMIC软件规模度 ...

  8. (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算

    文章目录 一:软件项目管理综述 (1)管理 (2)软件项目管理 二:估算软件规模 (1)代码行技术 A:定义 B:方法 C:优缺点 (2)功能点技术 A:定义 B:信息域特性 C:估算功能点的步骤 ① ...

  9. 软件度量始于规模,终于规模

    1 项目初期的度量 无论是甲方还是乙方,希望在项目初期,能够做出一个合理的预算,确定项目的报价.当我们有了初步需求之后,可以对需求进行快速的功能点估算,估算出功能点后,根据历史的单位规模的成本基线,得 ...

最新文章

  1. Keil 函数内联 inline
  2. linux内核input子系统解析
  3. 每天一道LeetCode-----找到二叉树所有和为给定值的路径
  4. android视图工具,android studio的HierarchyViewer工具如何知道android屏幕的视图属性
  5. linux mate eth0已下线,Linux Mint 18 Cinnamon 版和 MATE 版已经可以下载了
  6. DELPHI之常用函数
  7. c语言成绩等级switch语句,请高手 帮忙做一道c语言题 编程,把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90):...
  8. metricbeat监控多个linux_Azure 虚拟机内存利用率监控(2)
  9. 关于Chrome出现Provisional headers are shown无法正常访问的解决方案(其他firefox,360, IE访问正常) (转)...
  10. GoogleTest测试C++代码
  11. iOS - AVAudioSession详解
  12. android一键刷机工具,刷机也能如此轻松 Android一键刷机工具
  13. Unity3d C#实现语音合成(TTS)试听并选择路径保存下载功能(含源码)
  14. Python计算二项分布教程
  15. HDU - 4567 Brilliant Programmers Show 2013长沙邀请赛
  16. 求模 和 求余 的区别
  17. EDK II Module Writers Guide上
  18. JAVA计算机毕业设计中华二十四节气文化传承宣展平台Mybatis+源码+数据库+lw文档+系统+调试部署
  19. vt-x+linux子系统,虚拟机安装linux 系统(二 )解决 Intel VT-x 报错
  20. Android品牌手机,手机坑合集,手机厂商

热门文章

  1. 没有与这些操作数【】匹配的运算符_[02]java数据类型和运算符等知识
  2. python高阶函数filter_python 高阶函数之filter
  3. wxpython应用程序对象与顶级窗口_wxPython--学习笔记
  4. 程序自动启动_如何在Gnome Shell上自动启动程序
  5. linux系统是否支持gpt分区,Linux下进行GPT分区
  6. java ntpudpclient_Java代码获取NTP服务器时间
  7. html5 div css 页签,div css 实现tabs标签的思路及示例代码
  8. java动效_Android 界面漩涡扭曲动效实现
  9. php编写一个学生类_Python零基础入门之编写测试实例
  10. python连接服务器代码_python服务器端收发请求的实现代码