Skip to main content

Über dieses Buch

– Those who want to learn about AOM ?nd in this special issue a concise collection of descriptions of solid and mature AOM approaches. They only have to take the time to understand one case study in order to appreciate the sample models shown in all papers. – Those who want to apply AOM for a particular purpose and are looking for the most appropriate AOM technique can use the papers presented in this specialissue to identify the mostpromisingapproach(es).By identifying similarities between their problem and the case study they should be able to determine candidate AOM approaches easily. – Those working on their own AOM approach can readily identify approaches that were able to handle concerns that their own approach is not able to handle elegantly. This stimulates cross-fertilization between approaches and collaborative research. – Thoseengineering researchersthat areworkingon enhancing softwaredev- opment processes can use the example models presented in this special issue to understand the potential bene?ts of using AOM techniques at di?erent phases of the software development life-cycle.



Crisis Management Systems: A Case Study for Aspect-Oriented Modeling

The intent of this document is to define a common case study for the aspect-oriented modeling research community. The domain of the case study is crisis management systems, i.e., systems that help in identifying, assessing, and handling a crisis situation by orchestrating the communication between all parties involved in handling the crisis, by allocating and managing resources, and by providing access to relevant crisis-related information to authorized users. This document contains informal requirements of crisis management systems (CMSs) in general, a feature model for a CMS product line, use case models for a car crash CMS (CCCMS), a domain model for the CCCMS, an informal physical architecture description of the CCCMS, as well as some design models of a possible object-oriented implementation of parts of the CCCMS backend. AOM researchers who want to demonstrate the power of their AOM approach or technique can hence apply the approach at the most appropriate level of abstraction.
Jörg Kienzle, Nicolas Guelfi, Sadaf Mustafiz

Requirements Modeling with the Aspect-oriented User Requirements Notation (AoURN): A Case Study

The User Requirements Notation (URN) is a recent ITU-T standard that supports requirements engineering activities. The Aspect-oriented URN (AoURN) adds aspect-oriented concepts to URN, creating a unified framework that allows for scenario-based, goal-oriented, and aspect-oriented modeling. AoURN is applied to the car crash crisis management system (CCCMS), modeling its functional and non-functional requirements (NFRs). AoURN generally models all use cases, NFRs, and stakeholders as individual concerns and provides general guidelines for concern identification. AoURN handles interactions between concerns, capturing their dependencies and conflicts as well as the resolutions. We present a qualitative comparison of aspect-oriented techniques for scenario-based and goal-oriented requirements engineering. An evaluation carried out based on the metrics adapted from literature and a task-based evaluation suggest that AoURN models are more scalable than URN models and exhibit better modularity, reusability, and maintainability.
Gunter Mussbacher, Daniel Amyot, João Araújo, Ana Moreira

Relating Feature Models to Other Models of a Software Product Line

A Comparative Study of FeatureMapper and VML*
Software product lines using feature models often require the relation between feature models in problem space and the models used to describe the details of the product line to be expressed explicitly. This is particularly important, where automatic product derivation is required. Different approaches for modelling this mapping have been proposed in the literature. However, a discussion of their relative benefits and drawbacks is currently missing. As a first step towards a better understanding of this field, this paper applies two of these approaches—FeatureMapper as a representative of declarative approaches and VML* as a representative of operational approaches—to the case study. We show in detail how the case study can be expressed using these approaches and discuss strengths and weaknesses of the two approaches with regard to the case study.
Florian Heidenreich, Pablo Sánchez, João Santos, Steffen Zschaler, Mauricio Alférez, João Araújo, Lidia Fuentes, Uirá Kulesza, Ana Moreira, Awais Rashid

Aspect-Oriented Development Using Protocol Modeling

The aim of this paper is to explore the modeling of crosscutting behavioral abstractions. We argue that behavioral aspects can be seen as a particular kind of more general behavioral abstraction called a “mixin”. Mixins support a compositional style of modeling, whereby a complete class definition is constructed by composing one or more mixins each of which represents a partial definition of the class. If used as the replacement for inheritance, mixins can provide an expressive power equivalent to multiple inheritance.
In this paper we use a modeling semantics called Protocol Modeling to illustrate how mixins can be used to represent behavioral aspects. We use the Crisis Management System case to illustrate the Protocol Modeling approach, and describe how the model can be executed to give early validation of its behavior.
We discuss the extent to which the Protocol Modeling approach is scalable to large problems, is suitable for evolutionary development and supports correctness analysis and testing.
Ashley McNeile, Ella Roubtsova

Using VCL as an Aspect-Oriented Approach to Requirements Modelling

Software systems are becoming larger and more complex. By tackling the modularisation of crosscutting concerns, aspect orientation draws attention to modularity as a means to address the problems of scalability, complexity and evolution in software systems development. Aspect-oriented modelling (AOM) applies aspect-orientation to the construction of models. Most existing AOM approaches are designed without a formal semantics, and use multi-view partial descriptions of behaviour. This paper presents an AOM approach based on the Visual Contract Language (VCL): a visual language for abstract and precise modelling, designed with a formal semantics, and comprising a novel approach to visual behavioural modelling based on design by contract where behavioural descriptions are total. By applying VCL to a large case study of a car-crash crisis management system, the paper demonstrates how modularity of VCL’s constructs, at different levels of granularity, help to tackle complexity. In particular, it shows how VCL’s package construct and its associated composition mechanisms are key in supporting separation of concerns, coarse-grained problem decomposition and aspect-orientation. The case study’s modelling solution has a clear and well-defined modular structure; the backbone of this structure is a collection of packages encapsulating local solutions to concerns.
Nuno Amálio, Pierre Kelsen, Qin Ma, Christian Glodt

Workflow Design Using Fragment Composition

Crisis Management System Design through ADORE
The Service-Oriented Architecture (Soa) paradigm supports the assembly of atomic services to create applications that implement complex business processes. Assembly can be accomplished by service orchestrations defined by Soa architects. The Adore method allows Soa architects to model complex orchestrations of services by composing models of smaller orchestrations called orchestration fragments. The Adore method can also be used to weave fragments that address new concerns into existing application models. In this paper we illustrate how the Adore method can be used to separate and compose process aspects in a Soa design of the Car Crash Crisis Management System. The paper also includes a discussion of the benefits and limitations of the Adore method.
Sébastien Mosser, Mireille Blay-Fornarino, Robert France

Modeling the Car Crash Crisis Management System Using HiLA

An aspect-oriented modeling approach to the Car Crash Crisis Management System (CCCMS) using the High-Level Aspect (HiLA) language is described. HiLA is a language for expressing aspects for UML static structures and UML state machines. In particular, HiLA supports both a static graph transformational and a dynamic approach of applying aspects. Furthermore, it facilitates methodologically turning use case descriptions into state machines: for each main success scenario, a base state machine is developed; all extensions to this main success scenario are covered by aspects. Overall, the static structure of the CCCMS is modeled in 43 classes, the main success scenarios in 13 base machines, the use case extensions in 47 static and 31 dynamic aspects, most of which are instantiations of simple aspect templates.
Matthias Hölzl, Alexander Knapp, Gefei Zhang

Aspect-Oriented Design with Reusable Aspect Models

The idea behind Aspect-Oriented Modeling (AOM) is to apply aspect-oriented techniques to (software) models with the aim of modularizing crosscutting concerns. This can be done within different modeling notations, at different levels of abstraction, and at different moments during the software development process. This paper demonstrates the applicability of AOM during the software design phase by presenting parts of an aspect-oriented design of a crisis management system. The design solution proposed in this paper is based on the Reusable Aspect Models (RAM) approach, which allows a modeler to express the structure and behavior of a complex system using class, state and sequence diagrams encapsulated in several aspect models. The paper describes how the model of the “create mission” functionality of the server backend can be decomposed into 23 inter-dependent aspect models. The presentation of the design is followed by a discussion on the lessons learned from the case study. Next, RAM is compared to 8 other AOM approaches according to 6 criteria: language, concern composition, asymmetric and symmetric composition, maturity, and tool support. To conclude the paper, a discussion section points out the features of RAM that specifically support reuse.
Jörg Kienzle, Wisam Al Abed, Franck Fleurey, Jean-Marc Jézéquel, Jacques Klein

A Graph-Based Aspect Interference Detection Approach for UML-Based Aspect-Oriented Models

Aspect-Oriented Modeling (AOM) techniques facilitate separate modeling of concerns and allow for a more flexible composition of the resulting models than traditional techniques. While this improves the understandability of each submodel, in order to reason about the behavior of the composed system and to detect conflicts among submodels, automated tool support is required.
We propose a technique and tool support for fully automatic detection of conflicts between aspects at the model level; more specifically, our approach works on models defined in UML with an extension for modeling pointcuts and advice. As back-end we use a graph-based model checker, for which we have defined an operational semantics of UML diagrams, pointcuts and advice. In order to simulate the system, we automatically derive a graph model from the diagrams. The simulation result is another graph, which represents all possible program executions, and which can be verified against a declarative specification of invariants.
To demonstrate our approach, we discuss a UML-based AOM model of the “Crisis Management System” (CMS) and a possible design and evolution scenario. The complexity of the system makes conflicts among composed aspects hard to detect: already in the case of five simulated aspects, the state space contains 9991 different states and 99 different execution paths. Nevertheless, using appropriate pruning methods, the state space only grows polynomially with the number of aspects. In practical cases, the order of the polynomial is very small, e.g., 2 in the case of the simulated CMS; therefore, the automatic analysis scales.
Selim Ciraci, Wilke Havinga, Mehmet Aksit, Christoph Bockisch, Pim van den Broek

Discovery of Stable Abstractions for Aspect-Oriented Composition in the Car Crash Management Domain

In this paper, we illustrate our method for the discovery of stable domain abstractions for the purpose of designing robust and reusable pointcut interfaces in the car crash management system (CCMS).
A pointcut interface represents an abstraction of the join points in the base application to which aspects are composed. Although many techniques and notations to model explicit pointcut interfaces exist, there is currently a lack of methodological guidance how to design pointcut interfaces which are (i) robust in light of software evolution and (ii) can be reused by multiple aspects. Based on use case engineering and domain modeling techniques, our method provides a systematic approach for discovering domain abstractions that are suitable for aspectual composition. Furthermore, it provides architectural guidelines to design pointcut interfaces that are based on these stable domain abstractions. The underlying principle of our method is that the composition between aspect and base modules will be more robust and more reusable when specified in terms of stable domain abstractions, instead of low-level implementation details.
In this paper, we provide concrete evidence from the CCMS of how our method can be adopted to realize the above-mentioned goals. Specifically, we illustrate how ripple effects from the base application to the aspects are avoided, and how this contributes to pointcut interface stability. Second, we show how duplication is avoided in the specification of the pointcut interfaces, and how this leads to effective reuse of the pointcut interfaces by multiple aspects.
Dimitri Van Landuyt, Eddy Truyen, Wouter Joosen


Weitere Informationen

Premium Partner