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

The Role of Organisational Phenomena in Software Cost Estimation: A Case Study of Supporting and Hindering Factors

Despite the fact that many researchers and practitioners agree that organisational issues are equally important as technical issues from the software cost estimation (SCE) success point of view, most of the research focu...

Model Driven Web Engineering: A Systematic Mapping Study

Background: Model Driven Web Engineering (MDWE) is the application of the model driven paradigm to the domain of Web software development, where it is particularly helpful because of the continuous evolution of Web techn...

Malicious JavaScript Detection by Features Extraction

In recent years, JavaScript-based attacks have become one of the most common and successful types of attack. Existing techniques for detecting malicious JavaScripts could fail for different reasons. Some techniques are t...

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

Resolving Conflict and Dependency in Refactoring to a Desired Design

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

Download PDF file
  • EP ID EP201191
  • DOI 10.5277/e-Inf150103
  • Views 100
  • 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