Mechanisms for Viewpoint Definition and View Extraction from Models of Legacy Artifacts M12
The ARTIST project deals with the modernization of applications by moving them towards Cloud environments. The general modernization process has to cover two main phases when considering the technical level. In the first phase, the application has to be reverse engineered in order to understand the application and its potential for improvement. This means, we consider to start with a legacy application and to support situations where there is not enough knowledge about the current application available. As soon as this knowledge about the application is available by using techniques to discover this knowledge, the second phase is ready to be started, namely to forward engineer the application towards Cloud environments.
This document is concerned with the reverse engineering phase of the ARTIST process. In particular, two main steps are to be considered in this phase. First, models have to be discovered from the legacy applications that provide the information on the legacy system in a model-based representation. Second, by having the discovered models, dedicated concepts and techniques are required to actually understand the discovered models. For this, a dedicated model understanding step that supports the migration engineer in understanding the applications, to uncover latent properties and structures of the applications, and to produce the kind of models needed for the forward engineering phase, is foreseen. This means, the model understanding step builds on models produced by the model discovery step and produces models for the forward engineering phase. Consequently, the quality of the models produced in this step determines the possibilities and limitations of the forward engineering phase.
In this document, the general vision of the Model Understanding Toolkit is decribed; a set of components for defining and computing different views on the discovered legacy application models. As the legacy application model can be expected as complex as the legacy application itself, the notion of multi-viewpoint modeling as main technique for the model understanding step is employed. In this respect, a viewpoint allows focusing on a particular set of concerns while hiding other details of the application that are not of major importance for this particular viewpoint. Thus, the complexity of the overall application can be managed by separating different concerns and providing a set of viewpoints for migration engineers, e.g., for reasoning on the persistence, caching, communication related concerns. By having the viewpoints precisely defined in terms of metamodels and transformations, views can be automatically extracted from the legacy application models.
Currently three components are supported in the Model Understanding Toolkit that allow to produce different kinds of UML models from Java EE based legacy applications and that demonstrate the feasibility of providing a view-based model understanding approach and tool support based on current Eclipse-based technologies. Components supporting .NET are left as subject to future work.