功能点估算_修改版
软件功能点估算
软件功能点估算软件功能点估算功能点是指为了实现特定任务而需要开发的软件功能单位。
功能点估算是软件开发过程中的重要环节,它用于确定软件开发的工作量、时间和资源需求。
功能点估算的准确性对于项目的成功与否具有关键性的影响。
在进行功能点估算时,需要进行以下步骤:1. 确定软件的需求:首先,需要明确软件的功能和性能要求,包括系统的输入和输出,以及用户交互的方式。
2. 划分功能模块:将软件的功能划分为多个模块,每个模块包含一个或多个功能点。
3. 估算功能点数量:根据每个功能点的复杂度和难度,对每个功能点进行估算,以确定其所需的工作量和时间。
在估算功能点数量时,可以使用以下方法:1. 功能点计数法:按照定义的功能点类型和计算规则,将每个功能点计数,然后汇总得到总功能点数。
2. 功能点权重法:为不同类型的功能点赋予不同的权重,根据权重对每个功能点进行评估,然后得到总功能点数。
3. 基于经验的估算法:根据过去类似项目的经验,对每个功能点进行估算,然后汇总得到总功能点数。
对于一个较大的软件项目,功能点数量可能会很多,估算的准确性会受到多种因素的影响,包括需求的明确性、开发团队的经验和技能、技术平台的复杂度等。
因此,在进行功能点估算时,需要充分考虑这些因素,并采用合适的方法进行估算。
功能点估算的结果可以用于确定项目的进度计划、资源配置和开发成本,同时也可以用于与客户进行沟通和协商。
如果功能点估算不准确,可能会导致项目延期、资源不足和客户不满等问题,因此,准确估算功能点数量对于项目的成功至关重要。
总之,功能点估算是软件开发过程中的重要环节,它用于确定软件开发的工作量、时间和资源需求。
在进行功能点估算时,需要充分考虑需求的明确性、开发团队的经验和技能、技术平台的复杂度等因素,并采用合适的方法进行估算。
只有通过准确的功能点估算,才能为项目的成功奠定坚实的基础。
功能点估算法
功能点(Funciton Point 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. 计算调整后的功能点数量。
功能点估算(csdn)-文档资料
工具的使用
• 软件成本估算培训_附件A_计算工具_V3.4.xlsx
子系统 总计 创建/新增 综合办公系统 子系统2 子系统3 内部数据/外部接口 是否计算 产生阶段 分 计 未 不 预算 招标 投标 校 类型 值 算 定 计 校验 创建 新增 新增 验 655 655 655 655 0 0 ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE EIF 15 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE EIF 15 1 TRUE 1 TRUE EIF 15 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE EIF 15 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE ILF 35 1 TRUE 1 TRUE 投标时软件 开发商填写 ILF/EIF法 投标 吻合 计数 度 35 3 35 3 15 3 35 3 35 3 35 3 35 3 35 3 35 3 15 3 15 3 35 3 35 3 35 3 35 3 15 3 35 3 35 3 35 3 35 3 35 3 479.0 分 数据/ 0.0 值 接口 46.0 46 10 31.0 31 10 11.0 11 7 22.0 22 10 35.0 35 10 27.0 27 10 22.0 22 10 22.0 22 10 28.0 28 10 11.0 11 7 11.0 11 7 22.0 22 10 18.0 18 10 10.0 10 10 22.0 22 10 11.0 11 7 26.0 26 10 26.0 26 10 26.0 26 10 26.0 26 10 26.0 26 10
IFPUG功能点估算含示例
在基本操作过程中至少包含一个数学公式或计算方法 在基本操作过程中要产生派生数据 在基本操作过程中至少要维护一个 ILF 在基本操作过程中要改变系统的行为。
EQ 补充的计算规则 除了要满足上面的通用规则外,还要满足下面其中一条:
EI 主要目的 主要目的 次要目的
EO 次要目的 次要目的 主要目的
EQ 不允许 不允许 主要目的
EI 可以 至少选择一次 可选 可选 可选 至少选择一次 可选 必须
EO 至少选择一次 至少选择一次 可选 可选 至少选择一次 至少选择一次 必选 可选
EQ 不可以 不可以 必选 必选 可选 可选 必选 可选
该基本处理过程逻辑上必须是唯一的,该唯一性是指其在应用程序中与其 他 EO 或 EQ 在逻辑性上保持唯一。
该基本处理过程所使用的数据应该是唯一的,该唯一性是指其在应用程序 中与其他 EO 或 EQ 所使用的数据不同。
该基本处理过程所引用的 ILF 或 EIF 文件应该是唯一的,该唯一性是指其 在应用程序中与其他 EO 或 EQ 所引用的 ILF 或 EIF 文件不同。
使用功能点估算法无需懂得软件使用何种开发技术。LOC 代码行估算法则 与软件开发技术密切相关。
功能点估算法是以用户为角度进行估算,LOC 代码行估算法则是以技术为 角度进行估算。
通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为 LOC 代码行的。
在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。在项目开发 的过程中由于需求的变更和细化可能会导致项目范பைடு நூலகம்的蔓延,计算出来的结果会 与当初 估计的不同。因此,在项目结束时还需要对项目的范围情况重新进行估 算,这个时候估算的结果才能最准确反映项目的规模。
功能点估算修改版
功能点估计法
内部逻辑文件(ILF:Internal Logic File)定义: 是系统里的逻辑主文件,通常,一个内部文件(ILF )至少同一个输出(EO)或一个查询(EQ)相关。该 内部文件(ILF)作为输出(EO)或查询(EQ)的引 用文件类型(FTR)。计算方法:
8
功能点估计法—技术复杂度因子
复杂度调整表
10
功能点估计法—技术复杂度因子(续)
设前例中14 项复杂度调整项均为极其重要, 即调整值全都是 5 ,则调整后的功能点为:
FP=27 ×(0.65+0.01 ×14 ×5) =36.45
11
功能点估计法—技术复杂度因子(续)
总结: 根据用户需求确定系统需求边界和软件必须具有的功
能。 计算数据功能类型和事物功能类型功能的数目。 评估每一个功能类型的复杂度,求和得到系统未调节
简单 3 4 3 7 5
权重 一般 4 5 4 10 7
复杂 6 7 6 15 10
范例:现假设一项 目的功能项中只含 两个简单的输入和 三个复杂的输出, 则原始功能点为
UFC=2 ×3 +3 ×7 =27
3
功能点估计法
外部输入(EI:External Input) 定义:是由用户提供的 、描述面向应用的数据项,如文件名和菜单选项。其计算基 于数据元素类型(DET)和引用文件类型(FTR),关系如下 表:
功能点UFP。 确定技术复杂度因子TCP据项目特性,查询相关资料将功能点转化为工作量 (一般是代码行数)
最为简单的方法:程序语言表格(见下页表)
13
程序设计语言 ACCEL Access
EXCEL 1-2 EXCEL 3-4 EXCEL 5
IFPUG功能点估算含示例
功能点估算(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.计算调整后的功能点数量。
软件项目功能点(FP)估算指南
文件编号:KT/PM-PP-0X-V0.1应用软件项目功能点(FP)规模估算方法修改记录目录1前言 (3)1.1目的 (3)1.2适用范围 (3)1.3术语和缩略语 (3)2功能点定义 (3)2.1信息域特性 (3)2.1.1定义 (3)2.1.1.1外部输入EI (3)2.1.1.2外部输出EO (3)2.1.1.3外部查询EQ (3)2.1.1.4内部逻辑文件ILF (4)2.1.1.5外部接口EIF (4)2.1.2复杂度计算 (4)2.1.2.1事务类特性复杂度估算 (4)2.1.2.2数据存储类特性复杂度估算 (5)2.2基本系统特征 (6)2.2.1定义 (6)2.2.2复杂度计算 (6)3估算功能点的步骤 (7)3.1计算UFP (7)3.2计算TCF (7)3.3计算功能点数FP (7)4输出 (7)1前言1.1目的功能性度量方法是一种独立于编程语言的软件规模度量方式,使用这种方法可在早期根据明确功能需求来对最终产品的规模进行估算。
在对软件开发环境校准以后,功能性度量的结果可以为评估开发工作量和软件产品的成本提供很好的指标。
1.2适用范围应用软件项目生命周期中,从需求分析开始直至系统测试结束均可使用本方法进行软件规模估算与度量。
1.3术语和缩略语EI: External Input外部输入EO: External Output外部输出EQ: External Queries外部查询ILF: Internal Logical Files内部逻辑文件EIF: External Interface Files外部接口文件UFP: Unadjusted Function Points未调整功能点TCF: Technical Complex Factor技术复杂度因子2功能点定义功能点技术依据对软件信息域特性和基本系统特征的评估结果来估算软件规模。
根据软件信息域特性可计算出未调整功能点(UFP),根据基本系统特征可计算出软件复杂性因子(TCF),最后用公式FP=UFP×TCF得出功能点规模。
IFPUG 功能点估算基本方法
IFPUG 功能点估算基本方法Function Point Estimation 功能点估算是一种用来估算项目大小的技术。
项目经理从已经界定的软件范围开始,并根据该陈述将软件分解为可以被单独估算的功能单元,然后估算每一个功能的FP值。
这种分析方法是按照功能为估算单元进行分解,同样如果以其它元素作为估算单元,例如类、对象、业务过程,以下都以功能分解进行讨论。
注意:功能单元是指分解到的最小可估算单元。
FP值是按照经验,使用复杂度参数进行估算调整过的量化的数值。
估算的基本过程:a) 界定项目范围;b) 分解项目到可以被估算的最小功能单元;c) 识别功能单元的类型,估算复杂度;d) 计算总体系统特征值;e) 计算调整因子;f) 应用公式计算FP值。
1. 界定项目范围界定项目范围这次不讨论。
2. 分解项目到可以被估算的最小功能单元系统用5种信息域特征进行描述:事务(Transaction):外部输入( External Input EI)外部输出(External Output EO)外部查询(External Inquiry EQ)数据存储:内部逻辑文件(Internal Logical File ILF)外部接口文件(External Interface File EIF)。
内部文件(ILF)指每个逻辑主文件(即数据的一个逻辑组合,它可能是某大型数据库的一部分或者是一个独立的文件),例如数据库表。
注意不是一个数据库表就是一个ILF,例如合同数据可以包括合同信息、合同条款、合同付款计划。
外部接口:所有机器可读的接口,是不由本系统维护的逻辑文件,是其它系统的ILF。
例如:web service取回的数据,一个人工维护的Excel表格。
3. 估算功能点的复杂度数据元素类型(Data Element Types DET)是一个用户可识别的、唯一性的、非递归的域。
记录元素类型(Record Element Types RET)是ILF或者EIF中用户能够识别的数据元素小组。
功能点估算
功能点估算
功能点估算是一种根据项目需求对功能点进行定量评估的方法。
在软件开发过程中,功能点估算能够帮助项目经理了解项目的规模、复杂度和工时等信息,从而有助于项目计划和管理的制定。
功能点估算通常包括以下几个步骤:
1. 确定功能点类型:功能点可以分为三种类型,分别是输入、输出和查询。
对于每个功能点,需要明确它的类型,并根据具体功能做出相应的评估。
2. 评估功能点复杂度:对于每个功能点,需要评估它的复杂程度。
通常,功能点的复杂性可以分为低、中和高三个级别。
评估复杂度时可以考虑功能点的输入输出量、处理逻辑的复杂程度和使用的技术等因素。
3. 评估功能点数量:根据项目需求,将所有功能点按类型和复杂度分类,并对其进行数量估算。
可以根据项目经验和专业知识,结合实际情况进行评估。
4. 评估工时:对于每个功能点,需要评估它所需的工时。
可以根据开发人员的经验和历史数据进行估算,并结合项目进度和资源情况进行调整。
5. 总结功能点估算:将所有功能点的估算结果进行总结,得出项目的功能点总数和所需的总工时。
可以与项目经理和开发团
队进行讨论和调整,以确保估算结果的准确性。
功能点估算的准确性对于项目管理和进度控制非常重要。
通过合理估算功能点数量和工时,可以更好地规划项目进度和资源分配,避免过度或不足的工作量。
同时,功能点估算还可以为开发团队提供目标和参考,帮助他们明确任务和完成工作。
因此,功能点估算是项目开发过程中不可或缺的一环。
IFPUG功能点估算含示例
在基本操作过程中至少包含一个数学公式或计算方法 在基本操作过程中要产生派生数据 在基本操作过程中至少要维护一个 ILF 在基本操作过程中要改变系统的行为。
EQ 补充的计算规则 除了要满足上面的通用规则外,还要满足下面其中一条:
EI 的计算规则 1. 从应用边界之外收到数据。 2. 如果进入系统边界内的数据不是一个改变系统行为的控制信息,那么至少一 个 ILF 应该被改变。 3. 对于已识别的处理过程,至少满足下面三个条件之一。
该基本处理过程的逻辑与本应用系统中其它基本处理过程的逻辑不同。该 基本处理过程应该具有唯一性。例如:不能存在两个完全一模一样的存盘 操作。
使用功能点估算法无需懂得软件使用何种开发技术。LOC 代码行估算法则 与软件开发技术密切相关。
功能点估算法是以用户为角度进行估算,LOC 代码行估算法则是以技术为 角度进行估算。
通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为 LOC 代码行的。
在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。在项目开发 的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会 与当初 估计的不同。因此,在项目结束时还需要对项目的范围情况重新进行估 算,这个时候估算的结果才能最准确反映项目的规模。
通过一个基本处理过程的执行,对 ILF 进行维护,或从 ILF/EIF 中返回一 个特定的、用户可识别的、非重复的字段,那么每个这样的字段算一个 DET。
例如:添加一个外贸订单时需要保存“订单号码、订单日期、地址、邮编”, 那么对于 ILF 订单来说它的 DET 就是 4 个。 再如:保存订单时还会保存订单的明细。订单的明细往往作为一个子表进行保 存,那么“订单号码”在主表和子表中都同时存在(主外键)。但以用户角度来 识别时,存盘操作是一个最小的单位,那么订单号码只能算做一个 DET。
IFPUG 功能点估算基本方法
IFPUG 功能点估算基本方法Function Point Estimation 功能点估算是一种用来估算项目大小的技术。
项目经理从已经界定的软件范围开始,并根据该陈述将软件分解为可以被单独估算的功能单元,然后估算每一个功能的FP值。
这种分析方法是按照功能为估算单元进行分解,同样如果以其它元素作为估算单元,例如类、对象、业务过程,以下都以功能分解进行讨论。
注意:功能单元是指分解到的最小可估算单元。
FP值是按照经验,使用复杂度参数进行估算调整过的量化的数值。
估算的基本过程:a) 界定项目范围;b) 分解项目到可以被估算的最小功能单元;c) 识别功能单元的类型,估算复杂度;d) 计算总体系统特征值;e) 计算调整因子;f) 应用公式计算FP值。
1. 界定项目范围界定项目范围这次不讨论。
2. 分解项目到可以被估算的最小功能单元系统用5种信息域特征进行描述:事务(Transaction):外部输入( External Input EI)外部输出(External Output EO)外部查询(External Inquiry EQ)数据存储:内部逻辑文件(Internal Logical File ILF)外部接口文件(External Interface File EIF)。
内部文件(ILF)指每个逻辑主文件(即数据的一个逻辑组合,它可能是某大型数据库的一部分或者是一个独立的文件),例如数据库表。
注意不是一个数据库表就是一个ILF,例如合同数据可以包括合同信息、合同条款、合同付款计划。
外部接口:所有机器可读的接口,是不由本系统维护的逻辑文件,是其它系统的ILF。
例如:web service取回的数据,一个人工维护的Excel表格。
3. 估算功能点的复杂度数据元素类型(Data Element Types DET)是一个用户可识别的、唯一性的、非递归的域。
记录元素类型(Record Element Types RET)是ILF或者EIF中用户能够识别的数据元素小组。
功能点估算
若用C++语言编写,查阅前表得C++的功能点置换为53 行,则代码量为:
LOC 36 . 45 53 1931 . 85
16
1
功能点方法
计算公式:
未调整功能点数
技术复杂度因子
FP=UFC×TCF
2
功能点方法—未调功能项的加权和
输入、输出、查询、 外部文件、内部文件 功能点的复 杂度权重
3
功能点方法
功能点的复杂度权重 功能项 输入 输出 查询 外部文件 内部文件 权 重 范例:现假设一项 目的功能项中只含 两个简单的输入和 三个复杂的输出, 则原始功能点为 UFC=2 ×3 +3 ×7 =27
13
功能点转化为工作量
根据项目特性,查询相关资料将功能点转化为工作量 (一般是代码行数) 最为简单的方法:程序语言表格(见下页表)
14
程序设计语言 ACCEL Access EXCEL 1-2 EXCEL 3-4 EXCEL 5 JAVA ORACLE Oracle Developer/2000 C C++ dBase III dBase IV
9
功能点方法—技术复杂度因子
TCF共有14个组成部分,每个部分按照其对系统的重 要程度分为6个级别,有影响、影响很小、有一定影 响、重要、比较重要和很重要,相应赋予0-5的数值:
TCF ( 0 . 65 0 . 01
A i)
其中Ai为复杂度调整值,取值0-5
FP UFC ( 0 . 65 0 . 01
A i)
10
功能点方法—技术复杂度因子(续)
复杂度调整表
软件项目功能点(FP)估算指南
文件编号:KT/PM-PP-0X-V0.1应用软件项目功能点(FP)规模估算方法修改记录目录1前言 (3)1.1目的 (3)1.2适用范围 (3)1.3术语和缩略语 (3)2功能点定义 (3)2.1信息域特性 (3)2.1.1定义 (3)2.1.1.1外部输入EI (3)2.1.1.2外部输出EO (3)2.1.1.3外部查询EQ (3)2.1.1.4内部逻辑文件ILF (4)2.1.1.5外部接口EIF (4)2.1.2复杂度计算 (4)2.1.2.1事务类特性复杂度估算 (4)2.1.2.2数据存储类特性复杂度估算 (5)2.2基本系统特征 (6)2.2.1定义 (6)2.2.2复杂度计算 (6)3估算功能点的步骤 (7)3.1计算UFP (7)3.2计算TCF (7)3.3计算功能点数FP (7)4输出 (7)1前言1.1目的功能性度量方法是一种独立于编程语言的软件规模度量方式,使用这种方法可在早期根据明确功能需求来对最终产品的规模进行估算。
在对软件开发环境校准以后,功能性度量的结果可以为评估开发工作量和软件产品的成本提供很好的指标。
1.2适用范围应用软件项目生命周期中,从需求分析开始直至系统测试结束均可使用本方法进行软件规模估算与度量。
1.3术语和缩略语EI: External Input外部输入EO: External Output外部输出EQ: External Queries外部查询ILF: Internal Logical Files内部逻辑文件EIF: External Interface Files外部接口文件UFP: Unadjusted Function Points未调整功能点TCF: Technical Complex Factor技术复杂度因子2功能点定义功能点技术依据对软件信息域特性和基本系统特征的评估结果来估算软件规模。
根据软件信息域特性可计算出未调整功能点(UFP),根据基本系统特征可计算出软件复杂性因子(TCF),最后用公式FP=UFP×TCF得出功能点规模。
功能点估算_修改版
5
功能点估计法
外部输出(EO:External Output)定义:是向用户 提供的,用于生成面向应用的数据项,如报和信息。 计算方法同外部输入(EI):
若用C++语言编写,查阅前表得C++的功能点置换为53 行,则代码量为:
LOC 36.45 53 1931 .85
16
谢谢收看~
讲解回顾 功能点估计法的介绍 计算公式 技术复杂度因子 功能点转化为工作量 范例
17
10
功能点估计法—技术复杂度因子(续)
复杂度调整表
11
功能点估计法—技术复杂度因子(续)
设前例中14 项复杂度调整项均为极其重要, 即调整值全都是 5 ,则调整后的功能点为:
FP=27 ×(0.65+0.01 ×14 ×5) =36.45
12
功能点估计法—技术复杂度因子(续)
总结: 根据用户需求确定系统需求边界和软件必须具有的功 能。 计算数据功能类型和事物功能类型功能的数目。 评估每一个功能类型的复杂度,求和得到系统未调节 功能点UFP。 确定技术复杂度因子TCP。 计算最终功能点数目FP。
1
功能点估计法
计算公式:
未调整功能点数
技术复杂度因子
FP=UFC×TCF
2
功能点估计法—未调整功能点数
UFC计算公式:
UFC=功能项的加权和
功能点估算(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若用C++语言编写,查阅前表得C++的功能点置换为53 行,则代码量为:
LOC 36.45 53 1931 .85
16
谢谢收看~
讲解回顾 功能点估计法的介绍 计算公式 技术复杂度因子 功能点转化为工作量 范例
17
学习动物精神
11、机智应变的猴子:工作的流程有时往往是一成不 变的,新人的优势在于不了解既有的做法,而能创造 出新的创意与点子。一味 地接受工作的交付, 只能学到工作方法 的皮毛,能思考应 变的人,才会学到 方法的精髓。
DELPHI
SQL SQL-Windows Visible C Visible COBOL Visual 1 Visual 4.0 Visual Basic 1 Visual Basic 2
级别 17.00 8.50 51.00 55.00 57.00 6.00 8.00 14.00 2.50 6.00 8.00 9.00 11.00 25.00 27.00 6.50 8.00 35.00 11.00 7.00 7.50
入(EI)、外部查询 (EQ)或外部输出(EO)。一个引用文件类型( FTR)同时必须是内部逻辑文件(ILF)或外部接口文件(EIF)。 数据元素类型(DET):用户可识别的,不重复的数据域。此类型为动 态数据,动态数据一般是从文件中读取得来。
5
功能点估计法
外部输出(EO:External Output)定义:是向用户 提供的,用于生成面向应用的数据项,如报和信息。 计算方法同外部输入(EI):
1
功能点估计法
计算公式:
未调整功能点数
技术复杂度因子
FP=UFC×TCF
2
功能点估计法—未调整功能点数
UFC计算公式:
UFC=功能项的加权和
外部输入、外部输出 、外部查询、外部接 口文件、内部逻辑文 件 功能点的复 杂度权重
3
功能点估计法
功能点的复杂度权重 功能项 输入 输出 查询 外部文件 内部文件 权 重 范例:现假设一项 目的功能项中只含 两个简单的输入和 三个复杂的输出, 则原始功能点为 UFC=2 ×3 +3 ×7 =27
13
功能点转化为工作量
根据项目特性,查询相关资料将功能点转化为工作量 (一般是代码行数) 最为简单的方法:程序语言表格(见下页表)
14
程序设计语言 ACCEL Access EXCEL 1-2 EXCEL 3-4 EXCEL 5 JAVA ORACLE Oracle Developer/2000 C C++ dBase III dBase IV
9
功能点估计法—技术复杂度因子
TCF共有14个组成部分,每个部分按照其对系统的重 要程度分为6个级别,有影响、影响很小、有一定影 响、重要、比较重要和很重要,相应赋予0-5的数值:
TCF (0.65 0.01 Ai)
其中Ai为复杂度调整值,取值0-5
FP UFC (0.65 0.01 Ai)
每个功能点代码行数 19 38 6 6 6 53 40 23 128 53 40 36 29 13 12 49 40 9 29 46 15 43
ቤተ መጻሕፍቲ ባይዱ
范例:功能点计算(续)
则该项目若用java 2语言编写,查阅前表得java 2的 功能点置换为48行,则代码量为:
LOC 36.45 48 1749 .6
注:记录元素类型(RET):在内部文件(LF)或外部文件( EIF)中,用户可识别的一组数据据元素。 数据元素类型(DET):用户可识别的,不重复的数据域。 此类型为动态数据,动态数据一般是从文件中读取得来。 8
功能点估计法
内部逻辑文件(ILF:Internal Logic File)定义: 是系统里的逻辑主文件,通常,一个内部文件(ILF )至少同一个输出(EO)或一个查询(EQ)相关。该 内部文件(ILF)作为输出(EO)或查询(EQ)的引 用文件类型(FTR)。计算方法:
6
功能点估计法
外部查询(EQ:External Inquiry)定义:是要求回 答的交互式输入,计算方法同外部输入(EI):
7
功能点估计法
外部接口文件(EIF:External Interface File)定义:是 对其他系统的机器可读界面,外部文件至少同一个交互过程 相关联,即输出(EO)、查询(EQ)或输入(EI),并作为 该关联对象的应用文件类型(FTR)。计算如下:
简单 3
4 3 7 5
一般
4 5 4 10 7
复杂
6 7 6 15 10
4
功能点估计法
外部输入(EI:External Input) 定义:是由用户提供的 、描述面向应用的数据项,如文件名和菜单选项。其计算基 于数据元素类型(DET)和引用文件类型(FTR),关系如下 表:
注:引用文件类型(FTR):一次交互所引用的文件类型。交互指外部输
功能点估计法
事务(transaction)
功能点估计法(FP)是在需求分析阶段基于系统功 能的一种规模估计方法。通过研究初始应用需求来确 定各种外部输入(EI)、外部输出(EO)、外部查询 (EQ)、外部接口文件(EIF)和内部逻辑文件(ILF)的 数量和特性,从而计算出功能点。该方法不需要开发 组织的类似历史数据。该方法在一下情况下特别有用 : (1)估计新的软件开发项目 (2)应用软件包括很多输入输出或文件活动 (3)拥有经验丰富的FP估算专家 (4)拥有充分的数据资料,可以相当准确地将FP转化 为LOC。
学习动物精神
12、善解人意的海豚:常常问自己:我是主管该怎么办才 能有助于更好的处理事情的方法。在工作上善解人意, 会减轻主管、共 事者的负担,也 让你更具人缘。
10
功能点估计法—技术复杂度因子(续)
复杂度调整表
11
功能点估计法—技术复杂度因子(续)
设前例中14 项复杂度调整项均为极其重要, 即调整值全都是 5 ,则调整后的功能点为:
FP=27 ×(0.65+0.01 ×14 ×5) =36.45
12
功能点估计法—技术复杂度因子(续)
总结: 根据用户需求确定系统需求边界和软件必须具有的功 能。 计算数据功能类型和事物功能类型功能的数目。 评估每一个功能类型的复杂度,求和得到系统未调节 功能点UFP。 确定技术复杂度因子TCP。 计算最终功能点数目FP。