Automated Refactoring Suggestions Using the Results of Code Analysis Tools

Static analysis tools are used for the detection of errors and other problems on source code level. The detected problems related to the internal structure of a software can be removed by source code transformations called refactorings. To automate such source code transformations, refactoring tools are available. In modern integrated development environments, there is a gap between the static analysis tools and the refactoring tools. This paper presents an automated approach for the improvement of the internal quality of software by using the results of code analysis tools to call a refactoring tool to remove detected problems. The approach is generic, thus allowing the combination of arbitrary tools. As a proof of concept, this approach is implemented as a plug-in for the integrated development environment Eclipse.

[1]  William G. Griswold,et al.  Automated support for program refactoring using invariants , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[2]  R. Marticorena,et al.  Language Independent Metric Support towards Refactoring Inference , 2005 .

[3]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[4]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[5]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[6]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[7]  C. Lewerentz,et al.  Metrics based refactoring , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[8]  Claus Lewerentz,et al.  Metrics Based Refactoring , 2001, CSMR.

[9]  Jens Grabowski,et al.  Quality assurance for TTCN-3 test specifications , 2008 .

[10]  David Hovemeyer,et al.  Improving your software using static analysis to find bugs , 2006, OOPSLA '06.

[11]  Tom Mens,et al.  Beyond the refactoring browser: advanced tool support for software refactoring , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..