Dynamic Multi-level Separation of Concerns


 

This project has focused on reflective architectures as the means to provide separation of concerns with dynamic association and handling of conflicts between these concerns.
 

A Bit of History
At first we focused on a two-level architecture which supported dynamic association between the cross-cutting aspects and the functional or base components. This was implemented in Smalltalk and then Java, with the characteristic that the incorporation of these additional properties did not require modifications to the original application code. This naturally developed into the proposal of multi-level separation of concerns, so that the interaction between the concerns was not limited. The need then arose for the handling of conflicts between competing concerns or aspects.
At the same time, other work was focusing on the development of architectures with a flexible reflective mechanism, such that they could be used for applications with the need for different reflective capabilities.
A framework combining all this work has now been developed, and a tool for the instantiation of the framework has been implemented. This tool - Alpheus - assists the user in the specification of all the concerns of the system, grouping objects with similar functionality into separate planes (or concerns). Associations between components from different planes and the specification of potential conflicts between components, are also specified with the guidance of the tool. Alpheus then generates the Java code corresponding to the specified application, instantiating the reflective framework.
 

Publications


Alpheus
Alpheus is a tool for the construction of reflective applications in Java, assists in the specification of cross-cutting concerns, associations and conflicts.
 

Members:
Claudia Marcos
Jane Pryor
 

Students:
Natalio Bastán
Andrés Ramos
Federico Valentino

Last update: 25th September, 2001.