Refactorings tackle the challenge of architectural degradation of object-oriented software projects by improving its internal structure without changing the behavior. Refactorings improve software quality and maintainability if applied correctly. However, identifying refactoring opportunities is a challenging problem for developers and researchers alike. In a recent work, machine learning algorithms have shown great potential to solve this problem. This thesis used RefactoringMiner to detect refactorings in open-source Java projects and computed code metrics by static analysis. We defined the refactoring opportunity detection problem as a binary classification problem and deployed machine learning algorithms to solve it. The models classify...
With the evolution of a language, the possibility of updating old constructions and benefiting from...
Becoming increasingly complex, software development relies heavily on the reuse of existing librarie...
This paper analyzes the influence of evolution activities such as refactoring on software defects. I...
During software maintenance, software systems need to be modified by adding or modifying source code...
Understanding how developers refactor their code is critical to support the design improvement proce...
Refactoring, as coined by William Obdyke in 1992, is the art of optimizing the syntactic design of a...
Automated techniques have been proposed to either identify refactoring opportunities (i.e., code fra...
Understanding the practice of refactoring documentation is of paramount importance in academia and i...
The original design of a software system is rarely prepared for every new requirement. Software syst...
Context: Refactoring is a maintenance task that refers to the process of restructuring software sour...
Previous studies have investigated the reasons behind refactoring operations performed by developers...
Many iterative software development methodologies, such as for example eXtreme Programming, state th...
The purpose of refactoring is to improve the quality of a software system by changing its internal d...
Abstract—Refactorings are—as defined by Fowler—behavior preserving source code transformations. Thei...
Refactorings are—as defined by Fowler—behavior preserving source code transformations. Their main pu...
With the evolution of a language, the possibility of updating old constructions and benefiting from...
Becoming increasingly complex, software development relies heavily on the reuse of existing librarie...
This paper analyzes the influence of evolution activities such as refactoring on software defects. I...
During software maintenance, software systems need to be modified by adding or modifying source code...
Understanding how developers refactor their code is critical to support the design improvement proce...
Refactoring, as coined by William Obdyke in 1992, is the art of optimizing the syntactic design of a...
Automated techniques have been proposed to either identify refactoring opportunities (i.e., code fra...
Understanding the practice of refactoring documentation is of paramount importance in academia and i...
The original design of a software system is rarely prepared for every new requirement. Software syst...
Context: Refactoring is a maintenance task that refers to the process of restructuring software sour...
Previous studies have investigated the reasons behind refactoring operations performed by developers...
Many iterative software development methodologies, such as for example eXtreme Programming, state th...
The purpose of refactoring is to improve the quality of a software system by changing its internal d...
Abstract—Refactorings are—as defined by Fowler—behavior preserving source code transformations. Thei...
Refactorings are—as defined by Fowler—behavior preserving source code transformations. Their main pu...
With the evolution of a language, the possibility of updating old constructions and benefiting from...
Becoming increasingly complex, software development relies heavily on the reuse of existing librarie...
This paper analyzes the influence of evolution activities such as refactoring on software defects. I...