Hello everyone,

on Thursday 3rd of  at May at  9:00 I will defend my Ph. D. thesis
entitled  "Enriching Reverse Engineering with Feature Analysis".
The defense will take place in room 003 in the IWI building on
Engehaldenstrasse 8, 3012 Bern. Please find the abstract below.
After the defense, there will be an apero in the Cafeteria of the
building S14 on Schutzenmattstrasse 14.
Everybody is cordially invited to the defense and to the apero.

With best regards

Orla Greevy
Software Composition Group
Universitaet Bern

System comprehension is a prerequisite for software maintenance and evolution, but it is a time-consuming and costly activity. In an effort to support system comprehension, researchers have devised many different reverse engineering techniques. Several of these are based on statically analyzing the source code.  Purely static analysis techniques, however, overlook valuable end-user knowledge of how a system behaves at runtime.

To address this problem, several researchers have identified the potential of exploiting features in a reverse engineering context. Features are abstractions of a system's problem domain that well-understood by end-users. They encapsulate knowledge of a problem domain and denote units of system behavior. Thus, they represent a valuable resource for reverse engineering a system, The main body of feature-related reverse engineering research is concerned with \emph{feature identification}, a technique to map features to source code.  To fully exploit features in reverse engineering, however, we need to extend the focus beyond feature identification and exploit features as primary units of analysis. We formulate our thesis as follows:

To exploit the inherent domain knowledge of features for object-oriented system comprehension, we need to explicitly model features, their relationships to source artefacts, and their relationships to each other.

The contribution of our work is twofold: on the one hand, we enrich reverse engineering analysis of object-oriented systems with semantic knowledge of features, and on the other hand, we introduce new techniques that treat features as the primary entities of analysis. Our key contribution is our definition of Dynamix, a meta-model for expressing feature entities in the context of a structural meta-model of source code entities. Using case studies, we demonstrate how our feature-centric reverse engineering techniques, based on Dynamix, exploit feature knowledge to establish traceability between the problem and solution domains throughout the life-cycle of a system.