skip to main content
10.1145/2642937.2642965acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Recommendation system for software refactoring using innovization and interactive dynamic optimization

Published: 15 September 2014 Publication History

Abstract

We propose a novel recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers interactively based on their feedback and introduced code changes. Our approach starts by finding upfront a set of non-dominated refactoring solutions using NSGA-II to improve software quality, reduce the number of refactorings and increase semantic coherence. The generated non-dominated refactoring solutions are analyzed using our innovization component to extract some interesting common features between them. Based on this analysis, the suggested refactorings are ranked and suggested to the developer one by one. The developer can approve, modify or reject each suggested refactoring, and this feedback is used to update the ranking of the suggested refactorings. After a number of introduced code changes, a local search is performed to update and adapt the set of refactoring solutions suggested by NSGA-II. We evaluated this tool on four large open source systems and one industrial project provided by our partner. Statistical analysis of our experiments over 31 runs shows that the dynamic refactoring approach performed significantly better than three other search-based refactoring techniques, manual refactorings, and one refactoring tool not based on heuristic search.

References

[1]
Basseur, M. Liefooghe, A. Le, K. and Burke, E. K. 2012. The efficiency of indicator-based local search for multi-objective combinatorial optimisation problems. Journal of Heuristics. vol. 18, issue 2, pp 263--296.
[2]
Fowler, M. Beck, K. Brant, J. Opdyke, W. and Roberts, D. 1999. Refactoring -- Improving the design of existing code. Addison Wesley, ISBN 978-0201485677.
[3]
Murphy-Hill, E. R. Parnin, C. and Black, A. P. How we refactor, and how we know it. IEEE Transactions on Software Engineering, vol. 38, no. 1, pp. 5--18, 2012.
[4]
Ouni, A. Kessentini, M. Sahraoui H. and Boukadoum, M. 2012. Maintainability Defects Detection and Correction: A Multi-Objective Approach. Journal of Automated Software Engineering, Springer. vol. 20, issue 1, pp 47--79.
[5]
Harman, M. and Tratt, L. Pareto optimal search based refactoring at the design level. 2007. GECCO. pp. 1106--1113.
[6]
Kessentini, M. Kessentini, W. Sahraoui, H. Boukadoum, M. and Ouni, A. 2011. Design Defects Detection and Correction by Example, 19th IEEE International Conference on Program Comprehension. pp. 81--90.
[7]
Deb, K. Pratap, A. Agarwal, S. and Meyarivan, T. 2002. A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation. vol. 6, pp. 182--197.
[8]
Harman, M. Mansouri, S. A. and Zhang, Y. Search-based software engineering: 2012. Trends, techniques and applications. ACM Computing Surveys, vol. issue 45, no. 1.
[9]
Deb, K. and Srinivasan, A. Innovization: innovating design principles through optimization. 2006. GECCO. pp. 1629--1636.
[10]
Bansiya, J. and Davis, C. G. 2002. A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering. vol. 28. pp. 4--17.
[11]
Prete, K. Rachatasumrit, N. Sudan, N. and Kim, M. 2010. Template-based reconstruction of complex refactorings. Proceedings of the 26th IEEE International Conference on Software Maintenance. pp. 1--10.
[12]
Hall, M. Walkinshaw, N. McMinn, P. 2012. Supervised software modularization. International Conference on Software Maintenance. pp. 472--481.
[13]
Bavota, A. Carnevale, F. De Lucia, A. and Di Penta, M. 2012. Putting the Developer in-the-Loop: An Interactive GA for Software Re-modularization. SSBSE. pp. 75--89
[14]
Lucia, Lo, D. Jiang, and L. Budi, A. 2012. Active refinement of clone anomaly reports. International Conference on Software Engineering. pp. 397--407.
[15]
Gong, L. Lo, D. Jiang, L. and Zhang, H. 2012. Interactive fault localization leveraging simple user feedback. Conference on Software Maintenance. pp. 67--76.
[16]
Fokaefs, M. Tsantalis, N. Stroulia, E. and Chatzigeorgiou, A. 2011. JDeodorant: identification and application of extract class refactorings. International Conference on Software Engineering. pp. 1037--1039.
[17]
Kessentini, W. Kessentini, M. Sahraoui, H. Bechikh, S. and Ouni, A. 2014. A Cooperative Parallel Search-Based Software Engineering Approach for Code-Smells Detection, IEEE Transactions on Software Engineering, 2014, to appear

Cited By

View all
  • (2024)Behind the Intent of Extract Method Refactoring: A Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2023.334580050:4(668-694)Online publication date: 4-Jan-2024
  • (2024)Compromising Pareto-Optimality With Regularity in Platform-Based Multiobjective OptimizationIEEE Transactions on Evolutionary Computation10.1109/TEVC.2023.333671528:6(1746-1760)Online publication date: Dec-2024
  • (2024)Merging preferences into the best solution seeking for many-objective optimization problemsExpert Systems with Applications10.1016/j.eswa.2024.124351254(124351)Online publication date: Nov-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '14: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering
September 2014
934 pages
ISBN:9781450330138
DOI:10.1145/2642937
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 September 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. refactoring
  2. search based software engineering
  3. software quality

Qualifiers

  • Research-article

Conference

ASE '14
Sponsor:

Acceptance Rates

ASE '14 Paper Acceptance Rate 82 of 337 submissions, 24%;
Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)29
  • Downloads (Last 6 weeks)8
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Behind the Intent of Extract Method Refactoring: A Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2023.334580050:4(668-694)Online publication date: 4-Jan-2024
  • (2024)Compromising Pareto-Optimality With Regularity in Platform-Based Multiobjective OptimizationIEEE Transactions on Evolutionary Computation10.1109/TEVC.2023.333671528:6(1746-1760)Online publication date: Dec-2024
  • (2024)Merging preferences into the best solution seeking for many-objective optimization problemsExpert Systems with Applications10.1016/j.eswa.2024.124351254(124351)Online publication date: Nov-2024
  • (2024)A comprehensive survey on interactive evolutionary computation in the first two decades of the 21st centuryApplied Soft Computing10.1016/j.asoc.2024.111950164(111950)Online publication date: Oct-2024
  • (2024)Detecting Local Software Issues Using NSGA Multi-optimizationCyber Warfare, Security and Space Computing10.1007/978-3-031-73494-6_8(112-124)Online publication date: 31-Oct-2024
  • (2023)Empirical Investigation of the Diverse Refactoring Effects on Software Quality: The Role of Refactoring Tools and Software Size2023 3rd International Conference on Emerging Smart Technologies and Applications (eSmarTA)10.1109/eSmarTA59349.2023.10293407(1-6)Online publication date: 10-Oct-2023
  • (2023)Dependent or Not: Detecting and Understanding Collections of RefactoringsIEEE Transactions on Software Engineering10.1109/TSE.2023.3244123(1-15)Online publication date: 2023
  • (2023)From Inheritance to Mockito: An Automatic Refactoring ApproachIEEE Transactions on Software Engineering10.1109/TSE.2022.323185049:4(2791-2814)Online publication date: 1-Apr-2023
  • (2023)Towards the Assisted Decomposition of Large-Active Files2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C57050.2023.00037(126-130)Online publication date: Mar-2023
  • (2023)Optimized Refactoring Mechanisms to Improve Quality Characteristics in Object-Oriented SystemsIEEE Access10.1109/ACCESS.2023.331318611(99143-99158)Online publication date: 2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media