Migrating and Evolving Software Product Lines: An Industrial Case Study of Feature Location and Visualization Techniques - ANDAM, BERIMA KWEKU (My University, 2018)
Many software development tasks revolve around features of a system, for example adding or removing a feature from a system. As a first step to performing these tasks, we need to know which source artifacts implement the feature(s). Knowledge of these so-called feature traces are often stored in feature-source trace documentations. In reality however, feature-source trace documentations are often either outdated or entirely unavailable. The main reason why this is often the case is that feature implementing source artifacts change so quickly that it is hard to keep its documentation up-to-date. In previous work, approaches aiming at reducing the amount of work needed to keep documentation up-to-date have been proposed. One such approach embeds featuresource trace documentation directly in the source artifacts using annotations [27]. It was found in the study that such annotations are cheap to create and maintain whiles its benefits far out-weight its costs as they naturally co-evolve with the artifacts they annotate. In this thesis, we adapt this approach and propose tool support for creating, maintaining and exploiting such annotations. The goal of the approach is two-folds: first to reduce the amount of manual work required to create and maintain these annotations in order to encourage developers to use them. Secondly, to provide visualizations and metrics of the embedded documentation to enable developers to understand the documented system from its feature perspective. Sometimes experts who can embed feature trace knowledge are not available. Therefore, in the second part of the thesis we propose an approach for recovering featuresource trace documentation from source artifacts. It is based on a machine learning approach to predict feature traces. The approach was evaluated through a case study at ABB Corporate Research where it was tested on a product family. The results of a preliminary study with developers shows that they found the visualizations and metrics provided by the tool useful for comprehending the features in the system and its properties. The results of the experiments show that the proposed machine learning approach for feature location produces accurate feature trace predictions over time.
Keywords: Features; Feature Location; Software Metrics; Visualization; Tool Support; Machine Learning