Language

Aspect-Oriented Research Projects


We are working in some areas of Aspect-Oriented Software Development, each of them solving a particular problem of this paradigm.
  • Early Aspects: Automatically Identification of Concerns and Conflictive Situations
  • Software maintenance:
    • Aspect Mining: Identification of crosscutting concerns in legacy systems
    • Aspect Refectoring: Migration of object-oriented systems to aspect-oriented ones
We also work in the developing of applications with Agile Methodologies (AM)
  • Whole-farm developing: How AM helps to save a whole-farm simulation project
  • AM with aspect-oriented developing: How the aspect orientation improves the software integration of  AM iterations
We already worked in another related topics
  • Alpheus: A Reflective Tool for Aspect-Oriented Software Development
  • ASTOR: A Prototype for the Aspect-Conflict Management in AspectJ

Alpheus: A Reflective Tool for Aspect-Oriented Software Development

Alpheus is a visual tool designed to aid users in the development of aspect-oriented applications. The tool supports the following tasks:

-    the specification of all the components of an application (planes, basic objects, and aspects), and the specification of the associations and conflicts between the components;
-    the visualisation of these specifications and components by means of different diagrams and levels of abstraction;
-    the generation of the corresponding application code.
The tool allows developers to define the classes of the base application and the aspects using pre-existing ones or creating new ones. A developer may use Alpheus to add aspects to a standard application without modifying its classes, by defining the classes presenting aspects to be added to the application, and by specifying the associations and conflicts between the basic application components and the aspects.
As every aspect with similar functionality belongs to the same plane. It may be possible to specify which particular policy or aspect is to be used in an application by defining the corresponding association, offering great flexibility when implementing a specific feature.
For an aspect to be composed (or activated) at runtime with a component of the application (class, object, or method), the corresponding association between that aspect and the reflected component must be specified with Alpheus. The developer must also specify if the aspect has to be activated before, after, or before and after, the invocation of the reflected element.
Alpheus also supports the specification of conflicts between aspects. The developer specifies the pair of conflicting aspects (or planes), and then specifies how the conflict has to be solved by identifying the type of conflict (in order, optional, exclusive, null, or context dependent). In the case of a context dependent conflict, the developer adds the code which is executed when the specified conflict is detected.
In order to facilitate the design and specification of an application´s components and their associations and conflicts, Alpheus provides different views of the system. It is possible to identify two main groups of diagrams: firstly, those related to planes, conflicts and association levels; secondly, those related to the UML diagrams (packges and interaction diagrams).
Once the specification phase has been completed, Alpheus generates the corresponding code plus a list of tasks for the developer to complete when the tool finds that some information is missing for the full generation of the application code. The programmer will only have to implement some application-specific characteristics.
Although this tool for the instantiation of the framework currently generates Java code, it has been designed so that it may be extended in order to generate the application code in other programming languages.

Alpheus Code

Reflective Framework

Alpheus Tool (old)

Alpheus Tool (new)

Generated code for an Educational Center


ASTOR: A Prototype for the Aspect-Conflict Management in AspectJ

AspectJ carece de mecanismos para detectar posibles conflictos entre aspectos. El tejedor-compilador “ajc” no advierte las posibles situaciones conflictivas en forma automática y procede en forma normal, tal como si no existiera ningún conflicto. Es tarea y responsabilidad del desarrollador llevar el control de los conflictos que se generan.
ASTOR es un prototipo que da soporte a un conjunto de estrategias dirigidas a mejorar el tratamiento de conflictos en Aspecto. ASTOR no reemplaza ni modifica al tejedor de AspectJ, sino que mediante un pre-procesamiento del código detecta automáticamente los conflictos y permite aplicar las políticas de resolución en forma semiautomática.
La taxonomía de conflictos que incorpora, originalmente procede de un enfoque dinámico, la cual es trasladada (adaptada) al enfoque estático de AspectJ. La alternativa que se ha escogido en este caso está basada en el pre-procesamiento de código AspectJ. De esta manera, previo al proceso de tejido de aspectos y clases, el desarrollador dispone de la información referente a las potenciales situaciones conflictivas, pudiendo de esta manera, determinar él mismo la forma de resolución.

Publications
  • Identificación temprana de aspectos. Betina Haak, Miguel Díaz, Claudia Marcos, Jane Pryor. Workshop Chileno de Ingeniería de Software. Valparaiso Chile. Noviembre 2005. [early05.pdf ]
  • Administración de Conflictos entre Aspectos en AspectJ. En co-autoria con Sandra Casas, Verónica Vanoli, Hector Reinaga, Luis Sierpe, Jane Prior, Claudio Valdivia. In Proceedings of the Six Argentine Symposium on Software Engineering (ASSE´2005), 34 JAIIO (Jornadas Argentinas de Informática e Investigación Operativa), pp 111-125. Rosario Agosto 2005.[asse05.pdf ]
  • An Extension of ArgoUML for the Incorporation of Profiles. En co-autoria con Edgardo Belloni, y Jane Pryor. CACIC 2004. La Matanza, Octubre 2004 Buenos Aires. Argentina [cacic04.pdf ]
  • The modeling of new technological domains in UML. En co-autoría con E. Belloni, and J. Pryor. Proceedings de WICC'04, Workshop de Investigadores en Ciencias de la Computación. Neuquén, Río Negro Mayo 2004. [wicc04.pdf ]
  • Solving Conflicts in Aspect-Oriented Applications. En co-autoria con Jane Pryor. In Proceedings of the Fourth Argentine Symposium on Software Engineering (ASSE´2003), 32 JAIIO (Jornadas Argentinas de Informática e Investigación Operativa), ISSN 1666-1141, Volumen 32 Buenos Aires, Argentina. September 2003. [asse03a.pdf ]
  • A Framework for the Development of Multi-Level Reflective Architecture. En co-autoria Federico Valentino, Andrés Ramos, Jane Pryor. ASSE 2001 Second Argentine Symposium on Software Engineering. 32 JAIIO (Jornadas Argentinas de Informática e Investigación Operativa), ISSN 1666-1141 Volumen 30. September 2001. Buenos Aires Argentina. Pp 199-212. [asse01.pdf ]

 

 

Copyright © 2009 ISISTAN. All rights reserved.
Comments