Veronica Uquillas Gomez
Veronica Uquillas Gomez
Vrije Universiteit Brussel
Faculty of Sciences, DINF – SOFT
Pleinlaan 2
B-1050 Brussels
Belgium
- Office:
- 10 F 732
- Tel.:
- +32 2 629 3581
- Fax:
- +32 2 629 3525
- E-mail:
- vuquilla@vub.ac.be
- vCard:
- Veronica Uquillas Gomez
- Homepage
- http://soft.vub.ac.be/~vuquilla/
Research Interests
| Title | Tool Support based on Declarative Meta Programming for Easing Architectural Evolution |
|---|---|
| Keywords | software evolution, architectural description languages, declarative programming |
Short Research Description
The architecture of a software system is its underlying structure in terms of components and how they are connected. Making the architecture of a system explicit has several benefits. An architectural description can serve purely as additional documentation, which gives developers a high-level overview of the system in terms of a few important concepts and their interrelationships, making it easier to understand. We can also speak of an architectural specification when we use an architectural description to specify the underlying structure a system must have. Many architectural patterns have been identified, which are commonalities in the way that different applications are structured. A typical example is the layered architectural pattern, in which a system is composed of components grouped in layers such that they can only be connected to the components immediately above and below. Specifying the overall structure that a system should have according to one of these established patterns helps ensure that the system can be effectively implemented.
The objective of this proposal is to provide tool support based on declarative meta-programming for keeping architectural specifications of a system and its source code synchronized upon evolution. Such support will make it possible to prevent phenomena such as architectural drift and erosion, which degrade the value of the architecture and the source code over time. For example, the use of frameworks such as Spring imposes a number of constraints on both the source code and the architecture of the system. Evolutions of the framework may result in that this set of constraints is altered, impacting the implementation of the system. By allowing reasoning about both source code and architecture, our approach will aid developers in propagating the changes resulting from the evolved framework into the implementation.
We also envision a co-evolution between the architectural specification and the implementation. For instance, when migrating a system to a service-oriented architecture, this yet again imposes constraints on both artifacts. The migration requires that both the source code of the system as well as the architecture are updated. In such a case, our technology can aid in providing semi-automated support for performing the migration, as well as keeping the architecture and the source code synchronized.
