当前位置:文档之家› 功能点分析

功能点分析

功能点分析IFPUG维护的功能点分析(FPA)是众多功能点评估方法中的一种,目前应用较广泛。

当前最新版本是4.2.1. 。

为了推动Function Point的方法在行业中的应用,IFPUG有推出CFPS的认证。

FPA是从用户角度出发度量软件规模的一种方法。

其目标是:1.度量用户要求和能够接收到的功能2.提供一种与具体实施方法和技术无关的对软件开发和维护进行度量的手段3.提供一种相对来说比较简单的对规模进行度量的方法4.提供一种在不同的项目和组织之间能够保持一致的度量方法相对于其他的软件度量方法而言(诸如代码行),其主要的特点是:该度量方法与技术无关,也就是说对于同一组用户需求,无论你采用什么开发语言,其规模都应该是一定的。

且该度量方法是面向用户的,从用户角度出发的,而其他的度量方法多从技术角度出发,很难让用户接收。

这里先讲几个基本的概念:用户:是指用户功能性需求的任何人和/或任何时候与软件通信或互动的任何人或事物用户视角:它是对业务功能的描述,此为,它应该:1.被用户认可2.能够被用来计算功能点3.能以不同的文档形式出现利用功能点分析的步骤如下图所示:1、决定分析类型功能点计算的类型分为:•开发项目——开发项目功能点计算度量的是项目完成、用户第一次安装系统时提供给用户的功能•升级项目——升级项目功能点计算度量的是项目完成对已存在的应用系统新增、修改或者删除的功能•应用程式——应用程式功能点计算度量的是已经安装运行的系统提供给用户的功能。

2、识别计算范围和应用边界计算范围定义了一组(部分)被度量的软件•它由功能点计算的目的决定•它确定功能点计数中包括的功能•它可以包含一个或多个应用应用边界指出了被度量的软件之间的分界线•定义了应用的外部范围•内部应用与外部用户时间的概念接口;起一种“膜”的作用,数据就是通过这层膜进出应用•包括被应用维护的逻辑数据•协助识别在应用中查询但不在应用中维护的逻辑数据•依赖于用于对应用外部业务的视角;与技术和/或是是方式相独立识别计算范围和应用边界的规则•边界是从用户的角度来划分和决定•应用之间的边界是以用户能够看得见的可分隔的功能域为基础,而不是以技术考虑为出发点。

3、计算数据功能3.1、基本概念3.1.1、数据功能类型•内部逻辑文件InternalLogical File (ILF)•外部接口文件External Interface File (EIF)此处的文件不是传统数据处理意义上的文件,而是指一组逻辑上相互关联的数据,并不是实现意义上的物理的数据集合。

3.1.2、ILF•ILF是一组用户可识别的在应用边界内且被应用维护的逻辑相关数据或者控制信息。

•它的主要目的是通用应用的一个或几个基本处理过程维护数据。

3.1.3、EIF•EIF是一组在应用边界内被查询,但在其他应用中被维护的、用户可识别的、逻辑相关数据或者控制信息。

•EIF的主要目的是使数据在应用边界内通过一个或几个基本处理过程得以查询。

这就意味着一个应用中的一个EIF必然是其他应用中的ILF。

3.1.4、相关概念•用户可识别——它是指为处理而定义的需求或/和能被用户和软件开发者赞同和读懂的数据组。

•维护——它指的是可以通过一个基本处理过程更改数据的能力•控制信息——它是影响应用基本处理过程的数据。

它指明了处理什么、何时处理或处理方式。

•基本处理过程——一个基本处理过程就是一个用户可以理解的最小活动单元。

3.2、识别规则3.2.1、ILF识别规则•该组数据或控制信息是逻辑相关的且由用户定义。

•该组数据在应用的边界之内且通过一个或几个基本处理过程来维护。

•以上两条规则都须同时满足,才能算做ILF。

3.2.2、EIF识别规则•该组数据或控制信息是逻辑相关的且由用户定义。

•该组数据处于被计数应用之外,且被该应用查询。

•被计数的应用不对该组数据进行维护。

•该组数据被其它的应用维护。

•以上四条规则都须同时满足,才能算做EIF。

3.3、功能点计算•根据ILF和EIF的复杂度和贡献度来计算其功能点。

•ILF和EIF的复杂度和贡献度取决于以下两种类型元素的数量:o数据元素类型Date Element Types (DET)o记录元素类型Record Element Types (RET)3.3.1、基本概念•DET——一个DET就是一个唯一的用户可认知的、不重复的数据域•RET——一个RET就是一个ILF或EIF内用户可认知的数据元素子集3.3.2、DET计算规则•如果通过一个基本处理过程的执行在ILF维护或从ILF或EIF中返回一个特定的用户可识别的、非重复字段,那么每个这样的字段算一个DET•当两个应用维护和/或查询相同的ILF/EIF,但是每个应用单独维护/查询相应的DET,只计算被每个应用使用的DET•对于那些用户要求与其他的EIF/ILF建立关联的数据字段来说,每个这样的数据字段都应算一个DET3.3.3、RET计算规则•每个ILF或EIF得可选或必选子组算一个RET•如果该ILF/EIF没有子组,那么就将该ILF/EIF算作一个RET3.3.4、复杂矩阵3.3.5、功能点复杂程度对应表3.3.6、计算数据功能的提示•一个应用可以在多个处理过程中用到同一个ILF/EIF,但是这个ILF/EIF只能被计算一次•在同一个应用中一个逻辑文件不能同时作为ILF和EIF来计算。

如果一个数据集合同时满足ILF和EIF的识别规则,则当作ILF来计算。

•如果一组数据没有被作为一个ILF/EIF来计算,则可计算为包含这组数据的ILF/EIF 的DET•不要假设一个物理文件、表或对象等于一个从用户视角可以识别的数据逻辑文件•不要假设所有的物理文件都必须被计算为一个ILF/EIF,或是ILF/EIF的一部分3.3.7、计算数据功能的注意事项•以下数据不会作为ILF/EIF计算o临时文件或不同迭代阶段的同一文件o工作文件/排序文件o摘录或视图文件(在打印或显示前,从ILF/EIF中提取)o由于技术原因引入的文件o可选索引、联合、关系或联接o审计数据或历史数据,他们和应用功能数据一起计算•除以上外,以下数据也不会作为ILF计算o同一文件的复本o用作企业备份和恢复的数据(系统的基本特征)o包括不完整业务信息的中间数据•除以上外,以下数据也不会作为EIF计算o从另外系统接收的数据,用于应用中的一个或多个ILF(EI)o由应用格式化后发给其他应用的数据4、计算交易功能4.1、相关概念4.1.1、交易功能类型•外部输入External Inputs(EI)•外部输出External Outputs(EO)•外部查询External inQuiries(EQ)4.1.2、EI•是处理来自应用边界之外的数据或控制信息的基本处理过程。

•EI的主要目的是维护一个或多个ILF并且/或者改变系统的行为。

4.1.3、EO•是向应用边界之外发送数据或控制信息的基本处理过程。

•主要目的是通过逻辑处理方式向用户呈现信息,而不只是直接恢复数据或控制信息。

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

•一个EO也可能维护一个或多个ILF和/或改变系统行为。

4.1.4、EQ•是向应用边界之外发送数据或控制信息的基本处理过程。

•主要目的是通过恢复数据或控制信息向用户呈现信息。

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

•EQ处理过程中既不会维护任何ILF,也不会改变系统行为。

4.1.5、EI、EO、EQ都是逻辑处理逻辑处理指的是用户提出的完成某个处理的请求。

逻辑处理的例子包括:•数据验证•数学公式和计算•数据的过滤和选择•分析适用的条件•更新一个或者多个ILF•引用一个或者多个ILF或EIF•运用现有的数据生成衍生数据•改变系统的行为•向应用范围之外准备和显示数据•接受进入系统边界的数据或者控制信息•恢复和重新整理数据4.2、识别规则4.2.1、EI识别规则•数据或控制信息从应用边界之外输入。

•如果穿过边界的数据不是改变系统行为的控制信息,那么至少应维护一个ILF。

•对于已识别的处理过程,至少满足下面三个条件之一:o处理逻辑与该应用中其它EI所用的处理逻辑不同o该组已识别的数据元素不同于该应用中其它EI的数据元素o所涉及的ILF或EIF不同于该应用中其它EI所涉及的文件4.2.2、EO识别规则•数据或控制信息发送出应用边界。

•对于已识别的基本处理过程,至少满足下面三个条件之一:o处理逻辑与该应用中其它EO所用的处理逻辑不同o该组已识别的数据元素不同于该应用中其它EO的数据元素o所涉及的ILF或EIF不同于该应用中其它EO所涉及的文件•还需满足下述条件之一o处理逻辑包含至少一个数学公式或计算过程o至少一个ILF被处理逻辑维护o处理逻辑改变了系统的行为4.2.3、EQ识别规则•数据或控制信息发送出应用边界。

•对于已识别的基本处理过程,至少满足下面三个条件之一:o处理逻辑与该应用中其它EQ所用的处理逻辑不同o该组已识别的数据元素不同于该应用中其它EQ的数据元素o所涉及的ILF或EIF不同于该应用中其它EQ所涉及的文件•还应该满足下述所有条件:o该处理逻辑从一个ILF或EIF返回数据或控制信息o该处理逻辑不包含任何数学公式或计算过程o该处理逻辑不改变系统行为o该处理逻辑不维护任何ILF4.3、计算规则4.3.1、基本概念•根据EI,EO,EQ的复杂度和贡献度来计算•EI, EO, EQ的复杂度和贡献度取决于以下两种元素的数量o引用文件类型FTR (File Types Referenced)o数据元素类型DET (Data Element Types)4.3.2、FTR•它是一个被交易功能读取或者维护的内部逻辑文件•或是一个被交易功能读取的外部接口文件4.3.3、DET•一个DET就是一个唯一的用户可认知的,不重复的数据域4.3.4、EI的功能点计算4.3.4.1、FTR计算规则•每个被维护的ILF算一个FTR•每个在EI处理过程中读取的ILF或EIF算一个FTR•由EI维护和读取的ILF只算一个FTR4.3.4.2、DET计算规则•完成EI的过程中,如果一个用户可识别的、非重复的字段穿越应用边界,那么该字段应算一个DET•如果在EI过程中,系统取出或派生一个字段并且该字段存储在一个ILF之内且没有穿越应用边界,则无须计算DET•如果应用能够发送一个系统响应信息(如:说明EI过程中发生错误,确认处理过程已经完成,确认处理过程应该继续)到应用边界之外,则算一个DET •即使有多种方法调用同一逻辑过程,也只能为这一特定动作计算一个DET4.3.4.3、注意事项以下不能单独计算为EI•包含在查询或输出中的输入请求•用于导航或选择不维护ILF的菜单窗口•帮助用户进行系统的登陆•激活同一逻辑的多种方法•刷新或取消窗口中的数据•需要用户删除或其他事务消息的反应•在同一系统内部(线程与批处理或客户端到服务器)4.3.4.4、复杂度矩阵4.3.4.5、功能点复杂度对应表4.3.5、EO、EQ功能点计算4.3.5.1、FTR计算规则•EO/EQ的FTR计算规则o每个在EO/EQ处理过程中读取的ILF和EIF算一个FTR •EO额外的FTR计算规则o每个在EO处理过程中维护的ILF算一个FTRo每个在EO处理过程中读取和维护的ILF算一个FTR4.3.5.2、DET计算规则•DET数量等于根据下列规则确定的字段总数•用户可识别的非重复的字段进入应用边界并且指明处理什么、何时处理或处理方式并且由EO/EQ返回或产生,那么每个字段算一个DET•每个发出应用边界的用户可识别的非重复字段算一个DET•如果字段同时进入发出边界,对该EO/EQ来说,只算一个DET•如果应用能够发送一个系统响应信息(如:说明过程中发生错误,确认处理过程已经完成,确认处理过程应该继续)到应用边界之外,这种能力算一个DET •即使有多种方法调用同一逻辑过程,也只能为这一特定动作计算一个DET•对那些虽然被保存、返回、派生的没有穿越边界的字段不计算DET•文字的,页面的,系统产生的标签不计算DET4.3.5.3、注意事项以下不能单独计算为EO•数据值不同的相同报告•不包含公式或复杂计算的报告•帮助(EQ)•退出系统•激活同一输出过程的多种方法•需要用户删除或其他事务消息的反应•在同一系统内部(线程与批处理或客户端到服务器)4.3.5.4、复杂度矩阵4.3.5.5、复杂度与功能点对应5、计算未经调整功能点数在分别识别并计算了数据功能(Data Function)和交易功能(Transaction Function)的复杂度之后,利用下表就可以计算出未经调整功能点数:6、计算调整系数和功能点6.1、调整系数(Value Adjustment Factor, V AF)VAF=(TDI×0.01)+0.65•其中TDI (Total Degree of Influence) 为所有系统特征因素影响程度的和•V AF值的范围为0.65~1.35间6.2、已调整功能点数(Adjusted Function Point)•开发项目(Development)=(UFP+CFP)×V AF•应用(Application)=ADD×V AF•增强项目(Enhancement)=[(ADD+CHGA+CFP)×V AFA]+(DEL×VAFB) •其中:o UFP为未调整功能点总数o CFP为转换功能点o ADD为增加的功能点o CHGA为增强后改变功能的UFPo V AFA为增强后调整系数o DEL为被删除功能点o V AFB为增强前调整系数6.3、系统特征因子有14个系统特征因子:•1、数据通讯2、分布式数据处理•3、性能4、资源需求•5、事务频率 6、在线数据输入•7、终端用户效率8、在线升级•9、复杂处理10、可重用性•11、易安装性12、易操作性•13、多点运行 14、易变更每个特征因子的影响程度分为6个级别:•0 毫无影响• 1 偶然影响• 2 小影响• 3 一般影响• 4 重要影响• 5 强烈影响每个特征引子的影响程度都有自己的判定规则!6.3.1、数据通讯(Data Communication)•0 应用程序是纯粹的批处理程序或者运行在独立的PC上• 1 应用程序是批处理程序,但是有远程数据输入或远程打印• 2 应用程序是批处理程序,但是有远程数据输入和远程打印• 3 对于批处理程序或者查询系统来说,应用程序包含在线数据收集或者一个远程处理前端• 4 应用程序不仅是一个前端,他还支持一种类型的通信协议• 5 应用程序不仅是一个前端,他还支持不止一种类型的通信协议6.3.2、分布式数据处理(distributed data processing)•0 应用程序不支持系统部件之间的数据传输或者处理• 1 应用程序为系统其他部件上的用户处理、准备数据• 2 为传输准备数据,将数据传输到系统的另一个部分进行处理(不是最终用户)【就是在系统个部件之间传输数据】• 3 分布式处理和数据传输在线进行并且是单项的• 4 分布式处理和数据传输是在线进行并且是双向的• 5 多数系统相应部件上都是动态执行处理功能6.3.3、性能(Performance)•0 用户没有提出任何要求• 1 提出并评审了性能,但不必采取专门措施• 2 响应时间和吞吐量在业务峰值时段是至关重要的。

相关主题