arrow
返回

Improving multi-objective code-smells correction using development history

delete2015-07-01
delete52
PRE
AI
A
Ali Ouni *
M
Marouane Kessentini
H
Houari Sahraoui
M
Mohamed Salah Hamdi
DOI:10.1016/j.jss.2015.03.040delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
One of the widely used techniques to improve the quality of software systems is refactoring. Software refactoring improves the internal structure of the system while preserving its external behavior. These two concerns drive the existing approaches to refactoring automation. However, recent studies demonstrated that these concerns are not enough to produce correct and consistent refactoring solutions. In addition to quality improvement and behavior preservation, studies consider, among others, construct semantics preservation and minimization of changes. From another perspective, development history was proven as a powerful source of knowledge in many maintenance tasks. Still, development history is not widely explored in the context of automated software refactoring. In this paper, we use the development history collected from existing software projects to propose new refactoring solutions taking into account context similarity with situations seen in the past. We propose a multi-objective optimization-based approach to find good refactoring sequences that (1) minimize the number of code-smells, and (2) maximize the use of development history while (3) preserving the construct semantics. To this end, we use the non-dominated sorting genetic algorithm (NSGA-II) to find the best trade-offs between these three objectives. We evaluate our approach using a benchmark composed of five medium and large-size open-source systems and four types of code-smells (Blob, spaghetti code, functional decomposition, and data class). Our experimental results show the effectiveness of our approach, compared to three different state-of-the-art approaches, with more than 85% of code-smells fixed and 86% of suggested refactorings semantically coherent when the change history is used. (c) 2015 Elsevier Inc. All rights reserved.
Keyword:
Search-based software engineering
Refactoring
Code-smells
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

Journal of Systems and Software 封面图
Journal of Systems and Software
IF:
4.1
论文数:
5.5K
被引数:
8.4K

机构

U
universite de montreal
学者数:
4.6W
论文数: 3.8W
被引数: 46
T
the university of osaka
学者数:
2.8W
论文数: 1.8W
被引数: 6
U
University of Michigan
学者数:
6.4W
论文数: 5.3W
被引数: 124
U
university of michigan system
学者数:
9.1W
论文数: 8.6W
被引数: 133
学者 查看更多机构
引用论文

引用论文

err分享
err收藏
Mining version histories to guide software changes
err2005-06-01
err469
PREAI
errZimmermann, T; Weissgerber, P; Diehl, S; Zeller, A
err分享
err收藏
An empirical investigation of an object-oriented design heuristic for maintainability
err2003-02-01
err48
PREAI
errDeligiannis, I; Shepperd, M; Roumeliotis, M; Stamelos, I
err分享
err收藏
Search-based refactoring for software maintenance
err2008-04-01
err105
errOAAI
errO'Keeffe, Mark; Cinneide, Mel O.
err分享
err收藏
Predicting source code changes by mining change history
err2004-09-01
err359
errOAAI
errYing, ATT; Murphy, GC; Ng, R; Chu-Carroll, MC
err分享
err收藏
学者 查看更多内容