在COSMIC度量手册中对功能处理的定义如下:

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

b) 一个功能处理只有一个触发输入。每个功能处理在接受到由其触发输入数据移动所移动的一个数据组后,开始进行处理。

c)一个功能处理的数据移动的集合是响应触发输入的所有可能的功能性需求所需要的集合。

注1:实现时,一个功能处理实例,在收到一个触发输入实例移动的数据组实例时,才开始执行处理。

注2:除了触发输入外,一个功能处理的FUR可能需要一个或多个其他的输入。

注3:如果功能用户发送了包含错误的数据组,例如,由于传感器失灵,或者人输入的命令存在错误,通常是由功能处理来判断事件是否确实发生、和/或输入的数据是否有效、以及如何响应。

注4:一个功能处理是独一无二的(正如a)所述),如果该功能处理是由一个在FUR中独一无二的触发事件所触发,那么它的总规模必须包含在FUR内。在相同FUR中,即使有两个或多个功能处理它们的功能相似,它们也可能是独一无二的。

这个定义,是我们识别功能处理的基础,要深刻理解其含义:

1 功能处理是软件功能需求中的一个功能部件。

 所谓部件,是指一个能够独立存在的功能。

什么是独立存在呢?不同的功能之间有严格或非严格的操作顺序,它们算不算独立存在的功能部件呢?我们看如下的场景:

案例1: 必须先录入了人员信息,才能查询人员信息,否则啥也查不到,那么查询人员信息算不算一个可以独立存在的功能呢?算!此时不考虑不同功能之间的数据依赖关系。

案例2: 比如先下订单,才能结算,那么结算算不算一个可以独立存在的功能呢?算!下了订单也未必一定要结算!

案例3 : 在一个读后修改的案例中,需要先查询出订单的简单信息,才能再查询其详细信息,然后修改保存它。此时:查询订单概要,查询订单详细,修改订单是有严格的先后执行顺序的,上一步操作是下一步的基础,此时算不算单独的功能处理呢?算!因为查询订单概要后,功能用户也可以不再查询订单详细,退出该功能,这也是功能用户的一个独立的使用目的,并没有规定一定要查询完概要后,必须查询订单明细,是否查询订单明细是由功能用户选择决定的,不是由系统作出的决策,所以这种由客户独立作出决策的且都是对用户有意义的决策都包含了不同的功能处理。

对于“独立”的理解可以解释为,如果执行了A功能,则未必一定执行B功能,A和B就是独立的,是否执行B功能不是由被度量的软件决定的,而是由外部的功能用户决定的。反之亦然。

 2 功能处理是一个基本功能部件。

所谓基本部件,是指不能够再细拆分的功能,不能再拆分为其他的功能。

比如:

案例4 : 在一个人员管理的软件中,人员信息的维护就是一个能够独立存在功能,它就是一个功能部件。

人员信息的维护可以拆分为增加人员信息,删除人员信息,修改人员信息,查询人员信息,那么人员信息的维护就不是一个基本部件,因为它还可以再拆分为其他独立存在功能。

那么增加人员信息是否是一个基本部件呢,它是否还可以再拆分为能够独立存在的功能部件呢?再往下细拆分,就没有独立存在的价值了,所以增加人员信息就是一个基本功能部件,就是功能处理了。

3 一个功能处理只有一个触发输入。

功能处理由触发输入所启动,触发输入是一个功能处理的第1个数据移动,一个功能处理的第一个数据移动一定是输入。

可以由多个不同的触发事件被功能用户所感知,而产生同一个触发输入。一个功能处理不能有多个触发输入,不同的触发输入启动不同的功能处理。

识别出功能处理的数据移动后,一定要有一个输入,否则,这个功能处理可能就识别的不正确。

输入是由功能用户产生的,是来自功能处理外部的。输入不是由存储介质产生的,功能处理与存储介质的数据移动是读和写。

可以由系统时钟产生触发输入。

4 功能处理要达到目的后才能结束。

案例5 : 在我们安装windows操作系统时,我们在安装过程中发生和系统的多次交互,系统让我们选择下一步:

此时对于用户而言也面临一个选择,要么选择下一步,要么点红叉,退出,此时点击红叉退出对用户而言就没有意义了,因为这个功能的目的是安装软件,你点击红叉不是安装软件的一个子目的,没有意义,所以此时选择下一步不是一个功能处理。

你不能将一个完整执行的功能处理与一个半途而废的功能处理识别为两个不同的功能处理。

5 功能处理在一个度量范围是不能重复出现的。

什么是不能重复出现呢?即功能处理的目的是相同的、功能处理中的数据移动也是完全相同的。在一个被度量软件中,在需求中有可能可以识别出两种情况的复用,一种是需求中有重复的部分数据移动,这部分重复的数据移动是在各自的功能处理中分别度量的;另一种情况是需求中重复的功能是一个单独的功能处理,这部分重复的功能满足功能处理的定义与识别规则,此时不能重复度量,要单独视为一个功能处理,计数一次。

有时候两个功能处理识别出的数据移动是一样的,即数据移动的类型相同,移动的数据组类型也相同,功能点的个数也相同,但是未必是合并为一个功能处理,为什么呢,因为其功能的目的是不同的,而且客户在FUR中明确区分了是两个功能。比如,对一个人员信息的新增与修改功能。

深刻理解功能处理的概念可以帮助我们准确、合理的识别功能处理,因此要仔细思考上述的概念要点。

快速学习COSMIC方法之七:如何理解功能处理的定义?相关推荐

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

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

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

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

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

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

  4. 快速学习COSMIC方法之十五:如何度量需求变更的规模

    合理的度量需求变更的规模是COSMIC方法比第一代的功能点估算方法更科学的亮点.在度量需求的变更时,首先需要明确我们的度量目的,即我们要度量的是本次变更的规模,而不是变更之后的规模.明确目的后,要将变 ...

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

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

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

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

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

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

  8. 大数据学习,Scala快速学习的方法

    大数据学习过程中,都会学习Scala,众所周知,Spark支持4门语言,分别为R.Python.Java与Scala,但真正的底层实现语言则是Scala.在我以往的实践分享中,除了Python,我还会 ...

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

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

最新文章

  1. macaca运行报错之chrome-driver问题处理,关闭 Chrome 的自动更新
  2. iview tooltip自动消失_实现自动驾驶,为什么要对汽车、行人的轨迹进行预测?它与物体检测、追踪和路径规划间的关系是什么?...
  3. 电子签批板那个品牌好用?国产柜台电子签名板推荐
  4. (转)不看绝对后悔的Linux三剑客之awk实战精讲
  5. excel锁定单元格不能修改_锁定单元格不被任意修改和删除
  6. 虚拟盘客户机文件盒服务器不一样,VMware ESX三种虚拟磁盘类型分析
  7. 用python做网站的步骤_Python建网站的步骤
  8. vba学习笔记 数组的LBound和UBound
  9. K8s-kubectl远程管理集群
  10. 经典分割线 html分割线
  11. 此图形驱动程序无法找到兼容的图形硬件的解决方案(复制粘贴源于百度http://jingyan.baidu.com/article...
  12. Rainbond插件体系设计简介
  13. Hadoop环境配置(6)-MySQL安装
  14. 【Matlab】一、解常微分方程ODE
  15. 2007年大连软件出口全国第三 荣获中国软件出口(外包)政府推进奖
  16. 【计算机网络】-TCP的拥塞控制及拥塞控制方法
  17. css3立体样式下载按钮
  18. python快速爬虫视频_“python怎么快速爬虫视频“python 爬网页视频教程
  19. 虚拟机下的ROS无法打开笔记本摄像头
  20. 【H5+ Quick-cocos2dx整合】之iOS 四 协调H5+和Quick-Cocos2dx之间工作

热门文章

  1. 蛋白质活性研究结合热门科研技术,生物医学领域迎来全新机遇。
  2. ICCAVR软件的安装与使用方法(超详细)
  3. Delphi 和 C++Builder 免费社区版更新至 10.4.2 版现已发布!
  4. PHP隐私保护通话,AXB模式绑定接口_隐私保护通话 PrivateNumber_API参考_AXB模式_华为云...
  5. 晓庄计算机专转本录取分数线,江苏南京晓庄五年制专转本录取分数线是多少?...
  6. ZWAVE通过Alarm TypeSupported Get Command获得设备支持的告警类型
  7. 新闻丨可信区块链电信应用组正式成立
  8. 2022.06.07 前端-uniApp跨域解决办法
  9. 前端开发:Web性能优化有哪些方法?
  10. AC-DC开关电源种类