Model-Driven Engineering (MDE) enables the automatic generation of performance models from software design models by model transformations. The performance models are used for performance analysis of the software under development, to guide the design choices from an early stage and to ensure that the system will meet its performance requirements. The software model evolves during development, so inconsistencies may appear between the software and performance models. This research aims at keeping the software and performance models synchronized.
An important concept in model transformations is the mapping between the source and target (meta)models, which can be specified in a reusable manner with the help of mapping patterns. In this research we propose a subclass of such patterns, called containment-based mapping patterns. used to map a group of containment-related source model elements into a group of target model elements. We focus on these patterns because the containment relationship is frequently found in metamodel specifications. The containment mapping patterns are applied in the context of a non-trivial transformation from UML software models extended with MARTE performance annotations into Layered Queueing Network (LQN) performance models. We show how the mapping patterns can be applied for designing the transformation rules for a batch transformation implemented in a specific language. (The complete implementation of the batch transformation was done in separate work). In this research, we extend the batch transformation to generate, beside the target model, a traceability model between the mapped source and target elements. After solving the generated LQN model with an existing solver, the performance results are fed back to the software model by following the cross-model trace links.
The next objective of the research is to design (based on the mapping patterns), implement and evaluate an incremental change propagation (ICP) approach to re-synchronize the software and performance models. During the development process, when the software model evolves, we detect the changes with the Eclipse EMF Compare tool, then incrementally propagate them to the LQN model. The proposed ICP is implemented with the Epsilon Object Language (EOL) and is evaluated by applying it to a set of case studies.