合理的度量需求变更的规模是COSMIC方法比第一代的功能点估算方法更科学的亮点。在度量需求的变更时,首先需要明确我们的度量目的,即我们要度量的是本次变更的规模,而不是变更之后的规模。明确目的后,要将变更的需求按照功能处理拆分,在一个需求变更中,可能存在几种情况:

1 新增的功能处理,此时按照前面讲的度量方法识别功能点即可;

2 删除的功能处理,被删除的功能处理的功能点个数即是本次变更的规模;

3 对已有的功能处理进行了变更,

这种情况又可以细分为三种情况:

新增了某些数据移动;

删除了某些数据移动;

修改了某些数据移动;

把修改的、删除的、新增的功能点累加起来即得到本次变更的规模。

新增与删除数据移动是很容易识别的,稍微复杂一点的是修改。什么是修改呢?

1)某数据移动的数据组做了变更:

新增了属性,减少属性,属性的含义或格式改变了。

数据移动、数据组、属性三者的关系再回顾一下,一个数据移动移动了一个数据组,而一个数据组包含多个属性,即:1个数据移动→1个数据组(属性1,属性2…属性n)。

2)某数据移动对应的数据运算改变了:

处理逻辑的修改。

我们通过一个简单的例子来解释上述的规则:

在一个人力资源管理系统中,有一个简单的功能性用户需求是录入员工的个人信息:

    需求版本1:

1)录入员工的个人信息,包括录入员工的姓名、身份证号、第一学历;

2)人员不可以重名。

这是变更之前的需求,其规模为:

子处理(数据移动)

类型

兴趣对象与数据组及其属性

功能点

输入人员信息

输入

人员(姓名、身份证号、第一学历)

1

校对是否重名

人员(姓名)

1

提示不能重名

输出

错误提示

1

保存人员信息

人员(姓名、身份证号、第一学历)

1

现在需求发生了改变,要求人员可以重名了。新需求为:

  需求版本2:

1)录入员工的个人信息,包括员工姓名、身份证号、第一学历;

2)人员可以重名。

则本次需求变更的规模为多少呢?

子处理(数据移动)

类型

兴趣对象与数据组及其属性

功能点

输入人员信息

输入

人员(姓名、身份证号、第一学历)

1

校对是否重名

人员(姓名)

1

提示不能重名

输出

错误提示

1

保存人员信息

人员(姓名、身份证号、第一学历)

1

当发生变更时,不需要校对是否重名了,就是删除了读这个功能点。原来需要提示不能重名,现在也不需要了,所以这个错误提示功能点也没有了,那么本次变更的规模就是2个功能点。

变更前的功能点数是4CFP,变更后的功能点数是2CFP,本次变更的规模是2CFP。

假如说需求又发生了变更,要求按照身份证的生成规则,校对身份证号的正确性,则就有了第3个版本的需求:

  需求版本3:

1)录入员工的个人信息,包括员工姓名、身份证号、第一学历;

2)人员可以重名;

3) 需要按照身份证号的规则简单校验身份证号的正确性,如果错误,则要提示重新录入。

校验规则如下:18位公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

此时,对于身份证号的校验是一个算法,根据校验结果生成了错误提示,这个错误提示是以前的需求没有的,因此是新增了一个功能点:输出错误提示。

这里不需要对校验身份证正确性识别一个读操作,因为读写的对象是持久性存储介质,身份证的校验规则写在程序中,没有向持久性存储介质读取规则的动作。

子处理(数据移动)

类型

兴趣对象与数据组及其属性

功能点

输入人员信息

输入

人员(姓名、身份证号、第一学历)

1

提示身份证号不正确

输出

错误提示

1

保存人员信息

人员(姓名、身份证号、第一学历)

1

变更前的功能点数是2CFP,变更后的功能点数是3CFP,本次变更的规模是1CFP。

假如需求又发生了改变,要求检查身份证号是否重复,因此,就有了第4个版本的需求:

  需求版本4:

1) 录入员工的个人信息,包括员工姓名、身份证号、第一学历;

2)  人员可以重名;

3)  身份证号不能重复;

4)  需要按照身份证号的规则简单校验身份证号的正确性,如果错误,则要提示重新录入。

规则如下:18位公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

此时对于输出错误提示的内容做了修改,会根据错误情况提示是身份证号重复还是位数有误,相当于该数据组的一个属性被修改了。同时,因为需要去持久性存储介质中读取已有的身份证号码,确认是否重复,因此也增加了一个读的数据移动。

子处理(数据移动)

类型

兴趣对象与数据组及其属性

功能点

输入人员信息

输入

人员(姓名、身份证号、第一学历)

1

校对身份证号是否重复

人员(身份证号)

1

提示录入出错或身份证号重复

输出

错误提示

1

保存人员信息

人员(姓名、身份证号、第一学历)

1

因此,变更前的功能点数是3CFP, 变更后的功能点数是4CFP,本次变更的规模是2CFP。

对于变更后的功能点数,虽然有两个错误提示消息,但在一个功能处理内所有不包含用户感兴趣的其他信息的错误/确认消息,都要合并为一个输出。

快速学习COSMIC方法之十五:如何度量需求变更的规模相关推荐

  1. 快速学习COSMIC方法之十四:嵌入式软件功能点识别案例

    前面的几讲,我们讲完了如何计算功能点的方法,接下来我们看一个完整的案例.这是COSMIC官方网站上曾经发布的一个嵌入式软件的案例,有多个版本,我们改编自其中一个版本来讨论一下. 需求描述如下: 1. ...

  2. 快速学习COSMIC方法之二:COSMIC方法的度量过程

    COSMIC方法的度量分为三个阶段: 1 度量策略阶段 2 映射阶段 3 度量阶段 在度量策略阶段,主要包括四个活动: 1)确定度量目的:为什么执行本次度量. 比如你要度量一个房子的面积,是为了卖房子 ...

  3. 快速学习COSMIC方法之九:如何识别兴趣对象?

    兴趣对象是COSMIC方法中一个关键的概念.它影响了我们识别的功能点的多少.兴趣对象是描述中在功能需求中的.功能用户感兴趣的事物,它可以是一个具体的东西,也可以是一个抽象的概念,系统一定要对它执行输入 ...

  4. 快速学习COSMIC方法之十一:如何识别输入?

    在COSMIC方法中,功能处理可拆分为四种数据移动:输入,输出,读,写.数据移动是最小的.不可再拆分的.软件内部的动作.在数据移动中包含了算术运算如加减乘除,关系运算如等于.不等于,逻辑运算如与或非, ...

  5. 快速学习COSMIC方法之七:如何理解功能处理的定义?

    在COSMIC度量手册中对功能处理的定义如下: a) 体现了待度量软件的功能性用户需求基本部件的一组数据移动,该功能处理在这些FUR中是独一无二的,并能独立于这些FUR的其他功能处理被定义. b) 一 ...

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

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

  7. 深度学习入门笔记(十五):深度学习框架(TensorFlow和Pytorch之争)

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引...

    Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 原文:Introduction to 3 ...

  9. 未处理异常和C++异常——Windows核心编程学习手札之二十五

    未处理异常和C++异常 --Windows核心编程学习手札之二十五 当一个异常过滤器返回EXCEPTION_CONTINUE_SEARCH标识符时是告诉系统继续上溯调用树,寻找另外的异常过滤器,但当每 ...

最新文章

  1. 程序员的职业素养(读书笔记)-- 第一章
  2. 初探JavaScript(一)——也谈元素节点、属性节点、文本节点
  3. ASP获取地址栏URL地址方法
  4. 【译】Typescript的类型(二)
  5. 反汇编学习笔记2 函数的本质
  6. 暑期训练日志----2018.8.24
  7. 百度云服务器安装git并做远程仓库
  8. jqery 实现滚动图片【三】
  9. (五)Netty之Selector选择器
  10. 各种排序总结(三)堆排序
  11. 给 Android 开发者的 Kotlin 教程(一)
  12. Lazada市场大数据分析,东南亚年轻群体的消费趋势!
  13. httpwatch详解
  14. 软件工程第三次作业——软件质量保证鄙见
  15. UR机器人返回信息格式解析
  16. Python预测2022世界杯1/8决赛胜负
  17. 走进“开源SDR实验室” 一起玩转GNU Radio:AGC自动增益控制
  18. 爬虫日常-selenium登录12306,绕过验证
  19. dede中直接编写php文件夹,织梦php如何打包文件夹呢? 直接上代码了
  20. 软件怎样作用于硬件!!?

热门文章

  1. Armadillo11还提供统计函数并支持复数
  2. ps4将图片弄成透明图片
  3. 计算机毕业设计(67)php小程序毕设作品之校园二手书交易小程序系统
  4. 2021年R1快开门式压力容器操作免费试题及R1快开门式压力容器操作考试技巧
  5. VMware运维干货分享:使用ESXICLI命令查询,网卡,HBA,RIAD卡信息
  6. 荣耀v40pro和荣耀v30pro的区别
  7. Java程序员开发常用的工具
  8. vector转换成数组
  9. 正则 表达式 gim参数总结
  10. 生产制造追溯系统-在线打印