ABSTRACT
In the present work, we outline a reverse engineering approach for UML specifications in form of class diagrams from Java bytecode. After a brief introduction to the subject we present some analyses which go beyond mere enumeration of methods and fields. A glance onto some related work shows that there seems to be no pat solution for the reverse engineering of the more difficult class diagram elements.
We sketch our method of determining association multiplicities, being, in a sense, representative of our approach in general: "intuitive" analyses, producing results that can be understood by a programmer when inspecting the source code of a given class.
Finally, we introduce a tool that implements this work and we apply it onto a small real life example, discussing the results it gave.
- OMG: UML Specification Version 1.4, http://www.omg.org/cgi-bin/doc?formal/01-09-67Google Scholar
- FUJABA, http://www.fujaba.de/Google Scholar
- ArgoUML, http://argouml.tigris.org/Google Scholar
- Jan Pechanec: Reverse Engineering of Programs in Java Language, Master Thesis, 2002, http://www.sweb.cz/pechanec/Java2UML/Google Scholar
- Martin Gogolla, Ralf Kollmann: Re-Documentation of Java with UML Class Diagrams, http://www.db.informatik.uni bremen.de/publications/Gogolla_2000_euroREF.psGoogle Scholar
- class2uml, http://www-i2.informatik.rwth-aachen.de/~markes/class2uml/Google Scholar
Index Terms
- Reverse engineering of UML specifications from java programs
Recommendations
On reverse engineering an object-oriented code into UML class diagrams incorporating extensible mechanisms
Reverse engineering is the key idea for reconstruction of any existing system. In this paper, we propose an algorithm to reverse engineer an object-oriented code into Unified Modeling Language (UML) class diagram. Our algorithm is very general in nature ...
Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software
This paper proposes a methodology and instrumentation infrastructure toward the reverse engineering of UML (Unified Modeling Language) sequence diagrams from dynamic analysis. One motivation is, of course, to help people understand the behavior of ...
Round-trip Engineering UML Class Models and Java Models: A Real-world Use Case for Bidirectional Transformations with QVT-R
Model transformations constitute the key technology for model-driven software development, a software engineering discipline which became more and more important during the last decade. While tool support for unidirectional batch transformations is ...
Comments