Journal Article10.1016/J.INFSOF.2017.03.009
A genetic algorithm-based approach for automated refactoring of component-based software
29
TL;DR: This approach is the first to focus on component-based refactoring, whereas the state-of-the-art approaches focus only on object-oriented refactors, and outperforms random search and local search in terms of efficiency and accuracy.
read more
Abstract: Context: During its lifecycle, a software system undergoes repeated modifications to quickly fulfill new requirements, but its underlying design is not properly adjusted after each update. This leads to the emergence of bad smells. Refactoring provides a de facto behavior-preserving approach to eliminate these anomalies. However, manually determining and performing useful refactorings is a formidable challenge, as stated in the literature. Therefore, framing object-oriented automated refactoring as a search-based technique has been proposed. However, the literature shows that search-based refactoring of component-based software has not yet received proper attention.Objective: This paper presents a genetic algorithm-based approach for the automated refactoring of component-based software. This approach consists of detecting component-relevant bad smells and eliminating these bad smells by searching for the best sequence of refactorings using a genetic algorithm.Method: Our approach consists of four steps. The first step includes studying the literature related to component-relevant bad smells and formulating bad smell detection rules. The second step involves proposing a catalog of component-relevant refactorings. The third step consists of constructing a source code model by extracting facts from the source code of a component-based software. The final step seeks to identify the best sequence of refactorings to apply to reduce the presence of bad smells in the source code model using a genetic algorithm. The latter uses bad smell detection rules as a fitness function and the catalog of refactorings as a means to explore the search space.Results: As a case study, we conducted experiments on an unbiased set of four real-world component-based applications. The results indicate that our approach is able to efficiently reduce the total number of bad smells by more than one half, which is an acceptable value compared to the recent literature. Moreover, we determined that our approach is also accurate in refactoring only components suffering from bad smells while leaving the remaining components untouched whenever possible. Furthermore, a statistical analysis shows that our genetic algorithm outperforms random search and local search in terms of efficiency and accuracy on almost all the systems investigated in this work.Conclusion: This paper presents a search-based approach for the automated refactoring of component-based software. To the best of our knowledge, our approach is the first to focus on component-based refactoring, whereas the state-of-the-art approaches focus only on object-oriented refactoring.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Formal Quality of Service assurances, ranking and verification of cloud deployment options with a probabilistic model checking method
TL;DR: The proposed new FoQoSAM method is appropriate and can be used in decision-making when ranking and verifying cloud deployment options and to verify that all hard and as many soft QoS requirements as possible will be met at runtime.
35
Wireless sensor network energy efficient coverage method based on intelligent optimization algorithm
Yang Chen,Xiaoguang Xu,Yong Wang +2 more
- 01 Jan 2019
TL;DR: This paper proposes a novel wireless sensor network energy efficient coverage method based on genetic algorithm, and simulation results demonstrate that the proposed method can achieve high degree of target coverage without wasting extra energy.
26
SBSR Solution Evaluation: Methods and Challenges Classification
Zohreh Razani,Mohammad Reza Keyvanpour +1 more
- 01 Feb 2019
TL;DR: First, a classification of metrics used for solution evaluation is proposed, and the challenges of each category are investigated, which can lead to an important comparison and assessment of the presented approaches.
9
Composite refactoring: Representations, characteristics and effects on software projects
TL;DR: In this article , a systematic mapping of the current knowledge on composites is presented, and a conceptual framework is presented to characterize composite refactoring, including seven representation models, nine characteristics, and thirteen effects of composites.
7
Restructuring of Object-Oriented Software System Using Clustering Techniques
Sarika Bobde,Rashmi Phalnikar +1 more
- 01 Jan 2020
TL;DR: A new method for software restructuring using clustering with multiple refactoring methods to increase the cohesion of the part with no change in the meaning of software system is proposed.
7
References
Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence
John H. Holland
- 01 May 1992
TL;DR: Initially applying his concepts to simply defined artificial systems with limited numbers of parameters, Holland goes on to explore their use in the study of a wide range of complex, naturally occuring processes, concentrating on systems having multiple factors that interact in nonlinear ways.
16.6K
•Book
An Introduction to Genetic Algorithms
Melanie Mitchell
- 01 Jan 1996
TL;DR: An Introduction to Genetic Algorithms focuses in depth on a small set of important and interesting topics -- particularly in machine learning, scientific modeling, and artificial life -- and reviews a broad span of research, including the work of Mitchell and her colleagues.
Basic principles of ROC analysis
TL;DR: ROC analysis is shown to be related in a direct and natural way to cost/benefit analysis of diagnostic decision making and the concepts of "average diagnostic cost" and "average net benefit" are developed and used to identify the optimal compromise among various kinds of diagnostic error.
6.2K
•Book
Refactoring: Improving the Design of Existing Code
Martin Fowler
- 01 Jan 1999
TL;DR: Almost every expert in Object-Oriented Development stresses the importance of iterative development, but how do you add function to the existing code base while still preserving its design integrity?
A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms
TL;DR: The basics are discussed and a survey of a complete set of nonparametric procedures developed to perform both pairwise and multiple comparisons, for multi-problem analysis are given.
4.9K