[转载]CMMI之功能点估算法:EI、EQ和EO
EI、EO、EQ
EI是处理来自于应用程序边界外部的一组数据的输入,它的主要目的是维护一个或多个ILF,以及/或者更改系统的行为。
EO是输送数据到应用程序边界外部的过程。它的主要目的是通过逻辑处理过程向用户呈现信息。该处理过程必须包含至少一个数学公式或计算方法,或生成派生数据。一个EO也可以维护一个或多个ILF,并/或改变系统行为。
EQ是向应用程序边界外发送数据基本处理的过程。其主要目的是从ILF或EIF中通过恢复数据信息来向用户呈现。该处理逻辑不包括任何数学公式或计算方法,也不会生成任何派生数据。EQ不会维护任何一个ILF,也不会改变应用程序的系统行为。
EO和EQ的共同点
其主要目的都是通过基本操作过程展现数据给用户看。
主要目的
|
目的 |
EI |
EO |
EQ |
|
改变应用程序的属性或行为 |
主要目的 |
次要目的 |
不允许 |
|
维护一个或多个ILF |
主要目的 |
次要目的 |
不允许 |
|
显示信息给用户 |
次要目的 |
主要目的 |
主要目的 |
主要行为
|
行为 |
EI |
EO |
EQ |
|
数学公式或计算被执行 |
可以 |
至少选择一次 |
不可以 |
|
至少一个ILF被修改 |
至少选择一次 |
至少选择一次 |
不可以 |
|
至少一个ILF或EIF被引用 |
可选 |
可选 |
必选 |
|
数据被重新恢复 |
可选 |
可选 |
必选 |
|
派生数据被创建 |
可选 |
至少选择一次 |
可选 |
|
应用程序的行为或属性被修改 |
至少选择一次 |
至少选择一次 |
可选 |
|
准备或呈现信息到系统边界外 |
可选 |
必选 |
必选 |
|
接受进入系统边界内的数据的能力 |
必须 |
可选 |
可选 |
计算规则
在IFPUG的定义中有一个重要的单词“Elementary Process”基本处理过程。该过程对用户来说是一个有意义的最小的活动单位,并且是一个自包含的活动。功能点的分类EI、EO、EQ的识别都是基于“Elementary Process”基本处理过程的。
● EI的计算规则:
1. 从应用边界之外收到数据。
2. 如果进入系统边界内的数据不是一个改变系统行为的控制信息,那么至少一个ILF应该被改变。
3. 对于已识别的处理过程,至少满足下面三个条件之一。
该基本处理过程的逻辑与本应用系统中其它基本处理过程的逻辑不同。该基本处理过程应该具有唯一性。例如:不能存在两个完全一模一样的存盘操作。
在应用程序边界内,该基本处理过程所使用的这组数据应该与其他基本处理过程所使用的数据不同。
在应用程序边界内,基本处理过程所引用的ILF或EIF是不同于其它基本处理过程所引用的ILF或EIF。
● EO和EQ通用计算规则
必须全部满足以下内容才能被视为一个EO或EQ:
1、 从外部发送数据或控制信息到应用程序边界内。
2、 为了识别这个过程,以下三点必须满足一个:
该基本处理过程逻辑上必须是唯一的,该唯一性是指其在应用程序中与其他EO或EQ的逻辑性上保持唯一。
该基本处理过程所使用的数据应该是唯一的,该唯一性是指其在应用程序中与其他EO或EQ所使用的数据不同。
该基本处理过程所引用的ILF或EIF文件应该是唯一的,该唯一性是指其在应用程序中与其他EO或EQ所引用的ILF或EIF文件不同。
● EO补充的计算规则
除了要满足上面的通用规则外,还要满足下面其中一条:
在基本操作过程中至少包含一个数学公式或计算方法
在基本操作过程中要产生派生数据
在基本操作过程中至少要维护一个ILF
在基本操作过程中要改变系统的行为。
● EQ补充的计算规则
除了要满足上面的通用规则外,还要满足下面其中一条:
基本操作过程从ILF或EIF中获取数据。
基本操作过程不能包含数学公式或计算方法。
基本操作过程不能生成派生数据
基本操作过程不能维护任何一个ILF
基本操作过程不能改变系统的行为
EI、EQ和EO的技术复杂的计算
复杂性取决于FIRs和DETs的数量。FTR是被一个事物操作读取或维护的一个ILF,或者是被一个事物操作读取的一个EIF。
EI中识别FTR规则
● 每一个ILF应该算做一个FTR。
● 通过EI读取操作的每个ILF或EIF都应该被计算为一个FTR。
● 即被EI维护又被读取的ILF仅计算一个FTR。
EI中识别DET规则
● 在EI的过程中,以用户角度识别的,通过应用系统边界输入系统内部的非重复的字段,那么该字段应算一个DET。
● 如果在EI过程中,只要没有通过系统边界输入,就算它存在于系统内的一个ILF中,也不能算为一个DET。
来源:http://blog.sina.com.cn/s/blog_6d723ede01015xfx.html
[转载]CMMI之功能点估算法:EI、EQ和EO的更多相关文章
- CMMI之功能点估算法---内部逻辑文件和外部接口文件
功能点分析的步骤 在本文中将以国际标准IFPUG(International Function Point Users Group)组织提供的功能点估算法V4.1.1为基础与大家进行讲解.如下图所示, ...
- (转载)LCA问题的Tarjan算法
转载自:Click Here LCA问题(Lowest Common Ancestors,最近公共祖先问题),是指给定一棵有根树T,给出若干个查询LCA(u, v)(通常查询数量较大),每次求树T中两 ...
- 转载:scikit-learn学习之SVM算法
转载,http://blog.csdn.net/gamer_gyt 目录(?)[+] ========================================================= ...
- (转载)利用SIFT和RANSAC算法(openCV框架)实现物体的检测与定位,并求出变换矩阵(findFundamentalMat和findHomography的比较) 置顶
原文链接:https://blog.csdn.net/qq_25352981/article/details/46914837#commentsedit 本文目标是通过使用SIFT和RANSAC算法, ...
- 【转载】分布式系列文章——Paxos算法原理与推导
转载:http://linbingdong.com/2017/04/17/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0 ...
- 004——转载—Word2016“此功能看似已中断 并需要修复”问题解决办法
解决办法如下: 在Win10系统上安装 Office 2016 之后,每次打开Word文档可能都会提示“很抱歉,此功能看似已中断,并需要修复,请使用Windows 控制面板中的“程序和功能”选项修复M ...
- 【转载】Dijkstra算法和Floyd算法的正确性证明
说明: 本文仅提供关于两个算法的正确性的证明,不涉及对算法的过程描述和实现细节 本人算法菜鸟一枚,提供的证明仅是自己的思路,不保证正确,仅供参考,若有错误,欢迎拍砖指正 ----------- ...
- 【转载】MCMC和Gibbs Sampling算法
转载随笔,原贴地址:MCMC和Gibbs Sampling算法 本文是整理网上的几篇博客和论文所得出来的,所有的原文连接都在文末. 在科学研究中,如何生成服从某个概率分布的样本是一个重要的问题.如果样 ...
- T-Shirt 估算法
T-Shirt Size Estimation (2015-05-11 22:58:18) 转载▼ 产出:产品经理会对每一条需求评估上业务影响力的尺寸,如:XXXL 影响一千万人以上或是可以占 ...
随机推荐
- Rplidar学习(二)—— SDK库文件学习
SDK头文件介绍 1.头文件简介: rplidar.h //一般情况下开发的项目中仅需要引入该头文件即可使用 RPLIDAR SDK 的所有功能. rplidar_driver.h //定义了 SDK ...
- 【svn】解析subversion的使用
目录结构: contents structure [-] 安装客户端 安装服务端 创建仓库 启动仓库 创建客户端与仓库取得联系 使用svn服务 SVN密码管理 SVN的仓库布局和常规命令 分支.合并和 ...
- 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token
为什么你学不会递归?告别递归,谈谈我的一些经验 可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...
- Easyui 中 Tabsr的常用方法
注:index必须为变量 tab页从0开始 //新增一个tab页var index = 0;$('#tt').tabs('add',{ title: 'Tab'+index, content: '&l ...
- 你应该学会使用的5个ruby方法
今天看到了这篇文章--Five Ruby Methods You Should Be Using,感觉收获颇丰,先简单翻译一下先. 作者写这篇文章的契机是在Exercism上看到了很多ruby代码可以 ...
- java appium客户端 6.1.0android长按及滑动变更
今天使用appium 6.1.0 java客户端,发现长按longpress(element),无法使用.如下代码在5.0.4 版本是可以正常运行的, WebElement noteDelete = ...
- django -- verbose_name的对数据库层面的影响
一.没有verbose_name时model的定义: from django.db import models # Create your models here. class Question(mo ...
- WCF 有零个操作;协定必须至少有一个操作
转自 http://www.cnblogs.com/bdqlaccp/archive/2011/12/31/2308905.html 建立WCF服务后, 服务类中写上了相应的操作,并且方法上加上了[O ...
- HTTP报文头Accept和Content-Type总结
1.Accept属于请求头, Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...
- iOS 再谈 代理传值,block反向传值
本贴的例子是:有A和B两个界面,要实现的效果就是先让A跳转到B,然后B中有个颜色的参数,当B跳转到A时,把这个颜色的参数传递给A,在A中利用这个颜色改变自己界面的颜色. 第1步:在发送者(界面B)中, ...