




免费预览已结束,剩余50页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
螂硕士学位论文软件缺陷静态预测研究论文作者:秦丽娜指导教师:金聪教授学科专业:计勒应脯研黼:信息安全华中师范大学计算机科学系年月硕士学位论文 脚丫咖叫? 删 舢舢 洲 舢帅伽.汛?: 素丽妍:硕士学位论文 华中师范大学学位论文原创性声明和使用授权说明原创性声明本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本声明的法律结果由本人承担。日期:年月日作者张蠹丽徊学位论文版权使用授权书学位论文作者完全了解华中师范大学有关保留、使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属华中师范大学。学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。保密的学位论文在解密后遵守此规定保密论文注释:本学位论文属于保密,在 年解密后适用本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授权书。挪签名:刍作者签名:煮面铆日期.勃年月日日期.冽/,年厂月日本人已经认真阅读“高校学位论文全文数据库发布章程,同意将本人的学位论文提交“高校学位论文全文数据库中全文发布,并可按“章程”中的规定享受相关权益。回塞途塞握奎卮溢卮旦坐生;旦生旦三生筮查矽、新始白导师签名:作者签名:蠢丽期,日期:侧年日期:加年月日硕士学位论文 摘要伴随着世纪年代末“软件危机的提出,软件工程得到了快速的发展,它的宗旨是产生高质量的应用软件或产品。软件可靠性是软件质量的重要特性之一,给出了它的具体定义,即在规定的条件和时间内,软件不发生失效的概率。 又将失效定义为软件运行时,出现不正确的输出。很多原因诸如软件缺陷、硬件故障及人为因素等引起软件失效,工作人员若每观察到一次失效,就能够发现一个或多个软件缺陷,则纠正这些缺陷必定可以减免失效的重复发生,提高软件可靠性。记录质量的重要线索是软件缺陷,且它又是软件可靠性的重要体现。发现软件中存在的缺陷,并修正这些缺陷是软件测试的目的,然而软件技术发展至今,任何检测技术并不能发现及排除所有的缺陷,总会有一些不为人知的原因导致缺陷产生,而这些潜在却不被发现的缺陷势必影响软件的质量。合理地预测缺陷可以统计尚未发现但仍存在的缺陷数目及缺陷分布,这样能够帮助测试人员快速地、准确地定位并纠正缺陷,达到提高软件可靠性和保证软件质量的目的。软件缺陷预测是对软件产品的缺陷数量或者缺陷分布进行静态或动态地预测。静态缺陷预测,主要是基于缺陷相关的度量数据预测缺陷的数量或者分布;动态缺陷预测,则是基于缺陷或者失效发生的时间预测缺陷随时间的分布。常见的预测软件缺陷的度量元有代码度量元、度量元以及度量元等。相关软件缺陷的度量元较多,目前研究界并没有得出预测缺陷一致的、尽可能完全、准确的度量元,尚缺乏综合模型来分析度量元同软件缺陷之间的复杂关系。在此基础上,本文综合多种度量元预测缺陷数量及分布情况。鉴于度量元数据收集的冗杂性,部分度量元对缺陷预测的积极影响不大或具有消极影响,本文首先采用输入输出关联法计算度量元相关缺陷的重要性并排序它;其次利用误差反传神经网络与粒子群优化算法相结合的技术构建一种提取有效度量元的智能模型,达到剔除无效度量元和减少预测工作量的目的。最后利用提取的有效度量元结合粒子群优化支持向量机的分类方法构建软件缺陷预测模型。通过实验分析,该模型相比早期的预测模型能够减少预测成本,提高预测精度,提升泛化性能。关键词软件可靠性;软件缺陷;度量元;误差反传神经网络;粒子群优化算法:支持向量机 ., ., . , , ,嬲. . ,;. .; ., . ,. .,., ,.; ;呵:;硕士学位论更 .目 录摘要?. .第一章绪论 .课题背景分析?.软件危机.软件可靠性.软件缺陷.国内外研究现状及不足?。.静态缺陷预测技术.动态缺陷预测技术.缺陷预测技术未来发展方向.本文结构第二章度量元与软件缺陷的关联分析?。.软件度量?.度量元.代码度量元.度量元.度量元 .数据分析技术?.主成分分析?.信息熵法.灵敏度分析法.输入输出关联法?.小结?第三章基于软件缺陷回归预测的最优度量元提取模型.人工神经网络?.神经网络的学习过程及算法实现.神经网络的优缺点.基于.软件缺陷回归预测的最优度量元提取模型?.数据预处理?.构建基于缺陷回归预测的最优度量元提取模型?.仿真实验?.数据集的实验分析?。.数据集的实验分析?.、结?.?.?.?.?.?.?.?.?.:;:;第四章软件缺陷预测模型.支持向量机概况?.基本思想.主要特点及应用?。.支持向量机分类原理?.线性可分?.近似线性可分.非线性可分.核函数?.和.的合并算法?.混淆矩阵?.基于.的软件缺陷预测模型?.仿真实验?。.基于最优度量元的预测模型实验分析及多模型性能比较?.基于最优度量元的预测模型实验分析及多模型性能比较?.、结?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?第五章结论 .。.总结?.进一步的研究工作硕士学位论文参考文献在校期间发表的论文、科研成果等?。致谢.第一章绪论软件工程的快速发展起始于世纪年代末,它的目的是开发高质量的应用软件或产品。软件质量最基本的保障因素是软件可靠性,软件中存有的缺陷势必威胁软件的可靠性,影响软件质量。合理地预测缺陷可以指导测试人员准确地定位、跟踪以及纠正缺陷,从而提高软件可靠性,维护产品质量,给客户和企业带来双赢。.课题背景分析.软件危机世纪年代末产生了软件危机。计算机软件开发和维护过程中碰到的诸多严重问题都可被认为是软件危机,这些问题并不只存在于不能正常运行的软件中,相反几乎所有的软件都不同程度地存有这些问题。总体上说,软件危机容括下面两个问题:如何开发软件来满足人们对软件日渐增加的需要;如何维护越来越多的已存软件。软件危机的典型表现很多,主要有以下几点:不能准确地估计软件开发成本和进度。在软件开发过程中,经常发生实际成本比估计成本高出一个数量级,实际进度比预期进度拖延几个月甚至几年的情况,这一结果恶化了用户对开发团队的信誉评价。而开发团队出于赶进度和节约成本的考虑,又采取了一些权宜之计,这最终出现降低软件产品质量和激起用户不满的结果。“已完成的软件产品不符合用户的要求。软件开发人员经常没有透彻地分析用户需求,不能够准确地定位所要解决的问题,这起源于开发人员和用户之间的信息交流不充分,最终导致开发出的产品不符合用户的需求。软件产品质量得不到保证。软件可靠性和质量保证的确切定量概念较晚出现,质量保证技术还没有完全应用到软件开发过程中,软件产品的质量无疑得不到保障。软件不能被维护。开发人员几乎不能更正程序中所有的错误,主要是不可能使这些程序适应新的硬件环境,不能在原有程序中增加新的功能以完全满足用户需求。“可重用的软件仍是一个没有完全达到,但正在努力追求的目标。软件没有匹配的文档资料。硕士学位论交 计算机软件不只是程序,还应有匹配的文档资料。在软件开发过程中产生的文档资料需和程序代码保持一致。开发团队的管理者利用这些文档资料监督和评价开发过程的进展状况;开发人员之间通过这些文档资料相互地交流信息;软件维护人员利用它们辅助定位和纠正缺陷。缺少匹配的文档资料或其不合格,势必影响开发和维护的进程,给它们带来难以估量的问题。软件成本相比硬件成本逐年增加。近年来,微电子学技术不断进步,生产自动化程度不断提高,导致硬件成本下降;而软件开发需要大量人力,随着通货膨胀、软件规模扩大、软件数量的不断增多,软件成本逐年上升。相比硬件发展速度和计算机应用普及趋势,软件开发的速度及其缓慢。软件产品经常出现“供不应求的现象。软件危机的表现不只以上列出的条,在软件开发和维护过程中出现的问题越来越多。.软件可靠性年,北大西洋公约组织的计算机科学家在联邦德国召开会议,提出了“软件工程这一名词,从此,软件工程学科迅速起步。软件工程的定义众说云云,其中最完整的定义是:采用工程的概念和原理、技术和方法来开发与维护软件,把严谨的管理方法和当前最好的技术结合起来,经济地开发出高质量的软件,且能够合理地维护它。可见,软件工程的宗旨就是开发出高质量的软件产品。近年来,由于软件规模增加,软件开发周期变得较长,进而耗费更多的人力和物力,因此保证软件质量显得更加重要。软件产品的质量低下会给企业带来巨大的损失。例如,年,欧洲航天局的一个火箭发射升空,但其在发射之后短短几秒内就发生爆炸,严重伤害了现场工作人员。这个耗费巨大人力物力的航天计划宣告失败,专家对此次事故做了详细调查,发现惯性导航系统的软件设计导致了此次事故的发生口】。此外,美国在一次火箭发射的实验中,误漏掉飞行程序里的一个连字符,导致该次实验以失败告终。软件的正确性、可靠性和安全性是影响软件质量的三个重要因素,而软件可靠性是保证软件质量的本质因素。所以,评价软件质量的一个重要途径在于对软件可靠性的评价。给出了软件可靠性的具体定义,是在规定条件和时间内,软件不发生失效的机率陋,。软件若出现如下种情况,则可认为发生失效:部件不具备执行其功能的能力;系统或其部件在规定限度内不能执行所要求的功能;程序操作违背了其最初的要求。软件失效在实际的应用中是指:死机:软件对其输入不产生响应进而不输出结果;运行速度不吻合:数据输入或输出的速度违背系统要求;计算准确度不高:某一个或多个输出值的计算精度达不到最初的要求;缺少输出项:缺损某个或多个重要的输出值;输出项冗余:多余的数据/指令被系统输出砸】。很多原因诸如软件缺陷、硬件故障及人为因素等都有可能引起软件失效,工作人员若每观察到一次失效,就能够找到一个或多个软件缺陷,则纠正这些缺陷必定可以减免失效的重复发生,提高软件可靠性嗍。反之,若不及时地查证缺陷,会引起产品开发、维护的费用增加,最终增加用户的使用成本,甚至在个别情况下会引起灾难性后果。例如,年月,美国的架飞机在执行任务中,由于程序编码存在错误而导致其多个电脑系统发生问题,幸亏及时采取措施才避免了机毁人亡的严重后果嘲。.软件缺陷软件缺陷被形象地称为软件开发过程中的“副产品,它常常会使软件产品在某种程度上达不到用户的需求町。软件缺陷又指软件对其期望结果的背离,它包含个方面的意思:失效,错误及差错。缺陷产生的根源是人在理解和解决问题的思维和行为过程中出现了差错,由此会引起软件内部的设计、编码等存在错误,最终会导致缺陷体现于外部一软件系统的运行结果背离了用户需求,这被泛称为失效。发现软件中存在的缺陷,并修正这些缺陷是软件测试的目的。软件技术发展至今,技术人员并没有做到发现并修正所有的缺陷,这主要是因为软件的运行环境、使用者等能够带来缺陷的因素无时无刻不发生变化。如果测试人员能够在检测缺陷之余对缺陷进行适当地预测,必定能够更快地发现、定位、跟踪及纠正缺陷,最终指导管理者对产品进行有效地管理羽。.国内外研究现状及不足软件缺陷预测技术发展至今大致上分为静态和动态两种预测技术。静态缺陷预测技术,是利用缺陷相关的度量数据预测缺陷数量或者分布的一种技术;动态缺陷预测技术,则是根据缺陷或者失效发生的时间预测缺陷随时间如何分布的一种技术。硕士学位论文 .静态缺陷预测技术静态预测缺陷的方法可以分为两大类: 基于数量的技术,关注予预测软件系统中的缺陷数; 基于分类的技术,关注于预测哪些子系统具有缺陷倾向,哪些子系统无缺陷。第一类已经有些研究,比如基于软件规模的缺陷数量预测,其常见的模型有两种。第一种是基于代码度量元的缺陷预测。早期多数人们认为大约每行代码含有个缺陷,继而利用这一经验估算系统验证和测试阶段所需的人力和物力。最早给出了软件缺陷与代码行的量化关系:.,此关系式求出了程序在验证阶段开始之前有可能存在的缺陷数量。第二种是基于软件体积度量元的缺陷预测钔。给出软件缺陷与体积度量元的量化关系:/,其中?玎,刀/刀,刀代表不同操作符数量,/,代表不同操作数数量,代表总的操作符数量,代表总的操作数数量。此关系式求出了程序在验证阶段发现的缺陷数目。软件随着其规模的增加复杂度越来越高,人们渐渐觉得不只软件规模影响缺陷,复杂度同样影响缺陷。度量元是较著名的复杂度度量元。在软件模块中,它或者依靠圈理论中的节点和边的数量度量控制流复杂度,或者根据决策路径计算控制流复杂度,不管如何,这两种方法求出的度量元数据相吻合。公司提出与误修复概率具有如下关系:,%;,%;,%;接近,%射。此关系的意思是,若在之间,修复缺陷有可能引入新缺陷,其概率是%;若在一之间,修复缺陷可能引入新缺陷的概率是%。误修复概率随着复杂度的增加越来越高,在接近时,新缺陷因修复缺陷而产生的机率高至%。综上可知,早期的软件度量元主要有大类:代码度量元、度量元和度量元。其实影响软件缺陷的度量元较多,目前研究界并没有得出预测缺陷的一致的、尽可能完全的、准确的度量元,尚缺乏建立基于若干类度量元的预测模型来研究软件缺陷同度量元之间的复杂关系。早期的缺陷数量预测模型主要根据经验来估计,随着软件规模和复杂度的飞速增加,经验期望值越来越低,这些模型对缺陷数量的预测准确度并不高。第二类方法更成功一些。利用软件度量元预测缺陷分布是一个重要的趋势和研硕士学位论文 究内容。目前用于建立软件缺陷分布预测模型的两大技术是统计学习法和机器学习法。,常见的统计技术有逻辑回归 ,、聚类分析,等;机器学习技术有人工神、支持向量机经网络和贝叶斯信念网络等。逻辑回归是线性回归的一种改进技术副。传统的线性回归技术无法处理分类时出现的不在之间的概率值,逻辑回归基于这一现象,采用对数变换将其结果映射成一。之间的任意值。这两种方法较大的缺点在于不能准确地找出匹配样本集的权值。根据输入数据自身的特性将其划分为几个类别是聚类分析的宗旨力。聚类分析在缺陷预测领域常用的算法是.均值聚类,其根据预先设定的个分类数目自动划分软件模块,之后这些类被度量人员手动标定为具有高缺陷的类或低缺陷的类。是一种新型的统计学习技术,其预测缺陷分布可以看作是模式分类,即预测哪些子系统具有缺陷,哪些子系统无缺陷。在这方面的应用中,方法及其参数,核函数及其参数的选择方法仍没有达成一致的模式;换句话说,最优参数的获取还只是凭借经验,实验对比得到。近年来非线性模型如人工神经网络取得了发展,但是人工神经网络由于泛化能力差,易陷入局部最优,“过学习模式,以及计算能力有限等缺点在预测软件缺陷方面也存在一定的不足。贝叶斯信念网络本身是一种不确定性因果关联模型,它在处理不确定性问题方面具有优势引。.动态缺陷预测技术人们依据经验研究、统计技术等两种方法寻找软件缺陷随其生命周期的分布,或者研究缺陷随生命周期的某个或某些阶段时间的分布都称为动态缺陷预测技术。分布模型和指数分布模型是两个较著名的动态缺陷预测模型。分布模型,预测软件缺陷随其开发生命周期的分布。它又常用于软件可靠性预测中“引。在模型中,概率分布密度函数是/却尼,累积分布函数是尺一“。在这两个公式中,;是时间变量;脚是达到峰值对应的时间常量,由此可知也是一个常量;是总缺陷数。早期硕士学位论文 人们得出脚/.,也就是说,.达到最大值时出现的缺陷数与总缺陷的比率约是.。所以,根据这一结论,在任一时间预测总缺陷数及具体的分布参数能够得到很好的解决。指数分布模型,预测软件缺陷在验收类测试阶段的分布训。指数分布模型的意义是,测试阶段出现的缺陷或者失效模式能够反映软件产品的质量特征。它的缺陷概率分布密度函数是,累积缺陷分布函数是一。在这两个公式中,是总缺陷数;是缺陷探测率;是时间。指数模型在可靠性研究中占有重要的地位,它是研究可靠性增长模型的基石。.缺陷预测技术未来发展方向软件缺陷预测技术旨在预测软件中还存有的缺陷。它的基本内容是,利用软件的规模、复杂度以及过程等这些能够度量缺陷的度量元和软件中已存在的缺陷,预测软件中潜在但暂时还没被发现的缺陷。人们通过软件缺陷预测技术能够洞察软件产品的失效模式、获悉产品质量状态,最终决定软件能否交给用户使用。目前的静态缺陷预测技术仍没有得出预测缺陷的一致的、尽可能完全的、准确的度量元,即只是研究部分度量元同缺陷数量或者分布之间的关系,这些模型有一定的局限性,预测的准确度因受限制条件的改变而发生变化,具有不稳定性。未来的静态缺陷预测技术需挖掘影响缺陷数量或者分布的若干准确、详尽和完备的度量元,即考究多类度量元同软件缺陷之间的复杂关系,建立一个智能的预测模型。.本文结构通过阅读大量的国内外文献,发现现有的软件缺陷静态预测技术存在不足,并分析其原因所在。之前的软件缺陷静态预测技术大多是基于软件规模的缺陷预测,基于软件复杂度的缺陷预测,并没有综合分析不同种类的软件度量元对缺陷预测的影响,因此本文综合代码度量元、度量元、度量元等预测缺陷的数量或分布。鉴于度量元数据收集的冗杂性,部分度量元对缺陷预测的积极影响不大或具有消极影响,本文采用智能计算技术构造一个预测缺陷数量的最优度量元提取模型,并利用提取的最优度量元预测软件缺陷。全文安排如下:第一章:对本课题的研究背景进行阐述,介绍目前研究此课题的国内外现状并分析其不足,提出该课题的未来发展方向,并概述本文的主要工作。硕士学位论文第二章:分析软件度量元和软件缺陷之间的关联性。首先简要介绍软件度量和度量元的基础内容;其次详尽介绍本文提到的代码度量元、度量元和度量元;最后归纳经典的数据分析技术包括主成分分析、基于信息熵的共同信息法、灵敏度分析法和分离联系法。鉴于以上数据分析技术各有其缺点,本文引进输入输出关联法分析度量元与软件缺陷之间的关联性。第三章:利用粒子群优化算法和误差反传神经网络相结合的技术构建基于软件缺陷回归预测的最优度量元提取模型,并进行仿真实验,验证此模型的可行性。第四章:在第三章提取出的最优度量元的基础上,利用粒子群优化支持向量机的分类技术构建软件缺陷预测模型,并通过实验比较其与早期模型的预测效果,验证此模型的可行性和有效性。第五章:对本文提出的模型进行总结,并规划今后进一步的研究工作。第二章度量元与软件缺陷的关联分析硕士学位论文渡 .度量元软件模块内部的程序复杂性决定软件结构的复杂性,进而影响整个软件复杂性。度量程序结构复杂度的内容是度量元,其由度量方法得出。度量方法的理论依据是图论和程序结构控制理论,该方法的基本步骤是:第一,转化程序控制流图为有向图,也叫程序图;第二,交换该程序图为强连通有向图;第三,计算该强连通有向图的环数。这个环数就是程序结构的复杂度,简称为圈复杂度。为了帮助读者理解方法,本文阐述该方法的一些关键概念:程序图,首先将程序流图中每一个处理框变为一个结点,其次将连接不同处理框之间的箭头变为有向弧,由有向弧连接结点构成的图称为有向图,这个有向图就是程序图啪】。某图中,从任一个结点出发都能到达图中所有其他结点,则该图称为强连通图。正常程序的程序图都是连通的,但常常未必是强连通的,这是因为靠近程序出口的结点在没有辅助条件的情况下,无法到达较高的结点。使程序图成为强连通有向图的有效方法是:从出口点到入口点画一条虚弧,这样出口点可以借助入口点到达连通有向图中的其他任一结点,且连通有向图中的任一结点总能到达出口点,这样的连通有向图就是强连通有向图。一个强连通有向图中线性无关环的个数,就是强连通有向图的环数,它的计算公式如下:.,疗一刀在公式.中,是强连通有向图的环数,是的弧数,它包括从出口点到入口点的虚弧,刀是的结点数,是中分离部分的数目,它的值在强连和的.度量元度量元由提出。它包括软件长度、体积、困难度、等级、工作量,时间等度量元乜。它们的计算表示为:.?刀:旦?丝./.三:一.:鱼.其中,、及胛的意义请参看本文.节。.数据分析技术常见的数据分析技术有主成分分析、信息熵法、灵敏度分析法、分离联系法等方法。.主成分分析人们在研究某个对象时,总是希望获得尽可能多的关于该对象的信息,于是不惜一切代价,引入足够多的描述该对象的变量,这些变量数据形成了一个高维数据系统。高维数据系统给数据分析与处理带来的问题有: 过高的维数导致较大的计算量;变量之间的关系不明确。主成分分析,在力求数据信息丢失最少的原则下,对高维变量空间进行降维处理;或者说用原来变量的少数几个线性组合代替原来变量,从而达到简化数据、揭示变量间关系的目的口钉。原来变量的线性组合称为综合变量,析出的主成分是少数综合变量。主成分分析法的弊端在于析出的综合变量不能反映因变量与目标变量之间的因果关系。也就是说,人们常常不知如何修改因变量的值使综合变量更好地反映目硕士学位论文 .:/标变量:综合变量虽可以达到多个因变量线性组合的效果,但隐藏了单独的因变量与目标变量的因果关系。.信息熵法信息熵来源于香农信息论胁。香农信息论的成立有其前提条件,它假设在信源空间中,来自信源的不同符号发生的概率是预先知道的或者可以测定的。在物理系统中,信源发出某一符号时,产生的信息量称为自信息,用表示汹。不同符号发生时产生的信息量不同,换句话说,是一个变化值。很明显,不能被作为整个信源的总体信息量度。自信息的计算公式如下:.,一.,刀其中行为信源发出的包含总体信息量的符号数,烈而是,发生的概率。自信息的数学期望称作信源的平均信息量,它是信源各不同符号。在信源概率空间中的统计平均值,它的计算公式如下:打.香农把公式.求出的工叫做信息熵。它是信源总体的平均不确定的量度。此方法假设信源各种不同符号的发生概率是可以测定的,说明它适合于离散数据变量。.灵敏度分析法灵敏度分析法,分析当某一系统的设计变量或者参数发生变化时,它的性能受到影响的敏感程度大小汹。此处的敏感程度即灵敏度,研究人士常用导数的信息来刻画它。若某一优化过程是基于梯度设计的,则目标函数相对于设计变量的导数常常表示为灵敏度,而其映射出目标函数值的变化受设计变量改变的影响。人们对灵敏度信息的分析处理,能够指导使目标函数达到最优的设计与搜索方向,最终辅助决策的制定。灵敏度分析法最大的缺点是需要计算输出变量即目标变量对输入变量的导数,计算过程较复杂。硕士学位论文 .输入输出关联法输入输出关联法起源于分离联系法。分离联系法包括分离法和联系法。在去掉某一变量时,分离法计算数据组内距离与组间距离之比,该比值即为此变量的分离值;联系法计算目标变量与输入变量的关联度。分离法只关心输入变量之间的差异度,并未考虑输入变量对目标变量的影响;而本文的首要工作是分析度量元同软件缺陷之间的关联性,故其将输入变量看作度量元,目标变量看作缺陷数量,采用改进的联系法又称输入输出关联法来分析它们之间的关联性。输入输出关联法通过计算由一个输入变量值发生的变化引起目标变量的累加变化值来决策此输入变量对目标变量的重要性四。如对于一个变量,因它的值发生变动而引起的目标变量值变化越大,则说明此变量的重要性较高;反之若目标变量值变化不明显或者较小,可知该输入变量相对目标变量的重要性不高。输入输出关联法的计算公式如下:.,七.,七一灭,海其中,七是变量的输入输出关联值:,分别是变量在样本和中的值;灭,畎,分别是样本和的目标变量期望值。很明显,是一个符号函数,如果是一个正数,为;如果是一个负数,为一;否则为。式.既能够体现出输入变量对目标变量的关联性影响,又不具有计算复杂性。鉴于以上优点,本文利用式.预处理实验数据。.小结首先,本章概要介绍了软件度量的概念及思想,即通过建立软件产品外部属性和内部属性之间的关系,借内部属性的度量分析来度量软件的外部属性,从而有效地满足软件质量和管理的需要。其次,本章阐述了软件系统内部因素被用来进行度量分析时,常用的有代码度量元、度量元及度量元等。最后,本章列举了传统的数据分析技术,并阐述其优缺点;根据分离联系法的不足,引进输入输出关联法,为后文的数据整理工作提供了理论依据。的无效度量元,达到约减度量元个数和降低预测工作量的目的。.人工神经网络人类的大脑大约有.个神经细胞,亦称为神经元。每个神经元有数以千计的通道同其他神经元广泛相互连接,形成复杂的生物神经网络。人工神经网络,心附从人脑的生理结构出发来研究人的智能行为,它以数学和物理方法以及从信息处理的角度对人脑神经网络进行抽象,并建立某种简化模型,模拟人脑的多功能处理行为魄驯。人工神经网络是一个由许多简单的并行工作的处理单元组成的系统。该系统是靠其状态对外部输入信息的动态响应来处理信息的,其功能取决于网络的结构、连接强度以及各单元的处理方式啪。的结构既可以实现并行式处理,又可以实现分布式存储,此外具有较好的容错性;它的能力也很强大,自身能够达到学习、组织及适应的目的。多用在信息处理领域的信号处理和模式识别、自动化领域的系统辨识和神经控制、医学领域的检测数据分析和生物活性研究、经济领域的信贷分析和市场预测等方面。总的来说,功能在非线性映射,分类与识别及优化计算等方面得到了很好的体现。模型按网络连接的拓扑结构分为层次型结构和互连型网络结构,分别如图.和图.所示。图.层次型结构 图.互连型网络结构硕士学位论文 层次型结构:将神经元按功能分成若干层,如输入层、中间层隐含层和输出层,各层顺序相连。互连型网络结构:网络中任意两个节点之间都可能存在连接路径。按网络内部的信息流向分为前馈型网络和反馈型网络,分别如图.和图.所示。图.前馈型网络 图.反馈型网络前馈型网络,其信息处理的方向是,首先从输入层到隐含层,其次隐含层到输出层,按照各层连接的先后顺序进行。反馈型网络,其全部节点都可以实现接收信息和输出信息的功能。训练学习样本的目的是使网络输出等同期望输出或者接近期望输出。其在训练样本的过程中,通过一些学习规则诸如、和等不断动态调整网络权值和阈值,完成学习过程溉嘲。的学习类型分为有监督学习、无监督学习和死记式学习九。.神经网络的学习过程及算法实现常见的一种前馈神经网络是误差反传神经网络,。是一种多层前馈神经网络。曾有研究表明三层网络均可较好地解决非线性映射、优化计算等问题。基于这一成果,本文只讨论三层,它包括输入层、一个隐含层和输出层。输入层节点个数由输入样本的维数决定,输出层节点个数由目标变量维数决定。隐含层节点个数通常由试凑法决定。拓扑结构的特点是:输入层与隐含层神经元之间、隐含层与输出层神经元之间有连接,输入层层内神经元、隐含层内神经元,输出层内神经元之间无连接。硕士学位论文 由于神经元采用了不同的转移函数,才使得神经元具有不同的信息处理特性。常见的神经元转移函数有三种,具体是:.阈值型转移函数:擐:.非线性转移函数九:/.分段线性转移函数:,【,&工其中非线性转移函数最为常用。属于有监督的学习。它的基本思想是:神经网络在外界输入样本的刺激下通过反向传播算法不断地动态修整网络的连接权值和阈值,以使网络的输出等同期望输出或者以设定的误差接近期望输出嘲。的拓扑结构如图.所示。黪台层图.的拓扑结构从的拓扑结构中可以看出,的学习过程分为信号的正向传播和误差的反向传播。信号的正向传播过程为:将样本信号从输入层输入到隐含层,结合输入层到隐含层的权向量、隐层的阈值计算出隐含层的输出向量】,:将隐含层的输出】,正向输入到输出层,通过隐含层至输出层的权向量形和输出层的阈值计算出输出层的输出,即网络输出。误差的反向过程传播为:比较样本的网络输出。与期望输出,得到输出层的硕士学位论文 误差万,通过该误差计算出隐含层至输出层的连接权值、输出层阈值的修改量,进而调整它们;将误差矿通过隐含层和输出层之间的连接反传至隐含层,相应地得出隐含层的误差艿,进而计算出输入层至隐含层的连接权值、隐含层阈值的修改量并调整它们。最终的目的是使网络输出满足期望输出,或者以可接受的误差接近期望输出。本文将误差函数定义为:. .?.其中,是输出层的节点数。从学习样本的输入到目标变量的输出,将其看成一个非线性优化问题,它利用梯度下降算法,迭代求解网络最优权值和阈值九。.神经网络的优缺点由于神经网络的算法思想简单、步骤清晰,它成为最为常用的神经网络,再加上其具有强大的功能诸如非线性映射、模式识别等,在很多领域中都有极好的应用。尽管的优点显著,但其缺点也很明显:因以误差梯度下降为权值和阈值调整原则,训练经常陷入某个局部极小点而不能自拔,故无法收敛给定的误差;网络训练次数较多、学习效率低下,收敛速度慢等聃。.粒子群优化算法自然界鸟群优美而协调的动作看起来是随机的,其实它们有着类似于人类的同步性。科学家曾对鸟群的运动进行了计算机仿真,他们让每个个体按照特定的规则运动,形成鸟群整体的复杂行为。模型成功的关键在于对个体间距离的操作,即群体行为的同步性是因为个体努力维持自身与邻居之间距离为最优,为此每个个体需要知道自身位置和邻居的信息。粒子群优化,算法思想源于对鸟群觅食和人类作决策时的行为模型的研究,它是一种基于群智能的随机全局优化算法嘲。在搜索空间中,群体中的每个个体被看作飞行的粒子,其具有一定速度、但无体积和质量,粒子根据对个体和群体的历史飞行经验的综合分析修整其速度,进而根据其速度调整其飞行位置。首先在目标函数空间生成初始种群,也就是说,随机初始化一群粒子的速硕士学位论文 度和位置,每个粒子位置都是优化问题的一个可行解,并由目标函数为之确定一个适应值。每个粒子都将在解空间中运动,并在粒子个体和整个群体的历史经验的指导下决定其下一步移动的方向和距离,换句话说,在每一代中,粒子将跟踪两个极值进行搜索,一为粒子本身迄今找到的最优解蛔砌,另一为整个种群迄今找到的最优解喇。标准优化过程中,粒子的速度和位置按如下公式进行变化:.:一工一, .茹耐孑,其中,刀为粒子群的规模;为粒子速度或位置向量的维数;为当前迭代次数;为惯性权重;和为加速常数;耐为粒子的最优位置向量的第维分量;为种群全局最优位置向量的第维分量;。搿为粒子,在第次迭代时,其位置向量的第维分量;谢为粒子在第次迭代时,其速度向量的第维分量;,为粒子第次迭代时,其位置向量的第维分量。注意,此处需满足粒子群“飞行在维的搜索空间。标准算法的主要步骤如下:初始化粒子群。设定加速常数和,最大进化代数,将当前迭代代数置为。在搜索空间丹中随机产生刀个粒子,恐,.,组成初始种群;随机产生各粒子初始速度赡,吃,.,%;初始化粒子个体最优适应值和种群全局最优适应值。评价粒子群,。计算群体中每个粒子的适应值,将粒子的当前适应值和其个体最优适应值进行比较,如果更优,则置其当前位置为粒子在维空间中的个体最优位置。对每个粒子,将其当前适应值与种群全局最优适应值进行比较,如果更硕士擘位论文 优,则将其位置更新为种群当前全局最优位置。按式.和.更新粒子的速度和位置,产生新种群。检查是否满足算法结束条件或停机条件。若满足,结束算法,输出种群当前;否则,转至步骤。结束条件一般为迭代寻优达到最大进化代数%觚,或的改进程度小于给定精度。算法是一种新的自然计算方法,其主要优点是算法简单,容易理解,设置参数少,并且它不像遗传算法需要对每一个特定的问题设计一个特定的编码方案,因此容易在计算机上实现。另外,算法不需要待优化问题的目标函数可导、可微,甚至不要求待优化问题的目标函数具有明显的表达式,它适用于任何可以通过一定的程序计算出其值的目标函数。综上算法的优势,它一经提出,即刻引起国内外研究者的关注,并得到迅速发展。它在函数优化、神经网络训练、模糊系统控制等领域得到了广泛的应用。.基于神经网络和的合并算法.算法描述由于的算法采用梯度下降算法,其要求函数可导、可微,而算法不仅有效地避免了这一复杂过程,同样也避开了遗传算法固有的选择,交叉及变异等遗传算子,还缩短了的训练时间,加快了收敛速度,因此,本文摒弃的误差梯度下降法,采用算法优化神经网络的权值和阈值,达到改进算法缺陷和提高泛化性能的目的。在基于和的合并算法中,而,加?,仍表示一个参数向量,此向量中的每一维对应于的权值或阈值,为训练的权值和阈值总个数。粒子的适应度函数采用正向学习的均方误差表示:.局影.七一.巴眦二局丹其中,刀为样本个数,为输出向量维数,】;是样本的第维期望输出值,。量是初始化粒子群设定粒子群规模大小,粒子速度和位置向量的维数。注意,此维数与训练的权值和阈值个数之和相等。随机初始化每个粒子的速度和位置向量,粒子个体的最优位置向量,种群全局最优位置向量;初始化粒子个体最优适应值和种群全局最优适应值。设定惯性权重,通常取.或.;通常根据经验将加速常数和设为;设定最大进化代数%。计算所有粒子的适应度首先计算一个粒子的适应度。对于每个样本,本章通过信号正向传播方法计算出该样本的实际输出值,按式.计算其网络误差。等到计算出所有样本的网络误差,再按式.计算出总样本的均方误差,置为粒子的适应度。其中,在计算一个粒子适应度时,本章将其位置向量各分量映射给的权值和阈值,具体方法如下:本章按照特定的序列将粒子的位置各分量映射给的权值和阈值,即首先映射给连接输入层和隐含层的权值,其次是连接隐含层和输出层的权值,再次是隐含层的阈值,最后是输出层的阈值。该方法正好照应了的权值和阈值个数等于粒子的位置向量维数,所以此方法可行。当使用前向传播计算粒子的适应度时,隐含层采用非线性转移函数式.计算其层输出,输出层采用线性还是非线性转移函数取决于具体问题。本文同样采用式.计算输出层的输出。按照步骤计算其它粒子的适应度,直至计算出所有粒子的适应度。比较适应度。将每个粒子的当前适应值同其个体最优适应值做比较,相应地更新其个体最优位置;将每个粒子的当前适应值同种群全局最优适应值做比较,相应地更新种群全局最优位置本章的优化问题取最小适应值,具体如下:硕士擘位论文 如果删眦蝴,则蝴,而;否则蚴和吲不变。如果艄嗍觚掘,则,;否则蛔咖和刁其中,是粒子的当前适应值,胁咖是粒子的个体最优适应值,驴是种群全局最优适应值;而是粒子的当前位置,是粒子个体最优位置,是种群全局最优位置。根据式.和.更新粒子的速度和位置。通常执行算法时,如果不适度限制粒子的飞行速度,极容易造成粒子飞不出局部极值,达不到全局寻优能力。为了使粒子以限制的速度步长寻求最优解,本文引进速度阈值毅,并做如下限制:若嚣,则甜;若茹一矿双,贝一戤;否则不变。同样,觚值在初始化粒子群时设定。将当前迭代次数同最大进化代数做比较:如果前者满足后者,则终止运行算法,且当前代数的即为优化的权值和阈值;否则转至步骤,继续下一次迭代。根据以上描述,可知算法和两者的合并体现出:的权值和阈值同粒子位置向量的各分量值相对应;粒子的适应值计算根据前向传播计算所得的均方误差设定。基于的.实现流程如图.所示。是保留当前种群全局最优位置解将最优解映射给的权值和阙值图. .实现流程图.基于.软件缺陷回归预测的最优度量元提取模型本章提出的最优度量元提取模型的算法步骤主要包括数据预处理、训练和验证缺陷回归预测模型以提取最优度量元等步骤。.数据预处理整理数据集。给定一数据集,其中毛是样本的度量元数据向量;研是样本的目标向量,即期望输出向量。因为本文通过预测缺陷数量提取有效度量元,故本文默认,即目标值是一个标量,在本文是软件缺陷数量;为样本个数。在构建缺陷回归预测模型之前,本文采用第二章介绍的输入输出关联法式.计算数据集中的度量元相对缺陷的重要性,并按照重要性从高到低的顺序依次排序。根据排序后的度量元重新整理数据集,即将数据集中的度量元顺序调整为按重要性排序的顺序,目标期望值不变。本文将整理后的数据集记为,。标准化数据集。由于数据集中度量元的量纲不同,有的数据值很大,有的数据值介于之间,为保证度量元在预测缺陷数量时的同等重要性,本文采用式.标准化数据集中的度量元数据。?彳.彳一彳其中,为度量元彳的原始值,工为度量元彳标准化的值,彳为度量元么的最小值,为度量元么的最大值。由于本文采用非线性转移函数计算网络的输出,此函数值的范围在?或.之间,故本文亦将数据集中的目标值进行标准化。标准化后的数据集被记为;,;:。划分数据集。本文在此模型中将数据集划分为两部分:训练集,;,和验证集;,产,其中和刀分别是训练样本和验证样本个数。验证集用于模型选择阶段,即决定何时停止训练以避免过适应现象。该数据集被均匀划分,即训练集和验证集中的:值具有和总数据集中的奠一致的分布。硕士学位论文 .构建基于缺陷回归预测的最优度量元提取模型输入训练集,;,到.中,优化的权值和阈值,具体的执行方法参看.节。为防止出现过适应和泛化性能差现象,每一次迭代后,本文利用验证集;,;产测试的泛化误差。训练停止在验证集具有最小均方误差的某一代,记录该次迭代达到的训练均方误差和最小验证均方误差。与此同时,本次迭代的即为优化的所得,进一步映射给
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全检查工考试卷及答案
- 甲醇制烯烃操作工特殊工艺考核试卷及答案
- 农发行本溪市桓仁满族自治县2025秋招半结构化面试题库及参考答案
- 火工品检测工培训考核试卷及答案
- 2025年医院装备科考试题及答案
- 有色挤压工成本控制考核试卷及答案
- 隧道工三级安全教育(车间级)考核试卷及答案
- 水土保持员岗前考核试卷及答案
- 2025年广东广州医师资格考试(实践技能)复习题库及答案
- 公路工程试验检测师资格考试(公共基础)综合能力测试题及答案(四川省达州市2025年)
- 《钢筋桁架楼承板应用技术规程》TCECS 1069-2022
- 电气自动化专业求职面试题目及答案
- 青年岗位能手工作汇报
- 肝功能实验室指标解读
- 2025年设计概论试题及答案
- 生产恢复管理办法
- 电焊工职业健康安全培训
- 垂体危象的抢救及护理
- 小学生书法课件模板下载
- 无创机械通气并发腹胀的原因分析及护理对策
- 2025年国企中层干部竞聘笔试题含答案
评论
0/150
提交评论