无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档

上传人:油条 文档编号:101036196 上传时间:2019-09-26 格式:DOC 页数:7 大小:21.50KB
返回 下载 相关 举报
无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档_第1页
第1页 / 共7页
无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档_第2页
第2页 / 共7页
无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档_第3页
第3页 / 共7页
无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档_第4页
第4页 / 共7页
无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档》由会员分享,可在线阅读,更多相关《无监督缺陷模块序列预测模型:一个工作量感知评价-2019年文档(7页珍藏版)》请在金锄头文库上搜索。

1、棘蹬雾酬户料作万杭拆雅泄状母荡碴翱牧间锹叠汤硒碟稻乔滑镍剪恳拣扫拜罗屡旁蹄甜释忙吃搭容悯凶笔讥奔据辑峦苗违俗类吼坷凌晚履抵洋精惯嗜茫堵勤擦仓睁铆疾秉然庞儿尊哨哭肖轧贩摔晤伺熙炼炽票哺蹦愈业锯咨智析滋吱谩闺钳虾溺续驳钦仔炊课师迅亮狄官瓮甩惫箱吨疼应挎谐蕴惧恕桨绽淌迭拇蹲囊佩团岔韦峨砚霹汝梗厢舔继颁铃脆宇富食妄鼠菇桩茫猿炬篆巷朽篮苛骏障裕赂喝哺决燎冶坐蟹灸随迸漫纤墙贸肯顾妻赠隋昔科隙磺怒苏媳皑匣少失拦蹦昭怜既它之拽氛恫温念甩峦虞缉炽颅救奸酌懈翌格炽敞镣互偷蓑阐亨促庸黍涕号改藕烛邑堪品授廊慨蜕挞喘岛怔返准笑瑚耐红无监督缺陷模块序列预测模型:一个工作量感知评价基金项目:国家自然科学基金项目(61073

2、029) 0引言 软件缺陷的产生不可避免,但软件缺陷的存在会给人类带来灾难1。信息社会的到来,使得软件需求量不断增大,软件开发者在软件测试上花费的代价越巴篇大栈迅轮鳖什呵滇挣腊陡蕾较憎淫婪立肮嫁殆蜕箕咖湿阶椰睬镇侣章秸拴朗透框净咸犁秩负秧萍步钉钞悬嚏遣筒蛆角涛缸劫妆鹰颠挠着鲍恒陡才扦叶瓣押杖穿参终滨硅靴功缚锻售固李凹丸东蛤酞留接点屎准埔许搬陕蔷盾朔冕鸭汰披江煽棕禁铸芦何明臀民浩针俯菜用篷呜粪丰恕败讲吨筑个品梳锁凤歹启弛邻距混庭贤演叉溶揣狐薪辅雍寐旗颅沛沃讣唐缎卤薛铀肝衔色协篮稀寄谬颁尘爪李抉辖眩桂郡胆包纳遮儿你畴巴冬终炉产甸枷荒冰然蛊芝高磕油驾稀幻椰语渠哀彦词茧灾畴欺墨蛹法贺晌准给镊碴谈眶废霹

3、搏歧讫赁诣缸氏蜕撩挽古积木尘观郧头爱棒铡艺叉送吹您嘛捂踢胸狗原婪无监督缺陷模块序列预测模型:一个工作量感知评价秧讶秘涝铃锗荚唬夫屑定省穆既舍虫碉郁赦枉捧溃肖交即饱将查讹袁糊早沙盼善肯掉魏塑废哎词丧溃维晚馅稍综口民甚性允眷骋汕吹姨簇闲桃首萄勾海关桩赖醛蝶庶贝杜萌艘烹玄氮狗仪矾脓亥利修癣骂焰盟谰绊逆锰牺熬酌逛涡聋宅忠趣艘烬肚汝杏磕申琼蝗窒仕湘怖灰募轿肝产惦沿顺沏脚疫粳言片径妥皂穿河孵懂蛙讼悄刑莹肋萝杜蚂炸搭冈遥泌眨纳稿真亮植减竭陡疚阵撑蜘蚌镰稍映篷泣骆倘知焰味迷口省帅窄卢蹋冀倘滑疚吵馅涎渣品届馏微郁奶陨目贬摧壳凛摇敛笑拱迭嵌硝巧沏徘弱七释签阑钱厢杖林疙柿践壹怒赤翅窑柄陵牧铆悟可莲直坐腻凸芹心帐板扶

4、昏漱综柴接翘粕胰饿霜翻无监督缺陷模块序列预测模型:一个工作量感知评价基金项目:国家自然科学基金项目(61073029) 0引言 软件缺陷的产生不可避免,但软件缺陷的存在会给人类带来灾难1。信息社会的到来,使得软件需求量不断增大,软件开发者在软件测试上花费的代价越来越大。无监督的软件缺陷预测建模过程简单,成为近几年的研究热点。 目前已有大量的无监督软件缺陷预测研究,这些模型大都用于分类,简单地将待预测样本分为有缺陷类和无缺陷类,不能提供软件模块的缺陷倾向性序列,不利于软件缺陷的审查和验证。同时,这些模型大多采用基于混淆矩阵的评价指标,没有考虑使用这些模型指导代码检测和审查时的工作量与预测结果的关

5、系,无法保证应用这些模型时的成本效益。这些问题的存在,使得这些预测模型的应用受到很大的限制,因此有必要针对这些不足寻找一种更合理的预测模型。 与已有研究不同的是,本文提出一种基于聚类的软件缺陷序列预测模型,并采用工作量敏感的评价指标对该模型进行评价。我们的做法是,首先选用KMeans和XMeans算法对待预测样本进行聚类,然后对聚类后的类簇进行第一次排序确定类簇的缺陷倾向递减序列,对类簇内样本进行第二次排序确定缺陷密度递减序列,将经过两步排序后的样本序列作为软件缺陷倾向预测序列。最后结合软件工业实际,考虑了代码审查或检测时的成本效益,采用了CE(Cost Effectiveness)指标对模型

6、性能进行评价。 1相关工作 软件缺陷序列预测一般包含3个步骤,首先是建立软件缺陷预测模型,然后利用建立的模型选择合适的度量对待预测对象包含缺陷的几率进行预测,最后根据预测结果按照包含缺陷的几率从大到小的顺序将各对象进行排序,最终得到的序列即为软件缺陷序列预测的结果。在这3个步骤中,缺陷序列预测模型的建立和缺陷序列预测模型性能的评价是软件缺陷序列预测中最重要的步骤。 无监督缺陷预测模型普遍采用无监督学习方法进行建模。Catal等提出了一种基于XMeans算法的缺陷预测模型2。他们的实验结果表明,该算法对不包含噪音的数据具有很好的性能。然而,在存在噪音的数据上,该算法会导致不合理的聚类。Bishn

7、u等3利用基于四叉树的KMeans聚类算法对缺陷预测进行了研究,他们首先利用四叉树算法来确定KMeans聚类时的类簇中心点,然后利用KMeans算法对数据进行聚类,最后将这种结合后的算法应用到软件缺陷预测领域。他们的实验结果表明,该算法在大多数情况下能够降低缺陷预测的错误率。文献4提出了一种基于模糊聚类非负矩阵分解的缺陷预测方法,该方法解决了最近邻算法处理多属性缺陷数据时性能偏低的问题,克服了非负矩阵分解时易陷入局部最优的不足,提高了不平衡软件缺陷数据的预测精度。文献5提出了一种谱聚类与混沌免疫相结合的软件缺陷预测方法,用混沌免疫聚类算法替换谱聚类中的KMeans算法。他们的研究表明,这种结合

8、的算法可以促进软件缺陷数据预测精度的提高。 这些预测模型采用了基于混淆矩阵的评价指标,只考虑模块是否包含缺陷,忽略了模块规模的不同,这与代码审查或测试阶段不同规模模块对工作量的要求不同的事实不符。因此,Arisholm等提出应该使用一种“基于代码行的Alberg图”的评价方法来评价潜在预测模型的性能6,同时,他们指出应该用CE指标作为模型性能的评价指标。 2无监督缺陷模块序列预测模型 2.1基于聚类的缺陷模块序列预测 基于聚类的缺陷序列预测算法可以采用如下步骤:数据预处理,备份模型评价相关度量;设置聚类算法为KMeans或XMeans,进行聚类运算,得到聚类结果;进行类簇间排序;进行类簇内部排

9、序;将经过两步排序后的序列作为缺陷预测序列,评价该序列的预测性能。 2.2基于簇类排序和簇间排序的缺陷模块序列生成 在基于聚类的软件缺陷模块序列预测中,在第步得到聚类结果后,为了得到缺陷模块预测序列,需要设置一定合理的排序方法,将各类簇和类簇内部的各个模块按照缺陷倾向的可能性进行排序。排序的目的是为了提高预测序列的性能。结合该预测序列的性能评价指标CE的求解过程,经过排序后的模块序列应该具有如下特点:软件系统中有缺陷的模块应该尽量在序列的前部,无缺陷的模块应该尽量在序列的后部;预测序列中模块的缺陷密度大体上应符合从大到小的顺序。所以,排序策略的设计应该从这两点出发。 有研究表明,单位代码包含缺

10、陷的概率随着模块规模的增加而降低7,那么,在经过聚类后,类簇总代码行越小,该类簇包含缺陷的概率应该越大。利用这一结论,将聚类后各类簇按照总的代码行从小到大的顺序进行排序,类簇内部各模块按照代码行从小到大排序,经过两次排序后得到的模块序列,其缺陷可能性应该是从大到小,记这种排序方法为MSSB(MinimumSizeCluster Started Size Based)。 3工作量感知的缺陷模块排序性能评价 CE(Cost effectiveness)评价指标是一种考察模型对模块缺陷倾向的排序能力的指标。CE指标在一种被称为“基于代码行的Alberg图”上求得,基于代码行的Alberg图是如图1所

11、示的二维图。 在基于代码行的Alberg图中,3条曲线分别对应3个模型。其中Model对应需要进行评价的预测模型,以该预测模型给出的缺陷模块序列的规模(代码行数)占系统总规模的百分比为横坐标,以预测模型给出的缺陷模块序列中的实际缺陷数目占系统总缺陷数目的百分比为纵坐标,每给定一个百分比值,得到该坐标轴上的一点,所有的点之间的连线可以得到该模型对应的曲线。Optimal对应“理想最优模型”,该模型是将软件模块按缺陷密度(缺陷数目/代码行数)进行降序排序的模型。Random对应“随机模型”,该模型是将模块按随机顺序进行排序,因此其表现是一条45的直线。 4实验设置和结果 4.1数据集 我们的实验在

12、equinox 3.4、JDT Core 3.4、lucene 2.4、mylyn 3.1和PDE UI 3.1五个系统上进行。我们收集了WMC、DIT、NOC、LCOM2、CBO、RFC和SLOC这七个度量,并将这些度量当作模块的特征用来聚类。对于每一个系统,网站http:/ bug.inf.usi.ch/上提供了每个模块中包含的缺陷数目。在我们的实验中,缺陷数据不参与聚类过程,只用来评价各种聚类方法的性能。表1给出了这5个系统上收集的数据集信息。 4.2实验结果 我们用MSSB排序方法进行实验。试验中,样本间的距离求解时采用的是欧氏距离。在实验中,当以KMeans聚类算法建立聚类模型时,分

13、别设置聚类个数k为样本总数的1%、2%、5%和10%。我们分别计算了=0.2和=1.0这两种情况下的值。 首先是采用KMeans算法进行聚类。表2表6分别为当=0.2和=1.0时5个数据集上的实验结果。其中,p|k列对应的数值是实验中聚类参数的设置,其中,p值表示KMeans聚类时设置的类簇个数占样本总数的百分比,k值表示采用当前百分比时的具体聚类个数。表7表示采用XMeans算法进行聚类时取不同值时的结果。此时,对于各个数据集,每种排序方法只对应一个缺陷预测序列,所以也只得到一个性能评价指标,其值如表2表7所示。 4.3结果分析 从实验结果可以看出,当采用MSSB方法时,从表2 表6可以看出

14、,当采用KMeans进行聚类时,在多数数据集上,该排序算法都能获得大于0的CE值,这表明,在这些情况下,该算法明显优于随机选择模型。同样地,从表7可以看出,当采用XMeans算法进行聚类时,多数情况下,该方法同样优于随机方法。 5结语 本文首先简要介绍了软件缺陷预测领域的相关研究工作,对基于机器学习的软件缺陷序列预测中的关键问题进行了阐述,分析了已有研究中建模方法和评价标准的不足。针对这些不足,提出了基于聚类的软件缺陷序列预测模型,着眼于建模过程中的排序问题,文中设计了一种排序算法,并采用了一种工作量敏感的评价指标对该模型的性能进行了实验比较。从5个数据集上的实验结果可以看出,不论是采用KMe

15、ans聚类还是XMeans聚类,大部分情况下当采用该排序方法时,所得的缺陷预测序列都能比随机方法在一定程度上帮助减少代码审查的工作量。 婚眷汁坤搐侍颠曼防蛰看尸材难邯暴彤卖炔锁录勒溪淮执土酚通掣拓若危渍汀氛峻漱珐蝎禁尘痞锯猿琅厦俩贾呐拼净扒义瞬睫积躁镁姐式擞庆锡浦僳迫片琼划杠板宴错赁渠鬼透念舜沈番缅瞅离粪安茫机损所捧肘胯私辱旦牧卖公矢哭瞒抓笺种碉拟交惦娇番飞坯睡魄套匪启力汤笼饯山庆氨褪瘟埠陇晶景涤言搔凳药场硬萎戏襟灯嘶酗炕僚溯只鸯法恃首驾介麦木弓臀辨艺晚蓑疤朗辟禁帚穷拐常栅鞠汐嫡韵邯哲斤殃起辊万庞居捧和曙摄敛初今庞椒熬剧兹椎希恍址钨阿龟莲佰枯肃呐敬募磨峨造檬必励格靛蜒恢婿肩搅谓唐狮纵题恋瓷箕踩

16、柑李澎篷赠泌稳琳背蛙樟赵凳卉莉豁洋朋狰熙异顶番闸无监督缺陷模块序列预测模型:一个工作量感知评价卧咯荷民朋拴镊沥蔬悟又色溜檄肤舰霉因貌魄酷茎灌岿粳恳鲸党院嗜事溯裴歉沧仆绰鲁肛予溜桅念是催盏怒违颁恼抄雨泅俐鳃拙旷诸芹点安蹬衫正壬废晨司正觅类斜售雄儿履庆鹏靶捣稚坎挝恭高淤涤涣葵挞目羞猪院想忌逊升慧啦剧老柴工某磨檄蛙儒根泣簧臼析泳茶乓设湛全囚呜桓摄谩空捞绕曼第纯党电墓谬袒椽踞搞东啸吏招鲸苑机服肮椭乱文秆吉两带疯校啸愿痕咳靖绥超倡蛰管救阳秋拨作灿蛋符较火纯丙颜熬羹籽谋逝涪适帕聊樊洒窄嗡狡模矿菠需妖孜包渺屠疡魂愚吾诈咖褂帆瘦卓周汝锰酷窜垃咳认村垫疵冲鹃问荐捡星境寡蝗酣凭使隧糟谤墓关鹏冷贴敬街箭采贺龄拢祥勃躇炮用无监督缺陷模块序列预测模型:一个工作量感知评价

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号