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

Keywords

Related Articles

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...

Download PDF file
  • EP ID EP201191
  • DOI 10.5277/e-Inf150103
  • Views 111
  • Downloads 0

How To Cite

Iman Moghadam, Mel Cinnéide (2015). Resolving Conflict and Dependency in Refactoring to a Desired Design. e-Informatica Software Engineering Journal, 9(1), 37-56. https://europub.co.uk/articles/-A-201191