{“状态”:“确定”,“消息类型”:“工作”,“信息版本”:“1.0.0”,“邮件”:{“索引”:{-“日期-部件”:[[2024,4,18]],“日期-时间”:“2024-04-18T05:07:41Z”,“时间戳”:1713416861742},“引用-计数”:29,“发布者”:“威利”,“问题”:“6”,“许可证”:[{“开始”:{“日期-零件”:[[2008,9,3]],09-03T00:00:00Z“,”时间戳“:1220400000000},“内容版本”:“vor”,“延迟天数”:0,“URL”:“http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor”}],“内容域”:{“域”:[],“交叉标记限制”:false},“短容器标题”:[“J.Softw.Maint.Evol.:Res.Pact.”],“已发布的印刷品”:{“日期部分”:[[2008,11]]},“摘要”:摘要<\/jats:title>代码克隆是指在源代码中具有与之相同或类似的其他代码片段的代码片段。代码克隆的存在通常被认为是使软件维护更加困难的一个因素。例如,如果修改了带有代码克隆的代码片段,则需要考虑是否也必须修改其他每个代码克隆。删除代码克隆是避免由于存在代码克隆而出现问题的一种方法。这使得源代码更易于维护和理解。本文提出了一组指标,建议如何重构代码克隆。此外,还提供了工具Aries,它可以自动计算这些指标。该工具提供的指标是某些重构方法的指标,而不是建议重构方法本身。该工具只执行轻量级源代码分析;因此,它可以应用于大量代码行。本文还描述了一个案例研究,以说明如何使用此工具。基于该案例研究的结果,可以得出结论,该方法可以有效地合并代码克隆。版权所有\u00a9 2008 John Wiley&Sons,Ltd一种基于度量\u2010的方法,用于识别重构机会,以合并Java软件系统中的代码克隆“],”前缀“:”10.1002“,”卷“:”20“,”作者“:[{”给定“:”吉木“,”家族“:”Higo“,“sequence”:“first”,“affiliation”:[]},{“given”:“Shinji”,“family”:“Kusumoto”,“segment”:“additional”,“ability”:[]},“givent”:“Katsuro”,“家族”:“Inoue”,“sequence”:“additional”,“affiliation”:[]}],“member”:“311”,“published-on-line”:{“date-parts”:[[2008,9,3]]},“reference”:[{“key”:“e_1_1_2_2”,“unstructured”:“IEEE.软件维护标准.IEEE Standard for Software Maintenance。IEEE Stanfore 1219 1998.”},{“密钥”:“d_1_3_2”,“卷时间”:“软件进化:软件维护挑战”,“作者”:“Arthur L”,“年份”:“1988年“},{“key”:“e_1_1_4_2”,“unstructured”:“YipSWL LamT.A software maintenance surview.the Proceedings of the 1st Asia\u2010 Pacific software Engineering Conference December 1994;70\u201379.”},“{”key“:”e_2_1_5_2“,”doi-asserted-by“:”publisher“,”doi“:”10.1137\/S00975392246707“}”,{”key“:“e_ 2_1_ 6_2”,”unstructure“:”BaxterI YahinA MouraL AnnaM BierL。使用抽象语法树进行克隆检测。1998年3月98日国际软件维护会议记录;368\u2013377.“},{”key“:”e_1_2_1_7_2“,”doi-asserted-by“:”publisher“,”doi“:”10.1109\/TSE.2002.1019480“}”,{“key”:“e_1_i_1_8_2”,“doi-assert-by”:“crossref”,“unstructured”:“KomondoorR HorwitzS.使用切片识别源代码中的重复。第八届国际静态分析研讨会论文集,2001年7月;40\u201356.”,“doi”:“10.1007\/3-540-47764-0_3“},{“key”:“e_1_2_1_9_2”,“doi-asserted-by”:“crossref”,“unstructured”:“MayrandJ LeblancC MerloE.使用度量自动检测软件系统中功能克隆的实验。1996年11月96日国际软件维护会议论文集;244\u2013253.”,“doi”:“10.1109\/ICSM.1996.565012”},}“key“:”e_1_1_10_2“,”volume-title“:”重构:改进现有代码的设计“,”author“:”Fowler M“,”year“:”1999“},{“key”:“e_2_1_11_2”,”unstructured“:”RysselbergheF DemeyerS.从重构的角度评估克隆检测技术。2004年9月IEEE第19届自动化软件工程国际会议论文集;336\u2013339.“},{”key“:”e_1_1_12_2“,”doi-asserted-by“:”publisher“,”doi“:”10.1109\/TSE.2004.1265817“}、{”密钥“:”e_1_2_13_2“,“doi-assert-by”:“publisher”,“doi”:“10.1016\/j.infsof.2006.10.005”},“key”:“e_2_1_14_2”,“unstructured”:“Ant。可从以下网址获得:http://\/Ant.apache.org \/[2008年8月5日]。“},{”key“:”e_1_2_1_15_2“,”unstructured“:”朱尼特。网址:http://www.junit.org\/[2008年8月5日]。“},{”key“:”e_1_1_16_2“,”unstructured“:”BalazinskaM MerloE DagenaisM Lag\u00fceB KontogiannisK.支持面向对象的系统重构的高级克隆\u2010分析。2000年11月IEEE第七届逆向工程国际工作会议论文集;98\u2013107。“}基于XML\u2010的变量配置语言\u2014重用技术。网址:http://\/xvcl.comp.nus.edu.sg\/[2008年8月5日]。“},{”key“:”e_1_1_18_2“,”doi-asserted-by“:”publisher“,”doi“:”10.1201\/9781420013115“}”,{“key”:“e_1_i_19_2”,“doi-assert-by”:“crossref”,“unstructured”:“Jarzabek S ShubiaoL。使用自适应meta\u2010programming\u2019技术,使用\u2018组合消除冗余。2003年9月ESEC\u2010FSE’03欧洲软件工程会议和ACM SIGSOFT软件工程基础研讨会论文集;237\u2013246.“,”DOI“:”10.1145\/949952.940104“},{“key”:“e_1_2_1_20_2”,“DOI-asserted-by”:“publisher”,“DOI”:“10.1002\/smr.333”},“{”key“:”e_1_cu1_21_2“,”DOI-assert-by“:”crossref“,”unstructured“:”KimM SazawalV NotkinD MurphyGC公司。代码克隆谱系的实证研究。2005年9月ACM SIGSOFT软件工程基础研讨会论文集;187\u2013196.“,”DOI“:”10.1145\/1095430.1081737“},{“key”:“e_1_2_1_22_2”,“DOI-asserted-by”:“crossref”,“unstructured”:“HigoY UedaY KusumotoS InoueK。基于代码克隆分析的同时修改支持。第十四届亚太软件工程会议论文集,2007年12月;262_2013269.”,“DOI”:“10.1109\/ASPEC.2007.44”},}“key“:”e_1_2_1_23_2“,”doi-asserted-by“:”crossref“,”unstructured“:”KapserC GodfreyMW。\u2018克隆被认为是有害的\u2019被认为是有害的。2006年10月第13届逆向工程工作会议记录;19\u201328.“,”DOI“:”10.1109\/WCRE.2006.1“},{“key”:“e_1_1_24_2”,“unstructured”:“BalazinskaM MerloE DagenaisM Lag\u00fceB KontogiannisK。测量基于克隆的再工程机会。IEEE第六届软件度量国际研讨会论文集,1999年11月;292\u2013303.”},“key“:”e_2_1_25_2“,”DOI-asserted-by“:”publisher“,“DOI”:“10.1109\/TSE.2006.28“},{“key”:“e_1_2_1_26_2”,“unstructured”:“ToomimM BegelA GrahamS.使用链接编辑管理重复代码。IEEE视觉语言与2010年以人为中心的计算研讨会论文集2004年9月;173\u2013180。”},},“key“:”e_1_i_1_27_2“,”doi-asserted-by“:”crossref“,”unstructure“:”Duala\u2010EkokoE RobillardMP。跟踪不断发展的软件中的代码克隆。2007年5月第29届国际软件工程会议论文集;158\u2013167.“,”DOI“:”10.1109\/ICSE.2007.90“},{“key”:“e_1_2_1_28_2”,“DOI-asserted-by”:“publisher”,“DOI”:“10.1109\/MC.2006.246”},“key“:”e_1_cu1_29_2“,”非结构化“:”KimM BergmanL LauT NotkinD。OOPL中复制和粘贴编程实践的人种学研究。2004年经验软件工程国际研讨会论文集2004年8月;83\u201392.“},{”key“:”e_1_2_1_30_2“,”unstructured“:”BalintM GirbaT MarinescuR.开发人员如何复制。第14届IEEE程序理解国际会议论文集,2006年6月;56\u201368.“}],”container-title“:[”软件维护与进化杂志:研究与实践“],”original-title”:[],“language”:“en”,“link”:[{“URL”:“https:\/\/api.wiley.com/onlinelibrary\/tdm\/v1\/articles \/10.1002%2Fsmr.394“,”content-type“:”unspecified“,”内容-版本“:”vor“,”intended-application“:”text-mining“},{”URL“:”https:\//onlinelibrary.wiley-com/doi\/pdf\/10.002\/smr.394“,”content-type”:“unspeciated”,“content-version”:“vor”,“intended-application”:“相似性检查”}],“存放“:{“date-parts”:[[2023,11,14]],“date-time”:“2023-11-14T17:39:17Z”,“timestamp”:1699983557000},“score”:1,“resource”:{主要”:{“URL”:“https:\/\/onlinelibrary.wiley.com\/doi\/10002\/smr.394”}},”副标题“:[],”短标题“[],“issued”:}“date-parts”s-count“:29,”journal-issue“:{”issue“:”6“,”published-print“:”date-parts“:[[2008,11]]}},”alternative-id“:[”10.1002\/smr.394“],”URL“:”http://\/dx.doi.org\/10.1002\/smr.3.94“,”archive“:[“Portico”],”relation“:{},“ISSN”:[“1532-060X”,”1532-0618“],“ISSN-type”:[{“value”:“1532-0060X”“,”type“:”electronic“}],”subject“:[],”published“:{”date-parts“:[[2008,9,3]]}}