Carlos Noguera
Carlos Noguera
Vrije Universiteit Brussel
Faculty of Sciences, DINF – SOFT
Pleinlaan 2
B-1050 Brussels
Belgium
- Office:
- 10 F 735
- Tel.:
- +32 2 629 3492
- Fax:
- +32 2 629 2870
- E-mail:
- cnoguera@vub.ac.be
- vCard:
- Carlos Noguera
Research Interests
| Title | Metadata-driven development and maintenance |
|---|---|
| Keywords | annotations, generative programming, evolution |
| Publications | Recent |
I am a researcher at the Software Languages Lab, which is part of the Computer Science Department of the Faculty of Sciences and of the Informatics Department of the Faculty of Applied Sciences at the Vrije Universiteit Brussel.
Short Research Description
Annotations allow the developer to embed meta-data on his application's source code to denote special semantics. Annotations are then interpreted by an annotation library that implements these special semantics. In the case of Java annotations have become a common occurrence both in academic and industrial frameworks. Annotations are meant as meta-data attached to elements of a program. They have no inherent semantics, since the semantics of an annotated element are given by its interpretation. That is, just by looking at an annotated program, it is impossible to know how the annotations modify its behaviour. If an annotated application is to evolve, it must before be understood.
We aim to make the semantics of the annotations be more than mere documentation. Using the feature-oriented specification, it will be possible to automatically assert the validity of the annotated application thereby easing its evolution.
Having specified the semantics of annotations, the problem of annotation evolution can be tackled. In this research three evolution scenarios will be considered: The evolution of annotated code, the evolution of annotation libraries, and the migration of the annotated code to a different annotation library. Some of the questions that should be answered are how to evolve the application while respecting the structural and behavioral constraints of its annotations; how to upgrade an annotated application whenever the annotation library evolves; and how to migrate between two equivalent annotation libraries while minimizing the impact to the annotated application.
