Evaluating Software Evolution Based on Pattern Mining

Xiaohui Zhou, Xinyue Zhang, Wenpin Jiao
{"title":"Evaluating Software Evolution Based on Pattern Mining","authors":"Xiaohui Zhou, Xinyue Zhang, Wenpin Jiao","doi":"10.1145/3131704.3131723","DOIUrl":null,"url":null,"abstract":"Software systems need constantly maintaining or adapting to continuously meet the changing business requirements. The process of maintenance or adaptation is software evolution. In general, people hope to evaluate software evolution for guiding software maintenances. By evaluating how well software maintenances follow the positive evolutionary trends, developers can assert whether it is necessary to redevelop or even refactor newly released or maintained versions of software to enforce the software evolution back on track. In this paper, we propose an approach to evaluating software evolution based on API usage patterns, which are the accumulations and summarizations of people's software design and development experience. In the approach, better software evolution is considered as the process of reusing more usage patterns, and software evolution is evaluated based on how well software reuses usage patterns in the process of evolution. Our work consists of three parts. First, we use a graph-based algorithm to mine usage patterns from different open-source software. Second, we use the patterns to evaluate the evolutions of software systems and accordingly analyze the important changes during software evolution. Third, we compare different approaches and analyze which approach can reflect the process of software evolution accurately. Our experiments on several open source programs show that our approach is more effective than other approaches on identifying the great change events during software evolution.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"36 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3131704.3131723","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Software systems need constantly maintaining or adapting to continuously meet the changing business requirements. The process of maintenance or adaptation is software evolution. In general, people hope to evaluate software evolution for guiding software maintenances. By evaluating how well software maintenances follow the positive evolutionary trends, developers can assert whether it is necessary to redevelop or even refactor newly released or maintained versions of software to enforce the software evolution back on track. In this paper, we propose an approach to evaluating software evolution based on API usage patterns, which are the accumulations and summarizations of people's software design and development experience. In the approach, better software evolution is considered as the process of reusing more usage patterns, and software evolution is evaluated based on how well software reuses usage patterns in the process of evolution. Our work consists of three parts. First, we use a graph-based algorithm to mine usage patterns from different open-source software. Second, we use the patterns to evaluate the evolutions of software systems and accordingly analyze the important changes during software evolution. Third, we compare different approaches and analyze which approach can reflect the process of software evolution accurately. Our experiments on several open source programs show that our approach is more effective than other approaches on identifying the great change events during software evolution.
基于模式挖掘的软件演化评价
软件系统需要不断地维护或调整,以不断地满足不断变化的业务需求。维护或适应的过程就是软件的进化。通常,人们希望通过评估软件演进来指导软件维护。通过评估软件维护在多大程度上遵循积极的进化趋势,开发人员可以断言是否有必要重新开发甚至重构新发布或维护的软件版本,以强制软件进化回到轨道上。在本文中,我们提出了一种基于API使用模式的软件演化评估方法,API使用模式是人们软件设计和开发经验的积累和总结。该方法将更好的软件进化视为重用更多使用模式的过程,并根据软件在进化过程中重用使用模式的程度来评估软件进化。我们的工作由三部分组成。首先,我们使用基于图的算法从不同的开源软件中挖掘使用模式。其次,利用模式对软件系统的演化进行评估,并据此分析软件演化过程中的重要变化。第三,比较不同的方法,分析哪一种方法更能准确地反映软件演化过程。我们在几个开源程序上的实验表明,我们的方法在识别软件演进过程中的重大变化事件方面比其他方法更有效。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信