held in conjunction with the 12th International Conference on Model Driven Engineering Languages and Systems ( MoDELS'09) , October, 2009, Denver, Colorado
The goals of the workshop are to identify and discuss the benefits of applying aspect-oriented technologies to models (as opposed to code). As aspect-orientation continues to advance, each year there are new and powerful aspect-oriented techniques presented at several international venues. Despite the continued progress, it is not clear what features of such techniques are “common aspect-oriented concepts” and what features are rather language-specific specialties. Research in aspect-oriented modeling has the potential to help find common characteristics at a more abstract level (i.e., common features representing the essence of aspect orientation that are language-independent).
Moreover, not only does modeling allow the developer to raise the level of abstraction of a system description, it also makes it possible to describe the system from different viewpoints, focusing on different properties using the most appropriate modeling formalism. Because the modeling formalism is chosen by the developer to reason about the properties of interest, it is also more likely that it is easier to express modularization and composition of these properties by applying aspect-oriented ideas within that formalism.
Finally, aspects that are deeply rooted within the syntax and structure of code are only applicable within that context, i.e., in systems developed with that particular programming language or environment. This reduces the generality of the aspectoriented approach, since such aspects are rarely reusable in different contexts, and often are also fragile against software evolution. It is a common feeling that a more abstract (to some extent: more semantics-based) approach to the join point selection and description may render aspects more general-purpose and reusable.
This workshop series brings together researchers and practitioners from two communities, aspect-oriented software development and software model engineering. It is intended to be a collaborative forum for:
Participation to the workshop was open to anyone attending the conference, and as a result there were approximately 30 participants. Below is a group photo of the attendees that stayed at the workshop until the last session.
Gefei Zhang from the Ludwig-Maximilians-Universität München in Germany presented the paper “HiLA: High-Level Aspects for UML State Machines”. State machines are popular, simple and intuitive for modeling the behavior of reactive systems. However, Gefei pointed out that state machines face important modularity problems when used to model behavior at a high level of abstraction. To address this problem, he proposed the higher-level aspect language for state machines named HiLA. The language provides three different kind of aspect models that allow a modeler to separate behavior pertaining to a different concern: synchronization aspects, history-based aspects, and low-level transformation aspects. To illustrate the approach, Gefei presented a simple state machine describing the behavior of a guard in a game environment that is composed of 3 rooms. He then showed how to extend the model to add more detailed behavior to the guard, e.g. to prevent the guard from moving from one room to the other in certain conditions, or to inhibit the guard from fighting in a specific room. This additional behavior was modeled in separate HiLA aspect models, and did not require the base model to be modified. HiLA also provides features that allow aspects to model behavior that is triggered by specific state transition sequences in the base, support for interference detection, and are model-checkable.
Wisam Al Abed from McGill University in Montreal, Canada, presented how the Reusable Aspect Models approach, previously published in [kienzle2007h, kienzle2009a] can be extended to support information hiding principles. In object-orientation, the class construct allows a modeler to encapsulates state and behavior. An interface allows a modeler to expose some of the encapsulated state and behavior to the outside world; everything else remains hidden within the class. Wisam argued that aspect-orientation adds a new dimension to encapsulation, allowing a modeler to group model elements related to the structure and/or behavior of a given concern together, a concern whose state and behavior usually crosscuts the class boundaries. As a result, information hiding becomes tricky. Wisam proposed that in addition to a public interface that exposes the state and behavior that the aspect is designed to provide to the outside world, model elements within an aspect need to define an intra-aspect interface that exposes state and behavior to the model elements within the same aspect. In addition, in order to support aspect hierarchies, an aspect weaver should automatically remove the public interface of an aspect during the weaving process by moving the operations from the public interface to the intra-aspect interface. As a result, aspects give the developer the power to hide design decisions effectively, even those that require the interaction of instances of multiple classes.
Unfortunately, none of the authors of the paper “Integrating AORA to the Problem Frames Approach” were able to attend the conference. Fortunately, Jorge Barreiros from the Instituto Politécnico de Coimbra in Portugal, who is a co-author of another paper presented at the AOM workshop with Ana Moreira, presented the paper. He highlighted the fact that problem frames do not systematically address the problem of separation of crosscutting concerns. He explained how it is possible to integrate the meta-model of the Problem Frames (PF) approach with the meta-model of the Aspect-Oriented Requirements Analysis (AORA) approach with the aim of making PF analysis models more modular.. As a result, an AORA concern can detail the requirements which must be fulfilled by a Problem Frame machine's for a specific problem. AORA responsibilities can then be mapped to interface specifications of problem frame machines. He suggested the following process: 1) design the context diagram to structure and delimit the problem (PF); 2) Identify the main concerns following AORA; 3) Generate AORA templates for each concern; 4) Design a problem diagram for each functional concern (PF); 5) Identify match points and crosscutting concerns; 6) Specify composition rules using AORA. Jorge illustrated the approach with the car parc case study.
Valter Camargo from the Federal University of Sao Carlos in Brazil presented his paper entitled “A Preliminary Comparative Study Using UML-AOF – a UML Profile for Aspect-Oriented Frameworks”. In previous publication at the AOM workshop held in March 2009 at the 8th International Conference on Aspect-Oriented Software Development, UML-AOF was proposed [camargo09]. The aim of the profile is to provide stereotypes that allow a modeler to better document the instantiation of an aspect-oriented framework within a target model, as well as provide the developers of an aspect-oriented framework features that facilitate the maintenance activity. Valter first presented a review of the UML-AOF stereotypes, and then continued on to describe an empirical study that was conducted in a university setting to compare ML-AOF with Evermann's profile [evermann07], a UML profile presented at the 10th AOM workshop that was developed to describe aspect-oriented designs of programs implemented with AspectJ. In the empirical study, 8 graduate students divided into two groups were asked to look at code of two case study systems, a hotel reservation system and workshop management system. Two crosscutting concerns, persistence and security, were implemented in both systems using an aspect-oriented framework. The students were given a questionnaire, in which they had to answer questions about 1) the idioms and patterns used to link the AOF with the base application; 2) extension points of the AOF; 3) questions that asked them to determine if a certain class or interface belonged to the base application or the AOF; 4) aspect-oriented programming language specific questions. The study showed that UML-AOF indeed helps highlighting special characteristics of aspect-oriented frameworks and of how they connect with a base application. The results also show that the time required to answer design-related questions of the group using UML-AOF was reduced by 6%, and that the number of mistakes of the UML-AOF groups was lower.
The last presentation entitled “Reusable Model Slices” was also given by Jorge Barreiros from the Instituto Politécnico de Coimbra in Portugal. Jorge argued that the reuse of model pieces within other models poses several challenges, e.g. adapting method signatures. Reusable model slices provide features that allow the modeler to express method signature manipulations that are to occur when a reusable model slice is woven into a base model. The presented approach also allows one aspect model to specialize another aspect model. Two kinds of specialization are supported: incremental and partial. Incremental specialization adds new template parameters to a model, while partial specialization fixes one of the template parameters. When specifying element creation within an aspect, the approach offers scoping features to specify if the created model element is to be universal to the target model (i.e. a single instance of the element is created), global (i.e. one instance of the element is created for each package), or local (i.e. one instance is created for each parameter binding).