Corpus ID: 13147063

Towards Knowledge Discovery in Software Repositories to Support Refactoring Jörg Rech Fraunhofer IESE

  title={Towards Knowledge Discovery in Software Repositories to Support Refactoring J{\"o}rg Rech Fraunhofer IESE},
  author={J. Rech},
Software repositories are typically used to store code together with additional information. These repositories are a valuable source to train knowledge discovery algorithms to detect code smells and other qualitative defects. In this paper we present a lightweight framework to detect previously unknown knowledge from software reposit ories to support refactoring. The results will be usable by software reengineers in the process of inspection and quality asses sment of legacy systems. 
3 Citations

Figures from this paper

Experience-Based Refactoring for Goal-Oriented Software Quality Improvement
In agile software development refactoring is an important phase for the continuous improvement of software quality. Unfortunately, the application of refactorings is very subjective and heavily basedExpand
Improving Software Quality through Refactoring by means of Didactical Augmented Experience
This paper presents an experiencebased approach for the semi-automatic and goal-oriented refactoring of software systems based on didactical augmented experiences, following the experience factory paradigm. Expand
Handling of Software Quality Defects in Agile Software Development
An annotation language is presented that is used to store information about quality defects found in source code and that represents the defect and treatment history of a part of a software system that can be used to support quality defect discovery processes. Expand


Metrics Based Refactoring
It is shown that a special kind of metrics can support these subjective perceptions and thus can be used as effective and efficient way to get support for the decision where to apply which refactoring. Expand
Automated Support for Framework-Based Software Evolution
In this paper, we show how elaborate support forframework-based software evolution can be provided basedon explicit documentation of the hot spots of object-orientedapplication frameworks. SuchExpand
Software maintenance and evolution: a roadmap
The production of new management approaches to evolution, leading to understanding of the relationships between technology and business, and the development of a service-based model of software, to replace a product view. Expand
Practical analysis for refactoring
A new definition of refactoring is given that focuses on preconditions and postconditions of the refactorings, rather than on the program transformation itself, and the criteria that are necessary for anyRefactoring tool to succeed are identified. Expand
Refactoring: Current Research and Future Trends
An detailed overview of existing research in the field of software restructuring and refactoring is provided, from a formal as well as a practical point of view. Expand
Modeling Object-Oriented Software for Reverse Engineering and Refactoring
FAMIX is presented, a language-independent metamodel for modelling object-oriented software for reengineering purposes and a set of fifteen low-level refactorings provide an in-depth validation of the language independence of FAMIX. Expand
Reverse engineering: a roadmap
This paper presents a roadmap for reverse engineering research for the first decade of the new millennium, building on the program comprehension theories of the 1980s and the reverse engineering technology of the 1990s. Expand
Object-Oriented Reverse Engineering —- Coarse-grained, Fine-grained, and Evolutionary Software Visualization
This thesis proposes a visual approach to the reverse engineering of object-oriented software systems by means of polymetric views, lightweight visualizations of software enriched with metrics and other types of semantic information about the software, e.g., its age, version, abstractness, location, structure, function, etc. Expand
Refactoring object-oriented frameworks
This thesis gives some conservative algorithms for determining whether a program satisfies constraints, and describes how to use this design information to refactor a program. Expand
Automated application of design patterns: a refactoring approach
ion(Class c, String newName){ Interface inf = abstractClass(c, newName); addInterface(inf); addImplementsLink(c, inf); }