Table of Contents

Smart Annotations

Research Context

Languages such as Java allow developers to write annotations in the source code. These annotations can be added to the different entities that are present in the code (classes, methods, field …) and provide additional information about these source-code entities. For example, a developer can use such annotations to indicate that a method implements a transaction, that a class is involved in a design pattern and so on.

While correctly annotated source code provide additional information to developers that aids in comprehending the system, incorrectly annotated code can have the opposite effect. Furthermore, technology such as aspects often relies on the presence of (correct) annotations as a basis for specifying program behaviour.

Smart annotations are a way to enhance Java annotations in such a way that these annotations become aware of the locations in the source code where they need to apply. Using smart annotations, a developer can specify structural and behavioral constraints over annotations, that will be verified in the actual source code of the system.

General Objectives

Currently, a prototype implementation of smart annotations is available that allows for the definition of structural constraints over the annotations. The goal of this thesis is to further extend this model with behavioral constraints as well as to provide tool support by means of an Eclipse plugin.

Research Training

The goal of the research training is to start with the existing implementation, that consists of a basic Eclipse plugin supported by a Smalltalk back-end, and extend this to have full-fledged tool support for Smart Annotations. This tool support allows developers to specify annotation constraints, gives feedback concerning inconsistencies, provides quick fixes and so on.

Requirements

Contact

Andy Kellens

Email: akellens at vub dot ac dot be

Office: 10F732

Kris De Schutter

Email: kdeschut at vub dot ac dot be

Office: 10F730