@conference {SNH15, title = {Do Automatic Refactorings Improve Maintainability? An Industrial Case Study}, booktitle = {Proceedings of the 31st International Conference on Software Maintenance and Evolution (ICSME 2015)}, year = {2015}, pages = {429{\textendash}438}, publisher = {IEEE Computer Society}, organization = {IEEE Computer Society}, address = {Bremen, Germany}, abstract = {Refactoring is often treated as the main remedy against the unavoidable code erosion happening during software evolution. Studies show that refactoring is indeed an elemental part of the developers{\textquoteright} arsenal. However, empirical studies about the impact of refactorings on software maintainability still did not reach a consensus. Moreover, most of these empirical investigations are carried out on open-source projects where distinguishing refactoring operations from other development activities is a challenge in itself. We had a chance to work together with several software development companies in a project where they got extra budget to improve their source code by performing refactoring operations. Taking advantage of this controlled environment, we collected a large amount of data during a refactoring phase where the developers used a (semi)automatic refactoring tool. By measuring the maintainability of the involved subject systems before and after the refactorings, we got valuable insights into the effect of these refactorings on large-scale industrial projects. All but one company, who applied a special refactoring strategy, achieved a maintainability improvement at the end of the refactoring phase, but even that one company suffered from the negative impact of only one type of refactoring.}, keywords = {automatic refactoring, coding issues, ISO/IEC 25010, Software maintainability}, doi = {10.1109/ICSM.2015.7332494}, url = {http://ieeexplore.ieee.org/document/7332494/}, author = {Sz{\H o}ke, G{\'a}bor and Csaba Nagy and P Heged{\H u}s and Rudolf Ferenc and Tibor Gyim{\'o}thy} } @conference {SNF15, title = {{FaultBuster}: An Automatic Code Smell Refactoring Toolset}, booktitle = {Proceedings of the 15th International Working Conference on Source Code Analysis and Manipulation (SCAM 2015)}, year = {2015}, month = {sep}, pages = {253{\textendash}258}, publisher = {IEEE Computer Society}, organization = {IEEE Computer Society}, address = {Bremen, Germany}, abstract = {One solution to prevent the quality erosion of a software product is to maintain its quality by continuous refac-toring. However, refactoring is not always easy. Developers need to identify the piece of code that should be improved and decide how to rewrite it. Furthermore, refactoring can also be risky; that is, the modified code needs to be re-tested, so developers can see if they broke something. Many IDEs offer a range of refactorings to support so-called automatic refactoring, but tools which are really able to automatically refactor code smells are still under research. In this paper we introduce FaultBuster, a refactoring toolset which is able to support automatic refactoring: identifying the problematic code parts via static code analysis, running automatic algorithms to fix selected code smells, and executing integrated testing tools. In the heart of the toolset lies a refactoring framework to control the analysis and the execution of automatic algorithms. FaultBuster provides IDE plugins to interact with developers via popular IDEs (Eclipse, Netbeans and IntelliJ IDEA). All the tools were developed and tested in a 2-year project with 6 software development companies where thousands of code smells were identified and fixed in 5 systems having altogether over 5 million lines of code.}, keywords = {Antipatterns, automatic refactoring, code smells, coding issues, Columbus, SourceMeter}, doi = {10.1109/SCAM.2015.7335422}, url = {http://ieeexplore.ieee.org/document/7335422/}, author = {Sz{\H o}ke, G{\'a}bor and Csaba Nagy and F{\"u}l{\"o}p, Lajos Jen{\H o} and Rudolf Ferenc and Tibor Gyim{\'o}thy} }