(计算机应用技术专业论文)软件缺陷静态预测研究.pdf_第1页
(计算机应用技术专业论文)软件缺陷静态预测研究.pdf_第2页
(计算机应用技术专业论文)软件缺陷静态预测研究.pdf_第3页
(计算机应用技术专业论文)软件缺陷静态预测研究.pdf_第4页
(计算机应用技术专业论文)软件缺陷静态预测研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)软件缺陷静态预测研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士学位论文 m a s t e r st h e s i s r e s e a r c ho ns t a t i cp r e d i c t i o no f s o f t w a r ed e f e c t s at h e s i s s u b m i t t e d 伽p a r t i a lf u l f i l l m e n t o f t h er e q u i r e m e n t f o rt h em s d e g r e e 汛c o m p u t e rs c i e n c e b y q i nl i n a 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 to fc o m p u t e r s c i e n c e c e n t r a lc h i n an o r m a l u 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 素丽妍 a p p r o v e d m a y , 2 0 1 1 帅9 舢4洲6舢8 舢9删8咖叫 脚丫 硕士学位论文 m a s t e r st h e s i s 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作 所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本声明的法律结果由本人承担。 作者张蠹丽徊r 日期:2 0 i l 年月1 日 学位论文版权使用授权书 学位论文作者完全了解华中师范大学有关保留、使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属华中师范大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和电子版,允许学位论文被查阅和借阅; 学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手 段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密,在年解密后适用本授权书。 非保密论文注释:本学位论文不属于保密范围,适用本授权书。 作者签名:煮面铆 日期勃i | 年月1 日 挪签名:刍 日期冽,年厂月f 日 本人已经认真阅读“c a l i s 高校学位论文全文数据库发布章程 ,同意将本人的 学位论文提交“c a l i s 高校学位论文全文数据库中全文发布,并可按“章程”中的 规定享受相关权益。回塞途塞握奎卮溢卮! 旦坐生;旦= 生l 旦三生筮查! 作者签名:蠢丽期i , 日期:加7 | 年月1 日 新始白b 导师签名: 矽1 、 日期:侧1 年lr | 1 e i 硕士学位论文 m a s t e r st h e s i s 摘要 伴随着2 0 世纪6 0 年代末“软件危机 的提出,软件工程得到了快速的发展, 它的宗旨是产生高质量的应用软件或产品。软件可靠性是软件质量的重要特性之 一,1 e e e 给出了它的具体定义,即在规定的条件和时间内,软件不发生失效的概 率。i s o9 0 0 0 又将失效定义为软件运行时,出现不正确的输出。很多原因诸如软件 缺陷、硬件故障及人为因素等引起软件失效,工作人员若每观察到一次失效,就能 够发现一个或多个软件缺陷,则纠正这些缺陷必定可以减免失效的重复发生,提高 软件可靠性。 记录质量的重要线索是软件缺陷,且它又是软件可靠性的重要体现。发现软件 中存在的缺陷,并修正这些缺陷是软件测试的目的,然而软件技术发展至今,任何 检测技术并不能发现及排除所有的缺陷,总会有一些不为人知的原因导致缺陷产 生,而这些潜在却不被发现的缺陷势必影响软件的质量。合理地预测缺陷可以统计 尚未发现但仍存在的缺陷数目及缺陷分布,这样能够帮助测试人员快速地、准确地 定位并纠正缺陷,达到提高软件可靠性和保证软件质量的目的。 软件缺陷预测是对软件产品的缺陷数量或者缺陷分布进行静态或动态地预测。 静态缺陷预测,主要是基于缺陷相关的度量数据预测缺陷的数量或者分布;动态缺 陷预测,则是基于缺陷或者失效发生的时间预测缺陷随时间的分布。 常见的预测软件缺陷的度量元有代码度量元、h a l s t e a d 度量元以及m c c a b e 度 量元等。相关软件缺陷的度量元较多,目前研究界并没有得出预测缺陷一致的、尽 可能完全、准确的度量元,尚缺乏综合模型来分析度量元同软件缺陷之间的复杂关 系。在此基础上,本文综合多种度量元预测缺陷数量及分布情况。 鉴于度量元数据收集的冗杂性,部分度量元对缺陷预测的积极影响不大或具有 消极影响,本文首先采用输入输出关联法计算度量元相关缺陷的重要性并排序它 f f f j ;其次利用误差反传神经网络与粒子群优化算法相结合的技术构建一种提取有效 度量元的智能模型,达到剔除无效度量元和减少预测工作量的目的。最后利用提取 的有效度量元结合粒子群优化支持向量机的分类方法构建软件缺陷预测模型。通过 实验分析,该模型相比早期的预测模型能够减少预测成本,提高预测精度,提升泛 化性能。 关键词t 软件可靠性;软件缺陷;度量元;误差反传神经网络;粒子群优化算 法:支持向量机 f a c t o r sa n dh a r d w a r ef a u l t sw h i c hc a u s et os o f t w a r ef a i l u r e i faf a i l u r ei so b s e r v e d , m a y b et h e r ea r em a n yd e f e c t st of o l l o w , t h e nw o r k e r sc o u l dc o r r e c ts u c hd e f e c t st oa v o i d d u p l i c a t ef a i l u r e ,i m p r o v es o f t w a r er e l i a b i l i t y s o f t w a r ed e f e c ti sa ni m p o r t a n tc l u ef o l l o w i n gq u a l i t y ,w h i c hi sa l s oa ni m p o r t a n t , r e f e r e n c eo fs o f t w a r er e l i a b i l i t y f i n da n dr e v i s ed e f e c t si st h ei m p o r t a n tg o a lo fs o f t w a r e t e s t i n g ,w h i l ew i t ht h ed e v e l o p m e n to fs o f t w a r et e c h n o l o g y ,a n yd e t e c t i o nt e c h n o l o g y c a nn o tf m da n dr e m o v ea l ld e f e c t s ,嬲t h e r ei sa l w a y ss o m eu n k n o w nr e a s o n sl e a dt o d e f e c t s s u c hp o t e n t i a ld e f e c t sw h i c ha r en o tf o u n dt e m p o r a r i l yw i l la f f e c ts o f h a r e q u a l i t y p r e d i c td e f e c t sr e a s o n a b l yc o u l dc o u n tt h en u m b e ro rd i s t r i b u t i o no fd e f e c t s w h i c hh a v en o tb e e nf o u n db u te x i s t ,a st oh e l pt e s t e r sl o c a t ea n dc o r r e c td e f e c t s q u i c k l ya n da c c u r a t e l y ;t h e na c h i e v et h ep u r p o s eo fi m p r o v i n gs o f t w a r er e l i a b i l i t ya n d a s s u r i n gs o r w a r eq u a l i t y s o f t w a r ed e f e c tp r e d i c t i o ni sd e f i n e da ss t a t i c a l l yo rd y n a m i c a l l ym e a s u r et h e n u m b e ro rd i s t r i b u t i o no fs o r w a r ed e f e c t se x i s t i n gi ns o m es o f t w a r ep r o d u c t s t a t i c p r e d i c t i o ni sm a i n l yt op r e d i c td e f e c t s n u m b e ro rd i s t r i b u t i o nb a s e do nd e f e c t - r e l a t e d m e t r i ce l e m e n t s ;d y n a m i cp r e d i c t i o ni st op r e d i c td e f e c t s d i s t r i b u t i o nb a s e do nt i m e w h e nd e f e c t so rf a i l u r e so c c u r t h ec o m m o nm e t r i ce l e m e n t su s e dt op r e d i c ts 0 1 a r ed e f e c t sa r ec o d e ,h a l s t e a d , m e c a b em e t r i ce l e m e n t sa n ds oo n t h e r ea r em a n ym e t r i ce l e m e n t s ,r e s e a r c h e r sh a v e n o tp r o p o s e dt h ec o n s i s t e n t , c o m p l e t ea n da c c u r a t em e t r i ce l e m e n t s ,a n dt h e r ei sl a c ko f c o m p r e h e n s i v em o d e lw h i c ha n a l y z e st h ec o m p l e xr e l a t i o n s h i pb e t w e e nm e t r i ce l e m e n t s a n dd e f e c t s s ot h ep a p e ri n t e g r a t e sm a n yk i n d so fm e t r i ce l e m e n t st op r e d i c td e f e c t s n m e t r i ce l e m e n t s ,s oa st oe x c l u d ei n v a l i dm e t r i ce l e m e n t sa n dr e d u c ep r e d i c t i o ne f f o r t l a s t l y ,t h ep a p e rc o m b i n e st h eb e s te f f e c t i v ee l e m e n t sa n dp a r t i c l es w a r mo p t i m i z i n g s u p p o r tv e c t o rm a c h i n e sm e t h o dt o c o n s t r u c td e f e c t s p r e d i c t i o nm o d e l t h r o u g h e x p e r i m e n t a la n a l y s i s ,c o m p a r e dt ot r a d i t i o n a lp r e d i c t i o nm o d e l s ,t h ep r e d i c t i o nm o d e l c o u l dr e d u c ep r e d i c t i o nc o s t s ,i m p r o v ep r e d i c t i o na c c u r a c ya n di n c r e a s eg e n e r a l i z a t i o n p e r f o r m a n c e k 呵w o r d s :s o f t w a r er e l i a b i l i t y ;s o f w c a r ed e f e c t ;m e t r i c e l e m e n t ;b a c k p r o p a g a t i o nn e u r a ln e t w o r k ;p a r t i c l es w a r mo p t i m i z a t i o na l g o r i t h m ;s u p p o r tv e c t o r m a c h i n e s i i i 硕士学位论更 m a s t r st h e s i s 摘要 a b s t r a c t 目录 i i i l第一章绪论 1 1 课题背景分析1 1 1 1 软件危机1 1 1 2 软件可靠性2 1 1 3 软件缺陷3 1 2 国内外研究现状及不足。3 1 2 1 静态缺陷预测技术4 1 2 2 动态缺陷预测技术5 1 3 缺陷预测技术未来发展方向6 1 4 本文结构6 第二章度量元与软件缺陷的关联分析。 8 2 1 软件度量8 2 2 度量元8 2 2 1 代码度量元8 2 2 2m c c a b e 度量元9 2 2 3h a l s t e a d 度量元1o 2 3 数据分析技术1 0 2 3 1 主成分分析1 0 2 3 2 信息熵法1 1 2 3 3 灵敏度分析法1 1 2 4 输入输出关联法1 2 2 5 小结1 2 第三章基于软件缺陷回归预测的最优度量元提取模型1 3 3 1 人工神经网络1 3 3 1 1b p 神经网络的学习过程及算法实现1 4 3 1 2b p 神经网络的优缺点1 6 3 4 基于p s o b p n n 软件缺陷回归预测的最优度量元提取模型2 2 3 4 1 数据预处理2 2 3 4 2 构建基于缺陷回归预测的最优度量元提取模型2 3 3 5 仿真实验2 3 3 5 1j m l 数据集的实验分析。2 5 3 5 2k c l 数据集的实验分析3 1 3 6d 、结:;:; 第四章软件缺陷预测模型 4 1 支持向量机概况3 4 4 1 1 基本思想3 4 4 1 2 主要特点及应用。3 4 4 2 支持向量机分类原理3 5 4 2 1 线性可分3 6 4 2 2 近似线性可分3 8 4 2 3 非线性可分3 9 4 3 核函数4 0 4 4p s o 和c s v m 的合并算法4 1 4 5 混淆矩阵4 3 4 6 基于p s o s v m 的软件缺陷预测模型4 3 4 7 仿真实验。4 5 4 7 1 基于j m l 最优度量元的预测模型实验分析及多模型性能比较4 5 4 7 2 基于k c l 最优度量元的预测模型实验分析及多模型性能比较4 6 4 8d 、结 7 第五章结论。4 9 5 1 总结4 9 5 2 进一步的研究工作4 9 硕士学位论文 m a s t e r st h e s i s 参考文献 在校期间发表的论文、科研成果等。 致谢 第一章绪论 软件工程的快速发展起始于2 0 世纪6 0 年代末,它的目的是开发高质量的应用 软件或产品。软件质量最基本的保障因素是软件可靠性,软件中存有的缺陷势必威 胁软件的可靠性,影响软件质量。合理地预测缺陷可以指导测试人员准确地定位、 跟踪以及纠正缺陷,从而提高软件可靠性,维护产品质量,给客户和企业带来双赢。 1 1 课题背景分析 1 1 1 软件危机 2 0 世纪6 0 年代末产生了软件危机。计算机软件开发和维护过程中碰到的诸多 严重问题都可被认为是软件危机,这些问题并不只存在于不能正常运行的软件中, 相反几乎所有的软件都不同程度地存有这些问题。总体上说,软件危机容括下面两 个问题:如何开发软件来满足人们对软件日渐增加的需要;如何维护越来越多的已 存软件。软件危机的典型表现很多,主要有以下几点: ( 1 ) 不能准确地估计软件开发成本和进度n 1 。 在软件开发过程中,经常发生实际成本比估计成本高出一个数量级,实际进度 比预期进度拖延几个月甚至几年的情况,这一结果恶化了用户对开发团队的信誉评 价。而开发团队出于赶进度和节约成本的考虑,又采取了一些权宜之计,这最终出 现降低软件产品质量和激起用户不满的结果。 ( 2 ) “已完成的软件产品不符合用户的要求。 软件开发人员经常没有透彻地分析用户需求,不能够准确地定位所要解决的问 题,这起源于开发人员和用户之间的信息交流不充分,最终导致开发出的产品不符 合用户的需求。 ( 3 ) 软件产品质量得不到保证。 软件可靠性和质量保证的确切定量概念较晚出现,质量保证技术还没有完全应 用到软件开发过程中,软件产品的质量无疑得不到保障。 ( 4 ) 软件不能被维护。 开发人员几乎不能更正程序中所有的错误,主要是不可能使这些程序适应新的 硬件环境,不能在原有程序中增加新的功能以完全满足用户需求。“可重用的软件 仍是一个没有完全达到,但正在努力追求的目标。 ( 5 ) 软件没有匹配的文档资料。 硕士学位论交 m a s t e r st h e s i s 计算机软件不只是程序,还应有匹配的文档资料。在软件开发过程中产生的文 档资料需和程序代码保持一致。开发团队的管理者利用这些文档资料监督和评价开 发过程的进展状况;开发人员之间通过这些文档资料相互地交流信息;软件维护人 员利用它们辅助定位和纠正缺陷。缺少匹配的文档资料或其不合格,势必影响开发 和维护的进程,给它们带来难以估量的问题。 ( 6 ) 软件成本相比硬件成本逐年增加。 近年来,微电子学技术不断进步,生产自动化程度不断提高,导致硬件成本下 降;而软件开发需要大量人力,随着通货膨胀、软件规模扩大、软件数量的不断增 多,软件成本逐年上升。 ( 7 ) 相比硬件发展速度和计算机应用普及趋势,软件开发的速度及其缓慢。 软件产品经常出现“供不应求 的现象。 软件危机的表现不只以上列出的7 条,在软件开发和维护过程中出现的问题越 来越多。 1 1 2 软件可靠性 1 9 6 8 年,北大西洋公约组织的计算机科学家在联邦德国召开会议,提出了“软 件工程 这一名词,从此,软件工程学科迅速起步n 1 。软件工程的定义众说云云, 其中最完整的定义是:采用工程的概念和原理、技术和方法来开发与维护软件,把 严谨的管理方法和当前最好的技术结合起来,经济地开发出高质量的软件,且能够 合理地维护它u 1 。可见,软件工程的宗旨就是开发出高质量的软件产品。近年来, 由于软件规模增加,软件开发周期变得较长,进而耗费更多的人力和物力,因此保 证软件质量显得更加重要。软件产品的质量低下会给企业带来巨大的损失。例如, 1 9 9 6 年,欧洲航天局的一个火箭发射升空,但其在发射之后短短几秒内就发生爆炸, 严重伤害了现场工作人员。这个耗费巨大人力物力的航天计划宣告失败,专家对此 次事故做了详细调查,发现惯性导航系统的软件设计导致了此次事故的发生口】。此 外,美国在一次火箭发射的实验中,误漏掉飞行程序里的一个连字符,导致该次实 验以失败告终。 软件的正确性、可靠性和安全性是影响软件质量的三个重要因素,而软件可靠 性是保证软件质量的本质因素。所以,评价软件质量的一个重要途径在于对软件可 靠性的评价。i e e e 给出了软件可靠性的具体定义,是在规定条件和时间内,软件 不发生失效的机率陋,。 软件若出现如下3 种情况,则可认为发生失效: 2 ( 1 ) 部件不具备执行其功能的能力;( 2 ) 系统或其部件在规定限度内不能执 行所要求的功能;( 3 ) 程序操作违背了其最初的要求。 软件失效在实际的应用中是指:( 1 ) 死机:软件对其输入不产生响应进而不输 出结果;( 2 ) 运行速度不吻合:数据输入或输出的速度违背系统要求;( 3 ) 计算准 确度不高:某一个或多个输出值的计算精度达不到最初的要求;( 4 ) 缺少输出项: 缺损某个或多个重要的输出值;( 5 ) 输出项冗余:多余的数据指令被系统输出砸7 】。 很多原因诸如软件缺陷、硬件故障及人为因素等都有可能引起软件失效,工作 人员若每观察到一次失效,就能够找到一个或多个软件缺陷,则纠正这些缺陷必定 可以减免失效的重复发生,提高软件可靠性嗍。反之,若不及时地查证缺陷,会引 起产品开发、维护的费用增加,最终增加用户的使用成本,甚至在个别情况下会引 起灾难性后果。例如,2 0 0 9 年5 月,美国的1 2 架飞机在执行任务中,由于程序编 码存在错误而导致其多个电脑系统发生问题,幸亏及时采取措施才避免了机毁人亡 的严重后果嘲。 1 1 3 软件缺陷 软件缺陷被形象地称为软件开发过程中的“副产品 ,它常常会使软件产品在 某种程度上达不到用户的需求n 町。软件缺陷又指软件对其期望结果的背离,它包含 3 个方面的意思:失效( f a i l u r e ) ,错误( f a u l t ) 及差错( e r r o r ) 。缺陷产生的根源 是人在理解和解决问题的思维和行为过程中出现了差错,由此会引起软件内部的设 计、编码等存在错误,最终会导致缺陷体现于外部一软件系统的运行结果背离了用 户需求,这被泛称为失效n 。 发现软件中存在的缺陷,并修正这些缺陷是软件测试的目的。软件技术发展至 今,技术人员并没有做到发现并修正所有的缺陷,这主要是因为软件的运行环境、 使用者等能够带来缺陷的因素无时无刻不发生变化。如果测试人员能够在检测缺陷 之余对缺陷进行适当地预测,必定能够更快地发现、定位、跟踪及纠正缺陷,最终 指导管理者对产品进行有效地管理n 羽。 1 2 国内外研究现状及不足 软件缺陷预测技术发展至今大致上分为静态和动态两种预测技术。静态缺陷预 测技术,是利用缺陷相关的度量数据预测缺陷数量或者分布的一种技术;动态缺陷 预测技术,则是根据缺陷或者失效发生的时间预测缺陷随时间如何分布的一种技 术。 3 硕士学位论文 m a s t e r st h e s i s 1 2 1 静态缺陷预测技术 静态预测缺陷的方法可以分为两大类:( 1 ) 基于数量的技术,关注予预测软 件系统中的缺陷数;( 2 ) 基于分类的技术,关注于预测哪些子系统具有缺陷倾向, 哪些子系统无缺陷。 第一类已经有些研究,比如基于软件规模的缺陷数量预测,其常见的模型有 两种。 第一种是基于代码度量元的缺陷预测。早期多数人们认为大约每6 0 行代码含 有1 个缺陷,继而利用这一经验估算系统验证和测试阶段所需的人力和物力。 a l d y a m a 最早给出了软件缺陷与代码行的量化关系:f = 4 8 6 + 0 0 1 8 l ,此关系式求 出了程序在验证阶段开始之前有可能存在的缺陷数量。 第二种是基于软件体积度量元的缺陷预测n 钔。h a l s t e a d 给出软件缺陷与体积度 量元的量化关系:d = v 3 0 0 0 ,其中v = l 0 9 2 ( 玎) ,= n l + 2 ,刀= r l + 刀2 ,刀l 代表 不同操作符数量,r ,代表不同操作数数量,1 代表总的操作符数量,2 代表总的 操作数数量。此关系式求出了程序在验证阶段发现的缺陷数目。 软件随着其规模的增加复杂度越来越高,人们渐渐觉得不只软件规模影响缺 陷,复杂度同样影响缺陷。m c c a b ec y c l o m a t i cc o m p l e x i t y 度量元( c c ) 是较著名 的复杂度度量元。在软件模块中,它或者依靠圈理论中的节点和边的数量度量控制 流复杂度,或者根据决策路径计算控制流复杂度,不管如何,这两种方法求出的度 量元数据相吻合n 4 3 。a i v o s t o 公司提出c c 与误修复概率具有如下关系:c c ( 1 1 0 ) , 5 ;c c ( 2 0 - 3 0 ) ,2 0 ;c c ( 5 0 ) ,4 0 ;c c ( 接近1 0 0 ) ,6 0 u 射。此关系 的意思是,若c c 在1 1 0 之间,修复缺陷有可能引入新缺陷,其概率是5 ;若c c 在2 0 - 一3 0 之间,修复缺陷可能引入新缺陷的概率是2 0 。误修复概率随着复杂度的 增加越来越高,在c c 接近1 0 0 时,新缺陷因修复缺陷而产生的机率高至6 0 。 综上可知,早期的软件度量元主要有3 大类:代码度量元、h a l s t e a d 度量元和 m c c a b e 度量元。其实影响软件缺陷的度量元较多,目前研究界并没有得出预测缺 陷的一致的、尽可能完全的、准确的度量元,尚缺乏建立基于若干类度量元的预测 模型来研究软件缺陷同度量元之间的复杂关系。早期的缺陷数量预测模型主要根据 经验来估计,随着软件规模和复杂度的飞速增加,经验期望值越来越低,这些模型 对缺陷数量的预测准确度并不高。 第二类方法更成功一些。利用软件度量元预测缺陷分布是一个重要的趋势和研 4 硕士学位论文 m a s t e r st h e s i s 究内容。 目前用于建立软件缺陷分布预测模型的两大技术是统计学习法和机器学习法。 常见的统计技术有逻辑回归( l o g i s t i cr e g r e s s i o n ,l r ) 、聚类分析( c l u s t e ra n a l y s i s , c a ) 、支持向量机( s u p p o r tv e c t o rm a c h i n e s ,s v m ) 等;机器学习技术有人工神 经网络和贝叶斯信念网络等。 逻辑回归是线性回归的一种改进技术n 副。传统的线性回归技术无法处理分类时 出现的不在0 1 之间的概率值,逻辑回归基于这一现象,采用对数变换将其结果映 射成一o 。+ 之间的任意值。这两种方法较大的缺点在于不能准确地找出匹配样本 集的权值。 根据输入数据自身的特性将其划分为几个类别是聚类分析的宗旨h 力。聚类分析 在缺陷预测领域常用的算法是k 均值聚类,其根据预先设定的k 个分类数目自动划 分软件模块,之后这些类被度量人员手动标定为具有高缺陷的类或低缺陷的类。 s v m 是一种新型的统计学习技术,其预测缺陷分布可以看作是模式分类,即预 测哪些子系统具有缺陷,哪些子系统无缺陷。在这方面的应用中,s v m 方法及其参 数,核函数及其参数的选择方法仍没有达成一致的模式;换句话说,s v m 最优参数 的获取还只是凭借经验,实验对比得到。 近年来非线性模型如人工神经网络取得了发展,但是人工神经网络由于泛化能 力差,易陷入局部最优,“过学习模式,以及计算能力有限等缺点在预测软件缺 陷方面也存在一定的不足。 贝叶斯信念网络本身是一种不确定性因果关联模型,它在处理不确定性问题方 面具有优势n 引。 1 2 2 动态缺陷预测技术 人们依据经验研究、统计技术等两种方法寻找软件缺陷随其生命周期的分布, 或者研究缺陷随生命周期的某个或某些阶段时间的分布都称为动态缺陷预测技术。 r a y l e i g h 分布模型和指数分布模型是两个较著名的动态缺陷预测模型。 r a y l e i g h 分布模型,预测软件缺陷随其开发生命周期的分布。它又常用于软件 可靠性预测中“引。在r a y l e i g h 模型中,概率分布密度函数是r ( 0 = 2 k ( t c 2 ) p 却尼r , 累积分布函数是尺( f ) = k ( 1 一e - ( “c ) ) 。在这两个公式中,c = 2 ;t 是时间变量;t 脚 是r ( f ) 达到峰值对应的时间常量,由此可知c 也是一个常量;x 是总缺陷数。早期 5 硕士学位论文 m a s t e r st h e s i s 人们得出r ( t 脚) k o 4 ,也就是说,( f ) 达到最大值时出现的缺陷数与总缺陷的比 率约是0 4 。所以,根据这一结论,在任一时间预测总缺陷数及具体的r a y l e i g h 分 布参数能够得到很好的解决。 指数分布模型,预测软件缺陷在验收类测试阶段的分布n 训。指数分布模型的意 义是,测试阶段出现的缺陷或者失效模式能够反映软件产品的质量特征。它的缺陷 概率分布密度函数是d ( t ) = k ( a e - a t ) ,累积缺陷分布函数是d ( f ) = k ( 1 一e - a t ) 。在这两 个公式中,x 是总缺陷数;a 是缺陷探测率;t 是时间。指数模型在可靠性研究中 占有重要的地位,它是研究可靠性增长模型的基石。 1 3 缺陷预测技术未来发展方向 软件缺陷预测技术旨在预测软件中还存有的缺陷。它的基本内容是,利用软件 的规模、复杂度以及过程等这些能够度量缺陷的度量元和软件中已存在的缺陷,预 测软件中潜在但暂时还没被发现的缺陷。人们通过软件缺陷预测技术能够洞察软件 产品的失效模式、获悉产品质量状态,最终决定软件能否交给用户使用。 目前的静态缺陷预测技术仍没有得出预测缺陷的一致的、尽可能完全的、准确 的度量元,即只是研究部分度量元同缺陷数量或者分布之间的关系,这些模型有一 定的局限性,预测的准确度因受限制条件的改变而发生变化,具有不稳定性。 未来的静态缺陷预测技术需挖掘影响缺陷数量或者分布的若干准确、详尽和完 备的度量元,即考究多类度量元同软件缺陷之间的复杂关系,建立一个智能的预测 模型。 1 4 本文结构 通过阅读大量的国内外文献,发现现有的软件缺陷静态预测技术存在不足,并 分析其原因所在。之前的软件缺陷静态预测技术大多是基于软件规模的缺陷预测, 基于软件复杂度的缺陷预测,并没有综合分析不同种类的软件度量元对缺陷预测的 影响,因此本文综合代码度量元、m e c a b e 度量元、h a l s t e a d 度量元等预测缺陷的 数量或分布。鉴于度量元数据收集的冗杂性,部分度量元对缺陷预测的积极影响不 大或具有消极影响,本文采用智能计算技术构造一个预测缺陷数量的最优度量元提 取模型,并利用提取的最优度量元预测软件缺陷。全文安排如下: 第一章:对本课题的研究背景进行阐述,介绍目前研究此课题的国内外现状并 分析其不足,提出该课题的未来发展方向,并概述本文的主要工作。 6 硕士学位论文 m a 8 t e r st h e s i s 第二章:分析软件度量元和软件缺陷之间的关联性。首先简要介绍软件度量和 度量元的基础内容;其次详尽介绍本文提到的代码度量元、m c c a b e 度量元和 h a l s t e a d 度量元;最后归纳经典的数据分析技术包括主成分分析、基于信息熵的共 同信息法、灵敏度分析法和分离联系法。鉴于以上数据分析技术各有其缺点,本文 引进输入输出关联法分析度量元与软件缺陷之间的关联性。 第三章:利用粒子群优化算法和误差反传神经网络相结合的技术构建基于软件 缺陷回归预测的最优度量元提取模型,并进行仿真实验,验证此模型的可行性。 第四章:在第三章提取出的最优度量元的基础上,利用粒子群优化支持向量机 的分类技术构建软件缺陷预测模型,并通过实验比较其与早期模型的预测效果,验 证此模型的可行性和有效性。 第五章:对本文提出的模型进行总结,并规划今后进一步的研究工作。 第二章度量元与软件缺陷的关联分析 硕士学位论文 i 渡a s t e r st h e s i s 2 2 2m e c a b e 度量元 软件模块内部的程序复杂性决定软件结构的复杂性,进而影响整个软件复杂 性。度量程序结构复杂度的内容是m c c a b e 度量元,其由m a c a b e 度量方法得出。 m c c a b e 度量方法的理论依据是图论和程序结构控制理论,该方法的基本步骤是: 第一,转化程序控制流图为有向图,也叫程序图;第二,交换该程序图为强连通有 向图;第三,计算该强连通有向图的环数。这个环数就是程序结构的复杂度,简称 为圈复杂度。为了帮助读者理解m c c a b e 方法,本文阐述该方法的一些关键概念: 程序图,首先将程序流图中每一个处理框变为一个结点,其次将连接不同处理 框之间的箭头变为有向弧,由有向弧连接结点构成的图称为有向图,这个有向图就 是程序图啪】。 某图中,从任一个结点出发都能到达图中所有其他结点,则该图称为强连通图。 正常程序的程序图都是连通的,但常常未必是强连通的,这是因为靠近程序出 口的结点在没有辅助条件的情况下,无法到达较高的结点。使程序图成为强连通有 向图的有效方法是:从出口点到入口点画一条虚弧,这样出口点可以借助入口点到 达连通有向图中的其他任一结点,且连通有向图中的任一结点总能到达出口点,这 样的连通有向图就是强连通有向图。 一个强连通有向图中线性无关环的个数,就是强连通有向图的环数,它的计算 公式如下: y ( g ) = ,疗一刀+ p ( 2 1 ) 在公式( 2 1 ) 中,y ( g ) 是强连通有向图g 的环数,m 是g 的弧数,它包括从 出口点到入口点的虚弧,刀是g 的结点数,p 是g 中分离部分的数目,它的值在强 连 o f 和 的 2 2 3h a l s t e a d 度量元 h a l s t e a d 度量元由h a l s t e a d 提出。它包括软件长度( ) 、体积( v ) 、困难 度( d ) 、等级( l ) 、工作量( e ) ,时间( t ) 等度量元乜。它们的计算表示 为: n = l + 2 ( 2 2 ) v = l 0 9 2 ( n l + 刀2 ) ( 2 3 ) d :旦丝 ( 2 4 ) 2 2 三:一1 ( 2 5 ) e = d v( 2 6 ) r :鱼 ( 2 7 ) j 5 其中,i 、n 2 、r l i 及胛2 的意义请参看本文1 2 1 节。 2 3 数据分析技术 常见的数据分析技术有主成分分析、信息熵法、灵敏度分析法、分离联系法等 方法。 2 3 1 主成分分析 人们在研究某个对象时,总是希望获得尽可能多的关于该对象的信息,于是不 惜一切代价,引入足够多的描述该对象的变量,这些变量数据形成了一个高维数据 系统。高维数据系统给数据分析与处理带来的问题有:( 1 ) 过高的维数导致较大 的计算量;( 2 ) 变量之间的关系不明确。 主成分分析,在力求数据信息丢失最少的原则下,对高维变量空间进行降维处 理;或者说用原来变量的少数几个线性组合代替原来变量,从而达到简化数据、揭 示变量间关系的目的口钉。原来变量的线性组合称为综合变量,析出的主成分是少数 综合变量。 主成分分析法的弊端在于析出的综合变量不能反映因变量与目标变量之间的 因果关系。也就是说,人们常常不知如何修改因变量的值使综合变量更好地反映目 l o = : 硕士学位论文 m a s t e r st h e s i s 标变量:综合变量虽可以达到多个因变量线性组合的效果,但隐藏了单独的因变量 与目标变量的因果关系。 2 3 2 信息熵法 信息熵来源于香农信息论胁3 。香农信息论的成立有其前提条件,它假设在信源 空间中,来自信源的不同符号发生的概率是预先知道的或者可以测定的。在物理系 统中,信源发出某一符号x f 时,产生的信息量称为自信息,用c ( x f ) 表示汹1 。不同 符号发生时产生的信息量不同,换句话说,c ( x f ) 是一个变化值。很明显,c ( x f ) 不 能被作为整个信源的总体信息量度。自信息c ( x f ) 的计算公式如下: c ( x f ) = - l o g p ( x f ) ,i = l 一2 ,刀 ( 2 8 ) 其中行为信源发出的包含总体信息量的符号数,烈而) 是x ,发生的概率。 自信息的数学期望称作信源的平均信息量,它是信源各不同符号x 。在信源概率 空间中的统计平均值,它的计算公式如下: 打 r ( x ) = e ( - l o g p ( x f ) ) = - y p ( x f ) l o g p ( x f ) ( 2 9 ) i = l 香农把公式( 2 9 ) 求出的r ( 工) 叫做信息熵。它是信源总体的平均不确定的量度。 此方法假设信源各种不同符号的发生概率是可以测定的,说明它适合于离散数据变 量。 2 3 3 灵敏度分析法 灵敏度分析法,分析当某一系统的设计变量或者参数发生变化时,它的性能受 到影响的敏感程度大小汹3 。此处的敏感程度即灵敏度,研究人士常用导数的信息来 刻画它。 若某一优化过程是基于梯度设计的,则目标函数相对于设计变量的导数常常表 示为灵敏度,而其映射出目标函数值的变化受设计变量改变的影响。人们对灵敏度 信息的分析处理,能够指导使目标函数达到最优的设计与搜索方向,最终辅助决策 的制定。 灵敏度分析法最大的缺点是需要计算输出变量即目标变量对输入变量的导数, 计算过程较复杂。 硕士学位论文 m a s t e r st h e s i s 2 4 输入输出关联法 输入输出关联法起源于分离联系法。分离联系法包括分离法和联系法。在去掉 某一变量时,分离法计算数据组内距离与组间距离之比,该比值即为此变量的分离 值;联系法计算目标变量与输入变量的关联度。 分离法只关心输入变量之间的差异度,并未考虑输入变量对目标变量的影响; 而本文的首要工作是分析度量元同软件缺陷之间的关联性,故其将输入变量看作度 量元,目标变量看作缺陷数量,采用改进的联系法又称输入输出关联法来分析它们 之间的关联性。 输入输出关联法通过计算由一个输入变量值发生的变化引起目标变量的累加 变化值来决策此输入变量对目标变量的重要性。如对于一个变量k ,因它的值发 生变动而引起的目标变量值变化越大,则说明此变量的重要性较高;反之若目标变 量值变化不明显或者较小,可知该输入变量相对目标变量的重要性不高。输入输出 关联法的计算公式如下: ,( 七) = y s i g n i x q , k ) - x ( j ,七) i s i g n i y ( f ) 一灭_ ,) l ( 2 1 0 ) 海j 其中,( 七) 是变量k 的输入输出关联值:x ( i ,k ) ,x ( j ,j j ) 分别是变量k 在样本i 和j 中的值;灭f ) ,畎,) 分别是样本i 和j 的目标变量期望值。很明显,s i g n ( x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论