FPA学习笔记.docx_第1页
FPA学习笔记.docx_第2页
FPA学习笔记.docx_第3页
FPA学习笔记.docx_第4页
FPA学习笔记.docx_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FBA学习笔记 /447606/114781一 功能点分析方法概述1. 什么是功能点分析法(FPA)功能点分析法,简称FPA,与代码行分析法是近年来最流行的两种基础软件规模估算和度量方法。代码行估算法侧重技术角度,需要一定的基准数据支撑。基准数据越多,估算难度较小。代码行估算法与实现的技术,计算机语言密切相关。功能点分析法侧重功能,在基准数据缺乏时也能进行,不过估算流程比较复杂。它完全独立于技术,且可以给用户量化的概念。这里所说的功能点分析法,由Allan J Albrecht首先提出,又称Albrecht功能点分析法。除此之外,还有Mark II FPA和完全功能点等。但习惯上,人们说的功能点分析法就是Albrecht功能点分析法。1.1 功能点分析法的定义官方文档IFPUG CPM 4.2.1给出功能点分析法的定义是:Function point analysis is a standard method for measuring software development from the users point of view.具体来说,FPA有这么几个特点:l 它是一种适用于软件开发的度量方法。l 它是一种标准的度量方法,由国际功能点用户组(IFPUG)维护和推动。l 它从用户视角来度量产品规模。l 它不注重产品的内部结构和技术复杂度。不过也并非完全无视这些因素。FPA标准的维护组织是国际功能点用户组IFPUG (),它不定期的发布Counting Practices Manual,简称CPM来统一不同公司和产品的功能点计算模型。这套模型基于大量已完成项目的分析数据,非常全面和精确。对于同一个产品,不同的公司,不同的人,参照CPM计算出来的功能点数应当是一样的。目前最新版本是2005的CPM 4.2.1,现在三年未更新,计算模型已相当成熟。1.2. 功能点的定义什么是功能点?就是客户提出的一条条的需求吗?答案是否定的。在FPA中,客户提出的需求,是功能,功能组和产品;但不是功能点。l 功能点是一个的度量单位,用于度量工作产品的规模。就像公斤和千米一样,仅仅是一个抽象化的单位。l 功能点不直接度量软件的内部架构和技术复杂度。l 单个功能点对用户没有意义,但一个功能包含多少个功能点对用户有意义。l 一个系统,一个功能包含多少个功能点,是由一系列可见的要素分析计算得来,而不是拍脑袋的经验数字。功能点分为两种:未调整功能点和调整功能点。未调整功能点是只记用户可见功能的中间结果,调整功能点是最终结果,在未调整后功能点基础上加入了系统实现和内部架构方面的因素。一般说一个系统包含多少个功能点,是指调整功能点。1.3. 那些功能是用户可见的?简而汇之,如下功能是用户可见的。l GUI,如页面和窗体。l 报表。l 主要文件。l 参考文件,引用文件。l 控制文件。l 数据输入。2. 为什么使用功能点分析法FPA可以应用于所有的软件项目和软件身,包括新开发项目,升级项目,应用程序,维护项目等。FPA的基本目的有两个:l 度量用户要求和接收到的功能l 为软件的开发和维护而度量其技术独立度。2.1. 功能点分析法的用途软件度量的用途非常广泛,从客户,老板,管理人员,到程序员,都需要软件度量数据。FPA作为一种软件度量方法,主要有三方面的用途:持续的过程改进,软件资产管理,项目管理。2.1.1. 持续的过程改进FPA支持用于软件质量分析与生产力分析的量化指标,比如每功能点的平均bug数,每功能点的平均人天数,等等。分析这些量化指标,可以找到过程改进的机会;可以度量改进的效果。无论是组织还是个人,都需要持续的过程改进。具体来说,FPA可这个过程中发挥如下作用:为现状提供基线数据。1) 为改进决策提指明方向。2) 为具体行动提供指南。3) 度量改进的结果。4) 将改进的结果基线化,进入下一轮改进。可能改进的机会,英语是Improvement Opportunities。这里的Opportunities用的很好,可惜中文的译词“机会”很难让人理解。习惯上是说“值得改进的地方”。2.1.2. 软件资产管理FPA为组织的软件资产提供了量化的指标。l 软件资产的总规模l 软件资产的增长率l 软件资产的维护成本l 软件资产的代换成本对于软件开发和服务组织,这些指标可为软件资产的维护策略提供决策依据:是重新开发,重构系统,重写代码但不改结构,还是继续维护。对于使用软件的组织,这些指标可作为采购的参考:是自行开发,还是采购?采购的合理价格区间,目标采购包的功能符合度。FPA为应用软件之间的功能比较提供了规范化指标。 2.1.3. 项目管理(1) 估算开发或维护的成本,资源,为项目计划提供依据。(2) 估算需求变更的成本和对项目的影响。(3) 控制需求范围。 2.2. 功能点分析法的优点l 基于定义良好的计算标准。l 基于客户视角。容易理解和接受。l 可应用于新项目,升级项目和维护项目。l 与技术和计算机语言无关。l 简单,易于计算,只需花费较少的工作量。l 一致的规模度量尺度。可用来比较不同组织和技术之间的比较。2.3. 功能点分析法的缺点l 只考虑可见部分的复杂度,对系统内部复杂性考虑太少。l 功能复杂度三级划分比较武断。对一些比较复杂的功能,统计误差较大。l FPA知识简单假设全部是部分的和,没有考虑系统集成带来的额外开销。 在FPA的基础上,还有一种MARK II 功能点分析法,它能克服一些功能点法的缺陷。2.4. 功能点分析法的度量描述举例(1) 今年我们的生产率提高了20%,从每月10个功能点提高到12个功能点。(2) 通过质量检视,我们交付的软件缺陷率由每功能点2个缺陷,减少到每功能点0.5个缺陷。(3) 我们的项目进度估算准确率显著提高,实际人天数和估算人天数的误差+45%减小到+15% 。(4) 我们的应用软件包对相关业务的支持增加了10%,原来是50K功能点,现在是55K功能点.(5) 由于我们调整了维护策略,工程师人均维护的功能点数从1000提高到1500.从而节省了$3M的成本(6) 由于提高了客户需求技术,我们把需求蔓延率从35%降到10%。(7) 根据功能点分析的结果,我们购买一个软件包,比自己开发节省了$1M. 3. 功能点分析法与软件生命周期功能点分析必须渗透于作为软件生命周期的全部,而不仅仅是项目开发阶段。不同阶段的功能点分析有不同的目的,参与人员和相关材料。 3.1. 软件生命周期FPA将软件生命周期划分为六个阶段,与通常意义的软件生命周期基本相同。只不过有些具体名称上不同。比如:方案阶段又叫概念阶段,构建阶段又叫实现阶段。构建阶段Construction交付阶段Delivery维护阶段Maintenance设计阶段Design需求阶段Requirement方案阶段Proposal 有四个阶段应当进行功能点分析:方案阶段,需求或设计阶段,交付阶段,维护阶段。每个阶段的功能点分析都有不同的目的。FPA不是某一个人的工作,而是整个团队的工作。无论哪个阶段的FPA,都需要多种角色的参与。主要参与角色有:l 客户或客户代表l 项目经理l 系统架构师l 程序员(方案阶段可能没有程序员)l 文档专家:负责整理文档的苦力。l 应用方案经理:可能是项目经理,也可能管理好几个项目经理。l 应用方案专家:估计Reviewer, 挑刺的家伙。l 度量分析员:可能和文档专家是同一个人。l 功能点分析专家:一般是QA,主持分析过程。l 功能点委员会:估计是Reviewer, 挑刺的家伙。每次进行FPA时,除了需要相应的项目文档外,还建议准备好如下FPA的指导文档:n IFPUG Counting Practices Manualn 所在组织的FAP指导文档。n FPA分析表。n 自制一张简明指南卡:Quick Reference Card。 3.2. 在方案阶段估算功能点在方案阶段后期,可以采用FPA方法来估算软件的规模和项目的开发成本。具体来说有三个目的:l FPA的过程可协助双方(用户和开发人员)把高层需求条理化。l 得到较为明朗的项目的范围。l 粗略的估算功能点数,并折算为开发成本和进度。为制定项目计划提供依据。在此阶段只有一些非常原始,抽象的客户需求。所以估算的精度有限。此阶段可参考的项目文档有:l 高层需求文档n 高层系统架构(功能,数据存储,接口)。n 高层逻辑数据模型。n 高层业务模型。n 业务用例(可选)。l 历史项目或应用软件的功能点统计数据(可选)。3.3. 需求或设计阶段二次估算功能点在完成需求规格或概要设计时,如发现需求和范围较之方案阶段有较大的变化,估算的功能点不够精确,可在设计阶段的进行二次估算。其目的有三:l 重新定义客户需求。l 重新估算开发进度和成本。l 度量项目范围的变更,如需求蔓延率。实际上,只要项目范围发生了大的变化,就应当重新估算,最好不要超过三次。在设计完成后,项目范围已经基线化,如发生需求变更,只需估算变更部分,不要全部推到重来。二次估算,除了需要初次估算的所有文档外,还需要如下项目文档:l 需求规格。n 业务用例n 屏幕界面规划(Layout)n 报表规划(Layout)n 文件和数据库规划(Layout)n 数据流:系统接收和发出的数据。l 功能设计,也就是概要设计。3.4. 交付阶段度量最终功能点交付阶段,所有的开发工作都已结束,需求和功能设计自然也就全部冻结。此时应进行最终的实际功能点度量。其目的有四:l 在交付文件中报告实际的功能点数。l 度量项目范围的变更,如需求蔓延率。l 回顾项目实施情况。l 发布统计数据,作为组织的基线。度量功能点,需要参考项目的全部需求和设计文档。同二次估算相比,可能增加了如下文档:l 功能设计规格。l 详细设计规格。l 用户手册。3.5. 维护阶段度量资产功能点系统交付后,就会进入公司的IT资产库。此时需要从资产管理的角度度量一些数据。l 审计资产功能点。l 文档化。l 确定维护策略。二 FPA流程概述1. 计算功能点的总体流程FPA的计算流程比较复杂,主要分为三大步骤:定义分析目标;计算未调整功能点;计算调整功能点。具体图示请参见图一。图表1 FPA计算流程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. 定义分析类型FPA可应用于各类软件项目和应用系统。对于不同的项目和系统,FPA计算流程是一样的,但一些具体算法和规则上各有不同。FPA的目的也不尽相同。分析类型有三种:l 新开发项目 Development Project估算或度量系统的所有新功能点,包括新增的或系统切换的功能。度量的目的有:n 定义需求n 为项目计划提供估算数据:工作量,成本,人员,进度。n 度量质量。n 度量生产率。l 升级项目 Enhancement Project估算或度量系统中变化的功能点,包括新增,改变,减少和系统切换的功能。l 应用软件Application官方定义是度量已安装的应用软件的功能点。Appliction是指已经交付或从第三方获得的软件、软件包。小软件工具的开发也可算作应用类型。每次新开发项目完成后,都应当把交付的系统按应用软件度量一次。度量应用软件的目的有:l 作为升级项目的基线。l 度量软件质量l 确定维护策略l 确定维护的生产率三种类型的分析关系如下图所示。图表2 项目FPA与应用FPA的关系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的数量分为三级:低,中(平均)和高。 表格1 文件功能点计算矩阵DET个数RET个数1-1920-50=50复杂度ILF功能点数EIF功能点数1低低中低752-5低中高中107=6中高高高15102.4. 处理功能点权重矩阵同数据功能点类似,处理功能点也是根据三级复杂度确定的。而每个处理元的复杂度根据DET和FTR计算得来。但EI 、EQ和EO三者的计算方法不尽相同。表格 2 处理元复杂度矩阵EI复杂度EQ、EO复杂度DET个数RET个数1-45-15=16DET个数RET个数1-56-19=201低低中1低低中2低中高2-3低中高=3中高高=4中高高从表中可见同样文件作为输入要比输出的复杂度高。 表格 3 处理元功能点计算表复杂度低中高EI、EQ功能点数346EO功能点数4572.5. 汇总未调整功能点把系统中所有ILF, EIF,EI,EO,EQ的功能点数汇总,就是系统的总的未调整功能点数UFPC。3. 计算调整功能点AFP未调整功能点数是从用户角度计算得出的,完全没有考虑不同系统或不同功能的实现复杂度。FPA通过分析14个通用系统特性(GSC)对系统的影响程度(DI)得出每个系统的功能点值调整因子VAT。最后根据VAF调整功能点数,得出在系统和功能点可类比的调整功能点数。UFP、VAT和AFP三者的关系是:AFP = UFP * VAT请注意,一个系统只有一个VAT,它是所有14个GSC分析汇总的结果。3.1. 通用系统特性GSCGSC是由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和TDIGSC对系统的影响程度分为6级,从0到5。各级定义如下:0 不存在或者没有影响1 偶尔的影响2 轻微的影响3 中等的影响4 显著的影响5 强烈的影响IFPUG针对每一中GSC,给出了详细的DI等级指南。对于一些实在没有参考等级标准,用户也可以自己定义。把14种GSC的DI都加起来,就得到系统的总影响程度TDI,即:TDI = (DI)3.3. 值调整因子VAF在得出TDI后,VAF按如下公式计算。VAF = (TDI * 0.01 ) + 0.65。VAF只能在正负35%的范围调整功能点数。AFP = UFP * VAT 4. 不同项目的调整功能点AFP4.1. 开发项目功能点DFP = (UFP + CFP) * VAFl DFP: 开发项目功能点。l UFP: 项目应用的UFPC。l CFP:额外的转换功能的UFPC。l VAFA:调整系数。4.2. 升级项目功能点EFP = (ADD + CHGA + CFP) * VAFA + DEL * VAFBl EFP:升级项目功能点。l ADD:升级项目新增UFPC。以升级后项目为基准。l CHGA:升级项目改变的UFPC。以升级后项目为基准。l CFP:额外的转换功能的UFPC。l VAFA:升级后的调整系数。l VAFB:升级前的调整系数。l DEL:升级项目中删除的UFPC。4.3. 应用功能点AFP = ADD * VAFl AFP:应用功能点l ADD:安装的功能UFPC。l VAF:调整系数。4.4. 升级应用功能点AFP = ( UFPB + ADD + CHGA) (CHGB +DEL) * VAFAl AFP:应用功能点l ADD:安装的功能UFPC。l VAFA:调整系数。l UFPB:升级前的UPFC。l CHGA:升级后改变的UFPCl CHGB:升级前改变的UFPC ?!5. 附录5.1. 度量功能点的工作量很多公司不能推行FPA ,并非主观上认为它没用。其主要原因有二:1. 没有FPA的专家指导,不知从何做起,如何持续。2. 迫于项目进度压力,担心FPA带来大量额外的工作量。这里就推行FPA带来的额外工作量,给出一些参考数据。大多数组织是平均每小时估算出100个功能点。具体如下:项目/应用系统的规模很小小中大很大功能点数5-2020-100100-500500-1k10k-100kC+代码行2561k1k5k5k26k26k500k500k5M开发工作量0.5人天1人月1人月10人月10人月72人月72人月200人年200人年8k人年FPA工作量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. 术语表术语英文中文说明FPAFunction Point Analysis功能点分析法UFPUnadjusted Function Point未调整功能点AFPAdjusted Function Point调整功能点VAFValue Adjusted Factor值调整因子ILFInternal Logic File内部逻辑文件EIFExternal Interface File外部接口文件EIExternal Input外部输入EOExternal Output外部输出EQExternal Query外部查询GSCGeneral System Characteristic通用系统特征DETData Element Types数据元素类型RETRecord Element Types记录数据类型FTRFile Type Referenced引用文件类型DIDegree of Influenced影响程度TDITotal Degree of Influence整体影响程度EPElementary Process处理元三 数据功能的识别一个系统含有多少功能点,来自其所有子功能的功能点简单汇总。要计算功能点数,必须尽可能无遗漏的把从系统分解成一个个的基本功能。然后再分别计算每一个基本功能的功能点数。FPA把系统的基本功能分为两大类五小类,不同类型的基本功能有不同的功能点计算方法。l 数据功能 Data Functionn 内部逻辑文件 ILFn 外部接口文件 EIFl 处理功能 Transaction Functionn 外部输入 EIn 外部输出 EOn 外部查询 EQ这五种功能类型关系如下图所示。图1 五种基本类型数据功能指为满足用户的内部或外部数据需求而提供的功能。其实数据功能的ILF和EIF这两个名称有点冗繁,不如直接叫内部文件和外部文件简单明了。请注意,这里的文件完全不同于传统意义上的物理的文件;它是指一组逻辑相关的数据。请注意这些概念都是基于用户视角的概念,不是计算机上的文件和处理元。1. 相关术语解释处理元(Elementary Process)对用户有意义的最小活动单元。它必须是自包含的,且能使业务保持一致的状态。处理元是处理功能的基本单位。控制信息(Control Information)影响某一个处理元的输入信息,它定义了处理的内容:处理什么数据,何时处理,如何处理。用户可识别的 (User identifiable)指用户和开发人员双方都认可,且达成一致理解的需求,处理或数据。它必须是用户关心的内容。像程序的代码,内部设计,临时文件等,都不是用户关心和认可的东西。维护 (Maintained) 通过处理元维护改变数据的能力,如增加、修改、删除、展现、创建、转换等。2. 识别ILFILF在CPM中的定义是:An internal logical file (ILF) is a user identifiable group of logically related data or control information maintained within the boundary of the application. The primary intent of an ILF is to hold data maintained through one or more elementary processes of the application being counted.根据这个定义,可得出三条ILF的识别规则,ILF必须同时满足这些规则。l ILF是一组用户可识别的数据或控制信息。l ILF是一组逻辑关联在一起的数据。l ILF在系统范围内维护。ILF的基本目的是持有系统要维护的数据。维护ILF必然会涉及到一个或多个处理元。在特定情况下,一个ILF可能属于多个系统。在识别ILF时,下列文件不在FPA的考虑范围内,可以第一时间排除。l 临时文件。l 工作文件。l 排序文件,如国家排序列表, Index文件l Static Code Table,如硬编码的下拉框列表,因为系统没有维护它。维护它的是程序员或用户。l Code lookup table,如国家代码与名称对照表。3. 识别EIFEIF在CPM中的定义是:An external interface file (EIF) is a user identifiable group of logically related data or control information referenced by the application, but maintained within the boundary of another application. The primary intent of an EIF is to hold data referenced through one or more elementary processes within the boundary of the application counted. This means an EIF counted for an application must be in an ILF in another application.根据这个定义,可得出四条EIF的识别规则,EIF必须同时满足。l EIF是一组用户可识别的数据或控制信息。l EIF是一组逻辑关联在一起的数据。l EIF不在系统范围内维护。就是说,EIF不会被改变。l EIF一定就另一个系统的ILF,并被其维护。EIF的基本目的是持有在系统的一个或多个处理元中引用的数据。4. ILF与EIF的区别与例子ILF和EIF最根本的区别在于是否在系统范围内维护。在系统范围内维护的,就是ILF;否则就是EIF。如果一个文件来自外部系统,但被目标系统修改。此时要根据这个文件包含的数据,将其拆分为两个文件:来自外部系统的数据归入EIF,被修改的数据归入ILF。即来自外部系统,又被修改的数据,在两个文件中都算。下面举两个案例。目标系统逻辑文件是否ILF或EIF电子商务系统,提供功能有:购物车,订单和在线支付。购物车ILF订单ILF商品种类列表,客户可通过页面维护ILF税率表,开发人员手工维护EIF工资系统,负责公司所有员工的工作计算和发放员工信息表,来自人事系统EIF工资等级表,通过界面输入ILF四 处理功能EI、EO、EQ功能点分析法(FPA)定义的处理功能(Transactional Function)是指提供给用户,用于数据的处理的功能。(笔者注:这定义等于没说。呵呵。)处理功能分为外部输入EI、外部输出EO、外部查询EQ。显然,完全在系统内部的处理功能不在FPA的考虑范围内。1 处理功能的识别过程处理功能的识别,包括五个步骤:将功能分解为处理元;判断处理元是EI、EO还就EQ;检查是否存在重复的EI/EO/EQ;确定EI/EO/EQ的复杂度;计算EI/EO/EQ的功能点数。本文介绍前三个步骤。图表1 处理功能识别过程2. 处理元的定义要进行FPA分析,必须把处理功能分解为处理元(Elementary Process)。自然,FPA中的处理元与计算机技术中的事务、处理等不是一回事。处理元有两个识别标准:l 它是对用户有意义的最小活动单元。l 它就自包含的,并使系统保持一致的行为和状态。如果经过一段处理,系统的状态或行为不一致了,就说明这段处理不能构成处理元。同样,如果在整个处理过程中,系统在行为和状态发生多次改变,且在多个点达到新的一致性行为和状态,则这段处理很可能包含多个处理元。笔者以为,实际情况下,正确的识别处理元非常困难。实际上也用不着在这上面钻牛角尖。FPA的目的是计算出功能点数。如果处理元粒度较大,处理元的总数就少,单个处理元的功能点数就多。反之如果处理元粒度较小,处理元的总数就多少,单个处理元的功能点数就少。对计算整个系统的功能点数并无大碍。 3. 处理逻辑处理元必然包含一种或多种的处理逻辑。处理逻辑(Processing Logic)是用户为完成后一个处理元而定义的特定需求。IFPUG CPM定义了13种处理逻辑。EI和EO可以包含所有13种的处理逻辑,而且有一些种类必须包含。EQ则有4种处理逻辑不能包含。具体见下表。 表格 1 系统的13种处理逻辑处理逻辑EIEOEQ1) 需要执行的校验2) 需要执行了数学公式和运算M*N3) 等值转换的算法,如货币转换,单位转换4) 筛选数据的条件5) 用于判断是否适用的条件,也就是入口条件6) 一个或多个ILF的修改逻辑M*M*N7) 一个或多个被引用的ILF或EIFM8) 从系统内获取了数据或控制信息M9) 从已有数据衍生的额外数据M*N10) 改变了系统的行为或状态M*M*N11) 向边界外准备或展现了信息MM12) 从边界外接收数据或控制信息的能力M13) 数据重排。注意:重排数据不能作为处理功能唯一性的识别依据表中符号说明:l 空白:处理功能(EI,EO,EQ)可以包含对应的处理逻辑。l M:处理功能必须包含对应的处理逻辑。l M*:所有标M*的处理逻辑,对应的处理功能必须包含至少一种。l N:处理功能不得包含对应的处理逻辑。4. 识别重复的处理功能用户提出的需求,往往是零乱的,存在很多重复的需求。在识别处理元时,要注意归并重复的处理元。当多个处理元同时满足如下三个条件时,应当把它们记为一个处理元。l 它们的处理逻辑相同,数据排序规则除外。l 它们包含的数据元素集合相同。l 它们引用的逻辑文件(ILF/EIF)集合相同。IFPUG CPM把这段规则说得非常费解。它是在EI/EO/EQ的具体识别规则中分别说明的。大意是:一个EI/EO/EQ至少应满足下列三个条件中的一个:l 该EI/EO/EQ的处理逻辑不同于系统中任何其它EI/EO/EQ的处理逻辑。l 该EI/EO/EQ包含的数据元素集不同于系统中任何其它EI/EO/EQ的数据元素集。l 该EI/EO/EQ引用的逻辑文件集(ILF/EIF)不同于系统中任何其它EI/EO/EQ引用的逻辑文件集。 在判断处理逻辑是否相同时,第13种处理逻辑数据重排是个例外。比如对于员工的工作情况的查询,人事经理要求按工时排序,财务经理要求按工资排序。这两个需求应当放在同一个处理元中。判断数据元素集合,就是判断是否包含相同的字段(又叫域),而不是数据本身的值是否相同。5. EI、EO、EQ的定义IFPUG CPM对EI、EO、EQ分别定义如下。An external input (EI) is an elementary process that processes data or control information that comes from outside the application boundary. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.An external output (EO) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external output is to present information to a user through processing logic other than, or in addition to, the retrieval of data or control information. The processing logic must contain at least one mathematical formula or calculation, create derived data, maintain one or more ILFs or alter the behavior of the system.An external inquiry (EQ) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external inquiry is to present information to a user through the retrieval of data or control information from an ILF of EIF. The processing logic contains no mathematical formulas or calculations, and creates no derived data. No ILF is maintained during the processing, nor is the behavior of the system altered. 6. 如何区别EI和EO/EQEI与EO/EQ之间的区别非常简单和直观。从它们的基本目的就可以看出。l EI的基本目的有两个:维护ILF,或改变系统的行为和状态。l EO/EQ的基本目的是:向系统外展现或输出数据,包括控制信息。 换而言之,只有同时符合如下两条规则的处理才是EI:l 该处理从系统外接收了数据或控制信息。l 该处理不是更新了ILF(至少一个),就是改变了系统的行为或状态。 7. 如何区别EO和EQEO和EQ的基本目地相同,它们的区别在于是否包含四种关键的处理逻辑。这四种处理逻辑,EO至少要包含一种,EQ一种也不能包含。l 输出了衍生数据。l 就否包含数学运算。等值转换不算。l 是否包含对至少一个ILF的维护。l 是否改变了系统的行为或状态。此外,EQ还必须包含一种处理逻辑:从系统内获取了数据或控制信息,也就是说至少引用了一个ILF或EIF。 8. 典型处理功能例析功能例子分析从屏幕录入的数据EI批处理数据EI从磁带等设备输入EI扫描输入EI增,删,改等事务处理EI导航菜单EO?登陆界面EQ从ILF读取列表的列表框或下拉框EQ筛选条件不是完整的处理元快捷键,命令键不是处理元导出报表EO在线报表EQ详细报表中的统计字段EQ?由具体报表总得出的总结报表EO查看帮助EQ重复的帮助重复的处理元联机文档不是EQ?输出文件EO处理的出错或确认信息不是完整的处理元注意,增、删、改应当作为单独的EI。五 计算ILF/EIF功能点本篇主要介绍在功能点分析法FPA中,如何计算一个ILF/EIF都有多少个功能点。其中找到ILF/EIF中包含多少个DET和RET是关键。整个计算的步骤比较简单,可分为四小步。1. 统计ILF/EIF中的数据元素类型DET。2. 统计ILF/EIF中的记录元素类型RET。3. 参照DET/RET复杂度对照表,确定该ILF/EIF的复杂度。4. 参照复杂度功能点对照表,确定该ILF/EIF的功能点数。虽然美其名曰“计算”功能点,其实英文是“Count”,并没有从DET/RET到功能点数的数学公式。IFPUG根据大量的项目统计数据,直接给出了DET/RET复杂度功能点数的对照表。我们只需按图索骥即可。计算ILF/EIF的功能点数,应当在列出所有的ILF/EIF后进行。本系列FPA笔记三 数据功能的识别介绍了如何是识别ILF/EIF。1. 数据元素类型DETIFPUG CPM 给DET的定义是:A data element type is a unique user recognizable, non-repeated field。请注意,它是数据元素类型(Data Element Type),也就是说同一类型的数据元素只能记为一个DET。具体的计数规则有三条。l 每一个满足下列所有条件的字段都要记为一个DET.n 用户可识别的。n 不重复的。n 被某个处理元维护或获取的。l 如果两个系统维护或引用了同一个ILF/EIF,每个系统只计自己维护或引用的DET。l 如果用户要求用一个字段来建立与其他ILF/EIF的关系,该字段要记为一个DET。 不重复的数据元素类型这点很重要。比如一个员工信息的逻辑文件,既有员工自己的工号,也有员工主管的工号。这两个工号的类型相同,只能记为一个DET。但它们可能属于不同的RET。再比如,用户要求随同订单列出10条历史修改记录,这10条记录也只能记为一个DET。用户提供的逻辑文件,有可能包含很多在目标系统中不需要的信息。表述这些信息的数据元素,不会被系统内任何一个处理元维护和获取,所以不能统计在DET内。 2. 记录元素类型RETIFPUG CPM定义:A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF。就像内容多的文章需要分章节一样,很多ILF/EIF需要将其数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论