功能需求和非功能需求有什么差异


Abstract

功能点分析(Function Point Analysis, FPA)是一种独立于编程语言的软件项目评估方法。该方法被广泛应用于数据处理系统和信息系统,以估算项目的规模和复杂性。最终的功能点值是通过结合未调整功能点(UFP)和价值调整因子(VAF)计算得出的,这有助于评估项目的时间和资源需求。

FPA起源于Allan J. Albrecht在IBM的早期研究,并由国际功能点用户组(IFPUG)进一步优化。该方法不仅用于评估软件项目的功能大小,还可用于产品测试的估算。在FPA中,功能大小以功能点为单位进行衡量,成为衡量软件应用程序的标准单位。

FPA的基本目的是根据客户需求、顾客及利益相关者的请求,精确测量软件应用的功能大小。它还用于在整个项目周期中一致地评估软件项目的开发和维护,不受工具和技术的影响。

一、功能点的计算

功能点的计算涉及对应用程序中使用的函数数量和类型的计数。根据应用程序的不同功能,这些功能可以分类为以下五种类型:

所有这些参数随后将根据其复杂性进行单独评估。

二、FPA的复杂性与项目需求

FPA系统能够描述项目的预期时间和人力需求,这对于评估项目复杂性和制定计划至关重要。开发项目所需的努力与软件的具体功能紧密相关。由于FPA不依赖于特定的编程语言,它使得跨不同技术栈的项目评估成为可能。

FPA方法特别适用于数据处理系统和业务信息系统等应用场景。上述五种功能类型也被称为信息域特征,它们在FPA中扮演着关键角色。每个参数都分配了实验确定的权重,如下表所示。

通过将功能复杂性乘以相应权重,并将所有值相加,可以得出子系统的UFP。FPA的最终计算公式如下:

FP = Count-total [0.65 + 0.01 ∑(fi)] = Count-total CAF

其中Count-total是从上表中获得的总和,CAF是复杂性调整值/因子的计算结果。

三、FPA与其他软件度量的关系

基于FPA的软件度量,可以计算出其他指标,如错误率、成本、缺陷密度和文档页数等。这有助于更全面地了解软件项目的状态和性能。

四、FP值与源代码行数的互换

通过“反向推导”过程,可以从FP估算应用程序的源代码行数(LOCs),反之亦然。例如,每1 FP大约对应100行COBOL代码。

五、FP度量的应用领域

FP度量主要应用于管理信息系统(MIS)软件的规模衡量。在评估UFP时,还需要考虑一些通用的系统特性(GSC)进行调整。GSC包括一套14个特性,每个特性的影响力程度需要进行评估。

六、通用系统特性的评估与调整

对于这14个GSC中的每一个,需要评估其影响力程度(DI),评分范围为0到5。如果没有影响,则权重设为0;如果有强烈影响,则权重设为5。所有GSC的得分将决定总的影响力程度(TDI),然后用于计算VAF。VAF的值范围在0.65到1.35之间。最终FP计数为VAF乘以UFP。

七、实例数据与应用

假设我们拥有以下数据:用户输入、输出数量,查询、文件和外部接口的数量,以及与项目相关的努力、技术文档和用户文档的页数,还有项目的成本。还有各种处理复杂性因素的数据。我们可以利用这些数据来计算UFP、∑(fi)的值以及最终的FP。我们还可以计算生产率、总文档页数、文档比率和每个功能的成本等指标。

八、结论与发表