CLEAR: Class Level Software Refactoring Using Evolutionary Algorithms

Journal of Intelligent Systems 24 (1):85-97 (2015)
  Copy   BIBTEX

Abstract

The original design of a software system is rarely prepared for every new requirement. Software systems should be updated frequently, which is usually accompanied by the decline in software modularity and quality. Although many approaches have been proposed to improve the quality of software, a majority of them are guided by metrics defined on the local properties of software. In this article, we propose to use a global metric borrowed from the network science to detect the moving method refactoring. First, our approach uses a bipartite network to represent classes, features, and their dependencies. Second, a new metric is introduced to quantify the modularity of a software system as a whole. Finally, a crossover-only evolutionary algorithm that uses the metric as its fitness function is introduced to optimize the class structure of a software system and detect the methods that should be moved. Empirical results on the benchmark Java projects show that our approach can find meaningful methods that should be moved with a high stability. The advantages of our approach are illustrated in comparison with some other approaches, specifically one refactoring approach, namely search-based refactoring approach, and two community detection algorithms, namely a graph theoretic clustering algorithm and a fast algorithm for community detection. Our approach provides a new way to do refactoring from the perspective of software structure.

Links

PhilArchive



    Upload a copy of this work     Papers currently archived: 92,991

External links

Setup an account with your affiliations in order to access resources via your University's proxy server

Through your library

Similar books and articles

Effective Logic Computation.K. Truemper - 1998 - Wiley-Interscience.
Overlapping Community Detection in Dynamic Networks.Nathan Aston - 2014 - Journal of Software Engineering and Applications 7:872-882.

Analytics

Added to PP
2017-01-12

Downloads
25 (#653,738)

6 months
8 (#416,172)

Historical graph of downloads
How can I increase my downloads?

Citations of this work

No citations found.

Add more citations

References found in this work

No references found.

Add more references