Resolving Conflict and Dependency in Refactoring to a Desired Design
Journal Title: e-Informatica Software Engineering Journal - Year 2015, Vol 9, Issue 1
Abstract
Refactoring is performed to improve software quality while leaving the behaviour of the system unchanged. In practice there are many opportunities for refactoring, however, due to conflicts and dependencies between refactorings, only certain orders of refactorings are applicable. Selecting and ordering an appropriate set of refactorings is a challenging task for a developer. We propose a novel automated approach to scheduling refactorings according to their conflicts and dependencies as well as their contribution to design quality expressed by a desired design. The desired design is an improved version of the current program design, and is produced by the developer. Our approach is capable of detecting conflicts and dependencies between refactorings, and uses a sequence alignment algorithm to identify the degree of similarity between two program designs expressed as sequence of characters, thereby measuring the contribution of a refactoring to achieving the desired design. We evaluated our approach on several sample programs and one non-trivial open-source application. Our results demonstrate the ability of the approach to order the input refactorings so as to achieve the desired design even in the presence of intense inter-refactoring conflict and dependency, and when applied to a medium-sized, real-world application.
Authors and Affiliations
Iman Moghadam, Mel Cinnéide
A Graphical Modelling Editor for STARSoC Design Flow Tool Based on Model Driven Engineering Approach
Background : Due to the increasing complexity of embedded systems, system designers use higher levels of abstraction in order to model and analyse system performances. STARSoC (Synthesis Tool for Adaptive and Reconfigura...
Reducing the Number of Higher-order Mutants with the Aid of Data Flow
Higher-order mutants are created by injecting two or more mutations into the original program, while first-order mutants are generated by seeding single faults in the original program. Mutant generation is a key stage of...
Software Change Prediction: A Systematic Review and Future Guidelines
Background: The importance of Software Change Prediction (SCP) has been emphasized by several studies. Numerous prediction models in literature claim to effectively predict change-prone classes in software products. Thes...
Automatic SUMO to UML Translation
Existing ontologies are a valuable source of domain knowledge. This knowledge could be extracted and reused to create domain models. The extraction process can be aided by tools that enable browsing ontology, marking int...
Using the Cognitive Walkthrough Method in Software Process Improvement
In the past years, efforts in the field of Software Process Improvement were increasingly focusing on human aspects making one aware that people participating in the processes have a high impact on the success of any imp...