您的位置:首页 > 其它

FPA笔记二 FPA流程概述

2008-11-24 14:42 375 查看





有关什么是功能点分析法,为什么要用功能点分析法的内容,请阅读《FPA笔记一 概述》1. 计算功能点的总体流程

FPA的计算流程比较复杂,主要分为三大步骤:定义分析目标;计算未调整功能点;计算调整功能点。具体图示请参见图一。

[align=center][/align][align=center]图表 1 FPA 计算流程[/align]FPA 的主要步骤如下:1) 决定分析类型和目的:开发项目、升级项目、应用。小特性开发属于应用类型。2) 识别分析范围和应用边界。3) 计算未经调整的功能点数UPFC。(1) 列出系统的所有功能,包括数据功能和处理功能。(2) 计算每一个功能的功能点。 i. 识别该功能的类型:ILF、EIF、EI、EO、EQ。 ii. 统计该功能包含元素的数目。数据功能统计DET和RET;处理功能统计DET和FTR。 iii. 根据该功能包含元素的数目,和相应功能类型的复杂度矩阵,确定其复杂度。 iv. 根据相应功能类型的复杂度和功能点对照表,找到改功能的功能点数。(3) 统计所有功能的功能点总和。4) 确定调整系数。根据14个GSC确定VAF。5) 计算调整后的功能点:AFP = UPFC * VAF

1.1.
[align=center]Determine Type of Count[/align]
[align=center]Identify Counting Scope and Application Boundary[/align]
[align=center]Count Data Functions[/align]
[align=center]Count Transactional Functions[/align]
[align=center]Determine Unadjusted Function Point Count[/align]
[align=center]Determine Value Adjustment Factor[/align]
[align=center]Calculate Adjusted Function Point Count[/align]
定义分析类型

FPA可应用于各类软件项目和应用系统。对于不同的项目和系统,FPA计算流程是一样的,但一些具体算法和规则上各有不同。FPA的目的也不尽相同。分析类型有三种:l 新开发项目 Development Project估算或度量系统的所有新功能点,包括新增的或系统切换的功能。度量的目的有:n 定义需求n 为项目计划提供估算数据:工作量,成本,人员,进度。n 度量质量。n 度量生产率。l 升级项目 Enhancement Project估算或度量系统中变化的功能点,包括新增,改变,减少和系统切换的功能。l 应用软件Application官方定义是度量已安装的应用软件的功能点。Appliction是指已经交付或从第三方获得的软件、软件包。小软件工具的开发也可算作应用类型。每次新开发项目完成后,都应当把交付的系统按应用软件度量一次。度量应用软件的目的有:l 作为升级项目的基线。l 度量软件质量l 确定维护策略l 确定维护的生产率三种类型的分析关系如下图所示。

[align=center][/align][align=center]图表 2 项目FPA与应用FPA的关系[/align]

1.2. 定义范围边界

FPA是从用户视角和系统见交互的角度来分解功能。只有严格的界定了分析的范围和边界,才能很好的识别和分解功能。基于用户视角定义边界,用户能够理解和描述边界。l 相关应用之间的边界是由用户看到的不同功能区域划分,而不是由技术考虑来划分。l 应用之间的初始边界不会因为功能点分析而改变。定义边界的技巧l 获得一个系统的流程图,在系统周围画上边框,作为边界。l 察看数据的维护方式。l 察看数据的应用范围。

2. 计算未调整功能点UFPC

未调整功能点是从具体功能的复杂度计算得到,它包括三个步骤:分解功能,分析功能的复杂度,根据复杂度确定功能点数。

2.1. 识别,分解具体功能

所有系统的具体功能都可分为两种:数据功能和处理功能。正确识别出数据功能和处理功能的数目是FPA的关键。l 数据功能:指为满足用户数据需求而提供的功能。它以文件为单位计数。文件分为两类:ILF和EIF。n 内部逻辑文件ILF :系统内部维护的文件,如系统创建和更新的文件。n 外部接口文件EIF :被目标系统应用,但由外部系统维护的文件。l 处理功能:指为满足用户通过系统处理数据或控制信息而提供的功能。它以处理元为单位计数。处理必然是发生在系统边界内外的一个交互过程,可分为三种:EI,EO和EQ。n 外部输入EI :指处理来自系统外的文件的处理元。它的基本目的是维护一个或多个ILF,或者改变系统的行为。n 外部输出 EO :指把文件发送到系统外的处理元。他的基本目的是给用户提供处理的结果。EO包含至少一个逻辑处理运算过程。n 外部查询 EQ :EQ也是指把文件发送到系统外的处理元。它的基本目的是为用户获取指定的信息。EQ部包含逻辑处理运算过程。请注意,FPA是从用户角度分析系统的。这里的文件和处理元也是从用户角度来定义的,完全与实现技术无关。特被是文件,一定要时刻记住他仅仅是一组数据,与计算机文件没有关系。l 文件:一组用户可识别的,有逻辑关联的数据或控制信息。它不一定计算机系统实际产生,存储或使用的文件。l 处理元:对用户有意义的最小活动单元。它与实际程序中的方法,进程和API无关。

2.2. 确定具体功能的复杂度

对于具体的文件和处理元,FPA采用三个指标度量其复杂度:RET,DET和FTR。这些指标都是直观的,可计量的。其中文件用RET和DET来度量,处理元用DET和FTR来度量。l 记录元素类型RET :在一个文件内,一个用户可识别的数据元素组。l 数据元素类型DET :用户可识别的,不重复的字段。l 引用文件类型FTR :处理涉及到的文件,包括读取,更新和修改的文件。FPA给概念术语的名称都比较冗繁。个人感觉把这三个术语中的“类型(Type)”去掉,会更易懂。这里的“类型(Type)”都是强调对相同的东西不能重复计算的。比如同一个ILF中的两个RET都包含同一个DET,只能记为一个DET。

2.3. 数据功能点权重矩阵

对于每一个文件(ILF或EIF),FPA是根据其复杂度来确定其功能点数。复杂度又根据文件所含的DET和RET的数量分为三级:低,中(平均)和高。[align=center]表格 1 文件功能点计算矩阵[/align][align=center]
DET个数[/align]RET个数1 ~ 1920 ~50>= 50复杂度ILF 功能点数EIF功能点数
175
2 ~ 5107
>= 61510

2.4. 处理功能点权重矩阵

同数据功能点类似,处理功能点也是根据三级复杂度确定的。而每个处理元的复杂度根据DET和FTR计算得来。但EI 、EQ和EO三者的计算方法不尽相同。[align=center]表格 2 处理元复杂度矩阵[/align][align=center]
EI复杂度[/align][align=center]EQ、EO复杂度[/align]
[align=right]DET个数[/align]RET个数1 ~ 45 ~15>=16[align=right]DET个数[/align]RET个数1 ~ 56 ~19>= 20
11
2 2 ~ 3
>= 3>= 4
从表中可见同样文件作为输入要比输出的复杂度高。 [align=center]表格 3 处理元功能点计算表[/align][align=center]
复杂度[/align]
EI、EQ功能点数346
EO功能点数457

2.5. 汇总未调整功能点

把系统中所有ILF, EIF,EI,EO,EQ的功能点数汇总,就是系统的总的未调整功能点数UFPC。

3. 计算调整功能点AFP

未调整功能点数是从用户角度计算得出的,完全没有考虑不同系统或不同功能的实现复杂度。FPA通过分析14个通用系统特性(GSC)对系统的影响程度(DI)得出每个系统的功能点值调整因子VAT。最后根据VAF调整功能点数,得出在系统和功能点可类比的调整功能点数。UFP、VAT和AFP三者的关系是:[align=center]AFP = UFP * VAT[/align][align=left]请注意,一个系统只有一个VAT,它是所有14个GSC分析汇总的结果。[/align]

3.1. 通用系统特性GSC

GSC是由IFPUG统一指定的标准。一共有14种GSC,适用于所有类型的系统和项目。(1) 数据通讯 (Data Communications)(2) 分布式数据处理 (Distributed Data Processing)(3) 性能 (Performance)(4) 使用强度高的配置 (Heavily Used Configuration)(5) 事务速度 (Transaction Rate)(6) 在线数据输入 (Online Data Entry)(7) 最终用户的效率 (End-User Efficiency)(8) 在线更新(Online Update)(9) 复杂的处理 (Complex Processing)(10) 可重用性 (Reusability)(11) 安装的简易性 (Installation Ease)(12) 运行的简易性 (Operational Ease)(13) 多场地 (Multiple Sites)(14) 允许变更 (Facilitate Change)

3.2. 影响程度DI和TDI

GSC对系统的影响程度分为6级,从0到5。各级定义如下: 0 不存在或者没有影响1 偶尔的影响2 轻微的影响3 中等的影响4 显著的影响5 强烈的影响IFPUG针对每一中GSC,给出了详细的DI等级指南。对于一些实在没有参考等级标准,用户也可以自己定义。把14种GSC的DI都加起来,就得到系统的总影响程度TDI,即:TDI = ∑(DI)

3.3. 值调整因子VAF

在得出TDI后,VAF按如下公式计算。[align=center]VAF = (TDI * 0.01 ) + 0.65。[/align]VAF只能在正负35%的范围调整功能点数。[align=center]AFP = UFP * VAT[/align]

4. 不同项目的调整功能点AFP

4.1. 开发项目功能点

[align=center]DFP = (UFP + CFP) * VAF[/align]l DFP: 开发项目功能点。l UFP: 项目应用的UFPC。l CFP:额外的转换功能的UFPC。l VAFA:调整系数。

4.2. 升级项目功能点

[align=center]EFP = (ADD + CHGA + CFP) * VAFA + DEL * VAFB[/align]l EFP:升级项目功能点。l ADD:升级项目新增UFPC。以升级后项目为基准。l CHGA:升级项目改变的UFPC。以升级后项目为基准。l CFP:额外的转换功能的UFPC。l VAFA:升级后的调整系数。l VAFB:升级前的调整系数。l DEL:升级项目中删除的UFPC。

4.3. 应用功能点

[align=center]AFP = ADD * VAF[/align]l AFP:应用功能点l ADD:安装的功能UFPC。l VAF:调整系数。

4.4. 升级应用功能点

[align=center]AFP = [( UFPB + ADD + CHGA) – (CHGB +DEL)] * VAFA[/align]l AFP:应用功能点l ADD:安装的功能UFPC。l VAFA:调整系数。l UFPB:升级前的UPFC。l CHGA:升级后改变的UFPCl CHGB:升级前改变的UFPC ?!

5. 附录

5.1. 度量功能点的工作量

很多公司不能推行FPA ,并非主观上认为它没用。其主要原因有二:1. 没有FPA的专家指导,不知从何做起,如何持续。2. 迫于项目进度压力,担心FPA带来大量额外的工作量。这里就推行FPA带来的额外工作量,给出一些参考数据。大多数组织是平均每小时估算出100个功能点。具体如下:
[align=center]项目[/b]/[/b]应用系统的规模[/b][/b][/align]
很小[/b][/b]小[/b][/b]中[/b][/b]大[/b][/b]很大[/b][/b]
功能点数[/b][/b]5 ~ 2020 ~ 100100 ~ 500500 ~ 10K10K ~ 100K
C++[/b]代码行[/b][/b]265 ~ 1K1K ~ 5K5K ~ 26K26K ~ 500K500K ~ 5M
开发工作量[/b][/b]0.5人天 ~ 1人月1人月 ~ 10人月10人月 ~ 72人月72人月 ~ 200人年200人年~ 8K人年
FPA[/b]工作量[/b][/b]15分钟 ~ 30分钟30分钟 ~ 1小时1小时 ~ 5小时5小时 ~ 100小时100小时 ~ 1K小时

5.2. 推行FPA的建议

应当做的事情l 得到老板的支持和指导。l 是度量成为每一个人工作的一部分。l 安排专人总管和支持度量活动,不一定是全职。l 培训技术人员和用户。让用户有功能点的概念。l 关注在项目团队的收益上,不要一上来就资产管理什么的。l 提供自动化的支持。l 与组织的过程模式整合。l 度量的结果应当发布出来,并得到利用。不应当做的事情l 不要觉得度量可有可无,或不可达到。l 不要苛求完美的度量系统和环境。l 不要依赖不准确的数据。l 不要用于衡量个人的绩效。

5.3. 术语表

[align=left]术语[/align][align=left]英文[/align][align=left]中文[/align][align=left]说明[/align]
[align=left]FPA[/align][align=left]Function Point Analysis[/align][align=left]功能点分析法[/align][align=left] [/align]
[align=left]UFP[/align][align=left]Unadjusted Function Point[/align][align=left]未调整的功能点[/align][align=left] [/align]
[align=left]AFP[/align][align=left]Adjusted Function Point[/align][align=left]调整功能点[/align][align=left] [/align]
[align=left]VAF[/align][align=left]Value Adjustment Factor[/align][align=left]值调整因子[/align][align=left] [/align]
[align=left]ILF[/align][align=left]Internal Logic File[/align][align=left]内部逻辑文件[/align][align=left] [/align]
[align=left]EIF[/align][align=left]External Interface File[/align][align=left]外部接口文件[/align][align=left] [/align]
[align=left]EI[/align][align=left]External Input[/align][align=left]外部输入[/align][align=left] [/align]
[align=left]EO[/align][align=left]External Output[/align][align=left]外部输出[/align][align=left] [/align]
[align=left]EQ[/align][align=left]External Query[/align][align=left]外部查询[/align][align=left] [/align]
[align=left]GSC[/align][align=left]General System Characteristic[/align][align=left]通用系统特征[/align][align=left] [/align]
[align=left]DET[/align][align=left]Data Element Types[/align][align=left]数据元素类型[/align][align=left] [/align]
[align=left]RET[/align][align=left]Record Element Types[/align][align=left]记录元素类型[/align][align=left] [/align]
[align=left]FTR[/align][align=left]File Type Referenced[/align][align=left]引用文件类型[/align][align=left] [/align]
[align=left]DI[/align][align=left]Degree of Influence[/align][align=left]影响程度[/align][align=left] [/align]
[align=left]TDI[/align][align=left]Total Degree of Influence[/align][align=left]整体影响程度[/align][align=left] [/align]
[align=left]EP[/align][align=left]Elementary Process[/align][align=left]处理元[/align][align=left] [/align]
本文出自 “威尔金的IT博客,51CTO” 博客,请务必保留此出处http://welkinhu.blog.51cto.com/447606/114784
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: