Software Maintenance and Evolution

A large amount of software development effort relates to its maintenance as systems evolve.

I’ve worked in approaches related to software maintenance under distinct perspectives: code merging, variability management, and traceability.

Click on to see related publications; to visit the repository on Github.



Jaid

An approach for code merging using transformations and member identity. The Jaid prototype is a realization of the approach for Java that uses JavaParser for representing code as Abstract Syntax Trees.

This work was developed in the MSc thesis of André Teles.

Jaid


Feature models for plugin-based systems

An approach for managing the variability offered by the plugin-based system of Eclipse (Equinox/OGSi) by means of feature models – these are manipulated as a technical DSL to define valid system configurations.

Plugins as features



GUI-driven code tracing

GUI-driven code tracing helps to locate source code by interacting with the application.