随着计算机技术的发展,现在的计算机环境与传统的环境已经有了天壤之别。因此,软件工程人员一直在寻找一种可以广泛应用的度量单位。这个度量单位需要独立于开发所采用的技术,支持需求收集、估计、项目管理和质量度量的需要。功能点分析就是能够满足上述需求的选择。
经验证明,应用功能点分析来度量软件的规模是非常可靠的,尤其是在项目估计、变更管理、生产率度量和功能需求的沟通等方面。
很多人问,功能点分析是否适用于评价现在应用越来越多的计算机环境,例如,实时的嵌入式编码和面向对象的编程方法。既然功能点是从用户的角度按功能来表达开发的工作产品,那么它是独立于所采用的技术或工具的。
以下是对功能点分析方法和潜在收益的介绍。
功能点分析介绍
功能点分析的初衷之一是让项目组和客户可以使用同一方法定义功能需求。结果证明,理解客户需求最好的办法是站在客户的角度分析软件系统产生的结果,从而来确定客户关心的问题。因此,功能点分析的一个主要的目标就是从用户的角度定义系统的能力。为了达到这个目标,专家们分析了人们对计算机系统的不同使用方式。从用户的观点来看,系统是从五个基本方面帮助他们进行工作的:其中两项是最终用户的数据需求,因此称作“数据功能”;另外三项强调客户对数据的可调用性,称作“交易功能”。
功能点的五个要素
· 数据功能
o 内部逻辑文件
o 外部界面文件
· 交易功能
o 外部输入
o 外部输出
o 外部查询
内部逻辑文件:这是第一项数据功能,使客户可以使用他们负责维护的数据。例如驾驶员在起飞行前通过显示器输入一系列航行数据,这些数据保存在一个文件里备用,并可以在执行过程中进行修改。因此,驾驶员负责维护包含航行信息的文件。数据在系统中的逻辑分组是由最终用户维护的,我们把它叫做“内部逻辑文件”(ILF)。
外部界面文件:这是第二项数据功能,也和数据的逻辑分组有关。在这种情况下,用户不负责维护数据,数据在另一系统中驻留由其他用户进行维护。该数据只供系统用户参考使用。例如:飞行中,驾驶员可能需要参考某卫星或地面定位系统的定位数据。驾驶员不负责更新这些数据但要参考使用。这样,这些只供参考使用的其他系统的数据分组就称为外部界面文件(EIF)。
以下的功能的重点是客户可以调用ILF和EIF中数据的能力,主要包括:维护、查询、输出数据。这类功能称为交易功能。
外部输入:这是第一项交易功能,是指用户可以根据需要通过增、删、改来维护内部逻辑文件。例如,驾驶员在飞行前和飞行中可以增加、删除、修改航行信息。此时,飞行员使用的功能是外部输入(EI)。外部输入使用户可以维护ILF。
外部输出:下一项交易功能是使用户可以输出结果。例如:驾驶员能够分别显示地面速度、实际气流速度和经过校准的气流速度。显示结果就是经过调用维护数据和参考数据获得的。在功能点术语中,显示的结果就称为“外部输出”(EO)。
外部查询:最后一项交易功能是指用户可以通过计算机系统选择特定的数据并显示结果。为了获得这项结果,用户要输入选择信息抓取符合条件的数据。此时没有对数据的处理,是直接从所在的文件抓取信息。例如:驾驶员要显示预先设置的地形图,输出的结果就是直接从信息存贮位置提取的信息;这里我们称作“外部查询”(EQ)。
调整因素
除了以上的功能要素外,功能点分析中还要考虑两方面的调整因素:
功能复杂性:第一个调整因子,是指要考虑各个功能的复杂性。功能复杂性是由某一功能的数据分组和数据元素共同决定的。计算数据元素和无重复的数据分组个数后,将数值和复杂性矩阵对照,就可以确定该功能的复杂性属于高、中、低。以上的五个功能要素(ILF,EIF,EI,EO和EQ),每个都有各自的复杂性矩阵。以下是外部输出的复杂性矩阵。
通过对所有的功能要素的分析并将结果相加,就获得了“未调整的功能点数”
数值调整因子:未调整的功能点数要乘以第二类调整因子——数值调整因子。该因子是通过考察系统的技术和运行特点获得的,主要是通过考察14个方面的特点得到结果,它们是:
1. 数据通讯 应用系统中的数据和控制信息通过通讯设施发送或接收。
2. 分布式数据处理 应用系统在应用范围内具有分布式数据或处理功能。
3. 运行 客户提出或批准的应用系统的运行目标可以是:响应速度、处理量、对设计、开发、运行和支持的影响(或可能的影响)
4. 大业务量配置 大用户量配置对设计有特殊要求,是应用系统的一个特性。
5. 交易率 交易率很高并影响设计、开发、安装和支持。
6. 在线数据输入 系统中包括在线数据输入和控制信息功能。
7. 最终用户效率 在线功能强调了对用户效率的要求。
8. 在线更新 应用系统包括在线更新内部逻辑文件的功能。
9. 复杂处理 应用系统有进行复杂处理的特点。
10.可复用性 应用系统中的应用和代码经过特殊设计、开发和支持,可以在其他应用系统中复用。
11.易安装性 应用系统的转换和安装容易。 系统测试阶段提供了转换和安装计划和/或转换工具。
12.易操作性 应用系统具有易操作性。系统测试阶段,提供了可以有效启动、备份和恢复规程。
13.多地址 应用系统经特殊设计、开发、支持可以在多个组织、多个地点安装。
14.支持变更 应用系统经特殊设计、开发、支持,可以支持变更。
计算时,根据以上的这些因子对系统的影响进行评分,对利用该分数对“未调整的功能点数”可以影响到35%,结果就是“经调整的功能点数”。
功能点计算的实施
计算功能点的实施有几种方法,Q/P管理集团认为进行有条理的专题研讨可以非常有效、准确地收集的必要数据。专题研讨可以让计算者从功能的层面建立应用系统的表示,对其他参与人员了解功能点也有帮助。
功能点计算需要的文档很少,但是准确性和效率却是由文档的质量决定的。可以使用的文档包括:
· 设计文档 · 显示设计 · 数据需求(内部、外部) · 用户界面说明
专题研讨时,除了记录功能点计算的结果,还要保存描述应用系统的图表以及对各个功能的详细讨论。
功能点分析的优势
采用功能点分析作为度量单位的企业认识了到它的很多优势:改进了项目的估计、促进了对项目的理解、保持较高的生产率;有利于管理项目需求的变更和需求的收集。以下对各项优势进行详细介绍:
软件项目估计:软件项目的估计既是科学也是艺术,估计时需要考虑很多因素,其中最重要的有两项。第一项是在预定期限内交付产品的规模。可以按上述方法进行估计;第二项是开发每个功能点需要的时间,或者称作交付产品生产率,它可以根据历史数据计算或使用行业标准数据,通常表示为功能点/小时(FP/Hr)。我们可以利用它来计算同类项目的工作量(即:项目总工时=项目功能点估计值XFP/Hr)。
开发效率(生产率):功能点分析中,通常会很自然的用到或计算出生产率数据。由于功能点分析是一种独立的技术,因此可以用来比较不同的开发工具和平台的开发效率。更重要的是,我们可以用它来获得某一工具或平台的生产率数据(即:FP/Hr)。确定了生产率数据后,就可以按上述方法来进行项目估计,或跟踪软件过程改进对生产率所产生的影响。除了交付产品生产率,功能点还可以用来评价需要进行维护地系统的支持需求。在这项分析中,生产率是根据每人每年可以支持的功能点数来确定的。通过和其他系统比较,就可以确定哪个系统需要的支持最多。这样可以帮助公司确定那些维护需求很高的产品的维护、替代策略。
项目范围变更管理:使正在开发的项目可以方便地进行变更管理,这是功能点的又一个优势。项目批准后,使用功能点进行估计的项目在识别、跟踪和沟通新需求和需求的变更时就很容易。客户提出新的显示或性能要求时,项目可以计算功能点数的变化并按生产率计算工作量;根据计算结果来分析需求的变更对预算和工作量的影响,这样,用户和项目组就可以确定该需求相对成本和进度的重要程度。项目结束后,将实际的功能点数与估计功能点数进行比较可以确定需求收集技术的有效性。这种分析有助于改进需求定义技术。
沟通功能需求:这是功能点方法研制的初衷之一。由于可以回避专业科技术语、注重用户需求,因此它是与用户沟通的出色的工具。这项技术可以用于和客户进行面谈、记录联合应用设计(JAD)的结果。形成的文档可以作为描述客户需求和技术需求的框架。
综上所述,功能点分析是准确确定规模、记录和沟通系统功能的有效技术。它已经成功用于估计传统的数据处理系统和实时嵌入式系统的功能,例如仓库管理机器人和飞机电子系统。随着计算机环境复杂性的增加,功能点分析越来越成为准确评价和反映我们所开发、维护的软件系统的优良工具。
转http://blog.sina.com.cn/s/blog_49b935920100nizb.html