ASE Workshops 2018
2018 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018)
Powered by
Conference Publishing Consulting

2nd International Workshop on Refactoring (IWoR 2018), September 4, 2018, Montpellier, France

IWoR 2018 – Proceedings

Contents - Abstracts - Authors

2nd International Workshop on Refactoring (IWoR 2018)


Title Page

Message from the Chairs
Welcome to the 2nd International Workshop on Refactoring (IWoR'2018), held in Montpellier, France on September 4, 2018, and co-located with the 33rd IEEE/ACM International Conference on Automated Software Engineering. The goal of this workshop is to provide an informal, interactive forum for researchers and practitioners to exchange ideas and experiences on any aspect of refactoring.

Architecture, Models, and Evolution

Migrating towards Microservices: Migration and Architecture Smells
Andrés Carrasco, Brent van Bladel, and Serge Demeyer
(University of Antwerp, Belgium)
Migrating to microservices is an error-prone process with deep pitfalls resulting in high costs for mistakes. Microservices is a relatively new architectural style, resulting in the lack of general guidelines for migrating monoliths towards microservices. We present 9 common pitfalls in terms of bad smells with their potential solutions. Using these bad smells, pitfalls can be identified and corrected in the migration process.

Publisher's Version Article Search
Support for Architectural Smell Refactoring
Luca Rizzi, Francesca Arcelli Fontana, and Riccardo Roveda
(University of Milano-Bicocca, Italy)
To preserve high quality of a project, it is necessary to perform many refactoring steps during the development and maintenance phases. Code refactoring received a great attention in the literature, often directed to the refactoring of code smells. While at the architectural level, architectural smells received less attention. One of the most common architectural smell which may affect many parts of a software application is the Cyclic Dependency smell. This position paper presents a tool prototype that suggests which path a developer could follow to remove Cyclic Dependency smells in Java applications. The tool has been developed as an extension of the Arcan tool for architectural smells detection. In this paper we describe how the tool identifies the path to follow for the refactoring of Cyclic Dependency on real projects. The tool has been thought only to suggest a possible refactoring approach which a developer could considerate to resolve Cyclic Dependency.

Publisher's Version Article Search
Architectural Refactoring as a Strategic Tool in the Evolution of a Web-Based SaaS Product
Rory McTague and Paddy Fagan
(IBM, Ireland)
Working in the highly agile world of Software As-A-Service (SaaS) enterprise software products, the authors describe their experience of the constant evolution in terms of continuous refactoring. This paper examines several of the key drivers for this refactoring, their impact on product architecture and code, as well as the factors that influence timing of such impacts. The drivers examined are speed to market and associated viability, cost, organisational productivity, market demands/changing technology trends, changing underlying technical services, increased scale and the associated necessity for increased agility, and changing regulatory frameworks.

Publisher's Version Article Search
A Metamodel for the Specification and Verification of Model Refactoring Actions
Davide Arcelli, Vittorio Cortellessa, and Daniele Di Pompeo
(University of L'Aquila, Italy)
Refactoring has become a valuable activity during the software development lifecycle, because it can be induced by different causes, like new requirements or quality improvement. In code-based development contexts this activity has been widely studied, whereas in model-driven ones, where models are first-class development entities, there are many issues yet to be tackled. In this paper we present a metamodel that supports the specification of pre- and post- conditions of model refactoring actions, and the automated derivation and verification of such conditions in specific modeling languages. Our work is aimed at helping users to implement refactoring actions in the adopted modelling language by providing an environment for guaranteeing the feasibility of refactoring actions. Our primary focus is on the definition of applicable sequences of refactoring actions, rather than on the user-driven step-by-step application of refactoring actions. As an example, we illustrate the applicability of our metamodel for UML models refactoring.

Publisher's Version Article Search

Empirical Studies, Testing, and Individual Refactorings

Test Behaviour Detection as a Test Refactoring Safety
Brent van Bladel and Serge Demeyer
(University of Antwerp, Belgium)
When refactoring production code, software developers rely on an automated test suite as a safeguard. However, when refactoring the test suite itself, there is no such safeguard. Therefore, there is a need for tool support that can verify if a refactored test suite preserves its behaviour pre- and post-refactoring. In this work we present T-CORE (Test COde REfactoring tool); a tool that captures the behaviour of Java tests in the form of a Test Behaviour Tree. T-CORE allows developers to verify that the refactoring of a test suite has preserved the behaviour of the test.

Publisher's Version Article Search
An Empirical Investigation of How and Why Developers Rename Identifiers
Anthony Peruma, Mohamed Wiem Mkaouer, Michael J. Decker, and Christian D. Newman
(Rochester Institute of Technology, USA; Bowling Green State University, USA)
Renaming is vital to software maintenance and evolution. Developers rename entities when their original names no longer fit their behavioral role within the program. This may happen if the entity's original name was of poor quality or if the system has evolved such that the original name needs to be updated to reflect some of this evolution. In the end, the reason for the rename ultimately falls under increasing understandability and comprehension. Because comprehension is so important, and identifiers are the primary way developers comprehend code, it is critical to understand empirically how and why identifier names evolve. Armed with an understanding of these two facets of identifier evolution, researchers will be able to train algorithms to recognize, recommend, or even automatically generate high-quality identifier names. We present an empirical study of how method, class and package identifier names evolve to better understand the motives of their evolution. The empirical validation involves a set of 524,113 rename refactorings, performed on 3,795 Java systems. In a nutshell, our findings demonstrate that most rename refactorings narrow the meaning of the identifiers for which they are applied. Further, we analyze commit messages to contextualize these renames.

Publisher's Version Article Search
A Study on Developer Perception of Transformation Languages for Refactoring
Christian D. Newman, Mohamed Wiem Mkaouer, Michael L. Collard, and Jonathan I. Maletic
(Rochester Institute of Technology, USA; University of Akron, USA; Kent State University, USA)
Although there is much research advancing state-of-art of program transformation tools, their application in industry source code change problems has not yet been gauged. In this context, the purpose of this paper is to better understand developer familiarity and comfort with these languages by conducting a survey. It poses, and answers, four research questions to understand how frequently source code transformation languages are applied to refactoring tasks, how well-known these languages are in industry, what developers think are obstacles to adoption, and what developer refactoring habits tell us about their current use, or underuse, of transformation languages. The results show that while source code transformation languages can fill a needed niche in refactoring, research must motivate their application. We provide explanations and insights based on data, aimed at the program transformation and refactoring communities, with a goal to motivate future research and ultimately improve industry adoption of transformation languages for refactoring tasks.

Publisher's Version Article Search
Automatic Recommendation of Move Method Refactorings using Clustering Ensembles
Timofey Bryksin, Evgenii Novozhilov, and Aleksei Shpilman
(JetBrains Research, Russia; Saint Petersburg State University, Russia)
In this paper, we are approaching the problem of automatic refactoring recommendation for object-oriented systems. An approach based on clustering ensembles is proposed, several heuristics to existing algorithms and to filtering and combining their results are discussed. Experimental validation of the proposed approach on an open source project is presented. The obtained preliminary results illustrate that the introduced approach could be successfully used to improve existing integrated development environments, providing developers with one more tool to reduce the complexity of their projects. The paper concludes with a discussion on the applicability of such automatic refactoring recommendation approaches to real-world software developed using common object-oriented techniques.

Publisher's Version Article Search

proc time: 2.02