Legacy systems embrace a large number of technologies, making the development of tools to cope with legacy systems evolution a tedious and time consuming task. As modernization projects face with both technologies combination and various modernization situations, model-driven approaches and tools offer the requisite abstraction level to build up mature and flexible modernization solutions.
MoDisco provides an extensible framework to develop model-driven tools to support use-cases of existing software modernization :
Verifying whether an existing system meets the required qualities (detection of anti-patterns in existing code and computation of metrics.)
Extraction of information from an existing system to help understanding one aspect of this system (structure, behaviour, persistence, data-flow, change impact , etc).
Transformation of an existing system to integrate better coding norms or design patterns.
Transformation of an existing system to change a component, the framework, the language, or its architecture
In each case, modernizing an existing software system implies:
- Describing the information extracted out of the artifacts of this system
- Understanding the extracted information in order to take the good modernization decisions
- Transforming this information to new artifacts facilitating the modernization (metrics, document, transformed code, ...)
MoDisco aims at supporting these three phases by providing :
- Metamodels to describe existing systems
- Discoverers to automaticaly create models of these systems
- Generic tools to understand and transform complex models created out of existing systems
- Use-cases illustrating how MoDisco can support modernization process