功能点估算(CMMI-FP)含例子

合集下载

功能点估算案例

功能点估算案例

功能点估算案例下面以员工管理系统为例,详细说明如何利用功能点估算法计算业务复杂度。

在员工管理系统中添加一个员工的资料,会使用到员工的一般信息、教育情况、工作经历和家属信息。

员工隶属于某个部门,在本系统中会有一个对部门进行维护的功能。

员工的工资则由另外一个财务系统提供。

因此,其用例图如下所示:图1 员工管理系统用例图假设员工基本信息如下所示:•员工ID(标签)•员工名称•性别•生日•婚否•所属部门ID•所属部门名称•受教育的时间•学校名称•所学专业•工作时间•工作单位•工作部门•工作职务•家属的姓名•之间关系•家属年龄•工作单位假设部门信息如下所示:•部门ID•部门名称假设工资表信息如下所示:•员工ID•员工姓名•金额•单位ILF和EIF的功能点数本案例识别出来ILF和EIF功能点个数如下表所示。

EI、EQ和EO的功能点数本范例识别出来EI、EQ和EO功能点个数如下表所示。

本系统的通用系统特性及其影响程度如下表所示。

最终调整后的功能点数量为:(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查询时使用了数学公式或计算方法。

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

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

软件系统开发成本估算法功能点估算含例子目录一、功能点估算法概念 (1)二、功能点估算法的特点 (1)三、功能点分析的步骤(含例子) (1)3。

1 识别项目的类型 (2)3。

2 识别项目的范围和边界 (2)3。

3 按不同功能点计算 (3)3。

3.1功能点估算分类33。

3。

2识别功能点的重要原则33.3。

3内部逻辑文件与外部接口文件43.3。

4事务类型功能点的计算规则83。

3.5计算调整因子133。

3。

6计算调整后的功能点个数243。

4 总结 (31)一、功能点估算法概念功能点估算法是软件项目管理众多方法中比较有技术含量的一个,也是最实用的一个。

在软件项目管理中项目计划制定的优劣、合理直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。

如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义.二、功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。

对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。

它们之间的区别和关系如下:•功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。

假如这个时候使用LOC代码行估算法,则误差会比较大。

•使用功能点估算法无需懂得软件使用何种开发技术.LOC代码行估算法则与软件开发技术密切相关.•功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算.•通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。

在项目刚开始的时候进行功能点估算可以对项目的范围进行预测.在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。

因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模.三、功能点分析的步骤(含例子)本文将以国际标准IFPUG(International Function Point Users Group)组织提供的功能点估算法V4。

信息系统项目管理功能点估算(CMMI-FP)

信息系统项目管理功能点估算(CMMI-FP)

选用了FP功能点分析作为项目主要的估算方法.因为FP方法中有大量项目经验数据可以从网络上获得,同时其数据功能TLF、EIF,以及事务功能EI、EO、EQ的计算对经验数据依赖不强,只需对概念理解正确一般就可以正确估算了.在估算成本的时候,因为公司以前的生产率数据是以LOC为单位的,我利用软件工程书籍中的“逆火”经验数据,将 LOC转换为功能点单位,当然,这里必然导致一些误差。

为了降低估算误差,最后使用Delphi专家分析法对估算结果进行了调整.功能点估算法是软件项目管理众多知识中比较有技术含量的一个。

在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。

如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。

功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。

对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。

它们之间的区别和关系如下:∙功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。

假如这个时候使用LOC代码行估算法,则误差会比较大。

∙使用功能点估算法无需懂得软件使用何种开发技术。

LOC代码行估算法则与软件开发技术密切相关。

∙功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。

∙通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。

在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。

在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。

因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。

功能点分析的步骤具体步骤包括:1. 识别功能点的类型。

2. 识别待估算应用程序的边界和范围。

IFPUG功能点估算含示例

IFPUG功能点估算含示例
EO 补充的计算规则 除了要满足上面的通用规则外,还要满足下面其中一条:
在基本操作过程中至少包含一个数学公式或计算方法 在基本操作过程中要产生派生数据 在基本操作过程中至少要维护一个 ILF 在基本操作过程中要改变系统的行为。
EQ 补充的计算规则 除了要满足上面的通用规则外,还要满足下面其中一条:
EI 主要目的 主要目的 次要目的
EO 次要目的 次要目的 主要目的
EQ 不允许 不允许 主要目的
EI 可以 至少选择一次 可选 可选 可选 至少选择一次 可选 必须
EO 至少选择一次 至少选择一次 可选 可选 至少选择一次 至少选择一次 必选 可选
EQ 不可以 不可以 必选 必选 可选 可选 必选 可选
该基本处理过程逻辑上必须是唯一的,该唯一性是指其在应用程序中与其 他 EO 或 EQ 在逻辑性上保持唯一。
该基本处理过程所使用的数据应该是唯一的,该唯一性是指其在应用程序 中与其他 EO 或 EQ 所使用的数据不同。
该基本处理过程所引用的 ILF 或 EIF 文件应该是唯一的,该唯一性是指其 在应用程序中与其他 EO 或 EQ 所引用的 ILF 或 EIF 文件不同。
使用功能点估算法无需懂得软件使用何种开发技术。LOC 代码行估算法则 与软件开发技术密切相关。
功能点估算法是以用户为角度进行估算,LOC 代码行估算法则是以技术为 角度进行估算。
通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为 LOC 代码行的。
在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。在项目开发 的过程中由于需求的变更和细化可能会导致项目范பைடு நூலகம்的蔓延,计算出来的结果会 与当初 估计的不同。因此,在项目结束时还需要对项目的范围情况重新进行估 算,这个时候估算的结果才能最准确反映项目的规模。

信息系统项目管理功能点估算(CMMI-FP)

信息系统项目管理功能点估算(CMMI-FP)

选用了FP功能点分析作为项目主要的估算方法•因为FP方法中有大量项目经验数据可以从网络上获得,同时其数据功能TLF、EIF,以及事务功能El、EO EQ的计算对经验数据依赖不强,只需对概念理解正确一般就可以正确估算了.在估算成本的时候,因为公司以前的生产率数据是以LOC为单位的,我利用软件工程书籍中的“逆火”经验数据,将LOC转换为功能点单位,当然,这里必然导致一些误差。

为了降低估算误差,最后使用Delphi专家分析法对估算结果进行了调整.功能点估算法是软件项目管理众多知识中比较有技术含量的一个。

在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。

如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。

功能点估算法的特点项目范围的估算在CMM的“ MA度量分析管理和“ PP'项目计划中均有涉及。

对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。

它们之间的区别和关系如下:•功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。

假如这个时候使用LOC弋码行估算法,则误差会比较大。

•使用功能点估算法无需懂得软件使用何种开发技术。

LOC代码行估算法则与软件开发技术密切相关。

•功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。

*通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。

在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。

在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。

因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。

功能点分析的步骤具体步骤包括:1. 识别功能点的类型。

功能点估算(CMMI-FP)含例子

功能点估算(CMMI-FP)含例子

功能点估算(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. 计算调整后的功能点数量。

功能点估算案例

功能点估算案例

功能点估算案例下面以员工管理系统为例,详细说明如何利用功能点估算法计算业务复杂度。

在员工管理系统中添加一个员工的资料,会使用到员工的一般信息、教育情况、工作经历和家属信息。

员工隶属于某个部门,在本系统中会有一个对部门进行维护的功能。

员工的工资则由另外一个财务系统提供。

因此,其用例图如下所示:图1 员工管理系统用例图假设员工基本信息如下所示:•员工ID(标签)•员工名称•性别•生日•婚否•所属部门ID•所属部门名称•受教育的时间•学校名称•所学专业•工作时间•工作单位•工作部门•工作职务•家属的姓名•之间关系•家属年龄•工作单位假设部门信息如下所示:•部门ID•部门名称假设工资表信息如下所示:•员工ID•员工姓名•金额•单位ILF和EIF的功能点数本案例识别出来ILF和EIF功能点个数如下表所示。

EI、EQ和EO的功能点数本范例识别出来EI、EQ和EO功能点个数如下表所示。

本系统的通用系统特性及其影响程度如下表所示。

最终调整后的功能点数量为:(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查询时使用了数学公式或计算方法。

信息系统项目管理功能点估算(CMMI-FP)

信息系统项目管理功能点估算(CMMI-FP)

选用了FP功能点分析作为项目主要的估算方法.因为FP方法中有大量项目经验数据可以从网络上获得,同时其数据功能TLF、EIF,以及事务功能EI、EO、EQ的计算对经验数据依赖不强,只需对概念理解正确一般就可以正确估算了.在估算成本的时候,因为公司以前的生产率数据是以LOC为单位的,我利用软件工程书籍中的“逆火”经验数据,将 LOC转换为功能点单位,当然,这里必然导致一些误差。

为了降低估算误差,最后使用Delphi专家分析法对估算结果进行了调整.功能点估算法是软件项目管理众多知识中比较有技术含量的一个。

在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。

如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。

功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。

对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。

它们之间的区别和关系如下:∙功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。

假如这个时候使用LOC代码行估算法,则误差会比较大。

∙使用功能点估算法无需懂得软件使用何种开发技术。

LOC代码行估算法则与软件开发技术密切相关。

∙功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。

∙通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。

在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。

在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。

因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。

功能点分析的步骤具体步骤包括:1. 识别功能点的类型。

2. 识别待估算应用程序的边界和范围。

FP功能点估算方法

FP功能点估算方法

• 用户通过界面向系统输入,目
逻辑文件
的是维护ILF或更改系统的行为。 • 用户角度识别的,被系统边界内
• 如:增、删、改的操作。
维护的数据或控制信息。
• 数据库的表、独立的文件
• EO: External Output外部输出
• 用户看到的一个完整业务逻辑对
• 系统向用户输出,通过逻辑处
象,在系统内部可能对应多个数
商品库 销售记录
EI EO EQ
EI
FTR
DET个数 复杂度 未调整的FP个数
客户姓名、交易
日期、单项、数
销售记录 保存
销售商品、 销售记录
2
量、商品单价、 商品总价、交易 小计、销售税、 交易合计、F1保

4
存、报错信息
11
保存算一个EI,查询并汇总算一个EO吗?
数据功能 EIF
销售商品
ILF 销售记录
20世纪70年代提出,演进为一个总标准(ISO14143) 与5个子标准
MarkII、COSMIC、NESMA、FISMA、IFPUG
概念
✓ 软件功能规模是指通过量化功能用户需求而得到的软件规模。
软件规模用功能点(FP)来表示,即功能点是IFPUG功能规模的度量单位。
✓ IFPUG功能规模度量(Functional Size Measurement,FSM)
功能点估算方法
Functional Size Measurement,FSM
FPA
2014年1月
内容
FP方法概述 • 概念 • 价值 • 应用 FP估算过程 • 步骤 • 规则 FP估算案例 • 案例一 • 案例二 FP估算演练
不够敬业?
加班赶工期

功能点估算案例

功能点估算案例

功能点估算案例下面以员工管理系统为例,详细说明如何利用功能点估算法计算业务复杂度。

在员工管理系统中添加一个员工的资料,会使用到员工的一般信息、教育情况、工作经历和家属信息。

员工隶属于某个部门,在本系统中会有一个对部门进行维护的功能。

员工的工资则由另外一个财务系统提供。

因此,其用例图如下所示:图1 员工管理系统用例图假设员工基本信息如下所示:•员工ID(标签)•员工名称•性别•生日•婚否•所属部门ID•所属部门名称•受教育的时间•学校名称•所学专业•工作时间•工作单位•工作部门•工作职务•家属的姓名•之间关系•家属年龄•工作单位假设部门信息如下所示:•部门ID•部门名称假设工资表信息如下所示:•员工ID•员工姓名•金额•单位ILF和EIF的功能点数本案例识别出来ILF和EIF功能点个数如下表所示。

EI、EQ和EO的功能点数本范例识别出来EI、EQ和EO功能点个数如下表所示。

本系统的通用系统特性及其影响程度如下表所示。

最终调整后的功能点数量为:(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查询时使用了数学公式或计算方法。

信息系统项目管理功能点估算(CMMI-FP)

信息系统项目管理功能点估算(CMMI-FP)

选用了FP功能点分析作为项目主要的估算方法.因为FP方法中有大量项目经验数据可以从网络上获得,同时其数据功能TLF、EIF,以及事务功能EI、EO、EQ的计算对经验数据依赖不强,只需对概念理解正确一般就可以正确估算了.在估算成本的时候,因为公司以前的生产率数据是以LOC为单位的,我利用软件工程书籍中的“逆火”经验数据,将 LOC转换为功能点单位,当然,这里必然导致一些误差。

为了降低估算误差,最后使用Delphi专家分析法对估算结果进行了调整.功能点估算法是软件项目管理众多知识中比较有技术含量的一个。

在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。

如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。

功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。

对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。

它们之间的区别和关系如下:∙功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。

假如这个时候使用LOC代码行估算法,则误差会比较大。

∙使用功能点估算法无需懂得软件使用何种开发技术。

LOC代码行估算法则与软件开发技术密切相关。

∙功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。

∙通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。

在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。

在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。

因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。

功能点分析的步骤具体步骤包括:1. 识别功能点的类型。

2. 识别待估算应用程序的边界和范围。

FP功能点估算方法(共68张PPT)

FP功能点估算方法(共68张PPT)
• 估算无需非常准确,但是要有用。
FP的应用
✓ 工作量估算 项目功能点/生产率=项目工作量
✓ 人力成本预算 资源个数*平均工资=资源成本
生产率
工资
FP
平均成本
项目能否按期交付? 项目的收益?
2.FP估算过程
FP估算步骤
确定项目的计数范围
• 新开发项目 • 开发并交付软件应用的第一个正式版本项目
• 如:导出、报表、打印、出错信息。
• EQ: External Queries外部查询 • 系统向边界外发送数据,该数据未 经加工。
• 如:查询
• ILF: Internal Logical Files内部逻辑
文件
• 用户角度识别的,被系统边界内 维护的数据或控制信息。
• 数据库的表、独立的文件
• 用户看到的一个完整业务逻辑对象, 在系统内部可能对应多个数据表。
✓ IFPUG功能规模度量(Functional Size Measurement,FSM)
是用功能点分析(FPA)方法来度量软件功能规模的活动。
FP的目的
• 一个成功的软件项目首先要有一个好的起点,也就是一个合理的项 目计划;一个好的项目计划,离不开一个准确的、可信的、客观
的项目估算数据作为基础。 • 之所以要先制定项目计划,目的就是为了让项目更加可控。 • 加班是对不负责任的进度承诺的惩罚。
小结
FP计算过程
• 收集可得到的文档 • 确定计数范围和边界,识别功能用户需求 • 度量数据功能 • 度量事务功能
• 调整因子,计算功能规模
数据功能度量过程
• 识别数据功能(借助识别规则) • 分类数据功能ILF\EIF
• 判断RET和DET(借助计算规则) • 根据复杂度判定表计算复杂度

软件功能点估算

软件功能点估算

软件功能点估算为了能更好地理解和掌握软件功能点估算的一些规则,本文通过介绍一个需求实例来展开软件功能点估算的介绍,欢迎各位专家批评指正。

新增需求:实现一个订单的录入,更新,删除、查询、打印、导出功能,其中用户界面如下。

订单明细包含了订购的具体产品及数量的情况,明细记录数原则不限。

导出、打印、更新、删除订单记录应先从图2的查询界面查出记录,再鼠标双击某记录进入图1的增、删、改界面,也可以选择修改或删除菜单后输入订单号进入图1的增、删、改界面,新增时订单编号自动产生,更新时订单编号不能修改。

订单的明细记录在增、删、改界面可进行删除或添加处理,要添加时通过鼠标定位在编辑区按右键选择添加功能,然有会弹出一个产品列表来供操作者选择,材料代码和材料名称及单价是通过选择后自动添加的,不能人工修改,操作者只能修改订单数量,要删除时也通过鼠标定位在编辑区的某产品上按右键选择删除功能即可。

打印版面通过打印模板定制并打印到打印机、导出版面也通过excel模板定制并输出到excel文件。

其他说明:1、用户表和产品数据表本次不变,订单功能开发仅仅是引用这些数据。

2、暂不考虑其它特殊业务逻辑和权限,如:不写日志、功能按钮不根据权限加以屏蔽。

功能界面情况如下:图1:增、删、改界面图2:查询界面功能点分析:1、首先我们来确定本功能涉及到哪些用户数据(ILF,EIF)因为新增需求是订单管理,故订单信息属于一个,另外在需求中提到用户表和产品数据表本次不变,订单功能开发仅仅是引用这些数据,所以用户信息和产品信息也是系统的ILF或EIF,只不过本次新增需求时不计算它的ILF或EIF功能点,因为它没有改变,相信引用它的方式与以前一样,但在EI、EO、EQ中引用需要考虑其FTR复杂度。

另外,需求又要求打印和导出需要使用版面模板,故应该有三个模本文件。

订单类型没有提及需要动态从系统内部获取,根据一般经验应该是一个在程序中做死的下拉选择列表,到此这个新增需求涉及的ILF,EIF应为如下内容:2、然后我们再来确定本功能涉及到哪些用户事务(EI、EO、EQ)通过需求描述和界面我们不难发现,它们有新增、查询、修改、删除、打印和导出功能,只不过导出又分查询结果导出和订单导出,因为它们的内容和版面都不同,而查询结果没有提及需要打印输出,故无查询结果打印功能,查询又分批量查询和根据订单号查询。

功能点估算法实例

功能点估算法实例

功能点估算法实例在功能点估算中,通常采用的方法是功能点分析法(Function Point Analysis, FPA)。

功能点分析法是一种基于用户需求和功能规格的软件度量方法,通过对软件系统的功能进行分类、计量和评估,从而得出系统的功能点数。

功能点数是衡量软件规模的一种指标,可以用于估算软件开发工作的工作量、资源需求和开发周期等。

功能点估算的过程通常包括以下几个步骤:1. 确定功能类型:将软件系统的功能进行分类,常见的功能类型包括数据输入、数据输出、查询、文件维护、逻辑判断等。

2. 识别功能点:根据用户需求和功能规格,识别出系统中的功能点。

功能点可以是一个用户操作界面,也可以是一个数据处理过程或者一个报表输出等。

3. 计量功能点:根据功能点的种类和复杂度,对每个功能点进行计量。

计量方法通常包括简单计数法、权重计数法等。

简单计数法是根据功能点的个数进行计量,而权重计数法则是根据功能点的复杂度和难度进行加权计量。

4. 评估功能点:根据功能点的计量结果,对系统的功能点数进行评估。

评估结果可以用于估算软件开发的工作量、资源需求和开发周期等。

功能点估算方法的优点在于它能够提供一个相对客观的度量指标,可以帮助项目团队更准确地估算项目的规模和工作量。

通过功能点估算,项目团队可以更好地分配资源、制定计划和管理进度,从而提高项目的成功率和质量。

然而,功能点估算也存在一些限制和挑战。

首先,功能点估算的结果受到人为因素的影响较大,不同的人可能对同一个功能点有不同的理解和计量结果。

其次,功能点估算需要准确的用户需求和功能规格,如果需求不清晰或者变更频繁,功能点估算的结果可能会不准确。

另外,功能点估算只是一种软件规模估算方法,对于软件开发中的其他方面如质量、风险等并没有进行考虑。

功能点估算是一种常用的软件项目管理工具,通过对系统功能进行分类、计量和评估,可以提供项目规模、工期和资源需求等关键信息。

功能点估算方法可以帮助项目团队做出合理的决策和计划,提高项目的成功率和质量。

信息系统项目管理功能点估算(CMMI-FP)

信息系统项目管理功能点估算(CMMI-FP)

选用了FP功能点分析作为项目主要的估算方法.因为FP方法中有大量项目经验数据可以从网络上获得,同时其数据功能TLF、EIF,以及事务功能EI、EO、EQ的计算对经验数据依赖不强,只需对概念理解正确一般就可以正确估算了.在估算成本的时候,因为公司以前的生产率数据是以LOC为单位(dānwèi)的,我利用软件工程书籍中的“逆火”经验数据,将 LOC转换为功能点单位,当然,这里必然导致一些误差。

为了降低估算误差,最后使用Delphi 专家分析法对估算结果进行了调整.功能点估算法是软件项目管理众多知识中比较有技术含量的一个。

在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。

如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行(jìnxíng)估算,那么项目计划也就没有存在的意义。

功能点估算(ɡū suàn)法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。

对软件项目范围的估算有很多种方法(fāngfǎ),常见的是LOC代码行和FP功能点法。

它们之间的区别和关系如下:•功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。

假如这个时候使用LOC代码(dài mǎ)行估算法,则误差会比较大。

•使用功能点估算法无需懂得软件使用何种开发技术。

LOC代码行估算法则与软件开发技术密切相关。

•功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。

•通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。

在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。

在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。

因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。

功能点估算(CMMI-FP)

功能点估算(CMMI-FP)

功能点估算(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”用例图是以用户角度进行识别项目范围和边界的最好方法,在画用例图时就必须明确系统的边界。

功能点估算技术应用实例

功能点估算技术应用实例

1功能点估算技术应用实例
假设某员工管理系统,经过需求分析得知,该系统所包含功能如下:
a)员工信息维护:添加员工信息、修改员工信息、查询员工信息;
b)部门信息维护:添加部门信息、修改部门信息;
c)工资统计:统计员工年薪,并打印输出。

其中:
(1)在该系统中添加一个员工资料,会使用到:
员工的基本信息:员工ID(标签控件)、姓名、性别、年龄、婚否、部门ID;
教育情况:学校名称、所学专业、学历。

(2)对部门的维护会使用到
部门的信息:部门ID(标签控件)、部门名称。

(3)员工工资信息由另外一个财务系统提供:
工资表信息有员工的基本信息:员工ID(标签控件)、姓名、部门名称;
工资信息:工资级别、工资金额。

根据功能点估算技术估算步骤,首先计算未调整功能点数,即各种类型功能项的加权和,分析该系统6个功能项所属类型及其复杂权重值如表
假设该项目的14个技术复杂度因子均为“有一定影响”,即权重值均为2,则该项目功能点数为:FP=45⨯(0.65+0.01⨯14 ⨯2)=41.85。

如果知道该项目使用何种语言,可以将功能点数转换为代码行数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间: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所遵循的规则:•从用户角度出发识别的一组逻辑数据。

•这组数据是在应用程序外部,并被应用程序引用的。

•计算功能点的这个应用程序并不维护该EIF。

•这组数据是作为另一个应用程序中的ILF被维护的。

ILF和EIF的复杂性计算ILF和EIF的复杂性是取决于RET(Record element type)和DET(Data element type)的数量。

DET是一个以用户角度识别的、非重复的、有业务逻辑意义的字段。

DET计算的规则如下:•通过一个基本处理过程的执行,对ILF进行维护,或从ILF/EIF中返回一个特定的、用户可识别的、非重复的字段,那么每个这样的字段算一个DET。

例如:添加一个外贸订单时需要保存“订单号码、订单日期、地址、邮编”,那么对于ILF订单来说它的DET就是4个。

再如:保存订单时还会保存订单的明细。

订单的明细往往作为一个子表进行保存,那么“订单号码”在主表和子表中都同时存在(主外键)。

但以用户角度来识别时,存盘操作是一个最小的单位,那么订单号码只能算做一个DET。

•当两个应用程序维护和/或引用相同的ILF/EIF,但是每个应用程序分别维护/引用它们相应的DET时,这些DET在这两个应用程序的维护/引用中将单独计算。

例如,一个应用程序的两个“Elementary Process”基本处理过程都需要使用到“地址”的信息,地址信息又可以细分为“国家、城市、街道、邮编”。

那么对于其中一个基本处理过程来说,它将整个地址信息作为一个整体进行处理,只算一个DET;另外一个基本处理过程使用每个地址的详细信息,那么DET 就是4个。

RET计算的规则如下:RET是指一个EIF/ILF中用户可以识别的DET的集合。

如果把DET简单理解为字段的话,那RET就可以简单理解为数据库中的表。

RET在ILF /EIF中分为两种类型:可选的(Optional)和必选的(Mandatory)。

计算RET的规则为以下两点:•在一个ILF/EIF中每一个可选或必选的集合都被计算为一个RET。

•如果一个ILF/EIF没有子集合,则ILF/EIF被计算为一个RET。

例如:在外贸订单系统中添加一个订单时会保存“订单信息、客户的ID、部门的ID”。

那么订单系统ILF中的RET为:1. 订单信息(必选的)2. 客户信息(必选的)3. 部门信息(可选的)因此ILF中RET的个数为3个。

ILF/EIF复杂度的矩阵如下:软件项目管理中的功能点估算法将功能点分为5类:ILF(Internal Logical File,内部逻辑文件)、EIF(External Interface File,外部接口文件)、EI (External Input,外部输入)、EO(External Output,外部输出)和EQ(External Inquiry,外部查询)。

其中,ILF和EIF属于数据类型的功能点,EI、EO、EQ 属于事务类型的功能点。

EI、EO、EQ的比较EI是处理来自应用程序边界外部的一组数据输入,它的主要目的是维护一个或多个ILF,以及/或者更改系统的行为。

EO是输送数据到应用程序边界外部的过程。

它的主要目的是通过逻辑处理过程向用户呈现信息。

该处理过程必须包含至少一个数学公式或计算方法,或生成派生数据。

一个EO也可以维护一个或多个ILF,并/或改变系统行为。

EQ是向应用程序边界外发送数据基本处理的过程。

其主要目的是从ILF 或EIF中通过恢复数据信息来向用户呈现。

该处理逻辑不包括任何数学公式或计算方法,也不会生成任何派生数据。

EQ不会维护任何一个ILF,也不会改变应用程序的系统行为。

EO和EQ的共同点是,其主要目的都是通过基本操作过程展现数据给用户。

EI、EO、EQ的比较见下表。

表1 EI、EO、EQ的主要目的表2 EI、EO、EQ的主要行为事务类型功能点的计算规则在IFPUG的定义中有一个重要的单词“Elementary Process”——基本处理过程。

该过程对用户来说是一个有意义的、最小的活动单位,并且是一个自包含的活动。

功能点的分类,EI、EO、EQ的识别都是基于“Elementary Process”基本处理过程的。

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。

相关文档
最新文档