Scientific objectives for the MoCAA Equipe Associée

Model-Driven Engineering (MDE) is often described as the process of systematically transforming abstract models to concrete implementations. For this reason, model transformations are considered core to MDE. Our work on aspect-oriented modelling, in particular, on model composition provides insights that suggests otherwise. One can view the process of developing software as consisting of two key activities: analysis and synthesis. Analysis is concerned with separating concerns and modelling each aspect that addresses a software development concern separately, and synthesis is concerned with composing the different aspects to produce a software solution. In this collaboration we will further investigate this approach to MDE. Software complexity can be better managed if developers model different concerns separately in order to understand and analyze them on their own. To produce a comprehensive software solution it is then necessary to compose the different models and analyze the result to check that it is consistent and that it has desired global properties. However, models tend to have complex structures and thus manual model composition can be arduous and error prone. Tools that automate significant parts of this composition are needed if this separation of concern is to gain industrial acceptance.
This separation of concern is well defined in aspect-oriented software development (AOSD). In this collaboration we will investigate how ideas and concepts developed by us and other researchers in the aspect-oriented and modelling domains can be leveraged to better support analysis and synthesis of software. At the design level we will focus on developing support for semantic-based composition of models and rigorous analysis of models. We will also carry out research in the aspect-oriented programming (AOP) area because some of the issues are not well-understood. Specifically, we will study how to test an aspect-oriented program and to reduce the risks induced by this new approach for programming.

Composing heterogeneous models

Modelling languages such as the Unified Modeling Language (UML) provide support for multi-modeling, that is, an aspect of a system can be described by a model consisting of a heterogeneous set of diagram types. These models are said to be heterogeneous. A system can be described using multiple heterogeneous models, where each model describes a different aspect of the system. These models may need to be composed in order to obtain an integrated view of the design that can be analyzed to uncover undesirable interactions across the aspects When two heterogeneous models are composed, the composition of the constituent diagram types have to be synchronized in order to ensure that the result is a composed model with consistent constituent diagrams. The research aims to produce a framework that MDE methodologists can use to create composition operators that support semantic-based composition of heterogeneous models.

Contracts on models for semantic composition

When separating concerns in different models, several questions arise when a modeller wants to compose in a global view of the system to be developed. In which order should these concerns be composed? In which order can they be composed? Will unexpected behaviour emerge from composition? What can I know about the result of automatic model composition? All these questions are related to verification and reasoning issues when composing models. Component-based approaches use contracts to define expected properties on the environment in which the component can be composed. Here, we will adapt the concept of contracts on models. These contracts will express invariants that have to be preserved after composition or expected properties on the model on with which it can be composed. The contracts we will study will be expressed in a formal modeling language such as Alloy. This will allow rigorous analysis of models and automatic constraint solving on models. This work on contracts for models will pay particular attention to the analysis of class diagrams with OCL invariants and operation specifications.

Using models at runtime to support human-driven runtime adaptation of software

There is a growing need for complex coordination and control systems that operate in highly-dynamic environments (e.g., disaster management systems, infectious disease management systems). System administrators and domain users must be able to adapt these systems at runtime to meet changing needs. Configuring and adapting these systems using current system administration technologies is extremely difficult because of the low-level at which information is presented to the administrators. This difficulty provides opportunities for introducing errors that can severely hamper the system's ability to deliver critical services in a timely manner. The proposed research is concerned with developing model-based mechanisms that system administrators managers can use to manage the complexity of adapting systems at runtime. A major research objective is to produce techniques for developing { model-based runtime adaptation infrastructures} with human-computer interfaces that allow administraors to (1) express adaptation goals and policies in domain-specific terms, and (2) directly specify and analyze system reconfigurations in domain-specific terms.

Empirical case study on aspect-oriented modeling (AOM)

We will develop a development case study to assess the practicality of using aspect-oriented modeling (AOM) techniques on industrial-strength development problems. The case study will help us explore the extent that the separation of concerns mechanisms provided by AOM techniques help manage the complexity of developing large systems. We will also evaluate how automatic composition can assist making sound design decisions.

AOP and testing

Aspect-oriented programming appeared ten years ago as a promising solution to some limitation of objects as encapsulating units. Aspects that are meant to encapsulate cross-cutting concerns promised to improve maintenance and evolution of software. However, still today, the benefits and limitations of AOP are not clear. In particular the impact of AOP on the quality of programs remains a crucial question as aspects introduce new mechanisms that imply new types of errors. We will investigate how object-oriented testing has to be adapted to AOP and which new techniques must be developed to increase the trust in AOP.

Changes between MATT and MOCAA

Most of the work that will be conducted in MoCAA will be the follow-up of MATT. However, this will be performed with in a different conceptual framework. As mentioned in the introduction, our previous provided some insights that suggests that model composition is a core mechanism for MDE, instead of transformation. Composition is essential to allow modellers to reason at different scales at all levels of abstraction. They can analyze local models that focus on one specific concern and then compose theses models to reason at a larger scale. This can be done at the requirements level, the analysis level, the design level and even on low level models close to implementation. We are also convinced that model transformation can be seen as a specific case of composition. This change has an impact on the objectives for the next three years in which reasoning and analyzing model composition will be central. This change is also reflected in the name of the team in which ‘transformation’ is replaced by ‘composition’.
A second change is about the nature of our studies on composition. In MATT we studied algorithms and mechanical details of composition. Now that we have been able to implement these ideas in the Kompose tool, in MOCAA we want to focus on the analysis and the reasoning about composed models. This is why we want to study the composition of heterogeneous models and the definition of contracts on models that are composed. This last point will allow us to statically reason about the interactions between models and about the meaning of composition.
In MOCAA we also integrate a new topic that was not present in MATT: models at runtime and dynamic adaptation. This emerging topic will be studied by both groups in several projects. Dynamic adaptation is related to aspect-oriented modelling and composition in the sense that the different strategies to adapt at runtime can be described by aspects.