功能点计算方法
- 格式:pptx
- 大小:526.59 KB
- 文档页数:38
软件工程功能点计算公式是一种用于估算软件项目工作量的方法。
功能点是软件功能的一种度量单位,根据软件项目的特性,将功能点转换为人力、时间等其他资源的需求。
功能点计算公式如下:
功能点= (未调整功能点数量× 软件类别调整因子) × 复用系数
其中,未调整功能点数量可以通过预估或估算的方式得出。
预估功能点计数方法包括内部逻辑文件数量(ILF)、外部接口文件数量(EIF)、外部输入数量(EI)、外部输出数量(EO)、外部查询数量(EQ)。
估算功能点计数方法也有类似的计算公式。
软件类别调整因子和复用系数则根据软件的复杂程度、复用程度等因素进行取值。
例如,对于定制软件开发内容包含多种软件类型的情况,原则上按照主体功能的类型取值;对于在已有软件系统或功能模块基础上进行优化完善或调整改造的,复用度调整系数默认取值为2/3。
在实际应用中,功能点计算公式可以结合具体的项目需求进行调整和优化。
一、功能点估算法识别项目范围和数据复杂度功能点估算法是软件项目管理众多知识中比较有技术含量的一个。
在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。
如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。
功能点估算法的特点项目范围的估算在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. 计算调整后的功能点数量。
一、什么是功能点,功能点估算有什么用?对于一个软件来说,功能点是一个可以作为标准的一个计量单位,功能点的多少代表着软件的规模大小,那么有了一个同一的量级的表现后,不同产品或者功能通过功能点来表示,就可以很好地反馈出产品或者功能的复杂程度,同时我们利用功能点来辅助计算效率、成本等也有很大作用。
使用禅道作为项目管理工具的小伙伴,也会在提需求的板块,看到有功能点的录入要求,这也是作为项目管理中,工作量的估算的重要性。
二、功能点估算方法与基本过程功能点的估算方法有IFPUG和NESMA等,下面主要是介绍NESMA 功能点估算法,NESMA估算法更多的在项目前期,可以快速的利用逻辑文件,给出预估的功能点数量,起到较好的指导作用。
NESMA估算法有三种类型的功能点估算,包括:指示功能点计数、估算功能点计数、详细功能点计数;分别对应项目的前期,中后期的功能点估算需求,同时估算出来的功能点也是越来越细化和精准。
当然操作难度和复杂度也是越来越高。
对于一般性的产品而言,我们主要是使用前两种(指示功能点计数、估算功能点计数)估算方法即可,两种方法的主要区别就在于计算公式的不同,一个粗放,一个则较精细,两种都可以使用,可以根据自身项目的具体要求和所处阶段来进行选择。
指示功能点计数:ILF*35+EIF *15估算功能点计数:UFP=(7* ILF+5* EIL+4* EI+5* EO+4* EQ)下面就来介绍上面的公式中用到的因子以及查找方法。
三、两个逻辑文件与三个基本过程上面的估算方法中提到的ILF、EIF、EI、EO、EQ代表着什么呢?只要弄明白了这几个计算因子,那么带入公式就可以很快知道我们的这个产品或者功能的软件规模有多大了,所需多少开发量,也就有了较为准确的参考标准。
1. 两个逻辑文件:ILF和EIF首先我们理解一下逻辑文件是个什么东西。
功能点估算法,我们是从产品的角度,用户的视角来进行估算的。
那么逻辑文件的概念,也就是从用户的视角出发,来进行定义的一类对用户有意义的信息。
功能点估算法功能点估算法是一种推断开发者所需完成的工作量的测算方法。
它通过计算软件系统实际功能所需要的数量,来估算软件开发项目所需要的工作量。
这类测算方法经常用于估算软件研发预算,以帮助管理人员更好地掌握软件研发项目的实施过程,更有效地控制开发成本。
在新系统开发项目中,由于缺乏项目的相关信息,无法采用其他的估算方法,所以采用功能点估算法会比较实用。
它可以根据软件系统的功能需求,通过统计分析和对比,对项目的实施过程进行估算。
换句话说,功能点估算法是根据软件系统的功能特性,采用质量控制的原则,对软件开发的工作量进行估算和控制。
功能点估算法的具体实施过程,首先要明确项目所需要实现的功能点,并对每个功能点进行细化,明确功能点的分类划分。
在功能点定义之后,要根据项目的功能和目标,进行功能点估算,确定每个功能点所需要实现的工作量,并将这些数据汇总起来,作为项目的工作量估算基准。
此外,在进行功能点估算时,还要结合项目的复杂性,适当的考虑系统中所需的技术支持、测试和文档等活动,以准确估算项目所需的工作量。
软件系统开发项目在估算阶段,采用功能点估算法可以使估算更加准确,从而更好地掌握项目的进度,减少开发时间和成本。
功能点估算不仅可以帮助开发者规划开发任务和工作负荷,而且还可以帮助客户评估项目的性价比,确保项目的经济效益。
同时,功能点估算还可以为开发者建立一套科学的计划,从而更精确地控制开发的时间和成本,提高开发效率。
总之,功能点估算法是一种实用的、灵活的估算方法,它可以帮助开发者更加精确地估算软件研发项目的工作量,从而更好地控制开发成本,提高项目的经济效益。
它既便于项目管理者和客户,也有利于开发者,是软件系统开发项目必不可少的一环。
IFPUG功能点估算含示例IFPUG(International Function Point Users Group)功能点估算是一种常用的软件度量方法,它通过对软件的功能进行分类和量化来估算软件的规模和复杂度。
功能点估算可以帮助软件开发团队更好地理解项目的规模和工作量,有助于项目管理和项目成本的预测。
IFPUG功能点估算的核心思想是将软件的功能进行分类,然后将每个功能点按照一定的规则进行加权,并与标准功能点系数相乘得出最终的功能点数。
这样可以对不同的软件进行可比较的度量,并且提供了一个基准来评估相对规模和复杂度。
1.功能性功能点包括以下四个子类:-输入(EI)功能点:表示软件接收外部输入并处理的功能。
例如,一个图书管理系统可以接收读者的借书请求并进行处理。
-输出(EO)功能点:表示软件向外部输出信息的功能。
例如,一个图书管理系统可以向读者输出图书的归还日期。
-查询(EQ)功能点:表示软件进行内部或外部查询的功能。
例如,一个图书管理系统可以查询图书的借阅记录。
-文件(F)功能点:表示软件维护的逻辑文件(包括输入和输出文件)的功能。
例如,一个图书管理系统可以维护图书的借阅记录文件。
2.非功能性功能点包括以下三个子类:-外部接口文件(EIF)功能点:表示软件与外部系统进行数据交换的功能。
例如,一个图书管理系统可以与图书供应商的系统进行数据交换。
-外部查询文件(EQF)功能点:表示软件使用的外部查询文件的功能。
例如,一个图书管理系统可以使用图书供应商的系统提供的查询功能。
-内部逻辑文件(ILF)功能点:表示软件内部维护的逻辑文件的功能。
例如,一个图书管理系统可以维护图书的库存信息。
在IFPUG功能点估算中,每个功能点都有一个权重或复杂度,可以根据软件的特点和相对复杂度进行调整。
例如,一个图书管理系统的输入功能点可能比输出功能点更复杂,因此输入功能点的权重可能更高。
下面是一个示例,用于说明如何进行IFPUG功能点估算:假设我们要开发一个学生管理系统,该系统可以记录学生的基本信息、课程成绩和考试安排等。
功能点基础知识点总结一、什么是功能点?功能点是指软件系统中的一个具有独立功能的部分。
在软件开发项目中,通常使用功能点来测量软件系统的大小和复杂度。
功能点可以用来衡量软件系统的规模,评估开发工作量,进行成本估算,进行项目管理和控制等。
二、功能点的主要分类在软件系统中,功能点可以按照不同的特性进行分类,主要包括以下几类:1、业务功能点业务功能点是指软件系统中与业务功能相关的部分,包括用户交互界面、业务逻辑处理、数据存储和检索等。
业务功能点是软件系统的核心功能,也是用户最关注的部分。
在开发软件系统时,通常会根据业务需求划分业务功能点。
2、非功能点非功能点是指软件系统中除了业务功能之外的其他部分,包括性能、安全、可靠性、可用性、可维护性等方面。
非功能点对于软件系统的整体质量和性能具有重要的影响,需要在整个软件开发过程中进行充分的考虑和测试。
3、支持功能点支持功能点是指软件系统的辅助功能,包括系统管理、用户权限控制、日志记录、报表生成等。
支持功能点通常不直接与业务功能相关,但是对于系统的整体运行和管理具有重要的作用。
4、界面功能点界面功能点是指软件系统中的用户界面部分,包括图形界面、命令行界面、移动端界面等。
界面功能点是用户与系统进行交互的重要部分,对于系统的易用性和用户体验具有重要的影响。
三、功能点的计算方法在软件开发项目中,常用的功能点计算方法包括以下几种:1、IFPUG方法IFPUG方法是指国际功能点用户组织(IFPUG)提出的功能点计算方法。
IFPUG方法以用户视角对软件系统的功能进行度量,主要包括逻辑文件、数据输入、数据输出和查询等部分。
通过对软件系统的功能进行分类和计算,可以得到软件系统的功能点数。
COSMIC方法是指COSMIC功能点计量国际组织提出的功能点计算方法。
COSMIC方法通过对软件系统的功能进行详细的描述和量化,可以得到更加精确的功能点数。
COSMIC方法对软件系统的功能进行了更细致的划分和计算,可以更好地反映软件系统的复杂度和规模。