MoDELS ’08: Composition and Analysis of Behavorial Models
I’ve followed two presentations in the session on composition and analysis of behavioral models. The first one on a general approach for scenario integration, the second one on behavioral modeling and composition of object slices using event observation.
A general approach for Scenario Integration
The baseline of this presentation is that model integration is essential to support team development. If multiple, distributed teams have to work on the models separately, you’ll need a system to integrate the models back into a central managed model.
The presentation was focused on scenario integration, i.e. integrate two sequence diagrams. In principle four steps are needed to perform model integration:
- Formalization: not every modeling language is formal enough to perform integration operations on.
- Specifying view correspondence: specify the overlap between the models by providing a span.
- Merge: execute a "pushout" operation on the span (see category theory).
- Normalization: try to remove redundant elements, etc.
Behavioral Modeling and Composition of Object Slices using Event Observation
A well-known software modularity dilemma is that of crosscutting concerns. While in traditional programming approaches this can be solved using Aspect-Oriented Programming (AOP), when handling crosscutting concerns in behavioral models you’ll need Aspect-Oriented Modeling (AOM). AOM comes in two flavors:
- (offline) transformation: we have a base model and separately defined aspects. These are transformed into one new model, which is executed.
- (online) composition: the aspects are not included in the base model, but executed separately. At runtime the base models and aspects are ‘composed’.
In the first approach you need full insight in the models and aspects (white box). In the second approach interfaces can be used, so you don’t have to have full insight in the ‘other’ models (black box).
The presented solution for (online) composition was based on observation (using probes, event based) rather than explicit communication between the base model and aspects. For technical details I recommend to read the paper.