Projecting UML Class Diagrams from Java Code Models
Heiko Klare, Michael Langhammer, Max E. Kramer · 2016
In model-driven software development, source code and other artifacts are used to describe and develop a software system. UML class diagrams are one of the most common models that are used. A UML class diagram models classes and interfaces of a software system as well as their relations. The usage of UML class diagrams in addition to source code can lead to drift and erosion if the models are not kept consistent with code changes and vice versa: Existing solutions solve this problem using consistency mechanisms that update the source code and UML class diagram accordingly. The development and maintenance of such consistency mechanisms can result in considerable effort and costs. In this paper, we present a prototype for a new UML class diagram editor that is realized as a projection of a Java source code model. The editor does not use an explicit UML model. It provides another concrete syntax for a subset of the source code elements and their relations. A model represenation of the source code is used as a single underlying model (SUM) for the projective UML class diagram view. As a result, code and diagrams are updated automatically without the need for a consistency mechanism. The current minimal UML class diagram editor uses state-of-the-art model-driven software technologies and adds less than 2000 LLOC to the Eclipse IDE, Sirius and JaMoPP.