BP神经网络在软件项目风险评估中的应用.pdf
《BP神经网络在软件项目风险评估中的应用.pdf》由会员分享,可在线阅读,更多相关《BP神经网络在软件项目风险评估中的应用.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基金项目:贵州省科学技术基金项目(黔科合 J 字 LKS 2010 35)收稿日期:2010 09 30修回日期:2010 11 04第 28 卷第 7 期计算机仿真2011 年 7 月文章编号:1006 9348(2011)07 0374 05BP 神经网络在软件项目风险评估中的应用李华1,曹晓龙1,成江荣2(1 贵州师范大学,贵州 贵阳 550001;2 陇南师范高等专科学校,甘肃 陇南 742500)摘要:关于准确地识别软件风险因素,深入研究软件项目风险评估问题,由于软件项目的复杂性和软件风险因子的不确定性和模糊性,无法采用传统数学方法建立准确软件项目风险评估模型。由于传统的数学评估模型
2、的评估准确率比较低,为了提高软件项目评估准确率,提出一种 BP 神经网络的软件项目风险评估方法。软件项目风险评估方法采用专家系统构建软件项目风险评估指标体系,后对评估体系进行预处理,消除评估体系之间重复和无用的信息,并将非线性学习能力优异的BP 神经网络输入,通过 BP 神经网络自适应学习得到的最优软件项目评估模型,在 MATLAB 平台上进行验证性仿真。结果表明,算法提高了软件项目风险评估的准确率,克服了传统数学评估模型的缺陷,评估的结果更具科学性,在软件项目风险评估中提供了有效的方法。关键词:软件项目;风险评估;神经网络中图分类号:TP391;TP311文献标识码:AResearch on
3、 Risk Assessment of Software ProjectBased on BP Neural NetworkLI Hua1,CAO Xiao long1,CHENG Jiang rong2(1 Guizhou Normal University,Guiyang Guizhou 550001,China;2 Department of Literature Longnan Teachers College,Longnan Gansu 742500,China)ABSTRACT:Dealing with software project risk assessment The tr
4、aditional evaluation method uses qualitative andquantitative evaluation method,and the evaluation results is charging with the influence of subjective assessment Inorder to eliminate subjective factors in the project risk assessment,in this paper,we proposed the BP neural networksoftware project ris
5、k assessment model Firstly,building a software project risk assessment index system;secondly,according to the evaluation system of software project assessment,building the BP neural network structure Finally,training with the MATLAB neural network tools and testing the test data,the BP neural networ
6、k software project riskassessment model is proved feasible and effective in risk assessment,which has broad application prospectKEYWORDS:Software project;Risk assessment;Neural network1引言软件风险是指软件开发过程中及软件产品本身可能造成的伤害损失,由于软件项目开发和管理中存在着诸如技术、内部管理及外部环境等种种不确定因素,使软件行业成为高风险的产业,如果风险变成了现实,就会产生恶性后果或损失。对软件项目进行风险
7、评估能准确地预测软件项目的风险所在,并且采取有效的措施进行控制,从而更好地进行风险规避1。软件项目风险评估的重要性与必要性引起了软件行业重视,大批学者和研究机构对风险评估进行了广泛而深入研究2。目前的软件项目风险评估方法包括专家打分法、层次分析法、模糊数学法等方法3 4。专家打分方法是依据专家的经验对软件项目风险进行评判,不同的专家拥有项目风险知识不一样,这样评估结果具有很大的主观性,不利于对风险的客观分析5。层次分析法减少了人的主观因素对软件项目风险评估准确性的影响,然而只能用于软件项目风险的静态、逻辑的建模,从而影响了软件项目风险之间独立性的评估。模糊数学法是一种基于线性系统的评估方法,但
8、是由于软件风险具有很强的非确定性和非线性,导致其评估结果不理想。人工神经网络是近年来发展起来的一种人工智方法,受到了各个领域广泛关注,得到了深入研究并产生大量成熟的研究成果。BP 神经网络作为使用最为广泛的一种神经网络,具有实现算法简单、收敛速度快、具有极强的鲁棒性473等优点,成功地用于软件工程领域中的软件质量预测、软件错误预测等方面。由于 BP 神经网络不需要研究目标的具体属性,其可以无限的逼近其真实系统,因此其非常适合于具有不确定性、模糊性和非线性的软件风险数据。针对当前软件项目风险评估算法存在的不足,本文将BP 神经网络引到软件项目风险评估中,提出一种基于 BP 神经网络的软件项目风险
9、评估方法。仿真结果表明,利用 BP神经网络对软件项目风险进行评估,可以有效地减少人为因素对评估准确性的影响,能够极大地提高评估精度。2软件项目风险评估原理软件风险管理旨在制订一系列可行的原则和实践,规范化地控制影响项目成功的风险,目的是识别、分析和消除风险因素,以免它们威胁软件的成功运作。在此基础上,软件风险管理致力于两个活动:其一是识别风险因子并分析其重要性,通过评估风险发生的概率和它对项目的影响来确定;其二是制定策略去管理、控制已确定的风险因子。根据 Boe-hm 的定义,风险是“损失或受伤的可能性”,应用到软件风险管理上,称为“风险暴露”(Risk Exposure),或者“风险冲击”(
10、Risk Impact)、“风险因子”(Risk Factor),风险暴露由下式定义RE=P(UO)L(UO)(1)上式中,RE 表示风险暴露值,P(UO)表示非期望结果发生的可能性,L(UO)表示在风险发生了的情况下对软件项目造成的损失的程度。软件项目风险是指软件开发过程中及软件产品本身可能造成的损失6。软件项目风险评估过程从软件项目中期开始进行,一直持续到后面的软件项目阶段,因此,随着软件开发的不断进行,软件风险评估会随之变化。软件风险评估的过程包括两个阶段:即软件项目风险识别阶段与软件项目风险分析阶段7,评估原理见图 1 所示。图 1软件项目风险评估原理从软件项目风险评估原理图,可知评估
11、模型性能的好坏对评估结果起着决定性的作用,由于软件风险受到多因素的影响,软件风险因子重要不同,是一种复杂的非线性系统,无法建立精确的数学模型。BP 神经网络具有很强的非线性拟合能力,非常适用于软件项目风险评估,因此本文采用 BP 神经网络进行软件项目风险评估。3BP 神经网络的软件风险评估算法3 1软件项目风险评估指标体系的选择对于软件项目风险而言,影响的因素有很多,参考相关研究8 9,将软件项目中可能存在的风险进行整理,归为四大类,分别为软件管理风险、软件过程风险、软件技术风险、软件环境风险。本文根据相关分析,最终从这四类风险中获得 17 个因子作为评估软件项目风险评价的指标体系,见图2。图
12、 2软件项目风险评估指标体系在评估的过程中,将每一个风险指标分为五个级别:高、较高、一般、较低、低,风险级别对应分值分别用 0 9、0 7、05、0 3、0 1 进行表示。3 2软件风险评估的 BP 神经网络模型建立BP(Back Propagation)神经网络是 1986 年由 Rumelhart和 McCelland 为首的科学家小组所提出,是一种按照误差逆向传播的多层前馈网络,它的应用十分广泛,是目前应用最广泛的神经网络模型之一。BP 神经网络能学习和存贮大量的输入 输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权
13、值和阈值,使神经网络的实际输出与期望输出之间的误差平方和最小。一般情况下,BP神经网络由输入层、隐含层和输出层三部分组成。BP 神经网络能够以任意精度的函数逼近实际输出,这样为软件项目风险评估提供了一新的途径。基于 BP 神经网络的软件项目风险评估过程包括两个阶段:正向传播与误差的反向传播。当 BP 神经网络进行正向传播时,首先将用于软件项目风险评估影响因子值进行归一化处理,然后将归一化处理后的样本作为 BP 神经网络的输入,经各隐含层进行处理,最后在神经网络的输出层输出,如果输出层的实际输出与期望输出有差异太大,不能满足预先设定的精度要求,那么就误差的反向传播阶段。误差反传是573将输出误差
14、通过隐含层向输入层逐层反传,并不断调整神经网络的参数,从而误差不断的减小。BP 神经网络结构图图 3所示。图 3BP 神经网络结构图3 3BP 神经网络的软件风险评估过程软件项目风险评估是软件项目风险管理过程中最为关键的部分,通常软件项目评估过程分为风险发生概率评估和风险影响评估。BP 神经网络就是针对风险分析过程的,首先对评估指标体系进行归一化处理,然后将处理后的数据输入 BP 神经网络,BP 神经网络根据网络的输入与输出进行学习,自动调整隐含层神经元的权值,建立起从输入层到输出层之间的特定的函数映射关系,其具体步骤为:1)建立软件项目评估指标体系。通过一些软件专家对软件项目评估指标体系进行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BP 神经网络 软件 项目风险 评估 中的 应用
限制150内