====== 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 ===== * Knowledge of Java * Interest in learning a bit of Smalltalk * Interest in Eclipse plugins ===== Contact ===== [[http://prog.vub.ac.be/~akellens|Andy Kellens]] Email: akellens at vub dot ac dot be Office: 10F732 [[http://prog.vub.ac.be/~kdeschut|Kris De Schutter]] Email: kdeschut at vub dot ac dot be Office: 10F730