Components for Model Discovery from Legacy Technologies M24


As ARTIST is dealing with the migration of already existing systems (to the Cloud), Reverse Engineering occupies a fundamental part of the developed methodology, general process and supporting tooling. In order to be able to efficiently realize both the migration feasibility analysis and actual migration itself, the prerequisite is to be able to obtain relevant and sufficient representations of the already existing system to be migrated.

More precisely, ARTIST is following a MDE-based approach were models are considered and used as main representations of a given existing system. Thus, a Model Driven Reverse Engineering (MDRE) tooling is needed in order to (semi-)automatically produce these models out of the software artefacts composing the system. MDRE mainly consists in two main phases: Model Discovery and Model Understanding. While Model Discovery is about obtaining base (i.e., low-level) models from the various software artefacts composing the existing system, the main purpose of Model Understanding is to perform a deeper analysis/interpretation of these discovered models to prepare and facilitate the next steps of the migration.

In the context of the ARTIST project, Task 8.2 is dedicated to the study, design and implementation of the support to this initial Model Discovery phase. The present document is focusing on the actual tooling support concretely implemented and provided within the context of ARTIST, namely the ARTIST Model Discovery Toolbox. The main objective of this toolbox is to provide to the migration engineers the set of generic components they require to build base models from the various software artefacts of a given existing system. The models produced are base models in the sense that they are direct/systematic representations of the content of the software artefacts, potentially conforming to different metamodels (e.g., UML, KDM or other more specific metamodels). It is very important to notice that no further analysis or interpretation of this content have been realized up to this point: the ARTIST Model Understanding Toolbox (cf. D8.3.2) is then in charge of performing these next operations.

As part of ARTIST and related to the project’s use cases, the support for both the Java EE and .NET technical spaces is being addressed. Thus, two main families of discovery components are provided accordingly (targeting these two main technical spaces). In addition to offering a big picture of the toolbox itself (architecture, functional and technical features, positioning in ARTIST), this deliverable is also similarly giving more insights on each one of the individual components developed and/or proposed by the different partners involved in this particular aspect of the project. The document also addresses the support for traceability which is required throughout the ARTIST modernization process. Such a support is described as part of this deliverable and Task 8.2/WP8, even though it is obviously relevant and useful within the context of other WPs.

The main innovation of the proposed toolbox is that it is open and extensible. Thus, the base support currently offered relies on a set of well-established IDEs and related capabilities: the Eclipse Modeling project for the Java technology and the Sparx Enterprise Architect solution for the .NET technology. They have been/are being/will be reused and extended in order to design and build the new components implementing the required functionalities as progressively identified within the course of the project. In any case, exchanges between these two environments are ensured via model import/export capabilities using the UML standard as a base (and this is also true with other tasks and WPs such as T8.3 and WP9).

This document presents the current version of the ARTIST Model Discovery Toolbox at M24, resulting from the consolidation and extension of the initial version of this same toolbox as provided at M12 (cf. ARTIST D8.2.1). It will be followed at M30 by a last version (in the context of ARTIST at least) of this toolbox that is planned to go a step further by offering more stable versions of the discovery components developed all along the project (covering notably the Java/JEE and C#/.NET worlds).