实用的软件系统开发成本估算法-软件成本管理(含例子).doc

上传人:11****ws 文档编号:3677955 上传时间:2019-07-05 格式:DOC 页数:34 大小:382.66KB
下载 相关 举报
实用的软件系统开发成本估算法-软件成本管理(含例子).doc_第1页
第1页 / 共34页
实用的软件系统开发成本估算法-软件成本管理(含例子).doc_第2页
第2页 / 共34页
实用的软件系统开发成本估算法-软件成本管理(含例子).doc_第3页
第3页 / 共34页
实用的软件系统开发成本估算法-软件成本管理(含例子).doc_第4页
第4页 / 共34页
实用的软件系统开发成本估算法-软件成本管理(含例子).doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、软件系统开发成本估算法功能点估算含例子实用的软件系统开发成本估算法 1 目录一、 功能点估算法概念 .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实用的软件系统开发成本估算法 1 一、 功能点估算法概念功能点估算法是软件项目管理众多

2、方法中比较有技术含量的一个,也是最实用的一个。在软件项目管理中项目计划制定的优劣、合理直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资 源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。二、 功能点估算法的特点项目范围的估算在 CMMI 的“MA”度量分析管理和“PP”项目计划中均有涉及。对软件项目范围的估算有很多种方法,常见的是 LOC 代码行和 FP 功能点法。它们之间的区别和关系如下: 功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。假如这个时候使用 LOC

3、代码行估算法,则误差会比较大。 使用功能点估算法无需懂得软件使用何种开发技术。LOC 代码行估算法则与软件开发技术密切相关。 功能点估算法是以用户为角度进行估算,LOC 代码行估算法则是以技术为角度进行估算。 通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC 代码行的。在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初 估计的不同。因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。三、 功能点分析的步骤(含例子)本文将以国际标准 IF

4、PUG(International Function Point Users Group)组织提供的功能点估算法 V4.1.1 为基础进行讲解。如下图所示,首先大家应该了解功能点估算法的使用步骤。实用的软件系统开发成本估算法 2 图 1 功能点估算法的步骤具体步骤包括:1. 识别功能点的类型。2. 识别待估算应用程序的边界和范围。3. 计算数据类型功能点所提供的未调整的功能点数量。4. 计算人机交互功能所提供的未调整的功能点数量。5. 确定调整因子。6. 计算调整后的功能点数量。3.1 识别项目的类型国际 IFPUG 组织将软件项目分为三类,功能点估算法适用于任何一类项目: 新开发项目 二次开

5、发的项目 功能增强的项目3.2 识别项目的范围和边界使用 UML 的“UseCase”用例图是以用户角度进行识别项目范围和边界的最好方法,在画用例图时就必须明确系统的边界。通过系统的边界,我们可以知道 哪些功能要计算功能点,哪些功能点是外部系统负责计算的。以图 2 为例:一个外贸订单系统只包含录入、修改、删除、查询和统计订单的功能,而汇率实用的软件系统开发成本估算法 3 查询转换服 务是不属于该系统的。应用程序边界的识别规则大家一定要牢记,不能从技术角度去思考,必须从用户角度来定义;如果项目牵扯到多个系统,那么必须将这多个系统的边界全部描述清楚。图 2 外贸订单系统用例图3.3 按不同功能点计

6、算3.3.1 功能点估算分类功能点估算法将功能点分为以下 5 类:1. ILF:Internal Logical File 内部逻辑文件2. EIF: External Interface File 外部接口文件3. EI: External Input 外部输入4. EO: External Output 外部输出5. EQ: External Inquiry 外部查询实用的软件系统开发成本估算法 4 其中,ILF 和 EIF 属于数据类型的功能点,EI、EO、EQ 属于人机交互事务类型的功能点。以外贸订单系统项目为例: 录入订单、修改订单、删除订单是 EI; 查询订单是 EO 统计订单是

7、EQ 汇率查询转换系统为 EIF 订单和客户是 ILF3.3.2 识别功能点的重要原则ILF、EIF 要与 EI、EO、EQ 分开计算。对 ILF 和 EIF 复杂度的计算可以简单理解为对数据库复杂度的计算。对 EI、EO、EQ 复杂度的计算可以理 解为对程序开发复杂度的计算。一般软件项目都是由数据和程序构成的,因此计算ILF、EIF 和计算 EI、EO、EQ 之间没有任何关系。3.3.3 内部逻辑文件与外部接口文件ILF 内部逻辑文件内部逻辑文件是指一组以用户角度识别的、在应用程序边界内且被维护的逻辑相关数据或控制信息。ILF 的主要目的是通过应用程序的一个或多个基本处理过程来维护数据。EI

8、F 外部接口文件外部接口文件是指一组在应用程序边界内被查询,但在其他应用程序中被维护的、以用户角度来识别的、逻辑上相关的数据。因此,一个应用程序中的EIF 必然是 其他应用程序中的 ILF。EIF 的主要目的是为边界内的应用程序提供一个或多个通过基础操作过程来引用的一组数据或信息。EIF 所遵循的规则: 从用户角度出发识别的一组逻辑数据。 这组数据是在应用程序外部,并被应用程序引用的。实用的软件系统开发成本估算法 5 计算功能点的这个应用程序并不维护该 EIF。 这组数据是作为另一个应用程序中的 ILF 被维护的。ILF 和 EIF 的复杂性计算ILF 和 EIF 的复杂性是取决于 RET(R

9、ecord element type)和DET(Data element type)的数量。DET 是一个以用户角度识别的、非重复的、有业务逻辑意义的字段。DET 计算的规则如下: 通过一个基本处理过程的执行,对 ILF 进行维护,或从 ILF/EIF 中返回一个特定的、用户可识别的、非重复的字段,那么每个这样的字段算一个 DET。例如:添加一个外贸订单时需要保存“订单号码、订单日期、地址、邮编”,那么对于 ILF 订单来说它的 DET 就是 4 个。再如:保存订单时还会保存订单的明细。订单的明细往往作为一个子表进行保存,那么“订单号码”在主表和子表中都同时存在(主外键)。但以用户角度来识别时

10、,存盘操作是一个最小的单位,那么订单号码只能算做一个DET。 当两个应用程序维护和/或引用相同的 ILF/EIF,但是每个应用程序分别维护/引用它们相应的 DET 时,这些 DET 在这两个应用程序的维护/引用中将单独计算。例如,一个应用程序的两个“Elementary Process”基本处理过程都需要使用到“地址”的信息,地址信息又可以细分为“国家、城市、街道、邮编”。那么对于其中一个基本处理过程来说,它将整 个地址信息作为一个整体进行处理,只算一个 DET;另外一个基本处理过程使用每个地址的详细信息,那么 DET 就是 4 个。RET 计算的规则如下:RET 是指一个 EIF/ILF 中

11、用户可以识别的 DET 的集合。如果把 DET 简单理解为字段的话,那 RET 就可以简单理解为数据库中的表。RET 在 ILF /EIF 中分实用的软件系统开发成本估算法 6 为两种类型:可选的(Optional)和必选的(Mandatory)。计算 RET 的规则为以下两点: 在一个 ILF/EIF 中每一个可选或必选的集合都被计算为一个 RET。 如果一个 ILF/EIF 没有子集合,则 ILF/EIF 被计算为一个 RET。例如:在外贸订单系统中添加一个订单时会保存“订单信息、客户的ID、部门的 ID”。那么订单系统 ILF 中的 RET 为:1. 订单信息(必选的)2. 客户信息(必

12、选的)3. 部门信息(可选的)因此 ILF 中 RET 的个数为 3 个。ILF/EIF 复杂度的矩阵如下:119 个 DET 2050 个 DET 超过 51 个 DET1 个 RET 低 低 中等25 个 RET 低 中等 高6 个以上 RET 中等 高 高软件项目管理中的功能点估算法将功能点分为 5 类:ILF(Internal Logical File,内部逻辑文件)、EIF(External Interface File,外部接口文件)、EI(External Input,外部输入)、EO(External Output,外部输出)和 EQ(External Inquiry,外部查询

13、)。其中,ILF 和 EIF 属于数据类型的功能点,EI、EO、EQ 属于事务类型的功能点。EI、EO、EQ 的比较实用的软件系统开发成本估算法 7 EI 是处理来自应用程序边界外部的一组数据输入,它的主要目的是维护一个或多个 ILF,以及/或者更改系统的行为。EO 是输送数据到应用程序边界外部的过程。它的主要目的是通过逻辑处理过程向用户呈现信息。该处理过程必须包含至少一个数学公式或计算方法,或生成派生数据。一个 EO 也可以维护一个或多个 ILF,并/或改变系统行为。EQ 是向应用程序边界外发送数据基本处理的过程。其主要目的是从 ILF 或EIF 中通过恢复数据信息来向用户呈现。该处理逻辑不

14、包括任何数学公式或计算方法,也不会生成任何派生数据。EQ 不会维护任何一个 ILF,也不会改变应用程序的系统行为。EO 和 EQ 的共同点是,其主要目的都是通过基本操作过程展现数据给用户。EI、EO、EQ 的比较见下表。表 1 EI、EO、EQ 的主要目的目的 EI EO EQ改变应用程序的属性或行为 主要目的 次要目的 不允许维护一个或多个 ILF 主要目的 次要目的 不允许显示信息给用户 次要目的 主要目的 主要目的表 2 EI、EO、EQ 的主要行为实用的软件系统开发成本估算法 8 行为 EI EO EQ数学公式或计算被执行 可以至少选择一次不可以至少一个 ILF 被修改至少选择一次至少选择一次不可以至少一个 ILF 或 EIF 被引用 可选 可选 必选数据被重新恢复 可选 可选 必选派生数据被创建 可选至少选择一次可选应用程序的行为或属性被修改至少选择一次至少选择一次可选准备或呈现信息到系统边界外 可选 必选 必选接受进入系统边界内的数据的能力 必须 可选 可选3.3.4 事务类型功能点的计算规则在 IFPUG 的定义中有一个重要的单词“Elementary Process”基本处理过程。该过程对用户来说是一个有意义的、最小的活动单位,并且是一个自

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。