Harvesting existing software systems for MDA-based reengineering
Software systems degrade over time: they are affected by a phenomenon called aging. It
makes using and changing the software hard, risky and expensive. Therefore migration
projects are initiated, for example reengineering projects to revitalize degraded systems.
OMG’s MDA provides means to prevent, or at least slow down, software aging. It focuses on
models rather than code, which is merely a derivate of the models. MDA makes reengineering
projects more attractive by preventing the necessity of reengineering again in the near future.
Currently MDA-based reengineering gains more attention both in industry and academics.
This thesis describes the process and results of the Master project in which we aimed to
provide means and a process for MDA-based reengineering. A flexible workbench solution
has been developed for reverse engineering textual sources into MDA-ready UML models, a
process which we call harvesting. The commercial, state of the art MDA-tool ArcStyler has
been used as target environment for harvested UML models. To improve reusability of
harvesting components, a generic model is used as an intermediate step in the harvesting
process, which makes investments in more comprehensive harvesting assets economically
attractive. It is a first attempt to provide an initial generic intermediate model, for which
evolution during usage in different projects is foreseen.
The workbench has been tested on a 178 KLOC PL/SQL production system in a case study.
The textual sources have been harvested using the generic intermediate model, based on
which UML class and collaboration diagrams have been created to give insight in the
structure and to some extent in the behavior of the system. Although the current prototype
implementation suffers from scalability issues, parallel harvesting has proved to be an
effective countermeasure. As a showcase, the harvesters have been adapted to another
PL/SQL system, of which 33 KLOC have successfully been harvested to show adaptability of
The generated UML models have been used for documentation and code generation following
the MDA philosophy, currently resulting in code without behavior implementation.