- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
功能点估算(CMMI-FP)含例子
功能点估算法是软件项目管理众多知识中比较有技术含量的一个。在软件项目管理中项目 计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资 源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。
功能点估算法的特点
??? 项目范围的估算在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组织将软件项目分为三类,功能点估算法适用于任何一类项目:
新开发项目
二次开发的项目
功能增强的项目
识别项目的范围和边界
??? 使用UML的“UseCase”用例图是以用户角度进行识别项目范围和边界的最好方法,在画用例图时就必须明确系统的边界。通过系统的边界,我们可以知道 哪些功能要计算功能点,哪些功能点是外部系统负责计算的。以图2为例:一个外贸订单系统只包含录入、修改、删除、查询和统计订单的功能,而汇率查询转换服 务是不属于该系统的。??? 应用程序边界的识别规则大家一定要牢记,不能从技术角度去思考,必须从用户角度来定义;如果项目牵扯到多个系统,那么必须将这多个系统的边界全部描述清楚。
图2 外贸订单系统用例图
功能点估算分类
??? 功能点估算法将功能点分为以下5类:??? 1. ILF:Internal Logical File内部逻辑文件??? 2. EIF: External Interface File外部接口文件??? 3. EI: External Input外部输入??? 4. EO: External Output外部输出??? 5. EQ: External Inquiry外部查询
??? 其中,ILF和EIF属于数据类型的功能点,EI、EO、EQ属于人机交互事务类型的功能点。??? 以外贸订单系统项目为例:
录入订单、修改订单、删除订单是EI;
查询订单是EO
统计订单是EQ
汇率查询转换系统为EIF
订单和客户是ILF
识别功能点的重要原则
??? ILF、EIF要与EI、EO、EQ分开计算。对ILF和EIF复杂度的计算可以简单理解为对数据库复杂度的计算。对EI、EO、EQ复杂度的计算可以理 解为对程序开发复杂度的计算。一般软件项目都是由数据和程序构成的,因此计算ILF、EIF和计算EI、EO、EQ之间没有任何关系。
内部逻辑文件与外部接口文件
??? ILF内部逻辑文件??? 内部逻辑文件是指一组以用户角度识别的、在应用程序边界内且被维护的逻辑相关数据或控制信息。ILF的主要目的是通过应用程序的一个或多个基本处理过程来维护数据。
??? EIF外部接口文件??? 外部接口文件是指一组在应用程序边界内被查询,但在其他应用程序中被维护的、以用户角度来识别的、逻辑上相关的数据。因此,一个应用程序中的EIF必然是 其他应用程序中的ILF。EIF的主要目的是为边界内的应用程序提供一个或多个通过基础操作过程来引用的一组数据或信息。??? EIF所遵循的规则:
从用户角度出发识别的一组逻辑数据。
这组数据是在应用程序外部,
文档评论(0)