APP下载

基于COCOMO-Ⅱ模型的军用软件计价方法研究*

2014-07-11范朝阳

舰船电子工程 2014年7期
关键词:军用工作量计价

范朝阳 胡 欣

(1.北京市西三环中路19号 北京 100841)(2.武汉数字工程研究所 武汉 430205)

1 引言

随着信息技术在军用产品中的广泛应用,软件已经成为武器装备的重要组成部分,军用软件在某种程度上已经能够直接影响装备战斗力的形成和保持。因此,高效研发高质量的软件对于国防建设至关重要。随着软件的比重越来越大,军用软件作用和地位日益突显,费用需求不断增加,军用软件单独计价非常必要。软件是否有必要计价?如何进入装备价格管理体系?软件成本如何科学核算?等相关问题已经摆在装备价格管理工作者的面前,必须尽早提出解决方法[1]。总结军用软件计价的必要性主要基于以下四点:

1)随着信息技术的军用产品中的广泛应用,软件已成为武器装备的重要组成部分,在装备所占的比重不断提高,在某种程度上直接影响装备战斗力的形成和保持。

2)伴随计算机技术和装备的发展,一些军用软件已经不再是硬件的附属产品,而作为单独的产品应用于武器装备中。其地位的重大变化和不断提高的费用也要求装备管理工作必须将军用软件纳入装备价格管理体系之中。

3)软件的开发、标准化以及使用后的维护、升级等工作与硬件产品有较大不同,当前缺乏对软件产品研发、升级等各类工作的成本进行合理评价的标准。

4)海军武器系统中包含大量的软件,由于历史原因,软件产品没有单独列装、单独计价,而是随硬件产品研制和定价。存在一些研究单位为提高收益,刻意增加硬件研制,造成了台位冗余的现象,影响了整个装备体系的经济性。

综上所述,研究科学的软件计价标准,合理评价软件开发费用并将硬件与软件的费用分离,十分必要。

市场上软件成本计价估算方法主要有算法模型、专家判定、类比法、差别法、自顶向下法、自底向上法等[2~5],其技术可分为六类,主要为基于模型的技术、面向学习的技术、基于线性回归的技术、基于神经网络的技术、多种组合技术等[6~9]。而这些方法和技术主要用于民用方面,如何结合军用软件自身高安全性、高可靠性、高适应性、实时性等特点进行合理的计价,是军工企业软件管理亟待解决的问题,本文利用COCOMO-Ⅱ模型研究了军用软件计价方法,文中第二部分对基本COCOMO模型和COCOMO-Ⅱ模型进行了介绍,然后结合军用软件特点对COCOMO-Ⅱ模型进行了修正;文中第三部分结合具体实例,进行了某军工企业软件的COCOMO-Ⅱ模型计价;最后给出了相关结论。

2 COCOMO-Ⅱ软件计价模型

在众多的软件成本估算方法中,构造性成本模型(COCOMO)是目前影响最大、最具代表性的模型方法,该模型采用一种自底向上的微观参数估计方法,使用成本驱动因素从低端对软件环境进行描述,最早由Barry Boehm为软件项目提供准确的成本和进度估算的一个构造性的标准化模型而提出,将软件进行分割,估算出各部分的工作量和开发时间,最终汇总为项目预算。后来,Boehm和南加州大学USE软件工程中心不断对COCOMO模型进行改进,以适应在软件生命周期、技术、组件和技术等方面的明显变化,并发布了COCOMO-Ⅱ模型[1]。在民用商用软件成本计价估算中运用COCOMO-Ⅱ模型在实践中估算的软件开发成本与实际成本相差不到20%,进度相差不到46%,已经成为世界上使用最广泛、成本估算最准确的模型之一,本文即研究该模型在我国军用软件计价中的应用。

2.1 COCOMO模型

COCOMO模型常被分为三个层次,即基本模型、中级模型和高级模型,具体说来:

1)基本COCOMO模型:将软件开发工作量作为程序规模的函数来进行计算,程序规模以估算的代码行来表示。

2)中级COCOMO模型:将软件开发工作量作为程序规模及一组“成本驱动因子”的函数来进行计算,成本驱动因子包括对产品、硬件、人员及项目属性的主观评估。

3)高级COCOMO模型:包含了中级模型的所有特性,并结合了成本驱动因子对软件工程过程中每一个步骤(分析、设计等)的影响的评估。

COCOMO模型都采用相同的计算形式:

其中,Effort以人月为单位的工作量;Size是以千源代码行(KLOC)计数的程序规模;EAF是一个工作量调整因子,在基本模型中取值1;a和b是两个随开发模式而变化的因子。

根据计算出的工作量,可以由式(2)计算所需的开发时间:

其中,Effort是式(1)中求出的以人月为单位的工作量,c、d是随开发模式而改变的因子。

通过基本的COCOMO模型,就可以快速预测出软件其成本和进度等信息。COCOMO基本模型能给出一个快速而简略的估计,但其结果的精度不够。它没有考虑到开发技术、人员水平等环境因素的变化。因此Boehm在中级模型中引入了15个成本驱动因素来把软件其的环境因素考虑进来。成本驱动因素分为四个主要类型:产品属性、硬件属性、人员属性及项目属性。每个成本驱动因素在六个级别上取值(从“很低”到“很高”)。可以从Boehm提供的表中来确定工作量乘数。所有工作量乘数的乘积就是工作量调整因子EAF,即:

其中,EMi是从公认的值表中得到成本驱动因子的值。

2.2 COCOMO-Ⅱ模型

20世纪90年代以来,随着计算机技术的发展软件工程领域发生了巨大变化,出现了快速应用开发模型、软件重利用、再工程、CASE和面对对象方法及软件过程成熟度模型等一系列软件工程方法和技术。原始的COCOMO模型已无法适应新的软件成本估算和过程管理的需求,因此Boehm根据未来软件市场的发展趋势提出了COCOMO-Ⅱ模型。相较于COCOMO,新型的COCOMO-Ⅱ中主要的变化如下:

1)用三个螺旋式的生命周期模型,即用于估算早期原形工作量的应用组合模型、早期设计模型和后体系结构模型。在现代软件工程研究结果的基础上,软件市场可划分为基础条件、系统集成、程序自动化生成、应用集成、最终用户编程五个部分,COCOMO-Ⅱ模型通过三个螺旋式的生命周期模型支持上述的五种软件项目。

2)使用五个规模因子计算项目规模经济性的指数,代替了原始模型中按基本、中级、详细模型分别固定指数的方法。

3)删除的成本驱动因素有虚拟机场失性(VIRT)、计算机周转时间(TURN)、虚拟机经验(VEXP)、语 言 经 验 (LEXP)、现 代 编 程 实 践(MODP)。

4)新增了成本驱动因素有文档编制(DOCU)、要求的重复使用(RUSE)、平台易失性(PVOL)、平台经验(PEXP)、语言和工具经验(LTEX)、人(SITE)。

COCOMOⅡ模型中应用组合模型是基于对象点的度量模型,它通过计算屏幕、报表、第三代语言(3GL)模块等对象点的数量来确定基本的规模,每个对象点都有权重,由一个三级的复杂性因子表示,将各个对象点的权值累加起来得到一个总体规模,然后再针对复用进行调整;早期设计模型,在项目开始后的一个阶段或者螺旋周期通常包括探索体系结构的可供选择方案或增量开发测量,为支持这一活动,提出了一个早期设计模型,这一模型使用功能点和等价代码行估算规模;后体系结构模型,一旦项目进入开发阶段,就必然确定一个具体的生命周期体系结构,此时项目就能够为估算提供更多更准确的信息,COCOMO-Ⅱ提出的后体系结构模型即是为这一阶段提供支持。下面对应用组合模型和后体系结构模型进行重点介绍:

1)应用组合模型

应用组合模型用来解决人机交互、系统接口、技术成熟度等具有潜在高风险的内容,通过计算屏幕、报表、第三代语言组件的对象点数来确定一个初始的规模测量。屏幕对象和报告对象被设成简舉、中等或困难,然后给各类对象点数加上权重,得到总对象点数。若还要考虑重复使用情况,假定项目中有3%的对象是重用以前的,则总的新对象点数NOP计算如下:

计算工作量的公式为

其中,E是以人月为单位的工作量,PROD为对象

其中Fi是成本驱动变量的不同状态下的取值。

后体系结构模型使用17个工作量乘法因子来调整工作量,它们被分为四类:产品、计算机、人员和项目,每一类又进行细分,并按照六个等级进行评分。通过COCOMO-Ⅱ模型,软件估计者就可以快速预测出软件的开发成本和进度等信息。

2.3 模型军用软件计价修正

通过COCOMO-Ⅱ模型,软件估计者就可以快速预测出软件的开发成本和进度等信息。但由于COCOMO模型是模型设计者依据当时的软件行业历史项目数据所计算,模型内的参数以及成本驱动因子都与当时的软件环境相关。运用本模型来计算军用软件行业成本时,就会出现模型中因子与软件环境不匹配的问题,在我们运用该模型时,就要考虑我国独特的军用软件行业背景,对模型中与行业环境相关的因子进行校正,改善它的适用背景点数/人月,即软件生产效率。

2)后体系结构模型

后体系结构模型是指在项目确定开发之后,对软件功能结构已经有了一个基本了解的基础上,通过源代码行数或功能点数来计算软件工作量和进度,使用5个规模度量因子和17个成本驱动因素进行调整。

工作量计算公式为

其中,wi为规模度量因子,也成为定标因素。

工作调整因子EAF根据设定的17个成本驱动因子的评分来计算:与环境,从而使该模型服务于我国军用软件行业,帮助军用软件行业估算出项目的工作量和进度并协同决定项目可行性。

在对COCOMO-Ⅱ模型进行修正时,主要是考虑由于经验得出的在模型中设定的成本驱动因子。对这方面根据我国军用软件行业的特性和军用软件业的大量数据进行修正。

在对成本驱动因子进行修正时,我们主要根据以下原则来进行完善:

1)环境影响原则。在军用软件行业中,对有些因素并不能直接划分来对软件开发产生影响,这些因素在设立时,是国外软件环境下的产物,我国的军用软件环境并不显著。

2)适用性原则。对成本驱动因子,并不因为用历史数据检验过就认为其对军用软件业有影响,关键是看这个指标在军用软件行业下的作用是否显著,以及在军用软件行业下的因素影响。

3)主成分原则。软件开发过程中,各种因素会对其产生不同的影响,但是一些因素是偶然的还有一些是必然的,在这里主要关注的是对所有项目会产生影响的因素,且这些因素的影响有大有小,过于微弱的影响我们可以暂时忽略不计,我们选择成本驱动因子时,主要关注对软件开发产生较大的影响程度的因素,并且这些因素对所有项目均有影响。

4)软件分类原则。软件是企业开发的文档和计算机程序,不同的作用需要开发不同类型的软件,一般软件分为系统软件和应用软件,但是也会根据软件的规模进行划分,不同软件类型和不同规模下的软件在进行成本估算时,需要重点考虑的因素会有所不同,因此在对成本驱动因子进行修正时,要将软件类型规模与修正方式结合运用。

1.阔盘吸虫病。免疫等综合预防措施有 (1)加强饲养管理,搞好牛舍的环境卫生,增强抗病能力; (2)每年的初冬和早春各进行1次预防性驱虫;(3)可实行划区放牧,以避免感染; (4)注意消灭第一宿主蜗牛。

5)客观性原则。在对软件成本驱动因子进行分析修正时,主要依据军用软件行业目前的特性进行分析,但是不同的军工企业面对的问题是有所不同的,在不同军工企业下进行分析时,可依据基本修正方式结合本军工企业的特性来进行分析运用。

常数A可以运用大量的历史数据,并进行回归分析来进行修正,使之符合我国军用软件行业特性。目前国外计算主要是依据当时历史环境中大量的软件数据估算得到,在COCOMO后体系结构模型中,通常取值2.55,在COCOMOⅡ中模型的校正常量是2.94,但是在国内军用软件由于难以取材于大量的历史数据,估算时存在一定的困难,未来可以在软件行业发展的基础上,采取大量历史数据回归的方法估算。

指数因子B反映了项目的规模经济性,当它大于1时所需的工作量的增加速度大于软件规模的增加速度,体现出规模非经济性;当它小于1则表示规模经济性。

指数因子B主要是由规模度量因子w决定的,而定标因素在COCOMO模型中主要设定了五个方面:已有项目经验(PREC)、开发过程的灵活性(PLEX)、是否需要风险分析(RESL)、团队合作状况(TEAM)和软件过程凝聚力(PMAT)。依据我国军用软件行业的特性,对这五个因素进行分析并修正,使之适合我国军用软件业特性。

3 军用软件计价实例分析

3.1 用例软件介绍

下面以我国某军工企业申请的内部核心资产库四项软件著作权进行COCOMO-Ⅱ模型计价分析,以说明本文的模型和方法在军用软件计价方面的应用,软件如下:

1)**信息管理系统V1.0

2)**信息管理系统V2.0

3)**信息管理系统软件,简称“标准版C1.0”;

4)**信息管理系统软件,简称“专业版C1.01”;

以上四项软件著作权中第1项是最基本的软件,第2项是在第1项的思路框架基础上开发成功的,第3项在第2项的基础上进行了修改和扩展,第4项在第3项的基础上进行了修改和扩展。因此第4项软件著作权登记表中登记的源程序量(行)涵盖了这四项计算机软件的全部工作量,这四项软件全部实际投入的成本也可以说是第4项软件的投入成本,因此,对第4项软件著作权的评估价值也就是这四项计算机软件著作权的评估价值。**信息管理系统软件(专业版C1.01)是一个复杂程度较低的通用软件,主要应用在军工企事业单位内部财务业务。软件使用的编程语言是Visual C++,编程语言的版本号是Visual Studio 2005,源程序量(行)是969620行。

3.2 军用软件计价评估

采用COCOMO-Ⅱ模型进行上述软件的成本估算,针对**信息管理系统软件(专业版C1.01),利用如下的成本公式进行估算:

其中,P是估算的软件价格;Effort是以人月为車位的人力工作量,可通过上述的COCOMO-Ⅱ模型计算得到;U是软件开发阶段单位工作量成本;ACT为维护参数;k是软件行业平均利润率。

1)常数A

A是校正常数,在后体系结构模型中,模型的校正常量取值为2.94,**信息管理系统软件属于复杂程度较低的通用软件,选择常数基本取值,因此A取值为2.94。

2)指数因子B

指数因子B反映的是规模经济,可根据规模度量因子的等级划分及取值利用公(7)进行计算

3)KLOC

KLOC是以千源代码行计数的程序规模。**信息管理系统软件介绍中注明的源程序量(行)为969620行。经了解,该军工企业的注释行为总量的20%,故源程序指令行为775.7千行。

4)EAF

工作调整因子EAF根据设定的成本驱动因子的评分来计算的,我们在上节中介绍COCOMO-Ⅱ模型时,模型中的17个成本驱动因子分别划分不同等级,在此我们对成本驱动因子的级别根据**信息管理系统软件(专业版C1.01)的特性进行判定取值。

5)U

U是软件开发阶段单位工作量成本,是由软件开发阶段的总成本除以当时的实际工作量。即:

F是软件开发的直接成本、间接成本、期间费用的总和,一般主要考虑人员工资、软硬件投入主要费用。G是实际工作量,一般为开发人员与计算机软件实际工作时间之积,单位为人月。经了解,该军工企业在开发(专业版C1.01)软件上共投入了10名开发人员,总费用为2512170按照正常工作量折算,历时4个月。实际工作量为40人/月。因此根据公式可得到U=2512170/40=62804.25元/人月

6)ACT

系统软件的维护成本为纠正性维护、预防性维护、适应性和完善性更改,由于该软件为应用性软件,并且只是应用于初级适用,用于行业内的内部管理工作,因而维护成本相对较低。但是在使用过程中还发生部分改错纠正成本。依据软件规模的大小来判定维护参数的值,软件规模小,且软件复杂程度较低,因此软件的维护成本相对较低,依据查表成本维护参数ACT取值0.15[1]。

经过一系列计算,该军工企业开发的**信息管理系统软件(专业版C1.01)真实的成本是625.18万元,用本文方法评估的计价为719.52万元。由计算结果可知,采用本文方法计算的军用软件计价误差在15.09%,可以很好地满足军用软件计价需求,表明了本文方法的有效性,值得推广和应用。

4 结语

军用软件成本估算在军用软件项目管理中占据重要地位,针对军工企业军用软件开发管理中的软件计价问题,文中结合军用软件自身的特点利用COCOMO-Ⅱ模型进行了军用软件计价方法研究,并给出了多个模型参数的计算方法,最后结合实例进行了军用软件计价。文中的实例软件计价结果误差在15.09%,表明了COCOMO-Ⅱ模型在军用软件计价中的有效性,这对实际中军工企业军用软件计价具有较强的指导意义。

[1]Barry W.Boehm.Software Engineering Economics[M].New York:Prentice Hall,1991.

[2]Lee Anita,Cheng Chun Hung,Balakrishnan J.Software development cost estimation:Integrating neural network with cluster analysis[J].Infonnation & Management,1998,34(1):1-9.

[3]Iman Attarzadeh,Siew Hock Ow.Proposing a New Software Cost Estimation Model Based on Artificial Neural Networks[J].IEEE Software Engineering,2010:487-491.

[4]K.Vinay Kumar,V.Ravi,Mahil Cart,et al.Software development cost estimation using wavelet neural networks[J].The Journal of Systems and Software,2008(81):1853-1867.

[5]Sternberg,R.Component Processes in Analogical Reasoning[J].Psychological Reviea,1977,84:353-378.

[6]X.S HUANG,Luiz F.Capretz,Jing Ren.ANeuro-Fuzzy Model for Software Cost Estimation[J].Computer Society,2003:1-5.

[7]Nasser Tadayon.Neural Network Approach for Software Cost Estimation[C]//Proceedings of the IEEE International Conference on Information Technology:Coding and Computing,2005,4(2):815-818.

[8]Wolfhart B.Goethert,Elizabeth K.Bailey,Mary B.Busby.Software Effort &Schedule Measurement:A Framework for Counting Staff-hours and Reporting Schedule Information[D].Pittsburgh:Carnegie Mellon University,1992.

[9]Williani A.Florac,Robert E.Park,Anita D.Carleton.Practical Software Measurement:Measuring for Process Management and Improvement[D].Pittsburgh:Carnegie Mellon University,1997.

猜你喜欢

军用工作量计价
工程量清单计价模式下的工程预结算审核
嵌入式系统软件工作量多源线性估算方法仿真
大话军用卡车
工程造价计价模式和造价控制分析
建筑工程预结算中的定额与清单计价应用
威力无比的军用霰弹枪
思科发布云计算市场发展报告
实验室工位考勤管理软件设计
猜谜
军用公文写作中语言的运用