




已阅读5页,还剩49页未读, 继续免费阅读
(计算机应用技术专业论文)改进pso与模糊积分软件缺陷预测方法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
r e s e a r c h e so ns o f t w a r ed e f e c tp r e d i c t i o nb a s e do n i m p r o v e dp s o a n d f u z z yi n t e g r a l at h e s i s s u b m i t t e di np a r t i a lf u l f i l l m e n to ft h er e q u i r e m e n t f o rt h em s 。d e g r e ei nc o m p u t e rs c i e n c e b y d o n g e n m e i p o s t g r a d u a t ep r o g r a m d e p a r t m e n t o fc o m p u t e rs c i e n c e c e n t r a lc h i n an o r m a lu n i v e r s i t y s u p e r v i s o r :j i nc o n g a c a d e m i ct i t l e :p r o f e s s o r s i g n a t u r e m a y , 2 0 1 1 硕士学位论文 m a s t e r st h e s i s 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作 所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本声明的法律结果由本人承担。 作者签名:美卿 日期:4 0 f t # - z 月f 日 学位论文版权使用授权书 学位论文作者完全了解华中师范大学有关保留、使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属华中师范大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和电子版,允许学位论文被查阅和借阅; 学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手 段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密,在年解密后适用本授权书。 非保密论文注释:本学位论文不属于保密范围,适用本授权书。 作者签名:黼 日期:曲h 年石月j 日 导师签名: 日期:- - 刎t # - 月日 本人已经认真阅读“c a l l s 高校学位论文全文数据库发布章程”,同意将本人的 学位论文提交“c a l l s 高校学位论文全文数据库 中全文发布,并可按“章程”中的 规定享受相关权益。回童途塞握銮卮澄卮! 旦圭生;旦= 生;旦三生蕉查! 作者弛搠导师戡白矿 日期:。f 降1 月f 日日期:嘶易月f 日 ,rt,t 硕士学位论文 m a s t e r st h e s i s 摘要 随着计算机的广泛应用,计算机软件的需求量逐渐增大,如何高效开发高质量 的计算机软件成为软件公司关注的问题。计算机软件的早期开发理念和方法在很大 程度上限制了计算机的开发质量和开发周期。软件缺陷预测是软件工程领域中为了 提高软件开发效率,降低开发成本,同时又能提高软件的开发质量所作的研究。该 方法通过研究软件中的高缺陷模块,运用统计或分类方法预测软件模块含有缺陷的 情况。软件开发人员在开发过程中将预测的结果作为参考来关注易于产生缺陷的模 块,从而提高软件的开发质量,降低软件的开发周期。 目前,软件缺陷预测技术的研究成为软件工程和应用中重要领域之一,该项技一 术的研究也越来越多。针对软件缺陷预测方法对提高软件开发质量和软件开发效率 具有重要的指导意义,本文首先对计算机软件缺陷预测的基本概念、意义、研究现 状进行了详细的描述,在对现有的缺陷预测技术方法进行了总结概括的基础上,分 析比较了已有软件缺陷预测的优点及不足,重点研究了模糊积分理论,根据模糊积 分的映射功能设计了缺陷预测模型。该模型在高维空间对软件模块数据分类并建立 分类超平面完成对模块的预测。针对软件中缺陷模块和非缺陷模块的比例相差较大 问题采用错误分类惩罚机制调整最小错误分类率的模糊积分分类函数。最优化分类 超平面函数参数优化根据遗传优化方法来实现。其次,详细分析了软件模块属性特 征与软件缺陷的关系,运用改进粒子群优化算法建立软件缺陷的预测模型。该模型 通过优化提取缺陷模块特征属性规则进行预测。实验结果表明了所设计模型的有效 性和适用性。 针对模糊测度和模糊积分所具有的特性,本文还定义了在粒子群优化过程中粒 子个体间的交互作用和在迭代过程中惯性权重的综合运用。在迭代过程中,粒子的 搜索方向及速度随着所有粒子之间关系的变化而变化,惯性权重的改变是通过综合 迭代过程中的原有的惯性权重所占比重自动修改。实验结果表明基于模糊积分的粒 子群优化算法是可行的。 关键词:软件缺陷预测;分类;粒子群优化;模糊积分;规则简化 a b s t r a c t a l o n gw i t ht h ee x t e n s i v ea p p l i c a t i o no fc o m p u t e r s ,t h ed e m a n df o rc o m p u t e rs o f t w a r e t og r o w h o wt od e v e l o ph i g l a q u a l i t ys o f t w a r eb e c o m e st h ek e yq u e s t i o nt h a ts o f t w a r e c o m p a n yp a yc l o s e a t t e n t i o nt o b u t , t h ee a r l yc o n c e p t sa n dm e t h o d so fs o f t w a r e d e v e l o p m e n th a v el i m i t e dt h ed e v e l o p m e n to fq u a l i t ya n dd e v e l o p m e n tc y c l eo ft h e c o m p u t e ri nal a r g ee x t e n t s o f t w a r ed e f e c tp r e d i c t i o ni st h er e s e a r c ht h a tt oi m p r o v e s o f t w a r ed e v e l o p m e n te f f i c i e n c y , r e 虻l u c ed e v e l o p m e n tc o s t sa n di m p r o v et h eq u a l 埘o f s o f t w a r ed e v e l o p m e n ti nt h ef i e l do fs o f t w a r ee n g i n e e r i n g s t u d yo ft h ed e f e c tm o d u l e s o fs o f t w a r e ,p r e d i c te r r o n e o u ss o f t w a r em o d u l e sb yc l a s s i f ya n ds t a t i s t i c a la o a l y s i s m e t h o d s t h ep r e d i c tr e s u l ti su s e da sar e f e r e n c e ,s o f t w a r ed e v e l o p e r sw i l lf o c u s6 l u a l i t y a s s u r a r l c ea c t i v i t i e so nd e f e c t - p r o n em o d u l e sa n dt h u si m p r o v es o f t w a r eq u a l i t ya n d s h o r t e n i n gd e v e l o p m e n tc y c l eb yu s i n gr e s o u r c e sm o r ee f f i c i e n t l yi nt h ed e v e l o p m e n t p r o c e s s n o w , s o f t w a r ed e f e c tp r e d i c tr e s e a r c hi sb e c o m i n ga l li m p o r t a n tf i e l di ns 0 1 a r e e n g i n e e r i n ga n da p p l i c a t i o n s a n dm a n yr e s e a r c h e r sh a v ea l r e a d yf o c u s e do ni t s o f t w a r e d e f e c tp r e d i c t i o nm e t h o dh a sg r e a tc o n s u l t i v ev a l u ea n di m p o r t a n ts i g n i f i c a n c et o i m p r o v i n gs o f t w a r eq u a l i t ya n de f f i c i e n c yo fs o f t w a r ed e v e l o p m e n t t h ep a p e rb e g i n s w i t ha ne l a b o r a t eo fb a s i cc o n c e p t i o n s ,s i g n i f i c a n c ea n dr e s e a r c hs t a t u sa b o u ts o f t w a r e d e f e c tp r e d i c tb a s e do nt h e s u r v e yo ft h ek e yp r e d i c tm e t h o d a n da n a l y z e d t h e d i s a d v a n t a g e so fe x i s t i n gp r e d i c t i o nm e t h o & ,t h e nr e s e a r c h e st h ef u z z yi n t e g r a lt h e o r y , w ep u tf o r w a r das o f t w a r ed e f e c tp r e d i c tm o d e lb a s e do nt h em a p p i n go ff u z z yi n t e g r a l i ta d o p t sm e t h o d 谢ma b i l i t yo fc l u s t e r sf r o md a t aw h i c hh a sh i 曲d i m e n s i o n st o e s t a b l i s ht h ec l a s s i f i c a t i o nh y p e r - p l a n ei nh i 曲d i m e n s i o n a ls p a c e a n dd r a wi n t ot h e m i n i m u mr a t i oo fm i s c l a s s i f i c a t i o nt oi m p r o v et h ec l a s s i f i c a t i o n s i m u l a t e dg e n e t i c a l g o r i t h mi su s e dt oo p t i m a lt h ep a r a m e t e rh y p e r - p l a n ef u n c t i o n ;w ea l s oh a v ea n a l y z e d t h er e l a t i o nb e t w e e ns o f t w a r ed e f e c ta n da t t r i b u t e ,a n dt h e nb u i l dd e f e c tp r e d i c t i o nm o d e l o fi m p r o v e dp a r t i c l es w a l t no p t i m i z a t i o nt od r a wc l a s s i f yr u l ef r o ms a m p l ed a t a e x p e r i m e n tm s u l t ss h o wt h a tt h ea d a p t a b i l i t ya n de f f e c t i v e n e s so f t h ep r o p o s e dm o d e l f o rt h ec o n n e c t i o n 、) i ,i 也t h ei n t e r a c t i v i t yo ff u z z ym e a s u r ea n df u z z yi n t e g r a l ,i ti s a p p l i e dt oi m p r o v et h ep e r f o r m a n c eo fp s o i nt h i sp a p e r i nt h es e a r c h p r o c e s s ,n o to n l y 玎 t h ed i r e c t i o no fp a r t i c l es e a r c hc h a n g ew i t ha l lp a r t i c l e s ,a n dt h ei t e r a t i o n sa u t o 。m o d i f i e d i si n t e g r a t i o na l lo ft h ei n e r t i ai nt h ei t e r a t i o np r o g r e s s t h u s ,an o v e lp a r t i c l es w a r m o p t i m i z a t i o ni sp r o p o s e db a s e do nf u z z ym e a s u r ea n df u z z yi n t e g r a l t h er e s u l ts h o w i ti s f e a s i b l ef o ri m p r o v e m e n to p t i m i z ep r o g r e s s k e yw o r d s :s o f t w a r ef a u l tp r e d i c t i o n ;c l a s s i f i c a t i o n ;p s o ;f u z z yi n t e g r a l ;r u l e s i m p l i f i c a t i o n 】i l 硕士擘位论文 m a s t e r st h e s i s 目录 摘要一”一“一n ”一”“”i a b s t r a c t 第一章绪论 i i 1 1 1 软件缺陷预测的研究背景1 1 2 软件缺陷预测的研究意义”2 1 3 软件缺陷预测的研究现状3 1 4 本文的研究内容4 1 5 本文的组织结构4 第二章软件缺陷预测概述 6 2 1 软件缺陷基本概述6 2 2 软件缺陷预测技术概述6 2 2 1 软件缺陷预测步骤8 2 2 2 常用软件缺陷预测方法8 2 3 软件缺陷预测方法的评价与对比1 0 2 3 1 软件缺陷预测方法评价1 0 2 3 2 现有软件预测预测方法比较1 1 2 4 软件缺陷预测常用实验数据”1 2 2 5 本章小结1 3 第三章基于模糊测度和c h o q u e t 模糊积分软件质量预测模型 1 5 3 1 模糊测度和c h o q u e t 模糊积分理论1 5 3 1 1 模糊测度”1 5 3 1 2c h o q u e t 模糊积分基本原理1 6 3 1 3c h o q u e t 非线性映射1 7 3 2c h o q u e t 模糊积分预测模型1 7 3 2 1c h o q u e t 模糊积分软件质量预测模型17 3 2 2 最优化分类面算法2 1 3 3 仿真实验评估2 2 3 3 1 数据处理”2 2 硕士擘位论文 m a s t e r st h e s i s 3 3 2 实验设置一2 3 3 3 3 实验结果与评价“2 3 3 4 本章小结2 5 第四章基于动态自适应中值粒子群优化软件故障预测模型 2 7 4 1 动态自适应中值粒子群优化故障预测模型背景2 7 4 1 1 基本粒子群优化”2 7 4 1 2 动态自适应粒子优化2 8 4 1 3 中值粒子优化2 9 4 2 动态自适应中值粒子群优化算法3 0 4 3 基于改进粒子群优化的软件故障预测模型3 0 ; 4 3 1 粒子适应度的选择3 1 一 4 3 2 规则约简方法3 1 4 3 3 规则模式匹配3l 4 4 仿真实验结果和算法性能分析3 2 4 4 1 数据处理一3 2 4 4 2 预测结果一3 3 4 4 3 实验性能分析3 3 4 5 本章小结3 4 第五章基于模糊积分的粒子群优化算法 5 1s u g e n o 模糊积分k 3 5 5 2s u g e n o 模糊积分粒子群优化算法3 5 5 2 1 多样性粒子运算方法“3 5 5 2 2s u g e n o 模糊积分动态惯性权重”3 6 5 3 实验仿真及结论3 7 5 4 本章小结3 9 第六章结论 6 1 总结:”4 0 6 2 进一步的研究工作4 1 参考文献 在校期间发表的论文、科研成果等 致谢 4 3 硕士学位论文 j 讧a s t r s 丁h e s l s 第一章绪论 随着信息技术和计算机技术的迅速发展,计算机软件的功能越来越强大,其应 用使人们对计算机的操作变得越来越得心应手。人们通过运用各种各样的计算机软 件来完成不同的操作和功能,满足了人们快捷解决问题的需求。随着软件产品的应 用越来越广,需求量越来越大,计算机软件早期的开发理念和思想严重影响了计算 机软件的开发质量,使得一些大型软件根本无法维护,甚至有的软件在开发过程中 中途夭折,造成大量入力、物力资源的浪费和客户的满意度的降低。因此如何在软 件开发过程中有效地利用原有软件开发经验,并通过其改善软件产品的开发质量和 一资源合理利用的软件质量保证策略已成为当前研究的一个热门课题。:j 1 1 软件缺陷预测的研究背景 软件缺陷是软件开发过程中可能导致软件开发失败的因素或在运行过程中出 现的偏差【l 】。软件缺陷预测是通过分析缺陷产生的原因和规律来预测缺陷产生的概 率等,避免在软件开发过程中缺陷的再次产生。 现在的软件开发公司主要关注开发高质量的软件。开发高质量的计算机软件不 但满足客户的需求,也是与客户保持长期合作的基础,这将给公司带来巨大的收益。 用户对软件产品的满意度主要是根据软件系统是否含有缺陷和错误【l 】来判断。因此, 开发无缺陷的软件产品对每一个软件开发人员来说是首要问题。而在实际应用中, 很难达到这种质量保证。d i c k 等的研究表明,美国安全部由于软件失败每年的支出 超过4 0 亿美元 2 1 。此外,c u s u m a n o 对1 0 4 个软件项目的研究结果表明,根据用户 报告软件在交付使用的第一年平均每1 0 0 0 l o c 就产生0 1 5 个缺陷,即对于 1 0 0 0 0 0 l o c 的软件项目,将有1 5 个缺陷产生【3 】,这是个不容忽视的问题。 1 9 6 8 年,在德国召开的国际会议上,首先提出了运用工程学的基本原理和方法 组织和管理软件开发的软件工程概念,即软件周期化开发方法。目的是为了提高软 件开发质量和开发费用的合理化运用。工程化管理【l 】通过对软件的理论与结构、方 法、工具与环境、管理和规范等将软件的开发过程周期化划分为几个阶段,对每个 阶段的工作独立化,同时,在每个阶段的开发工作完成后进行软件测试,以其在软 件开发过程中能更早的发现错误和缺陷并及时的对其修复来降低缺陷的产生概率。 通过这种结构化的开发过程和严密的软件测试方法保证了软件的开发质量。但是, 大部分情况下,完全无遗漏的软件测试是不可行的。目前,软件系统都很庞大即便 是最新最大的处理器也不能完全模拟他们的功能,测试的环境也不可能与最终系统 运行环境完全相同,所以软件测试的结果并不能完全代表最终用户体验结果,也就 是说,软件的周期化开发方法能够有效地发现软件中的绝大多数错误和缺陷并对其 修改,却并不能完全排除软件产品中的所有缺陷。 1 9 9 2 年b r i a n d 首先提出了软件缺陷预测的概念,软件缺陷预测能帮助软件开 发人员合理利用资源有效的降低软件缺陷产生的概率,提高软件的开发质量l l j 。 软件缺陷预测是通过对软件及软件特性进行统计分析,总结缺陷产生的规律和 发生概率,掌握缺陷产生的特点,熟悉缺陷发展的态势及缺陷产生的原因。这样, 在软件开发过程中,借鉴已开发软件的开发经验和管理模式,有针对性的关注易于 产生缺陷的模块,采取遏制缺陷发生的措施,降低缺陷产生的几率,对降低软件开 发周期和提高软件质量都起着十分重要的作用。软件缺陷预测降低了软件的开发成 本的同时,增强了客户满意度。 1 2 软件缺陷预测的研究意义 在过去的十几年中,软件缺陷预测技术逐渐的受到了软件研究人员、软件开发 人员和软件管理人员等方面专家的广泛关注。然而,对于竞争力巨大的软件需求市 场来说,只有一个独立的软件缺陷预测模型是远远不够的。简单方便且预测精确度 高的软件缺陷预测工具是软件开发人员和项目管理人员目前最需要的。可是,一般 来说,由于开发缺陷预测工具非常消耗时间,目前没有一个公司具有足够的资源来 开发和应用软件预测工具。对于软件开发公司来说,又必须要保证有效的软件开发 质量。通过建立软件缺陷预测模型的缺陷预测方法可以简化软件的开发和维护过 程,降低缺陷产生的数量和概率,从而达到提高软件开发质量的目的。 近年来软件缺陷预测方法的研究已经成为了软件质量研究中的一个新的研究 课题,特别是近几年统计学习理论的发展对软件缺陷预测的研究提供了很大的帮 助,并陆续提出了如:支持向量机、回归方法、决策树技术、蚁群算法等很多缺陷 预测方法。这些方法通过分析软件模块,根据软件度量元提取缺陷产生规则来改善 软件开发质量、改进预测准确度、提高预测精度等,且对软件的开发提供更廉价、 快捷的质量保证手段函五4 1 。 文献【5 ,6 ,7 ,8 】等的研究结果表明:已开发软件存在的缺陷与软件模块度量元之间 关系研究的静态缺陷预测技术是提取软件缺陷产生的原因与规律,软件开发人员有 针对性的根据缺陷的模块度量元特征来改善软件开发过程和合理分配开发资源,并 2 硕士擘位论文 m a s t r st h e s i s 提高软件的可靠性。 所以,开发有效的软件缺陷预测技术、设计高效的软件缺陷预测模型可以提高 软件的开发质量,降低软件的开发和维护成本,提高客户满意度【9 】。因此,分析软 件模块,查找软件产生的原因,开发软件缺陷技术,研究软件质量预测模型,讨论 合理有效的缺陷预测手段,对提高软件的质量,高效利用有限资源,降低软件的开 发成本,有很高的指导作用和强有力的实践意义。 1 3 软件缺陷预测的研究现状 软件缺陷预测是软件工程和软件应用的重要领域之一。目前国内外对于软件质 量的早期预测已有了很广泛的研究,并且预测效果明显。传统的软件缺陷预测是采 用线性或非线性回归的方法根据软件的属性特征预测软件的缺陷数目。但是,这种 方法不能描述软件缺陷产生的原因,同时也不能对以后的软件开发提供参考价值。 目前,软件缺陷预测方法主要是针对软件模块分类的软件缺陷预测模型研究。该方 法将软件模块分为高风险软件模块( f a u l t y p r o n em o d u l e s ) 和低风险软件模块 ( n o n - f a u l t y p r o n em o d u l e s ) t l o 】。通过分类,开发人员在开发过程中可以更加关注高风 险模块,从而合理有效地提高软件开发质量。其主要采用软件挖掘技术,提取缺陷 模块分类规则等方法。 o l i v i e r 和d a v i d 等在2 0 0 8 年运用蚁群算法( a n t m i n e r + ) 1 1 0 建立软件缺陷预测 模型,该模型通过数据挖掘技术在软件库中提取缺陷软件模块,并且给出了在开发 过程中高风险软件缺陷模块特征的关键点,通过该模型软件开发人员可以在软件开 发过程中关注这些关键问题并在以后的软件开发中通过注重这些新的视角有效的 提高软件质量和预算问题。但是,该模型在定义蚁群运行结构路线时需要对特征向 量的值区间化,对于间隔的设置没有规律可循,小了会增加运算时间,大了降低了 运算精度,所以很难对特征值的区间进行设置。 j r - s h i m 和c h i n g h s u e 在文献【1 1 】中提出了最小熵原理改进软件诊断提取的分 类规则方法,该方法主要是利用最小熵对数据的完整性、一致性和噪音进行处理。 运用通过对数据分层处理的属性特征对软件模块分类并提取高风险软件模块的特 征规则。 n i c kj p i z z i z a i 于2 0 0 8 年提出基于模糊积分的回归技术融合多分类器预测评估 结果【1 2 1 。该方法在不借助先验条件的基础上评估软件的复杂性,可维护性和可用性, 同时采用自动随机方式从数据库中选取软件度量属性子集自动组成软件组件,从而 使软件质量预测达到最优。但是,这种方法也只是运用了模糊积分的融合技术提高 分类器的效果,并没有直接利用模糊积分的分类作用。 在2 0 0 9 年d a v i db i r d d e y 等人在文献【1 3 中提出了运用自然语言度量的软件缺 陷预测方法。该方法采用三种语言处理措施解决缺陷预测问题。第一种措施为在程 序标示中使用自然语言;第二项考虑标示的简洁性和一致性;最后一项措施利用 q a l p 分数机制判断软件的质量。在模型设计中,还采用了线性混合效应回归模型 来识别缺陷和采取措施之间的关系。该方法在软件预测中是具有挑战性的,它是用 来预测一个程序错误模块是有价值的软件项目,因为它可以降低软件开发成本,为 软件维护和进化提供了高效的理论和技术支持。 综合以上软件缺陷预测方法的分析,我们了解了不同方法的优缺点和使用环 境,但是还没有一个方法能花费较少的时间,获取比较准确的软件缺陷预测成果。 因此,我们引入改进的粒子群优化算法和模糊积分理论提出新的软件缺陷预测模 型,实现对软件缺陷模块的预测,并通过实验验证其预测效果。 1 4 本文的研究内容 本文根据上述软件缺陷预测的研究背景和研究现状,通过研究分析已有软件缺 陷预测技术与方法,总结现有软件缺陷预测方法的优缺点,对每一个软件缺陷模块 进行详细的分析,根据分析结果设计合理有效的软件缺陷预测方法对已有软件模块 数据分析,提取软件缺陷模块的特征因素,总结缺陷产生的原因,并建立软件度量 元与缺陷模块产生之间的一种关系模型。通过分析,本文主要的研究内容为:学习 p s o 优化方法,并对其进行改进;对模糊测度和模糊积分理论进行学习研究;研究 如何将改进p s o 方法运用到软件缺陷预测模型中提高预测精度;针对软件模块特点 将模块属性映射到高维空间,在高维空间中运用模糊积分方法建立软件模块分类 面,改进预测的性能;以n a s a 的软件模块为例,通过实验验证算法的有效性。 1 5 本文的组织结构 本文针对现有的软件缺陷预测模型的不足,提出了c h o q u e t 模糊积分软件缺陷 预测模型和基于a d m p s o 的软件缺陷预测模型。通过分析模糊测度和模糊积分的 特性,给出了一个基于模糊积分的改进p s o 的优化算法。全文安排如下: 第一章,介绍了软件缺陷的基本概念,软件缺陷带来的软件危机以及本文所研 究的技术模型的意义。综述了当前国内外软件缺陷预测的研究现状和不足,并提出 了本文研究的可行性、创新性及适用性。 4 硕士学位论文 m a s t e r st h e s l s 第二章,综述了软件缺陷预测的技术及方法,对目前常用的软件缺陷预测技术 与方法进行了对比分析。现有方法的研究为本文的研究提供了理论研究基础。 第三章,针对软件模块属性之间的特性和模糊积分的映射分类功能,提出了 c h o q u e t 模糊积分的软件缺陷预测模型,将软件模块映射到高维空间对其分类,从 而提高了分类的精确率和预测效果。 第四章,通过分析软件缺陷预测模型和现有粒子群优化算法,提出了基于动态 自适应中值粒子群算法的软件缺陷预测模型,并根据对理论基础和实验结果两个方 面的分析验证了该软件缺陷预测模型的可行性和实用性。 第五章,通过研究模糊测度和模糊积分理论,提出了一个基于模糊积分的粒子 群优化策略。通过模糊测度的交互性修改优化方向和速度,动态改变惯性权值,调 整了全局和局部优化。 第六章,总结本文的研究,并提出了对下一步软件缺陷预测技术与方法的研究 方向和研究角度。 5 硕士学位论文 m a s t e r st 1 4 e s i s 第二章软件缺陷预测概述 本章主要介绍软件缺陷预测技术的相关理论和定义,并对常用软件缺陷预测的 方法和技术做了详细的介绍分析,包括软件缺陷概述、缺陷预测技术分析比较、缺 陷预测的步骤等,且对现有软件缺陷预测方法进行了总结和评测,为本文的研究工 作做了一个可行性报告和铺垫。 2 1 软件缺陷基本概述 软件缺陷【l 】( b u go rd e f e c t ) 是在软件的开发过程中产生的。软件缺陷总是造 成软件的开发失败或开发成本和人员的增加,被认为是软件欠缺和不成熟的地方。 简单的说,软件缺陷就是不符合用户要求的软件。早期美国海军调试计算机软件过 程中发现因b u g 引起的系统错误问题引起了人们对计算机软件缺陷的注意。后来, 人们逐渐接受了软件缺陷的定义并分析了软件缺陷,从而定义了几类情况的软件问 题属于软件缺陷。如:不能执行正常工作或重要功能的可能造成系统瘫痪的系统缺 陷;严重影响系统功能实现的数据缺陷;数据通信接口不畅通的接口缺陷等。 软件项目的特点和开发过程决定了软件缺陷的产生。缺陷产生的原因主要有几 类:一是由软件本身引起的,开发人员没有完全理解客户的需要、系统结构复杂、 程序逻辑或数据边界考虑不周、系统运行环境复杂、通信端口及加密问题等引起的 缺陷;二是技术问题产生的缺陷,因为程序开发人员在开发过程中引入的算法和语 法错误、计算精度等没有按照设计要求或编写代码错误而产生的软件缺陷;三为团 对的合作问题造成的缺陷,不同开发人员的需求理解、设计编程的假定和依赖关系 沟通不一致、开发人员技术水平差距较大等造成的代码等的不完全转化造成的潜在 错误产生的缺陷等。本文所研究的缺陷预测模型和方法主要是针对第二类错误即程 序方面引入的错误进行分析和解决的缺陷预测。 2 2 软件缺陷预测技术概述 “软件质量”的问题一直被人们所关注。2 0 世纪7 0 年代人们开始运用软件质量 控制工具分析可重复出现的软件缺陷的来提高软件的开发质量,软件缺陷的分析研 究迅速得到了软件开发人员的注意。收集、汇总和分析统计软件开发和运行过程中 产生的缺陷和缺陷信息称为软件缺陷分析【1 7 】。根据软件缺陷的分析,我们在发现软 6 件缺陷产生的原因所在,掌握软件缺陷发展规律情况下,提出相对应的避免缺陷产 生的措施,从而减少缺陷产生的几率。 软件缺陷预测技术是为了查找软件中还未发现的软件缺陷。最初人们利用统计 学方面的技术,通过分析已存在软件数据和已经发现的软件缺陷等软件的度量数据 来预测软件存在或可能存在的缺陷数目或缺陷类型等。软件缺陷预测技术通过统计 软件缺陷数来判断所开发的软件系统项目能否符合用户的要求。软件项目的质量通 过软件缺陷预测技术来提高和保证,并且软件缺陷预测技术同时促进了软件工程技 术的发展和提耐1 4 1 。目前软件缺陷预测技术已经成为软件工程领域最重要的技术之 一。 软件缺陷预测技术【1 5 】主要被分为静态缺陷预测技术和动态缺陷预测技术两种。 根据与缺陷有关的度量数据对所含缺陷数量和缺陷分布方面的预测技术为静态预 测技术;动态预测技术为软件缺陷随时间分布的预测技术,该技术主要是依靠软件 的缺陷或软件失效产生时间来判定。 s o f t w a r ed e f e c tp r e d i c t i o nt e c h n o l o g y s t a t i cd e f e c tp r e d i c t i o nt e c h n o l o g yd y n a m i cd e f e c tp r e d i c t i o nt e c h n o l o g y _ 卜 d e f e e td i s t r i b u t i o n m e t r i c b a s e d p r e d i c t i o nt e c h n o l o g y d e f e c tp r e d i c t i o nm o d e l 田 7 7 尘r r 丁立_ 、厂、 力 弓 n k =c n 刃 n- 口 o n nn 乏 器 器 o 吾 o o 田 3 。 暑 ! 要o 乓 o 了 暑 oj 疗 刃暑 o 卫 o mm o 暑 a。 生 n: 暑 暑 o厶 = o g 9 o o。 暑 o 暑厶 n 。 。 n里厶 & c o a 麓 暑 & o 勺 a嚣 叮 n o 古 j o o 胃 厶 j 孚署 行 厶 n 理j n 丁 = o o o 婴 a n 图2 1 软件缺陷预测技术 7 硕士学位论交 m a s t r st h e s i s 2 2 1 软件缺陷预测步骤 本文主要研究的预测技术主要为静态预测,静态预测主要根据现有软件缺陷模 块进行分析,查找缺陷产生原因及规律,并通过缺陷产生的特点来预测软件模块产 生缺陷的概率等。下面为根据现有软件进行软件缺陷预测的主要步骤: ( 1 ) 对选用的软件模块数据进行去噪和相关性处理降低属性维数,选择合适 的特征属性组合子集。 ( 2 ) 选择一种技术和方法来对现有的模块数据进行分析,查找软件缺陷产生 的原因。 ( 3 ) 分析软件缺陷产生的原因,总结其产生的规律和缺陷发生的概率等。 ( 4 ) 根据总结的软件缺陷产生规律测试该预测技术和方法的有效性,并评价 对预测新的软件模块产生缺陷的概率。 ( 5 ) 对选用的预测方法和技术分析并提出改进意见。 2 2 2 常用软件缺陷预测方法 研究表明,其中8 0 以上的软件缺陷主要存在于2 0 左右的少数软件模块中, 经常出现错误的模块修改后还是容易出错。所以,通过对含缺陷模块分析,我们可 以总结那些缺陷模块不稳定的原因,这样在接下来的软件开发过程中我们就要有针 对性的对易于产生不稳定缺陷类型的软件模块着重处理和关注。k i t c h e n h a ,b a s i l i 和k h o s h g o f t a a r 等人根据收集的软件缺陷和软件度量等采用回归技术或分类技术等 研究软件缺陷产生和分布规律【1 6 1 。研究表明,回归预测技术主要是估计软件所含缺 陷数量问题,而分类预测技术则用来将模块划分为高缺陷模块或低缺陷模块,这两 类学习技术能够用来提高和改进软件的开发质量,且节省开发时间和开发成本。 通过提取软件度量元与软件缺陷之间的关系或根据度量元来对软件模块分类 来完成缺陷预测。由于不同度量元之间含有不一致、噪音及数据相关性问题,一般 我们会来用一定的技术对这些数据进行数据降维和去噪等处理,再采用相应的方法 对软件模块进行缺陷预测。下面描述了几种研究相对比较成熟的回归技术和分类技 术方面的软件预测的技术方法【l7 。 逻辑回归( 1 0 9 i s t i cr e g r e s s i o n ,l r ) 是改进的线性回归方法。它主要是解决在 线性回归中出现的o 1 之外的非法概率值的分类问题。该方法运用对数变换将值设置 为任意值,并根据似然最大化权值查找与训练数据匹配的权值来进行预测。这种方 法在缺陷预测领域运用非常广泛。 8 人工神经网络( a r t i f i c i a ln e u r a ln e t w o r k ,a n n ) 是模仿生物神经系统的研究方法。 当今,运用比较多的为b p 算法,即基于误差反向传播算法( e r r o rb a c kp r o p a g a t i o n ) 。 b p 算法是通过输入的训练数据集在神经网络模型中运算,比较运算结果和期望输出 值,运用两者之间的误差值来反向调整网络中的权值等信息。 多元线性回归( m u l t i p l el i n e a rr e g r e s s i o n ,m l r ) 是统计学中对简单线性回归推广 的方法,主要是用来预测自变量与因变量之间的线性函数关系;通过对己知数据的 训练来确定回归模型,通常会选用自变量优化处理方法来提高回归模型的预测效 果,所选用的自变量须与因变量线性相关,且自变量之间是互斥的。对于选定的自 变量再按照某种方法如最小平方法来进行参数估计。 l d a 判别方法:l d a 方法的优点是实现简单,而且该方法的计算复杂度低,依 据训练数据估计高斯分布参数的过程为其学习过程,该方法假设预测项目的每个分 类都服从多元高斯分布且该分布都具有相同协方差矩阵;在软件缺陷预测中,l d a 判别方法主要是对高缺陷风险软件的辨别“。与线性判别分析类似的布尔判别分 析,它主要是根据模块的每个度量元设置不同的阈值,根据设置的阈值来判断模块 属于哪一类。如果模块中任意一个度量元的值超出了设置阈值,我们就认为该模块 为高缺陷模块,反之,可以判断该模块为低缺陷模块。布尔判别分析在训练阶段, 能够根据训练结果来调整i 类错误和i i 类错误的比例。 支持向量机s v m 是v a p n i k 在1 9 9 2 年提出的一种基于统计学习理论方法的通用 前馈神经网络分类方法,它主要是将低维空间线性不可分的样本通过非线性映射将 数据映射到高维空间中,在高维空间对样本进行分析处理。其主要方法为模式分类 和非线性回归分析。s v m 方法主要是针对小样本、非线性的高维模式识别中的经验 风险最小化分类,该方法分类精度相对较高,且其泛化能力很强。 分类回归树是根据统计方法来进行操作的工具,它主要是运用数据挖掘技术来 提取数据中的模式和关系,对数据处理并对其进行分类操作。运用该方法时,我们 主要对已有数据进行训练并根据训练数据建立决策二叉树。在建立的二叉树中,所 有的叶子节点表示一个预测值,我们从根节点到叶子节点提取为一个判断准则。对 于新的数据,我们根据决策树从根节点到叶结点来判定所属的类别。即输出的叶结 点为新数据预测值。分类树分析方法是理解性最强的方法,并且它所提取的决策判 断准则是给定的决策值,所以,可以运用到变量之间的非线性和非单调关系建立预 测模型,该方法在软件的缺陷分布预测方面得到广泛的运用。在分类树回归方法中, 为了获得更精练的判断规则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租屋管理安全培训课件
- 文库发布:出师表课件
- 出国安全培训制度课件
- 2025年长期供货合同范本-涂料供应合同
- 出口许可证课件
- 冲积扇形成原因课件
- 2025全新升级计算机辅助卓越二手房买卖中介服务合同
- 2025农药买卖合同(除草剂)
- 2025上海市地方标准《融资租赁服务合同规范》编制说明
- 2025合同样本:健身房合作经营合同律师起草专业版
- 从文学到电影智慧树知到期末考试答案章节答案2024年山东大学
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
- 房子过户给子女的合同模板
- 奶山羊饲养管理课件讲解
- SYT 6966-2013 输油气管道工程安全仪表系统设计规范
- 通信工程师中级考试动力环境务实真题及答案近年合集
- 2024年海宁市通程港口经营有限公司招聘笔试参考题库附带答案详解
- 鼻咽腺样体肥大的影像诊断
- 肝损伤健康宣教
- 防火巡查记录表防火检查记录表
- 青岛版(六三制)小学科学四年级上册全册教学课件
评论
0/150
提交评论