面向军用软件的COCOMOII改进模型研究*

2014-07-01 23:35
舰船电子工程 2014年1期
关键词:开发人员军用工作量

郭 薇 李 想 曾 斌

(1.军事经济学院研究生管理大队3队 武汉 43035)(2.海军工程大学管理工程系 武汉 430033)

面向军用软件的COCOMOII改进模型研究*

郭 薇1李 想1曾 斌2

(1.军事经济学院研究生管理大队3队 武汉 43035)(2.海军工程大学管理工程系 武汉 430033)

为了适应军用软件研制过程中软件需求和开发环境等因素的动态变化,在COCOMOII模型中加入时间影响因素,并应用专家判断技术和Delphi法对COCOMOII模型进行分解,对影响因子间的因果关系做定性定量分析,设计了模型校准程序来反映军用软件需求渐变的特性。通过在某典型软件项目中的应用,证明改进后的COCOMOII模型对军用软件开发成本的预测更加准确,能够为军用软件项目管理和计划制定提供较为全面的决策支持。

软件估算; 军用软件; 构造性成本模型

Class Number TP311

1 引言

由于高可靠性和高安全性要求,相比一般商用软件,军用软件的开发周期较长,随着研制进程的推进,软件需求和开发人员等因素都会发生变化,成本的估算成为困扰军方和供方的难题[1]。软件项目工作量估算的失真,导致软件开发周期延长、成本上升,使项目管理失效、开发者受损、部队不能如期得到合同规定的产品,最终可能导致项目失败。

软件开发项目的情况各不相同,有着各自不同的管理结构、开发人员和工作环境。因此,简单地套用模型进行估算所得到的成本并不可靠,在项目完成后实际成本与估算数值将存在较大的差异。COCOMOII作为可校准估算模型,允许模型使用者用更符合本项目的历史数据集,重新校准模型的参数与定义,因此,本文选用COCOMOII作为估算基础模型。虽然文献[2]对针对软件成本估算中影响因素较多且存在多重相关性的特点,提出一种基于加权偏最小二乘回归(PLSR)的软件成本估算方法,文献[3]通过对相对经济指数、软件成本驱动因子进行细化和量化,提出改进COCOMOⅡ模型的方法,文献[4]以COCOMO81模型为基础,分别度量模型本身估算值与实际值差距的不确定性,并在此基础上给出预测区间,但目前国内还是缺少针对军用软件成本的估算模型。

当前COCOMOII仅是一个静态估算模型,它假设项目的开发环境是静止不变的,通过固定的成本驱动因子和项目规模,估算出项目所需成本,这就要求项目在需求分析阶段有良好的管理和稳定可靠的需求[5~6]。然而调查发现,现在许多军用软件的开发是一个动态过程,用户对于项目的需求存在变化和调整,项目开发人员的情况也在发生变化[7]。例如,软件项目管理的欠缺、开发人员的调动、开发队伍的积极性可能降低、分析员的能力随着经验的累积不断提升等。尤其是大规模的军用软件,在漫长的开发过程中,用户需求和项目人员都在不断地发生变化,我们需要分析在动态环境条件下成本驱动因子对软件成本的影响,进行更为准确的成本估算。

2 COCOMII模型的改进思路

动态的大规模军用软件项目开发过程意味着:随着项目环境的变化,所需估算的工作量和进度是动态变更的。为此我们在原COCOMOII模型中加入了时间变化的影响,图1展示了引入了动态时间变量的COCOMOII改进模型。

图1 加入时间变化的COCOMOII模型

如图1所示,为了将离散过程连续化,我们将开发的时间量化为足够小的时间段,以便能够随时间的变化分析项目工作量和进度的变化。我们的主要思路:假设在单位时间段内,软件开发的需求目标和开发人员情况是固定不变的。随着时间段的推进,当开发环境和管理决策发生变化时,每个项目阶段的目标函数、规模和驱动因子也会发生相应的变化,变化的成本因子对项目的成本产生影响,估算模型再次输入更新的因子量进行估算。这样,估算结果体现出军用软件项目的动态过程,为项目管理者提供了权衡分析的框架。

COCOMOII模型估算软件成本时由一系列输入因子(规模、成本驱动因子、比例因子)导出人力费用,此人力费用涵盖整个项目开发生命周期的工作量(PM)和进度(Schedule)[8],我们将项目开发的全部工作量和进度分解到软件开发周期的各阶段中,对开发过程做动态分解。图2体现了COCOMOII的动态分解过程。

图2 COCOMOII的动态分解过程

设定项目开发所需的平均人员数为N,每个阶段的工作率M指单位时间(天)参与到开发过程的人数;各阶段的生产率P指项目总规模(Size)与所完成的有效工作量(Effort)的比值。开发率D为单位时间(天)所需完成的项目规模。图中的工作率、生产率和开发率的关系如式(1)所示:

M=N×Effort(%)/Schedule(%)

P=Size/(PM×Effort(%))

D=M×P

(1)

举例说明,假设开发所需的平均人员数为84,在需求分析阶段,工作量占总工作量的7%,工作进度占总进度的24%,那么在需求分析阶段参与开发的人数为84×7%/24%=24.5。

3 改进模型的设计

由于各种原因很难获取能够反映开发过程动态变化的历史项目数据,为此我们主要依靠军用软件领域的专家学者和开发人员的经验,对软件特征和成本驱动因子的变化进行分析。

1) 定性分析

经过调查发现,大型军用软件项目在需求分析阶段后,随着项目进程的推进,需求还会不断增加,但变动幅度不是很大,本文称之为渐增需求。由于需求的渐增变化,很多大型军用软件开发人员的生产率到达一定高度后会骤然降低。其主要原因为随着需求的增多,开发人员的积极性会逐渐低迷,导致开发团队发生变化,部分原有人员可能离开团队,缺乏经验的新人加入项目开发,人员间(包括设计人员、编程人员、项目主管、用户)的摩擦冲突也会变多,这些因素都会引起生产率降低,开发进度缓慢[9]。开发率的降低最终导致了软件开发周期延长、成本上升。这些变化的因素间是互相关联的,图3反映了这一连带关系的变化过程。

图3 渐增需求影响的因果分析

图3中的箭头指出引起变化的方向和性质。比如,箭头从渐增需求指向工作规模,性质为“+”,表明需求的增加使工作规模加大。另一方面,箭头从人员经验指向工作量,性质为“-”,表示人员经验的增加减少工作量。

由图3可知,技术的改变、组织的变更和对系统理解的逐渐深入会改变部队用户的需求,这些变更导致管理机构的需求发生变化。从开发者的角度看,渐增需求增大了工作规模,同时引起设计者、管理者、开发者和用户之间产生摩擦冲突,摩擦冲突将削弱团队积极性。团队积极性对人员持续力和人员能力水平有一定的影响,积极性高涨时人员持续力增加、能力水平增强,持续力的增强使得人员经验水平加大工作量减小。另一方面,渐变需求增大了工作规模,当项目的开发需求不断变更时,管理者将压力施加给开发人员,给他们更重的工作任务甚至是超负荷劳动,从而产生工作延期、劳动强度增大、软件质量下降,这些因素的变化最终影响项目的总体进度和工作量。

图3所示的影响因素主要属于人员的心理因素范围。比如,需求的变更引发团队积极性降低,从而导致人员连续性(PCON)的下降,原有人员的离开会使没有经验的新人代替有经验的人员进行软件开发,这样人员因子将受到影响[10],包括:程序员能力(PCAP)、分析员能力(ACAP)、应用经验(APEX)、语言和工具经验(LTEX)、平台经验(PLEX)。

2) 定量分析

这些因子的变化对项目的开发有着显著的影响,尽管上文对渐变需求的影响做了定性分析,并对重要的影响因素之间的关系做了阐述,但因子本身的变化率却很难量化。由于缺乏历史数据作支撑,我们首先设计了一个典型的军用软件开发项目,具体属性见表1和表2。以该项目为背景,对专家学者和开发人员(从事军用软件开发8年以上)进行调研,运用Delphi法收集信息,给模型中相关因子的影响率赋值。

表1 军用软件开发项目因子等级

表1中L为低;N为标称;H为高;VH为非常高。

表2 军用软件开发项目

表2中的平均需求渐增量为10%,项目规模从0%~100%,分析阶段占总规模的20%。

由图3已知,渐增需求加大了项目人员间的摩擦和工作规模,而摩擦和规模的变化最终增大了开发工作量。由前文定性分析中可知,团队积极性影响人员连续性和个人能力以及程序员能力和分析员能力。

根据调研,本文设置人员连续性的标称等级为12%,此等级对应的积极性等级为1.0(积极性高涨),此时个人能力水平(分析、设计、编程、效率、沟通、合作能力)为55%,随着积极性的减退,个人能力逐渐下降。这样调整后的等级等于初始等级(Intial_Level)减去影响等级(Impact_on_Level)。

举例说明,当积极性降至0.6时,调动率增长至14%/年,人员连续性等级调整为3.0-0.17=2.83,因此,人员连续性工作量乘数变为2.83-0.81=2.02。

工作规模的变化对开发工作量和开发进度的影响主要从两个项目因子进行定量分析,分别为工作延期和劳动强度,它们引起工作量的增加以及进度的减缓。COCOMO模型通过确定的工作规模和需求目标来估算完成项目所需的工作量和进度。然而,在资源短缺和其他相关问题出现时,需求逐渐增加,开发组织可能无法达到最终目标。因此,需要一个模型校准程序来反映渐增需求的特性。

调整程序的步骤概括如下:

第一步,根据专家评估的结果,研究开发者劳动强度的变化趋势。分析发现,工作规模的变化与开发者的劳动强度关联并不大,但开发人员会因工作量的增大越来越疲劳,到达一定程度时劳动强度会骤然下降。调整后的生产率计算公式见式(2)和式(3),其中生产率调整量(PA)是指开发人员在劳动强度(WorkIntensity)的压力下增大或减小的生产率。调整后的生产率(AP)为常态生产率(NP)与生产率调整量之和。计算公式如下:

PA=NP×WorkIntensity

(2)

AP=NP+PA

(3)

第二步,根据专家估算的结果,研究工作延期的发展趋势。表3为通过Dephi法得到的量化表。

表3 工作延期的发展趋势

由表3可知,当渐增需求增加10%,工作率比预期的迟缓7%;当渐增需求增加到20%,工作率延期急剧上升三倍,到达21%。调整后的工作率(AMR)计算公式如下,式中NR为正常情况下的工作率,MD为工作延期。

AMR=NR(1-MD)

(4)

4 改进模型的验证

首先,验证改进的模型是否能对军用软件开发项目进行估算。基于前面设定的军用软件开发项目(见表1和表2),假设工作量增长7%,进度增长24%,使用COCOMOII和本文改进的模型对项目规模和工作量进行估算比较,结果如表4所示。

改进的模型在不考虑渐增需求的情况下,估算的开发工作量为4995.2;COCOMOII使用REVL因子,估算由需求演进和易变性而引起的产品有效规模为4994.8;开发进度比较亦是如此。结果表明,改进模型估算静态环境下的工作量和开发进度与COCOMOII基本一致,改进的模型确定可用。

图4 改进模型下工作量和 进度随需求变化的增长情况

然后验证改进的模型用于动态环境下开发项目的估算,结果是否合理。根据军用软件开发领域的专家对渐增需求带来的因子变化率的赋值,使用改进模型估算项目工作量和进度。随需求的逐渐增加,工作量和规模与静态环境下所估算的数值相比,呈倍数逐渐增多。工作量和规模随渐增需求的增长趋势如图4所示。

5 结语

COCOMOII模型基本参数的校准,有利于提高COCOMOII模型的使用精度。校准的基本参数能为军用软件成本估算提供重要的参考依据,为采购方采购或外包软件的决策提供重要的参考依据。同时,应用专家判断技术和Delphi法改进模型,将静态的估算进行动态分解,对影响因子间的因果关系做定性定量分析,使改进的模型能更准确地估算动态环境下的项目开发过程。

对于军用软件开发组织而言,在缺少模型校准数据时,本估算模型可提供参考的模型参数,而且能帮助组织识别自身的成本优势及劣势,从而发现改进的机会。通过本模型的应用和推广,可以在实践中逐步研究并建立一套与本模型一致的软件项目数据收集规范,方便日后项目数据的收集和评价。

[1] 常云丽,邬欣明,郑威.军用软件需求分析研究[J].火力与指挥控制,2013,30(1):126-128.

[2] 刘海涛,魏汝祥,蒋国萍.基于加权偏最小二乘回归的软件成本估算方法[J].计算机工程,2012,38(21):36-39.

[3] 邸凤英,李锋.软件项目维护成本估算模型研究[J].计算机应用与软件,2012,29(12):166-170.

[4] 解浪,杨叶.一种软件工作量估算的不确定性度量方法[J].计算机工程,2012,38(3):39-42.

[5] Mingliang Li, Wei Zhang, Qingling Lu. The estimated methodology for military software support cost[C]. Ku ala Lumpur, Malaysia: IEEE Symposium on Robotics and Applications,2012:443-446.

[6] M. Nikolaos, A. Lefteris. Ranking and Clustering Software Cost Estimation Models through a Multiple Comparisons Algorithm[J]. IEEE Transactions on Software Engineering,2013,39(4):537-551.

[7] 李明树,何梅,杨达,等.软件成本估算方法及应用[J].软件学报,2007,18(4):23-30.

[8] Z. Zia, A. Rashid, K. uz Zaman. Software cost estimation for componentbased fourth-generation-language software applications[J]. IET Software,2011,5(1):103-110.

[9] N. J. Nunes, L. Constantine, R. Kazman. iUCP: Estimating Interactive-Software Project Size with Enhanced Use-Case Points[J]. IEEE Software,2011,28(4):64-73.

[10] 杜云梅,李师贤.RUP估算过程模型[J].计算机科学,2013,40(6):21-28.

Improved COCOMOII Model for Military Software

GUO Wei1LI Xiang1ZENG Bin2

(1. School of Graduate, College of Military Economics, Wuhan 430035) (2. Department of Management Engineer, Naval University of Engineering, Wuhan 430033)

In order to adapt to the dynamic changes of military software requirement and development environment, firstly the impact of period is added into the COCOMOII model. Secondly the relationship of driver factors is analyzed by expert judgment and Delphi method, which results in the refinement of COCOMOII model. Furthermore a calibration procedure is designed to reflect the evolution of software requirement. By applying the improved model to a military project, we can show that it can provide more accurate cost estimation and more comprehensive decision support to project management and plans.

software estimation, military software, COCOMOII

2013年7月2日,

2013年8月10日

郭薇,女,硕士研究生,研究方向:军用软件成本估算。李想,女,硕士研究生,研究方向:装备采购。曾斌,男,副教授,研究方向:装备保障及信息管理。

TP311

10.3969/j.issn1672-9730.2014.01.030

猜你喜欢
开发人员军用工作量
嵌入式系统软件工作量多源线性估算方法仿真
大话军用卡车
威力无比的军用霰弹枪
Semtech发布LoRa Basics 以加速物联网应用
思科发布云计算市场发展报告
实验室工位考勤管理软件设计
猜谜
后悔了?教你隐藏开发人员选项
军用公文写作中语言的运用
三星SMI扩展Java论坛 开发人员可用母语