Migration: transformation of the source code to change the framework, the language, or the architecture of existing applications.

Other more specific use-cases may be supported as, for example, extraction of business rules from programs to populate a business-rules engine, modification of an existing system to better integrate with another system, etc…

Technology layer

The technology layer contains components dedicated to one legacy technology.

These components can be reused between several use-cases components involving the same legacy technology. For example, a use-case computing metrics on Java source code and another providing refactoring for Java applications could reuse the same component.

Use-cases generally involve only one legacy technology (the one used to implement the existing system). Nevertheless, some use-cases can involve several legacy technologies. It is the case when the existing system is heterogeneous, built with several languages. For example, when a system, implemented with Java, stores data into a relational database using JDBC, the use-case may need MoDisco components able to analyse Java and SQL source code.

Each technology component is composed of, at least, a metamodel of the dedicated technology. This metamodel describes the elements required to support modernization use-cases for the corresponding technology. Depending on the kind of use-case the metamodel can be complete (for refactoring or migration) or partial (for cartography or some quality analysis scenarii).

Ideally, the metamodel is completed by a discoverer, a component which aims at building models conforming to the metamodel from artefacts of an existing system. Artifacts analysed by discoverers are not necessarily source code files. There exists multiple other ways a discoverer can find the information needed to create a model of an existing system :

analysing parameter files

analysing execution logs

unzipping an archive to access its contents

querying a database

using APIs to access a tool with which the system has been designed

translating data provided by a reverse-engineering tool into model

transforming models provided by another discoverer

A MoDisco Technology component can come with utilities dedicated to its metamodel: