Did you know that you can navigate the posts by swiping left and right?

Construct to Reconstruct – Reverse Engineering Java Code with JaMoPP

2009 workshop paper

In Proc. of 9th Workshop on Domain-Specific Modeling (DSM’09) at OOPSLA
with: Florian Heidenreich, Mirko Seifert, and Christian Wende

Reconstructing models from software artefacts is of utter importance to migrate existing systems to the age of Model-Driven Software Development. To do so, the software artefacts must be analysed and corresponding models need to be created. Many approaches perform this task in a rather direct way. Behavioural or structural models (e.g., UML state machines or class diagrams) are reconstructed from source code. However, this direct model reconstruction implies some major drawbacks. First, parsers and code analysis are reimplemented for different reconstruction tasks. Second, tools developed for forward engineering can not be reused. To resolve these drawbacks, we propose a multi-step procedure, that analyses the structure of artefacts and transforms them to the technological target spaces. The resulting model of the software artefact contains all information present in the artefact. It is therefore independent of specific reconstruction tasks. Then, the model reconstruction itself is performed. We exemplify this approach with our experiences from reverse engineering Java code with JaMoPP—a tool that creates models from Java source code. As JaMoPP was originally developed for forward engineering, we will also discuss how JaMoPP (and other too