软件系统开发成本估算法功能点估算含例子目录一、功能点估算法概念...........................1二、功能点估算法的特点.........................1三、功能点分析的步骤(含例子).................23.1识别项目的类型.....................................................................................23.2识别项目的范围和边界..........................................................................33.3按不同功能点计算..................................................................................33.3.1功能点估算分类.........................................................................33.3.2识别功能点的重要原则.............................................................43.3.3内部逻辑文件与外部接口文件.................................................43.3.4事务类型功能点的计算规则.....................................................93.3.5计算调整因子...........................................................................143.3.6计算调整后的功能点个数.......................................................253.4总结.......................................................................................................33一、功能点估算法概念功能点估算法是软件项目管理众多方法中比较有技术含量的一个,也是最实用的一个。在软件项目管理中项目计划制定的优劣、合理直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。二、功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。它们之间的区别和关系如下:功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。假如这个时候使用LOC代码行估算法,则误差会比较大。使用功能点估算法无需懂得软件使用何种开发技术。LOC代码行估算法则与软件开发技术密切相关。功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。三、功能点分析的步骤(含例子)本文将以国际标准IFPUG(InternationalFunctionPointUsersGroup)组织提供的功能点估算法V4.1.1为基础进行讲解。如下图所示,首先大家应该了解功能点估算法的使用步骤。图1功能点估算法的步骤具体步骤包括:1.识别功能点的类型。2.识别待估算应用程序的边界和范围。3.计算数据类型功能点所提供的未调整的功能点数量。4.计算人机交互功能所提供的未调整的功能点数量。5.确定调整因子。6.计算调整后的功能点数量。三.1识别项目的类型国际IFPUG组织将软件项目分为三类,功能点估算法适用于任何一类项目新开发项目二次开发的项目功能增强的项目三.2识别项目的范围和边界使用UML的“UseCase”用例图是以用户角度进行识别项目范围和边界的最好方法,在画用例图时就必须明确系统的边界。通过系统的边界,我们可以知道哪些功能要计算功能点,哪些功能点是外部系统负责计算的。以图2为例:一个外贸订单系统只包含录入、修改、删除、查询和统计订单的功能,而汇率查询转换服务是不属于该系统的。应用程序边界的识别规则大家一定要牢记,不能从技术角度去思考,必须从用户角度来定义;如果项目牵扯到多个系统,那么必须将这多个系统的边界全部描述清楚。图2外贸订单系统用例图三.3按不同功能点计算三.3.1功能点估算分...