您好,欢迎访问三七文档
功能点估算法是软件项目管理众多知识中比较有技术含量的一个。在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要,如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。FP功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及,对软件项目范围的估算有很多种方法,常见的就是LOC代码行和FP功能点法,它们之间的区别和关系如下:1、FP功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高,假如这个时候使用LOC代码行估算法,则误差会比较大。2、使用FP功能点估算法无需懂得软件使用何种开发技术。LOC代码行估算法与软件开发技术密切相关。3、FP功能点法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算的。4、通过一些行业标准或企业自身度量的分析,FP功能点估算法是可以转换为LOC代码行的。在项目刚开始的时候进行功能点估算可以对项目的范围进行预测,在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同,因此在项目结束时还需要对项目的范围情况进行估算,这个时候估算的结果才能最准确反映项目的规模。功能点分析的步骤以国际标准IFPUG(InternationalFunctionPointUsersGroup)组织提供的功能点估算法V4.1.1为基础与大家进行讲解。如下图所示,首先大家应该了解功能点估算法的使用步骤。功能点估算的步骤1、识别功能点的类型。2、识别待估算应用程序的边界和范围。3、计算数据类型功能点所提供的未调整的功能点数量。4、计算人机交互功能所提供的未调整的功能点数量。5、确定调整因子。6、计算调整后的功能点数量。EI、EO、EQEI是处理来自于应用程序边界外部的一组数据的输入,它的主要目的是维护一个或多个ILF,以及/或者更改系统的行为。EO是输送数据到应用程序边界外部的过程。它的主要目的是通过逻辑处理过程向用户呈现信息。该处理过程必须包含至少一个数学公式或计算方法,或生成派生数据。一个EO也可以维护一个或多个ILF,并/或改变系统行为。EQ是向应用程序边界外发送数据基本处理的过程。其主要目的是从ILF或EIF中通过恢复数据信息来向用户呈现。该处理逻辑不包括任何数学公式或计算方法,也不会生成任何派生数据。EQ不会维护任何一个ILF,也不会改变应用程序的系统行为。EO和EQ的共同点其主要目的都是通过基本操作过程展现数据给用户看。主要目的目的EIEOEQ改变应用程序的属性或行为主要目的次要目的不允许维护一个或多个ILF主要目的次要目的不允许显示信息给用户次要目的主要目的主要目的主要行为行为EIEOEQ数学公式或计算被执行可以至少选择一次不可以至少一个ILF被修改至少选择一次至少选择一次不可以至少一个ILF或EIF被引用可选可选必选数据被重新恢复可选可选必选派生数据被创建可选至少选择一次可选应用程序的行为或属性被修改至少选择一次至少选择一次可选准备或呈现信息到系统边界外可选必选必选接受进入系统边界内的数据的能力必须可选可选计算规则在IFPUG的定义中有一个重要的单词“ElementaryProcess”基本处理过程。该过程对用户来说是一个有意义的最小的活动单位,并且是一个自包含的活动。功能点的分类EI、EO、EQ的识别都是基于“ElementaryProcess”基本处理过程的。●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。以员工管理系统为例,详细说明如何利用功能点估算法计算业务复杂度。在员工管理系统中添加一个员工资料,会使用到员工的一般信息、教育情况、工作经历和家属信息。员工隶属于某个部门,在本系统中会有一个对部门进行维护的功能。员工的工资则由另外一个财务系统提供。因此,其用例图如下所示:图1员工管理系统用例图假设员工基本信息如下所示:员工ID(标签控件)员工名称性别生日婚否所属部门ID(标签控件)所属部门名称——受教育的时间——学校名称——所学专业——工作时间——工作单位——工作部门——工作职务——亲属的姓名——之间关系——亲属年龄——工作单位假设部门信息如下所示:部门ID(标签控件)部门名称假设工资表信息如下所示:员工ID(标签控件)员工姓名金额单位ILF和EIF的功能点数本范例识别出来ILF和EIF功能点个数如下表所示。ILF内部逻辑文件RETDET个数复杂度未调整的FP个数员工信息员工基本信息、受教育情况、工作经历、亲属信息,共4个。18低7部门信息部门基本信息,共1个。2低7EIF外部接口文件RETDET个数复杂度未调整的FP个数工资表员工基本信息、工资信息,共2个。4个低5合计:19个EI、EQ和EO的功能点数本范例识别出来EI、EQ和EO功能点个数如下表所示。EIFTRDET个数复杂度未调整的FP个数添加员工信息员工、部门、工资表员工信息的两个标签控件内容不是用户输入的,因此不算。共16个。部门信息与员工信息中的部门字段重复,因此一个都不算。工资表中的员工ID和名称不能重复,因此只能算金额和单位,所以共2个。18个高6修改员工信息员工、部门、工资表18个同上高6删除员员工、部门、1个中等4工信息工资表员工ID添加部门信息部门1个一个标签控件的内容不是用户输入的,因此不算低3修改部门信息部门1个一个标签控件的内容不是用户输入的,因此不算低3删除部门信息部门1个部门ID低3合计:25个EQFTRDET个数复杂度未调整的FP个数查询员工信息员工、部门、工资表20高6查询部门信息部门2低3合计:9个EOFTRDET个数复杂度未调整的FP个数统计员工年薪员工、工资表员工ID、员工名称、年份、年薪、单位共5个低4本系统的通用系统特性及其影响程度如下表所示。系统特性分数数据通讯3分布式数据处理2性能0高强度配置0交易速度0在线数据输入5最终用户效率2在线更新3负责的处理0可复用性3易安装性0易操作性0多场地0支持变更1合计:19调整因子=19*0.01+0.65=0.84最终调整后的功能点数量为:(19+25+9+5)*0.84=48.72个功能点估算法是一个非常有用的对软件规模进行估算的国际通用技术,是项目管理人员必须掌握的工具。为了便于大家对功能点的技术进行理解和记忆,这里对其进行总结:由于计算机软件就是为了实现无纸办公,那么在估算功能点时应该多以用户的纸质表单为依据,每个表单就是一个ILF或EIF,表单上显示的字段都是DET,一个表单上的“核心”内容不管是由几个数据表来分别存放数据的,每个表都是一个RET。简单来讲,ILF和EIF可以被看作数据库中的数据表,但是主、从表将被视为一个ILF或EIF。那么,ILF和EIF的复杂度就是由数据表中的字段DET和一个ILF或EIF自身所包含的主、从表个数RET来决定。在计算DET时主、外键只能算作一个。EI就是对应用户增加、修改、删除的操作,EO和EQ都是用于用户查询的操作。EO和EQ的区别是,EO查询时使用了数学公式或计算方法。EI、EQ和EO的复杂度是由FTR和DET决定的。FTR的个数由ILF和EIF的个数决定,可以由主表中主、外键的个数来计算。在计算EI的DET时,只有用户在界面上直接输入的信息才算作DET,通过页面自动计算或转换的数据不能算作EI的DET。在EO和EQ计算DET时,报表的标题、页码等信息不能被计算为一个DET。
本文标题:软件功能点估算法
链接地址:https://www.777doc.com/doc-4980123 .html