《软件估算之原始功能点:精准度量软件规模的关键》
一、软件估算的重要性与方法概述
软件估算在软件开发前期至关重要,为项目计划提供基础。主要有代码行估算和功能点估算两种方法,功能点估算从用户视角出发,基于系统逻辑设计,更具客观性和实用性。
功能点估算方法最早在 1979 年由 IBM 提出,是一种人为设计的度量方式,主要是对项目工作量进行估计。它从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计,并且基于客观外部应用接口和主观的内部应用复杂度以及总体的系统性能特征,对软件功能规模进行间接定量估算。估算内容包括外部输出数、外部输入数、文件数、外部接口和用户查询数等方面。
相比之下,代码行估算方法需要将项目划分为若干个功能,分别计算每个功能的代码长度,所有功能代码行之和即项目的代码长度。代码行估算方法是直接估算的,而功能点估算方法是通过估计输入、输出、数据文件、查询和外部接口的数目,以及复杂性校正值间接地确定的。
功能点估算方法适用于三种项目类型,分别是新开发项目、二次开发项目、功能增强项目。对于不同的项目类型,在最后计算功能点数时采用的计算公式会有差异和调整,主要是考虑到项目开发时不仅有功能的开发还有部分现有系统数据整合等工作量。
二、原始功能点的构成要素
(一)数据功能
内部逻辑文件(ILF)是用户可确认的一组在软件内部维护的逻辑相关的数据或控制信息,其主要用途是通过本软件的一个或更多的基本过程来控制数据。例如,在一个电子商务系统中,用户的订单信息可以看作是一个 ILF,系统通过对订单信息的增删改查等操作来实现业务流程。ILF 作为数据功能,在软件规模估算中起着重要的作用,它代表了软件内部需要维护的数据量和复杂度。
外部接口文件(EIF)是用户可确认的一组由本软件引用但由其他软件维护的逻辑相关的数据或控制信息。比如在一个企业管理系统中,可能会引用外