Mechanisms for Viewpoint Definition and View Extraction from Models of Legacy Artifacts M30

Description: 

The ARTIST project deals with the modernization of applications by migrating them towards cloud environments. The general modernization process covers two main phases when considering the technical level. In the first phase, the application is reverse-engineered in order to understand the application and its potential for optimization. We consider to start with existing applications and to support situations where there is not enough information available about the current applications. Once this information is available by using techniques form model discovery and model understanding, the second phase, namely the forward engineering of the application towards a cloud environment, is performed.

This document is concerned with the migration phase of the ARTIST methodology, under the corresponding task of model understanding. In particular, the focus is set on dedicated techniques that facilitate the understanding of the discovered models. These techniques are considered to support the migration engineer to better understand the applications, to uncover latent properties and structures of the applications, and to produce the kind of models needed for the forward engineering phase. The model understanding step builds on models produced by the model discovery step and produces models for the forward engineering phase. As a result, the quality of the models produced by this step determines the opportunities and limitations of the forward engineering phase.

In this document, we report on the components of the Model Understanding Tool Box (MUTB). It aims at facilitating the understanding of typically large, complex models discovered from existing applications. In the context of this work, model understanding is considered to be a goal-oriented task while the information base to support this task is dedicated to model discovery. The MUTB relies on four main techniques: (i) Tagging of Models, (ii) Querying of Models, (iii) Slicing of Models, and (iv) Views on Models. Tagging of models basically aims at refining models with supplementary information that in the context of this deliverable facilitates the understanding of models. Querying of models is used for searching and retrieving model elements, as well as to obtain the necessary knowledge, or answers to specific questions of a task, in the form of basic types. Slicing of models is inspired from the notion of a program slice, though with a particular emphasis on the modeling level rather than the programming level. Finally, generating views on models enables to set the focus on certain parts of a model by providing a dedicated viewpoint.