From Requirements to Features: An Exploratory Study of Feature-Oriented Refactoring

Authors: Roberto E. Lopez-Herrejon, Leticia Montalvillo-Mendizabal and Alexander Egyed

More and more frequently successful software systemsneed to evolve into families of systems, known as Software Product Lines (SPLs), to be able to cater to the different functionality requirements demanded by different customers while at the same time aiming to exploit as much common functionality as possible. As a first step, this evolution demands a clear understanding of how the functional requirements map into the features of the original system. Using this knowledge, features can be refactored so that they are reused for building the new systems of the evolved SPL. In this paper we present our experience in refactoring features based on the requirements specifications of a small and a medium size systems. Our work identified eight refactoring patterns that describe how to extract the elements of features which were subsequently implemented using Feature Oriented Software Development (FOSD) – a novel modularization paradigm whose driving goal is to effectively modularize features for the development of variable systems. We argue that the identification of refactoring patterns are a stepping
stone towards automating Feature-Oriented Refactoring, and present some open issues that should be addressed to that avail.

Download PDF here!