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. Composing heterogeneous modelsModelling 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 compositionWhen 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 softwareThere 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 testingAspect-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’. |