Software Engineering and Applications
Vol.05 No.01(2016), Article ID:17032,9 pages
10.12677/SEA.2016.51010

Metrics of Real-Time Systems Based on IFPUG

Huzhong Yan, Lei Xia, Jiao Zhu

College of Computer Science, National University of Defense Technology, Changsha Hunan

Received: Feb. 10th, 2016; accepted: Feb. 26th, 2016; published: Feb. 29th, 2016

Copyright © 2016 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

ABSTRACT

As the most widely used functional size measurement method, IFPUG still has the limitation that there is a large deviation in experimental results when different measurement members measure the same real-time system. Based on the comparison of several measurement results of multiple projects by IFPUG and COSMIC method, this paper analyzes the reasons of these deviations. And a mapping relationship of IFPUG→COSMIC→measurement software is proposed. The experiment results show that establishing the mapping relationship of IFPUG→COSMIC→measurement software can improve the recognition accuracy of the data function and narrow the deviations between different measurement results of different practitioners.

Keywords:Real-Time Systems, IFPUG, COSMIC

基于IFPUG功能点方法的实时系统度量

严虎仲,夏雷,朱姣

国防科学技术大学计算机学院,湖南 长沙

收稿日期:2016年2月10日;录用日期:2016年2月26日;发布日期:2016年2月29日

摘 要

IFPUG作为目前使用最为广泛的功能规模度量方法,不同度量员在对同一个实时系统进行度量时,结果存在较大的偏差。本文通过IFPUG和COSMIC方法对多个实际项目度量结果的比对,分析存在偏差的原因,提出IFPUG→COSMIC→待度量软件的映射关系,并对方法进行验证。结果表明,建立IFPUG→COSMIC→待度量软件的映射关系,可以提高数据功能的识别准确度,缩小不同度量员度量结果间的偏差。

关键词 :实时系统,IFPUG,COSMIC

1. 引言

软件规模度量是软件项目策划的基础,可根据规模估算工作量与成本、度量项目的开发效率、缺陷密度、项目进展等,在度量过程中,还可以加深对需求的理解,起到对需求进行验证的作用,因此,软件功能规模度量一直是工程界研究的重点课题。目前,国际上使用最广泛的是IFPUG功能点分析法,也是我国军用软件计价的推荐标准。COSMIC作为近年兴起的第二代功能规模度量方法,广泛应用于商业软件和实时系统。

使用IFPUG方法对实时系统进行度量,不同度量员间的度量结果平均偏差率高达12.6%,使用COSMIC方法,平均偏差率为2.5%。究其原因,使用IFPUG方法,很难建立其定义至被度量系统之间的映射关系,造成数据功能识别准确度不高。

本文中,我们通过对IFPUG和COSMIC方法中的概念进行对比分析,建立了IFPUGàCOSMICà待度量软件的映射关系,并用该方法对部分系统进行了重新度量。结果发现,使用该方法后,不同度量员度量结果间的平均偏差率缩小了近10%,度量结果趋于一致。

2. 方法概述

2.1. IFPUG FPA功能点分析法

功能点分析法是在需求分析阶段基于系统功能的一种规模估算方法,是基于软件的内部特性、外部特性以及软件性能的一种间接的规模度量。IFPUG FPA功能点分析是把应用系统按组件进行分解,并对每类组件以IFPUG FPA定义的功能点为度量单位进行计算,从而得到反映整个应用系统规模的功能点数。功能点分析从用户功能性需求出发,对应用系统两类功能性需求进行分析:一类是数据功能性需求,分为内部逻辑文件(Internal Logic File, ILF) [1] 和外部接口文件(External Interface File, EIF) [1] 两类。另一类是交易功能性需求,分为外部输入(External Input, EI) [1] ,外部输出(External Output, EO) [1] ,外部查询(External Query, EQ) [1] 三类。对5个功能分量的权累加就是未调整的功能点(UFP),再利用通用系统特性的14个调整因子确定调整系数(VAF),根据公式AFP = UFP × VAF,可得调整后的功能点数(AFP)。其度量流程如图1所示。

2.2. COSMIC FFP全面功能点分析法

COSMIC FFP全面功能点分析法是通用软件度量国际协会(The Common Software Metrics International Consortium, COSMIC)提出的。COSMIC FFP全功能点分析方法通过出(Exit) [2] 、入(Entry) [2] 、读(Read) [2] 、写(Write) [2] 4个数据流类别来决定功能的规模。它的度量标准单位是CFSU (Cosmic Functional Size Unit),等同于一个数据流,每个数据流计为1Cfsu,将所有数据流累加所得结果即为软件规模。COSMIC提出了软件层的概念:一个复杂的系统,可以通过若干个层面来表现软件的不同视域。这样,不需要像IFPUG中的功能点调整因子来对功能点的计算结果进行调整,而直接反映在度量方法里。其度量过程由策略、映射和度量三个阶段构成。四类数据移动、其所属的功能处理和被度量软件的边界之间的整体关系如图2

Figure 1. Flow chart of IFPUG measurement

图1. IFPUG度量流程

Figure 2. Four types of data movement and the relationship with the function process

图2. 四类数据移动及与功能处理关系

3. 度量结果比对

3.1. IFPUG和COSMIC方法度量结果比对

两名度量员分别使用IFPUG和COSMIC方法对10个实时系统进行度量,结果如表1表2所示。

从度量结果得出,使用COSMIC全功能点分析法对实时系统进行度量,两名度量员度量结果的平均偏差率为2.5%,而使用IFPUG功能点分析法度量,平均偏差率达12.6%。如图3图4所示。

3.2. IFPUG功能点分析法度量结果比对

对上述10个项目中偏差较大的1、3、5、8、9,5个项目进行进一步分析比对,结果如表3表4

从两名度量员度量结果中不难发现,使用IFPUG方法在对同一实时系统进行度量时,计数交易功能偏差不大,而计数数据功能存在较大的偏差。

4. 原因分析

《IFPUG功能点估算方法使用指南》中对数据功能做出了如下定义:数据功能是指向用户提供的满足内部或者外部数据需求的功能。分为内部逻辑文件(ILF)和外部接口文件(EIF):

内部逻辑文件(ILF):是指一组用户能够识别的,存在内在逻辑关联的数据或者控制信息。这些数据或者信息应该是在本应用的边界之内被控制的。ILF的主要目的是容纳一组在本应用中由一个或者一组

Table 1. The results of statistical table from practitioner A

表1. 度量员A度量结果统计表

Table 2. The results of statistical table from practitioner B

表2. 度量员B度量结果统计表

Table 3. The statistical stables of measurement results by practitioner A using IFPUG

表3. 度量员A使用IFPUG度量结果统计表

Table 4. The statistical stables of measurement results by practitioner B using IFPUG

表4. 度量员B使用IFPUG度量结果统计表

Figure 3. COSMIC measurement results comparison chart

图3. COSMIC度量结果对比图

Figure 4. IFPUG measurement results comparison chart

图4. IFPUG度量结果对比图

基本处理来维护的数据。

外部接口文件(EIF):是指一组用户能够识别的,在本应用中被引用的,以及存在内在逻辑关联的数据或者控制信息。与内部逻辑文件不同,这些数据或者信息是在本应用的边界之外被控制的。EIF的主要目的是容纳一组在本应用中由一个或者一组基本处理引用到的数据。这就意味着在本应用中的EIF必须是另外一个应用中的ILF。

在实际度量过程中,根据《指南》中对数据功能的定义及识别规则,能否准确对ILF及EIF准确识别呢?我们结合案例进一步分析讨论。

《X型维护数据存储管理软件》的需求描述如下:

该型维护数据设备用于实时接收和记录DMP通过FC总线传来的机器维护数据、健康管理数据以及总线数据,机器工作任务结束后,根据需要,取出MDC,通过专用设备快速读取MDC中的机器数据,以便分析、处理;产品还具有数据加载功能,通过维护设备将需要加载的数据(包括系统配置数、用户配置数据、基础数据)写入到MDC中,DMP通过FC总线读取被加载的数据。

需求描述:

1) 系统初始化

子能力组成:初始化CPU;初始化全局变量;读取MDE信息;查找MDC上文件位置。

能力需求描述:初始化完成后默认进入正常工作模式,通过RS232串口将软件版本信息输出用于判断加载的产品软件版本是否正确;完成定时器、任务建立和优先级分配,工作模式、接收发送缓冲区的初始化。

输入输出定义:

输入:无。

输出:建立的任务。

初始化完成的变量。

所有数据类型的最后一个文件目录。

上电自检故障信息。

2) 正常工作模式

子能力组成:正常工作模式周期BIT;数据存储;数据加载。

输入输出定义:

输入:机器维护数据。

健康管理数据。

总线数据。

输出:正常工作模式周期BIT故障信息。

加载的文件。

3) 数据加载

能力需求描述:MDC中加载的数据为系统配置数据、用户配置数据和基础数据。通过LVDS总线读取预先写入到MDC中的加载数据(包括系统配置数据、用户数据、基础数据),分类打包处理后,再通过FC总线传给DMP。

输入输出定义:

输入:无。

输出:系统配置数据。

用户配置数据。

基础数据。

根据描述,识别应用边界如图5

根据数据功能定义和识别规则,两名度量员识别的ILF和EIF如表5

在度量过程中,度量员A认为:该型软件存在两个接口,分别用来连接MDC和DMP,因此有2个EIF,而两个接口所对应的输入对软件本身进行了维护,因此,软件本身记作1个ILF。度量员B认为:DMP向软件输入了三组数据,分别是机器维护数据、健康管理数据和总线数据;MDC也向软件输入了三组数据,分别是由维护设备加载到MDC中的系统配置数据、用户配置数据和基础数据。因此有6个EIF。DMP向软件输入的三组数据对软件进行了相同的维护,因此记1个ILF;同样,MDC向软件输入的三组数据也共同对软件进行了维护,再记1个ILF,共有2个ILF。显而易见,根据《指南》中对数据功能的定义及识别规则,度量员产生了不同看法,识别结果出现了偏差。

5. 解决方法及验证

使用COSMIC方法对上述案例进行度量则无需考虑软件的内部结构,数据的移动清晰,度量结果偏差不大。那么能否建立IFPUG→COSMIC→待度量软件,这样的映射关系呢?

5.1. 概念分析

首先,两种方法有三个相同的概念:度量的目的、度量的范围和应用边界[3] ;其次有三个相关的数据:感兴趣对象和实体、数据组和文件,数据属性和数据元素[3] ;另外还有两个转化过程;功能过程和交易功能[3] 。对应关系如表6

Figure 5. Application boundary

图5. 应用边界

Table 5. The table of identification data function comparison

表5. 识别数据功能对比表

Table 6. Correspondence of concepts between COSMIC and IFPUG

表6. COSMIC和IFPUG一致概念对应表

通过对定义的分析,可以得出:如果度量的范围和应用的边界一致,那么识别功能过程和交易功能的标准一致、识别数据组和文件的标准也一致[4] 。因此COSMIC中的功能过程就是IFPUG中的交易功能,COSMIC中的数据组就是IFPUG中的文件[4] ,反之亦然。这样,在对实时系统进行度量时,可先根据COSMIC方法中数据组的识别规则识别数据组,再根据IFPUG方法中数据功能的识别规则分析判断该数据组记不记ILF或EIF。

5.2. 使用COSMIC方法对上述案例中的数据组进行识别

表7所示,根据IFPUG数据功能识别规则,上述案例中,应有6个EIF,3个ILF。较之依据概念及识别规则,该方法使数据功能的识别变得清晰明了。

5.3. 方法验证

通过上述方法,对偏差较大的5个项目重新度量,结果如表8

建立概念映射后,两名度量员度量结果的平均偏差率为2.7%,而直接使用IFPUG方法度量的平均偏差率达12.6%。如图6所示。

Table 7. COSMIC method for identifying data groups

表7. COSMIC方法识别数据组

Table 8. The comparison table of measurement results after concept mapping

表8. 概念映射后度量结果比对表

Figure 6. The comparison chart of measurement results after concept mapping

图6. 概念映射后度量结果比对图

6. 结束语

IFPUG作为目前使用最普遍的功能点度量方法,由于《手册》和《指南》中对其两类功能性需求定义的晦涩,给实时系统度量带来诸多不便。当然,度量中存在偏差不仅仅是因为数据性功能的识别问题,调整系数的确定也存在较大的主观性。另外在实时系统中,决定系统复杂度和贡献的数据元素类型(DET)、记录元素类型(RET)以及引用文件类型(FTR)的识别也很大程度上影响了系统的功能点数。但是,如果需求文档对功能过程描述完整,数据移动以及类型清晰,那么上述三种数据类型以及交易功能的识别亦非难事,而且多名度量员的识别结果偏差不大。本文中所有项目的功能性需求(数据功能、交易功能)的复杂度均为低,度量结果具有一定的普遍性。随着软件技术的发展,系统的复杂度也越来越高,度量过程中遇到的问题也层出不穷,如IFPUG方法中调整系数的确定、COSMIC方法中感兴趣对象的识别等,需要更大努力去研究和解决。

基金项目

军队技术基础项目。

文章引用

严虎仲,夏 雷,朱 姣. 基于IFPUG功能点方法的实时系统度量
Metrics of Real-Time Systems Based on IFPUG[J]. 软件工程与应用, 2016, 05(01): 84-92. http://dx.doi.org/10.12677/SEA.2016.51010

参考文献 (References)

  1. 1. Longstreet, D. (2004) Function Points Analysis Training Course. www.softwaremetrics.com

  2. 2. COSMIC (2015) COSMIC Method v4.0.1 Measurement Manual.

  3. 3. Münch, J. and Abrahamsson, P. (2007) Convertibility between IFPUG and COSMIC Functional Size Measurements. Cuadrado-Gallego, J.J., Rodríguez, D., Machado, F., et al., Eds., Product-Focused Software Process Improvement, Springer Berlin, Heidelberg, 273-283. http://dx.doi.org/10.1007/978-3-540-73460-4_25

  4. 4. Ferrucci, F., Gravino, C. and Sarro, F. (2014) Conversion from IFPUG FPA to COSMIC: Within-vs Without-Company Equations. 2014 40th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), Verona, 27-29 August 2014, 293-300.

期刊菜单