COCOMO模型在喷气燃料系统测试项目估算中应用∗

2019-02-27 08:10田立军
舰船电子工程 2019年1期
关键词:软件测试工作量驱动

田立军

(中国人民解放军91404部队 秦皇岛 066001)

1 引言

系统的软件测试是保证软件质量和可靠性的重要手段,其根本任务是监督软件开发过程,尽可能地发现软件中存在的错误或缺陷[1]。随着武器装备信息化程度越来越高,其规模化和功能性能方面比重急剧上升,对于安全等级很高的软件,如弹道导弹飞行控制软件、电源燃料监测软件、神舟飞船上各型号软件等,其测试资源消耗甚至高达所有其他软件工程阶段成本总和的3~5倍[2]。软件的测试工作任务必须是可持续性的,严格控制度量,对大型系统项目软件测试任务进行有效、准确的软件项目策划度量,是整个生命周期中提高软件质量,保证软件的可靠性重要前提和基础。

目前,对系统软件测试项目策划估算的研究与应用已经比较广泛,但在国内软件评测行业,大部分项目成本估算仅仅依靠的是经验和WBS工作分解结构法[3],这对系统软件整个测试过程的正规化、度量化保障是远远不够的。本文通过软件测试项目经验数据介绍了COCOMO模型理论,并在测试策划实施过程中进行了应用。

2 常用估算模型概述

项目任务的工作量估算方法有很多种,一般可以根据历史数据和软件规模估算的结果进行估算,主要有以下几种。

1)算法模型:包括一个或多个算法,生成的软件估计是一些变量的函数,例如COCOMO[4];

2)类比:新项目与已完成项目(规模和功能相近的项目)作比较,基于已完成项目的实际值进行估计;

3)自顶向下的估计:从项目的全局特性导出项目的整体估计,然后将其分配到各个分量上;

4)自底向上的估计:分别估计软件作业的各个分量,再综合出整体估计。

一般来说,具体估算时往往使用两种以上的方法,并参考以往做项目的历史数据,以帮助导出和验证估计。在喷气燃料软件系统鉴定测试项目中主要应用了COCOMO算法,在下文中详细描述。

3 COCOMO模型估算

著名软件工程专家、经济学家Barry Boehm教授在1981年发表的著作《软件工程经济学》中首次提出了软件估算模型层次结构,称为构造式成本模型 COCOMO(Constructive Cost Model)[5],该模型采用一种自底向上的微观参数估计方法,使用成本驱动因素从低端对软件环境进行描述,至今该模型已经成为软件界最通用的估算模型。

原始的COCOMO模型一般分为三个层级[6]:

1)基本COCOMO模型,用已估算出来的源代码行数(KLOC)为自变量的函数来计算软件开发工作量。

2)中级COCOMO模型,在用KLOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。

3)详细COCOMO模型,包括中间COCOMO模型的所有特性。

当对项目了解很少时,使用基本模型;明确需求以后,使用中级模型;当设计完成时,使用高级模型。这三个模型具有相同的形式:

其中E表示需要计算的工作量,S表示以千代码行(KLOC)计数的程序规模,F是调整参数,其值为

F的值在基本模型里等于1,N的值是15,代表15个Fi成本驱动因子,详见4.2和4.3节,a和b的值见表1。

表1 COCOMO模型的参数

其中,三种项目类型代表的意义分别是:

1)基本类(Organic Mode)项目:规模较小、较为简单的项目软件。

2)嵌入式(Embedded Mode)项目:这类项目的开发工作紧密地与系统中的硬件、软件和运行限制联系在一起。

3)半独立型(Semi-detached Mode)项目:项目的性质介于上述两种类型之间,其规模与复杂性均属于中等,如数据管理系统、OA系统等[7,12]。

4 XX喷燃系统测试项目估算模型应用

4.1 XX喷燃系统简介

XX喷燃系统通过与上级系统主要设备配合,实现对喷气、燃料的自动检测,集中、实时、动态显示燃油系统重要工作节点的关键参数数值,及时报告系统运行状态、提供报警信息,其功能结构如下图1所示。

图1 软件功能划分图

4.2 项目数据的整理与分析

本文在项目测试成本估计的时候,参照国家标准划分软件安全性等级,根据系统研制任务书及需求规格说明等相关文档规定,该系统软件的安全性等级为B级。按照软件的安全性等级及开发方式可以确定软件类型的嵌入式,故式(1)中a和b的值分别选取3.6和1.20。

系统软件组成及描述如表2。

表2 系统软件组成

经过专业测试工具软件分析,该项目软件的代码注释行为总量的20%,故源程序指令行为28.64千行。式(1)中程序代码规模S的值为28.64。

通过使用恰当的工作量公式,COCOMO生成了对工作量的初步估计。当进行到测试策划阶段时,项目组长可以应用COCOMO的中级模型。Boehm假设了15中相互独立的成本驱动因子,每个成本驱动因子按照最多6点的序数标度分等级:非常低、低、正常、高、很高、极高,每个点对应一个成本驱动因子值[8,11],式(1)中工作量的最后估计值是乘以15个成本驱动因子Fi的值。

表3 COCOMO模型的成本驱动因子

4.3 项目测试进度估算

本质上,COCOMO模型包括了两个底层信息模型,第一个是用于描述软件项目的框架,包括软件产品的规模或复杂性、开发方式、测试过程等,用规模、相关参数、成本驱动因子及相关定义、公式与表格等来描述。第二个是经验库,即精心挑选的历史项目数据,它们确定了模型中大量的基本参数值[9]。综合项目框架,结合以往相似项目测试任务的经验数据,从表3中选取成本驱动因子Fi一组值如表4所示。

表4 成本驱动集选取值

因此,式(2)中调整参数 F=1.081×0.87×0.7826×1.00=0.736。

在本项目中,根据数据整理分析,式(1)中a=3.6,b=1.20,S=28.64

E=91.06人月(保留小数点后两位)。

5 结语

COCOMO模型虽已获得了广泛认可,但在运用的过程中也应注意到其特点与局限。首先COCOMO模型所依存的历史数据基本上都是大型的软件项目数据,所以用于估算大型软件项目时相对更为准确,当用于辅助小型项目决策时,要留意其估算结果可能有较大的误差。另外已有很多研究结果表明,当根据COCOMO的定义、积累一定数量的本地数据来扩充其已有的历史数据库,并重新校准模型参数后,得出的结果将更为准确。

猜你喜欢
软件测试工作量驱动
数据驱动世界。你得懂它 精读
软件测试方向人才培养“1+X”融合研究
基于模糊PI控制的驱动防滑仿真系统分析
嵌入式系统软件工作量多源线性估算方法仿真
屈宏斌:未来五年,双轮驱动,砥砺前行
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
深入实施创新驱动发展战略
关于 Web 应用系统的软件测试的研究
思科发布云计算市场发展报告