The approach we propose with MoDisco consists in creating fine-grained models from the different kinds of artifacts which compose an existing system. From these models we can extract specific viewpoints to understand the existing system. And these models can also be used to regenerate a new version of the system.
MoDisco is composed of several kinds of components. A first layer provides components which are completely independent from any legacy technology : a Discovery Manager, a Model Browser to navigate through complex models, several extensibility mechanisms to define viewpoints on models, and the implementation of OMG specification which can serve as pivot metamodels. On top these generic components Modisco provides components which are dedicated to specific legacy technologies.
The last example is about building plug-ins. We have recently started to work on this problem with CEA (the french nuclear agency), IBM and Atlanmod. The problem when you build a set of plug-ins is that, depending on the content of the update sites declared in your configuration, you don’t know exactly which version of depending plug-ins will really be integrated. The default strategy takes the latest version available for each plugin. We are experimenting a solution, based on a constraint solver, to calculate build configurations depending on other strategies. Each build configuration can be converted into a B3 model or exported to a graphical cartography tool.