浅尝COSMIC快速功能点估算法
- 格式:pdf
- 大小:2.76 MB
- 文档页数:32
10分钟掌握COSMIC估算方法COSMIC方法基于以下几个核心概念:功能过程,功能记录和功能点。
功能过程是软件系统中执行的一组相关功能的集合。
功能记录是一个对特定功能过程的明确说明。
功能点是对功能记录的评估,从而确定该功能记录代表的软件系统的大小。
要使用COSMIC方法进行估算,首先需要识别和定义功能过程。
功能过程通常是通过讨论和协商与软件系统有关的不同方面来确定的。
例如,对于一个电子商务网站,功能过程可以包括用户注册、商品、下订单等。
一旦功能过程定义完毕,接下来需要将每个功能过程明确描述为功能记录。
功能记录应该详细描述每个功能过程的输入、输出、处理和数据存储。
一旦功能记录定义完毕,可以根据COSMIC方法中的功能点计算方法来确定软件系统的大小。
COSMIC方法定义了三种不同的功能点类型:业务功能点(BFP),处理逻辑功能点(ILF)和数据接口功能点(EIF)。
BFP是指与用户的交互相关的功能点。
每个BFP都与一个功能过程对应,并且根据功能记录的复杂性分配一个权重。
BFP的复杂性可以根据输入和输出数据的数量、数据项的类型和规模、功能过程的复杂性等因素来确定。
ILF是指内部数据存储的功能点。
每个ILF都与一个功能过程对应,并且根据功能记录中涉及的数据项和数据项的复杂性分配一个权重。
ILF的复杂性可以根据数据项的数量、数据项的类型和规模、功能过程对ILF的影响等因素来确定。
EIF是指与外部数据存储的功能点。
每个EIF都与一个功能过程对应,并且根据功能记录中涉及的数据项和数据项的复杂性分配一个权重。
EIF的复杂性可以根据数据项的数量、数据项的类型和规模、功能过程对EIF的影响等因素来确定。
通过对每个功能记录中涉及的BFP、ILF和EIF的数量和复杂性进行评估,可以计算出软件系统的功能点总数。
功能点总数可以作为估算成本和时间的指标。
总结起来,COSMIC方法是一种基于功能大小的软件估算方法。
它通过对功能过程进行明确的描述,并根据功能点计算方法评估功能记录的大小,从而确定软件系统的综合大小。
快速功能点法介绍及运用
快速功能点法是一种用于估算软件项目规模和工作量的方法。
它是功能点分析方法的一种变体,主要用于快速估算项目的规模和工作量。
快速功能点法的核心思想是通过对软件系统的功能进行分析,将其分解为一系列基本的功能单元,并对每个功能单元进行计数,从而估算出整个系统的规模和工作量。
快速功能点法通常包括以下步骤:
1. 识别和定义系统的功能:确定系统需要实现的主要功能和特性。
2. 划分功能单元:将系统的功能划分为一系列基本的功能单元,如输入、输出、查询、文件、接口等。
3. 确定功能单元的复杂度:根据功能单元的复杂度,确定其对应的功能点数。
复杂度通常根据功能单元的输入、输出、查询、文件和接口等方面进行评估。
4. 计算功能点数:将每个功能单元的点数相加,得到整个系统的功能点数。
5. 估算工作量:根据功能点数和经验数据,估算出整个项目的工作量。
快速功能点法的优点是快速、简单、易于理解,适用于项目早期的规模估算和工作量估算。
它可以帮助项目团队更好地了解项目的规模和复杂性,为项目计划和资源分配提供参考。
规模估算方法(COSMIC FFP)
1、COSMIC FFP方法介绍
1)定义:COmmon Software Measurement International Consortium,COSMIC)提出的全功能点分析方法(COSMIC-FFP)。
2)原理:功能规模是通过“数据移动(Data movement)”的个数来度量。
3)有4种类型的数据移动:输入(Entry)、输出(eXit)、读(Read)和写(Write)。
●输入(E),是从用户穿越被度量系统的范围传输数据到系统内部,这里提到的用户
既包括系统的使用人员,也包括其他软件或者硬件系统;
●输出(X),是一个数据组从一个功能处理通过范围移动到需要它的用户;
●读(R),是从永久性的存储设备读取数据。
●写(W),是存储数据到永久性的存储设备;
4)识别数据移动。
从用户功能需求入手,分析功能过程的执行过程,分解出每个分过程,识别输入、输出、读、写这4类数据移动,一个数据移动记为一个COSMIC功能规模单位(CFP)。
5)功能分解列表分析步骤
6)将每个功能项的估算值,填入估算记录表,汇总计算出总的功能点数CFP。
7)原则:每一个功能项必须有一个E(输入),一个X(输出)或一个W(写),即至少2个cfp。
规模估算方法(COSMIC FFP)
1、COSMIC FFP方法介绍
1)定义:COmmon Software Measurement International Consortium,COSMIC)提出的全功能点分析方法(COSMIC-FFP)。
2)原理:功能规模是通过“数据移动(Data movement)”的个数来度量。
3)有4种类型的数据移动:输入(Entry)、输出(eXit)、读(Read)和写(Write)。
●输入(E),是从用户穿越被度量系统的范围传输数据到系统内部,这里提到的用户
既包括系统的使用人员,也包括其他软件或者硬件系统;
●输出(X),是一个数据组从一个功能处理通过范围移动到需要它的用户;
●读(R),是从永久性的存储设备读取数据。
●写(W),是存储数据到永久性的存储设备;
4)识别数据移动。
从用户功能需求入手,分析功能过程的执行过程,分解出每个分过程,识别输入、输出、读、写这4类数据移动,一个数据移动记为一个COSMIC功能规模单位(CFP)。
5)功能分解列表分析步骤
6)将每个功能项的估算值,填入估算记录表,汇总计算出总的功能点数CFP。
7)原则:每一个功能项必须有一个E(输入),一个X(输出)或一个W(写),即至少2个cfp。
功能点估算法识别项目范围和数据复杂度功能点估算法是软件项目管理众多知识中比较有技术含量的一个。
在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。
如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。
功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。
对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。
它们之间的区别和关系如下:∙功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。
假如这个时候使用LOC代码行估算法,则误差会比较大。
∙使用功能点估算法无需懂得软件使用何种开发技术。
LOC代码行估算法则与软件开发技术密切相关。
∙功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。
∙通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。
在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。
在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。
因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。
功能点分析的步骤本文将以国际标准IFPUG(International Function Point Users Group)组织提供的功能点估算法V4.1.1为基础进行讲解。
如下图所示,首先大家应该了解功能点估算法的使用步骤。
图1 功能点估算法的步骤具体步骤包括:1. 识别功能点的类型。
2. 识别待估算应用程序的边界和范围。
3. 计算数据类型功能点所提供的未调整的功能点数量。
4. 计算人机交互功能所提供的未调整的功能点数量。
5. 确定调整因子。
6. 计算调整后的功能点数量。
非功能性需求对COSMIC软件预估方法的影响研究作者:汪福明来源:《软件导刊》2017年第01期摘要摘要:COSMIC功能点度量算法作为IFPUG度量算法的扩展,在软件项目早期预估中起着非常重要的作用,同时软件项目对早期度量精度和准确度的要求也越来越高。
针对早期功能点度量算法COSMIC方法在预估过程中准确性不足的缺点,提出通过增加调整因子来提高软件项目度量的准确性。
该方法通过增加复杂度、可重用性和效能3个调整因子来调整实际度量的功能点总数,提高度量的准确性,避免了因功能点数不足带来的误差。
关键词关键词:早期快速预估;软件度量;COSMIC方法;非功能性需求DOIDOI:10.11907/rjdk.162292中图分类号:TP302文献标识码:A文章编号文章编号:16727800(2017)0010011040引言项目规模预估作为软件项目管理过程中非常重要的环节,它是后续项目计划编制和人员预算安排的重要依据和基础。
在一些研发型的软件项目或者是软件项目的立项评审阶段,由于软件项目目标的不准确性、需求的多变性和项目功能的渐近性,只能粗略地定义项目需求[1],同时标准的估算方法此时并不适用在项目的早期阶段,而且在项目的早期进行标准的度量往往也是不经济、合算的[2]。
因而需要一种有效、快速并相对精确的项目估算方法来进行软件项目规模的度量。
软件项目规模的度量主要有定量预估方法和定性预估方法,包括DELPHI法、类比法、功能点分析方法、经验法、COCOMO法、代码行评估法等。
目前对软件规模度量的主流方法是功能点方法,功能点方法根据软件项目的功能性需求来度量软件的规模大小[3]。
功能点早期估算方法在软件早期规模度量中占有重要地位。
主流早期功能点方法包含COSMIC估算方法、NESMA方法、IFPUG方法、Mark Ⅱ方法、FISMA方法等。
不同的方法适用范围不同,根据相关国际标准中的方法适用范围声明,IFPUG适用于所有类型软件系统;NESMA与IFPUG非常类似,但对功能点计数作了分级,以便在测算的不同时期选择不同精度的方法进行度量,MK Ⅱ方法适用于逻辑事务能被确定的软件系统。
功能点估算方法我折腾了好久功能点估算方法,总算找到点门道。
说实话功能点估算这事,我一开始也是瞎摸索。
我试过很多方法,最开始就是凭感觉,觉得这功能好像挺简单,就给个很少的估算值,那肯定是不对的。
这就好比你去市场买菜,不看菜的分量,不看价格,就随便给个钱数,摊主肯定不会同意啊。
然后我学着用历史数据来估算。
比如说之前做过类似的功能,就参考上次花费的时间或者工作量。
可是这里面也有问题,有时候看似相同的功能,实际上里面有很多隐藏的细节差异。
就像俩栋房子乍一看一样,但是里面的装修、结构强度啥的都不同,那要改建耗费的资源肯定不能简单类比。
有一次我没注意这些差异,按照之前的数值估算,结果最终花费的工作量远超预期。
后来啊,我就开始把功能细分成小的模块。
这功能要是个大蛋糕,那我就把它切成一块一块小蛋糕。
先估算小模块的工作量,再汇总起来。
这时候确定每个小模块的复杂度很关键。
复杂模块和简单模块肯定不能同等对待,复杂的可能要花费好几倍的精力在上面。
比如开发一个登录功能,常规的用户名密码登录就是比较简单模块,如果还要加上指纹识别、面部识别这些额外功能,那这个登录模块整体就复杂很多了。
还有不确定因素的考虑很重要。
像是可能需要等别的团队提供接口,这个时间就不确定。
这时候我的方法就是稍作估算再额外增加些余量。
但这余量该加多少我还不是特别确定,就是凭经验和当前项目的整体风险情况看着办。
有时候感觉风险大,就多给点余量,要是风险小,就少放点。
这个我还在不断摸索之中。
功能点估算一定要有耐心,多分析,多对比,千万不能偷懒,不然很容易估算错误给项目带来很大麻烦呢。