APP下载

基于蚁群神经网络算法的软件预警评估

2016-08-08

微型电脑应用 2016年7期
关键词:项目经理神经网络

贾 瑛



基于蚁群神经网络算法的软件预警评估

贾瑛

摘 要:针对传统软件项目预警的分析的缺点,引入蚁群神经网络算法来进行软件预警评估,从进度、成本、质量3个角度建立预警评估指标。通过蚁群神经网络算法对项目流程进行中的各个环节点进行分析,设定预警信号点辅助决策者对整个项目进行控制。以某公司2015年间所有开发项目为数据进行仿真,得出的预警评估数据要更贴近于软件开发项目的实际风险情况。通过预警评估定量分析后得到的数据,项目经理可以分析诱发软件项目危机的原因,对软件项目进行改进。

关键词:软件过程;预警评估;项目经理;神经网络

0 引言

国内外软件公司对软件项目预警的分析方法目前较为常用的有两个,分别是经验判断法及风险评分法。经验判断法指的是项目经理、公司高层管理人员、技术专家等以个人知识、技能、经验等来对软件项目进行评估,这一方法具有较强的主观性。经验判断法通常是依靠对项目进度表等的分析来进行。风险评分法指的是利用数学及统计学相关理论模型为依托来进行风险评估。相关理论模型是建立在大量历史数据基础上的,采取定量分析方法来综合评判软件项目所包含的风险等,从而为项目决策提供依据。经验判断法与风险评分法各有千秋,二者均有广泛的应用[1]。上述两个方法在使用过程中均需要利用影响软件项目的因素的资料。不同的是,风险评分法是将影响软件项目的因素通过统计资料进行深入分析,找出各因素与其它因素之间的联系,得出不同因素的重要性,并赋予其权重,从而为决策提供依据[2]。对于经验判断法,其关注的重心更多的是在影响流程管理各项因素重要性等级变动方面。风险判断法能够很好的对影响软件质量的一些传统因素进行深入分析与论证,而经验判断法则可更进一步,甚至可以用来分析不符合质量组监管的因素。风险评分法充分考虑了各项因素并进行了升华提炼,而经验判断法则受人的影响较大,通常依次评价影响软件项目的各项因素。

1 软件预警评估

当一个软件开发项目启动时,会因为其涉及的规模、种类、时间等因素来修改、裁剪软件开发流程,而一般是根据开发者项目经理或流程控制组的经验而定,当然这种人为的确定并不符合科学性。因此新的系统需要有种辅助流程管理构建的功能,本系统采用了蚁群神经网络算法,在选择任务portlet的时候,通过对项目规模、种类、时间等因素的角度出发,对需要的portlet进行分析学习,并最终给出一个优化解反馈给用户。

软件服务评估的首要工作是建立软件服务评估指标体系。结合目前国内外软件行业成熟的评估指标,根据软件行业的实际情况,可建立一级指标3个:进度、成本和质量 。针对传统神经网络算法容易陷入局部极小的不足,本文提出了蚁群训练方法。蚁群神经网络训练过程可看作一个最优化问题,即找到一组最优的实数权值组合,使得在此权值下输出结果与期望结果之间的误差最小,蚁群算法成为寻找这一最优权值组合的较好选择。

在蚁群神经网络的结构已经确定的情况下,采用蚁群方法训练神经网络的具体步骤如下:

Step1:初始化

Step2:释放m只蚂蚁。蚂蚁k依据如下概率公式从一点移动到下一点,如公式(1):

蚂蚁记录所经过点的标号,即为该权值选择一个数值,并记录在tabuk中。当蚂蚁为所有权值参数选择值后,蚂蚁完成了一次遍历,记录的所有值构成了该神经网络的所有参数。输入训练样本,得到相应的输出,计算误差EO。

Step3:所有蚂蚁构造解以后记录误差较小的σ权值,并比较最小的误差与EO的大小。如果转 step7,否则转step4。

Step4:信息素更新。按照“精英”更新策略对信息素按下式进行更新,如公式(2):

其中公式(3):

Step5:重复step2—step3,直到满足最大迭代次数。

Step6:采用验证样本对训练好的神经网络的泛化能力进行检验,如果验证误差满足要求,退出程序;否则转step1,重新开始训练。

算法程序流程图如图1所示:

图1 蚁群神经网络训练流程图

根据蚁群神经网络模型对所有的软件服务进行评估,并得到一个适合相应软件项目开发的软件流程服务[4]。

输入:项目预算,项目规模、项目种类选择、项目计划完成时间、是否已有文档、原文档影响因子、技术风险、人力风险。

输出:项目软件流程管理裁剪模型。

2 基于蚁群神经网络算法的软件预警评估应用

2.1 评估指标体系建立

分析软件项目风险的影响因素是建立软件预警评估指标体系的基础,是构建评估体系的基础。按照以上对于软件过程管理模型的影响因素的分析,系统可以按照软件开发流程的状态是适当调整工程管理的顺序及权重。软件过程中程序基于对项目大致可分从以下三个方面考虑:即进度、成本和质量。

(1)进度:

这是项目开发过程中非常关键的一个流程控制,软件项目组开发应该尽量避免开发时间超支、项目范围发生不可控的重大改变,校正行动拙劣以及客户的不满不断增加。不过节点性事件未能按时完成并不意味着项目已经失控。软件项目很少会或从来不会严格地遵循其详细的时间计划;实际中,在项目过程中,节点性事件的滞后经常是时多时少,不应该用查看某个节点性事件是否滞后来判断某个项目的可控性。换而取代的是滞后程度判定项目进度的好坏。如表1所示:

表1 公司进度报表

(2)预算:

高额的软件开发项目经费可以换来更好的进度情况,但是,实际当中,项目成本很可能远远超过客户所愿意支付的资金。可以通过项目收支平衡点来进行比较。收支平衡值是公司预期的投资回报率的函数。如2所示:

表2 公司预算报表

>7$180000$900000

(3)质量:

多数软件开发机构将软件质量定义为:在过去的时间阶段,存在很多质量问题的数量;对软件进行评估的客户或者用户对软件的满意度。如表3所示:

表3 公司质量报表

2.2 评估指数分析

根据三项数据显现,该项目在进行中期时,出现严重问题,包括预算超支及质量问题。当项目状态到达危机时候,项目经理或流程控制组应当及时向上级发出预警信号,提醒决策者应该放弃项目或者改变项目流程。而这些完全需要靠一个经验丰富的高层领导做出及时的判断。而在本系统设计中,系统将通过蚁群神经网络算法对项目流程进行中的各个环节点进行分析,设定预警信号点辅助决策者对整个项目进行控制。

由于每个公司的软件开发项目参数是保密的,因此本借鉴的数据来源于某公司2015年间所有项目的开发指数,仅作为模拟数据进行学习,并通过向资深人士求教及以往项目中相应的做法对本系统神经网络进行训练。项目汇总表如表4所示:

表4 汇总表

这个使用第三方软件对数据进行模拟。软件为java开源蚁群神经网络包,如图2所示:

图2 神经网络数据处理软件截图

每个任务点将被划分为关键任务和可选任务两类,再根据其分类给每个任务进行编码。使用模拟数据进行学习,输入参数为各个阶段的质量指数、进度控制和超支比率。按照每个项目的学习迭代次数1000次,并规定得到值为[0,1],当输出值靠近0时表示安全,反之,当输出值靠近1的时候发出预警信号,并修正每个任务的权重[5]。

在模拟数据中,事先认定项目编号为 N003LIANGXIN 和NO32CAFE为问题项目,N003LIANGXIN项目是一个政府合作项目,由于当时企业正处于转型阶段,技术人员流动较大,并且由于是第一次和政府机关合作,未考虑到一些额外的影响因素,导致项目预算和进度受到严重影响,故而成为问题项目;而NO32CAFE由于与客户沟通问题,使项目进度受到搁置,引起的成本上升。其项目输出值近似1,即0.9

表5 蚁群神经网络数据处理结果

N001waterfactory  20%  94%  99.6%  0.232 N003LIANGXIN  35%  85%  87.9%  0.933 NO05JUNLI  15%  99.8%  99.0%  0.137 NO09SH-BANK  10%  99.6%  99.8%  0.129 NO14JAP-SALE  18%  99.4%  99.4%  0.217 NO32CAFE  12%  85.9%  89.3%  0.865 NO42MAGZONG  14%  96%  99.9%  0.210 NO44CMM  12%  98%  99.2%  0.219 NO54GECompany  4%  99.8%  99.1%  0.089 NO58mock-prj  6%  99.3%  99.0%  0.100

由表 5得,事先认定的项目 N003LIANGXIN和NO32CAFE的输出值分别为0.933和0.865,取最小值0.865,当项目某阶段的输出值大于0.865时,系统则给出预警信号,并即时更改各个任务的权重以做到对软件项目开发的改进。

分析结果数据后发现,模型具有较高的准确率,达到94.5%,验证样本采集更高,几乎达到100%。出现这种判断准确率高的主要原因是神经网络知识发现能力及特征抽取能力较强,对本论文的信用评估模式非常有效;另外一个原因是验证样本集数量较小,这对结果也会产生一定的影响,但总的来说,最终实验的效果非常理想。如果计算能力进一步增强,数据集的数量进一步提高,相信实验结果将更好。

通过该模型对神经网络软件项目预警模型进行研究与分析,首先减少了在给不同要素赋值时人为因素影响程度,评估结果准确性得到提高,并且结果也更让人信服;其次,由于神经网络具有非常强的非线性处理能力,可以更加准确地得出不同要素对评估结果产生影响的关系。最终的结果充分说明蚁群神经网络模型能够很好地解决软件项目风险评估问题,具有广阔的应用前景。

在软件项目在进行中,通过预警模块的提示,项目经理可以即时的对项目管理方法进行调整,比如,当软件项目的出现了进度迟缓严重的时候,项目经理可以把软件过程管理做适当调整,改为敏捷型开发,增加软件项目的开发速度,而当软件项目被增加投资,扩大范围的时候,项目经理适时可以把软件过程管理升级为标准的RUP管理模式,以适合软件项目开发的稳定性。

2..3 基于蚁群神经网络算法与其他方法比较

本文为验证基于蚁群神经网络算法作出的软件预警评估所得到结果的可参考性,使用常用的权值法对原先的数据进行分析,如表6所示:

表6 权重法下预警评估结果表

本文假设质量权重为0.3,进度为0.3,成本为0.4,进行数据计算。按照先前对问题项目的截取,首先观测N003LIANGXIN和NO32CAFE的值分别是0.7116和0.6509这个值处于比较低的位置,但是很明显的可以发现NO54GE Company的权值法输出值为0.7078,小于N003LIANGXIN 的 0.7116,但实际中 NO54GECompany项目并未出现和N003LIANGXIN类似的软件风险问题,因此权值法失去了可参考性。另外数据分析得到的最小值为0.6509,最大值为0.7404,值域跨度不大,不易进行区分分级,并且N001waterfactory项目和NO05JUNLI项目的评估指数相等,不符合对实际软件项目的风险描述。综上所述,基于蚁群神经网络的预警评估相比权重法下的预警评估要更贴近于软件开发项目的实际风险情况。

当软件项目在经过软件预警评估定量分析后得到的数据,根据这个数据项目经理可以分析诱发软件项目危机的原因,对软件项目进行改进。如表7所示:

表7 软件过程改进方案表

3 总结

软件项目风险的诱因可以从质量、进度和成本3个方面来考虑,而软件过程管理模型也正是从这3个因素来开展,不同的软件过程管理模型对这个 3个因素的侧重点大有不同,但总的来说,还没有一个完整的包含所有因素在内的软件过程管理模型。因此当软件风险发生时,在确定软件风险引起的主要原因后,对软件过程管理进行裁减或者改进。比如,当软件项目进度严重超时的时候,项目可以改用极限编程管理模型,暂时删减去项目文档的管理,加快软件开发;又如,当软件项目开发到中期的时候出现了严重的质量问题,项目经理可以采用RUP软件过程管理模型增强测试计划,保障软件项目开发质量;即便是软件项目后期陷入成本危机的时候,甚至达到无法立刻解决的时候,项目经理也可以通过软件预警评估对软件项目采取暂时停止的命令,以便防治软件项目越陷越深。

参考文献

[1] 王世安.软构建的可复用行量化评价模型研究[J].计算机工程与设计,2008,29(10):2576-2580.

[2] 万江平, 杨建梅. 软件过程改进的复杂性工作程序研究[M]. 北京: 科学出版社, 2004.

[3] 张道宏,张玻,尹成果:基于BP神经网络的个人信用评估模型[J],情报杂志,2006年(1):178-182.

[4] 庞素琳,王燕鸣,黎荣舟:基于BP算法的信用风险评价模型研究,数学的实践与认识,2003年(-8):48-55.

[5] 潘梅森 颜君颜. 基于LVQ的软件项目风险评估模型的研究[J].计算机工程与应用.2006-12:126-130.

中图分类号:TP311

文献标志码:A

文章编号:1007-757X(2016)07-0074-04

收稿日期:(2016.01.21)

作者简介:贾 瑛(1983-),女,哈密,宝鸡职业技术学院,讲师,研究方向:网络和多媒体,宝鸡,721013

Software Warning Evaluation Based on Ant Colony Neural Network Algorithm

Jia Ying
(Baoji Professional Technology Institute, Baoji 721000, China)

Abstract:In view of the shortcomings of traditional software project warning, this paper introduces the ant colony neural network algorithm to carry out software early warning evaluation, establishing early warning evaluation index from the schedule, cost, quality three angles. Analyzing the project process of each loop node through the ant colony neural network algorithm, it sets the early warning signal point to control the whole project. With a company for 2015 years of all development projects for the simulation of the data, this paper draws the early warning assessment data to be much closer to the actual risk of software development projects. Through the data obtained after the quantitative analysis of the early warning, the project manager can analyze the causes of the project of the software project, and improve the software project.

Key words:Software Process; Early Warning Evaluation; Project Manager; Neural Network

猜你喜欢

项目经理神经网络
神经网络抑制无线通信干扰探究
谈项目,更谈项目经理
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
项目经理队伍的培养、考核、升迁机制研究
基于神经网络分数阶控制的逆变电源
基于GA-BP神经网络的光伏阵列MPPT研究
高速铁路通信信号系统集成项目经理能力及主要任务
论项目经理的职责与技能要求