COSMIC方法的度量分为三个阶段:

1 度量策略阶段

2 映射阶段

3 度量阶段

在度量策略阶段,主要包括四个活动:

1)确定度量目的:为什么执行本次度量。

比如你要度量一个房子的面积,是为了卖房子?是要装修?还是为了装中央空调?目的不同,度量的范围不同,度量的结果也不同。卖房子是要包含建筑面积与分摊面积的,装修房子要考虑套内面积与晾台面积,而装中央空调时只考虑套内面积,目的不同,度量的范围不同,度量出的结果也是不同的。

2)确定度量范围:究竟是度量哪些软件的规模。

COSMIC方法是度量软件的规模不是硬件的规模,所以首先要把软件与其周围的硬件区分开来,尤其是对嵌入式系统的度量;

COSMIC方法度量的是功能需求的规模,如果非功能性需求不能转化为功能需求,则不能度量规模,并非所有的非功能性需求都可以转化为功能性需求;

COSMIC方法可以度量整个软件包的规模,也可以度量某个软件、某个模块、某个具体功能、某个功能的某个技术分层的规模;

因此,需要根据度量目的,确定度量范围,度量目的决定了度量范围。

3)确定功能用户:是给谁用的功能或站在哪些用户的角度度量软件的规模。

功能用户就是与被度量软件打交道的人、设备或软件系统。功能用户不同,看到的软件功能不同,度量的范围,度量出来的规模也不同。比如手机软件,如果站在消费者的角度看到的是一个功能集合,如果站在电信运营商的角度看到的则是另外一个功能集合,软件为不同的用户提供了不同的功能。确定功能用户也是为了更精确的确定度量范围。

4)确定需求描述的详细程度。

需求描述的粗略则采用快速的、近似的方法度量规模,需求描述的详细则采用标准的方法进行度量。COSMIC方法支持项目早期的快速度量与需求明确以后的准确度量。

在映射阶段,主要包括四个活动:

1)识别功能处理。

功能处理是最小的、独立的、基本功能部件。每个软件的功能需求都可以拆分为功能处理。比如:增加一个人员、删除一个订单、查找一个部门、修改一个合同等等。

2)识别兴趣对象与数据组。

兴趣对象是软件处理的数据对象,需要软件输入、输出、读或写它,它可以是现实中的一个具体事物,也可以是一个概念。比如订单、人员、部门、合同等等。

数据组是兴趣对象的属性的子集。比如在某个系统中,人员是系统要处理的一个兴趣对象,人员有姓名、性别、年龄、出生地等属性,这些属性的任意一个组合就是一个数据组。

3)识别数据属性。

数据属性是兴趣对象的属性,描述了兴趣对象的一个特征。比如人的性别、年龄、出生地、所在部门等。

识别数据属性并非是必须的,如果不对标准的度量方法进行本地化扩展,可以不用识别数据属性。

4)识别数据移动。

任何一个功能处理都是由输入、输出、读、写构成的,输入、输出、读、写就是数据移动。在每个数据移动中都包含了加减乘除、and、or等数据运算,COSMIC方法不单独计算这些数据运算的规模。

度量阶段,主要包括四个活动:

1)新增需求计数

累加所有的功能处理中的输入、输出、读、写的个数得到功能处理的规模;

累加所有功能处理的规模得到被度量软件模块的规模;

在累加时注意剔除被度量范围内不同软件模块交互的功能点个数;

2)需求变更计数

某个功能处理新增的功能点数+变更的功能点数+删除的功能点数=本次需求变更的规模;

所谓的变更包括两种情况:

移动的数据组变化了:增加了属性、变更了属性;

数据移动附带的处理逻辑变化了;

3)本地化规则计数

一般情况下是不需要对标准的功能点估算方法做本地化的;

如果做了本地化,可以按本地化的规则进行计数;

可能的本地化规则如:

移动的数据组,如果属性个数差异比较大,则统计数据属性的个数,定义本地化规则;

移动数据组时,如果逻辑复杂度差比较大,则统计逻辑的复杂度,定义本地化规则;

4)生成度量报告

记录度量的结果,包括:

识别的功能处理,功能用户,触发事件,数据组,数据移动的类型与个数,作出的需求假设,最终的结果等;

在上述的四个阶段中,度量策略阶段在每个公司中通常都有固定的模式,所以花费的事件通常很短,主要的度量投入是在第二个阶段。完整的过程是3个阶段12个活动,但是实际上如果有固定的度量模式,如果不需要本地化规则可以简化到6-7个活动即可。

快速学习COSMIC方法之二:COSMIC方法的度量过程相关推荐

  1. php对英语单词,php英语单词,php常用英语单词,快速学习php编程语言!二

    php英语单词,php常用英语单词,帮助您快速学习php编程语言!掌握了php里面所涉及到的所有英语单词,能更好的帮助您快速理解php编程语言,让您学习php编程语言的速度快人十倍. commit 提 ...

  2. 在家如何快速学习编程,这 6 个方法很实用

    "大部分好的程序员编程并不是为了钱或名望,而只是因为纯粹的乐趣." - Linus Torvalds 最近,受疫情影响,不少同学只能呆在家学习编程.但也有部分同学反映,相比学校和公 ...

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

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

  4. 快速学习COSMIC之一:COSMIC方法的简单案例

    COSMIC方法是新一代的软件规模度量方法,其基本的原理很简单,就是度量软件需求中的输入.输出.读.写这4类数据移动的个数,我们通过2个简单的例子来说明其基本的原理. 案例一:针对MIS类软件的需求 ...

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

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

  6. 电脑学习方法_怎样快速学习和熟悉电脑知识?|从小白到大神的快捷方法

    本文面向刚刚接触电脑互联网的小白朋友们,或者在工作中经常用到电脑,但是水平很菜的菜鸟. 回想当年,毛毛虫起初接触电脑的时候,总是前怕狼后怕虎,点个鼠标,都担心会不会点错把电脑点死了. 多年来一直以为只 ...

  7. 零基础快速学习Java技术的方法整理

    在学习java技术这条道路上,有很多都是零基础学员,他们对于java的学习有着很多的不解,不知怎么学习也不知道如何下手,其实Java编程涉及到的知识点还是非常多的,我们需要制定java学习路线图这样才 ...

  8. 自学python方法-总算懂得快速学习python的方法

    随着Python的进一步发展,越来越多的现成的Python的机器学习的算法已经发布出来.为了可以更好地运用这些机器学习的算法,我们有必要对Python有个初步的了解.以下是小编为你整理的快速学习pyt ...

  9. JavaScript学习(五十二)—继承、call方法和apply方法

    JavaScript学习(五十二)-继承.call方法和apply方法 学习内容 一.继承 二.call方法 三.apply方法 一.继承 所谓继承就是两个构造方法建立起来的某种联系,通过某种联系,可 ...

  10. python爬虫学习之路(二)re库的使用方法

    python基础爬虫学习之路(二) 在上一篇文章中,我们已经学习了有关爬虫对URL的访问以及利用xpath表达式对网页中的信息进行提取,这一篇文章我们将从信息提取的角度来进一步学习爬虫. 正则表达式提 ...

最新文章

  1. 万能的Python,不仅能开发效率高,还能绘画各种漫画图像
  2. redis-cli报错:(error) MOVED 12706 (未以集群模式连接)
  3. 列表和表格---学习笔记02
  4. 20199计算机二级java答案_计算机二级Java练习题-2019.9
  5. 简述oracle数据库特殊状态,【OracleDB】 01 概述和基本操作
  6. 前端:JS/19/特殊运算符,运算符优先级,if条件判断语句,switch分支语句,while循环语句,for循环语句,break和continue循环控制语句,实例:九九乘法表
  7. Java多线程学习十七:读锁应该插队吗?什么是读写锁的升降级?
  8. 未来已来?揭开量子计算机的神秘面纱
  9. 蓝桥杯 ALGO-75 算法训练 筛选号码
  10. 印染面料产品出现纬斜疵病,应该怎么防止?
  11. oracle 韩思捷,oracle
  12. ctrl+alt+方向键 与win7的旋转屏幕冲突解决
  13. [luoguP3627][APIO2009]抢掠计划
  14. 数据持久化(Json,二进制,PlayerPrefs)
  15. IEEE1588v2解析(4)--透明时钟/一步时钟/二步时钟
  16. webrtc QOS方法四.2(拥塞算法学习)
  17. 使用Python对excel中的数据进行处理
  18. C语言Dialogbox添加图片,dialogbox_传奇服务端CloseBigDialogBox是什么意思
  19. 使用网络打印机进行“属性”和“首选项”设置时,弹出个浏览器.exe错误对话框
  20. 大三成长日记——第二弹(批处理bat篇)

热门文章

  1. 看完去怼面试官,Java尊享版性能调优分享给大家
  2. Tip | 佳能(EOS 750D) USB无法连接电脑
  3. Python 数据分析之 Numpy(一)
  4. 项目管理系统软件平台主要有哪些功能模块内容
  5. 基于JAVA疫情医疗物资管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
  6. 班级档案管理系统c课程设计语言,求助课程设计:班级档案管理系统:为什么文件保存有乱码...
  7. 【shell案例】判断主机是否在线
  8. KEIL5工程目录下面的组以及重要文件
  9. springboot审核功能怎么做_开发的微信小程序商城怎么利用分销功能做营销
  10. 如何规避企业财务风险