EclipseUML Enterprise Edition
reverse engineering architecture


Vlad VARNICA, Business Development Director, sales@omondo.com
March 2004
Omondo Corporation,
IBM Partnerworld for Developers

This article gives you a quick understanding of EclipseUML Enterprise Edition byte-code architecture and reverse engineering functionalities.
The EclipseUML Enterprise Edition reverse engineering is more than 50 times faster than traditional UML solutions and the quality of reversed information more complete.


EclipseUML Enterprise Edition is an advanced modeling tool which uses the Eclipse automatic builder technology. Each compilated class is permanently updated using an automatic builder (many IDEs do not have this automatic builder technology).
EclipseUML Enterprise Edition is a lot more flexible and faster because parsing and mapping executions are skipped and tags are generated directly from the byte-code.
EclipseUML Free Edition reverse engineering architecture is similar to traditional UML solutions. It is based on a UML metamodel which collects information from the source code and the Java reflection in order to generate Java Tags. This architecture is more suitable for smaller projects.


In this chapter, we will explain:
  1. Reverse engineering architecture
  2. Reverse engineering features chart
  3. Start the reverse enginerring process
  4. Example


1. Reverse engineering architecture:






2. Reverse Engineering features chart




EclipseUML Free Edition 1.2.1
Traditional UML Solutions
EclipseUML Enterprise Edition
Package dependency reverse
Classe diagram reverse
Attribute reverse
Association reverse
Inheritance reverse
Dependency reverse
Jar file reverse
Sequence diagram reverse Not available in the free edition
Project reverse
Getter/setter recognition
Cardinality recognition
Element type in a collection

Inverse association resolution

Qualified association

UML model reverse engineering



3. Start the reverse engineering process:


The EclipseUML Enterprise Edition reverse engineering is a full project analysis. When you launch the reverse engineering of an existing project, EclipseUML checks all packages included in the project and writes standard Xdoclet tags in your java code.
The reverse information is saved in the java tags and used by the EclipseUML metamodel which will be based on UML2 and XMI 2.0 (XMI 2.0 April 2004, we currently use XMI 1.3) to generate the UML diagrams.
This reverse will only be done once. The project information will then be available in Java code and the tags.
The diagram creation uses the following architecture:





4. Example

Reverse engineering at project level is the only way to analyse all in-going and out-going information.
For example, if we have two classes (Company and Employee) in the package company and one class (Main) in the package company.app.




The 0..* association cannot be detected from the code of the Company and Employee classes by traditional UML solutions which are just working at diagram level, because there is no indication of the type of collection elements in Company.
Working at project level allows EclipseUML to analyse the Main class, which could be anywhere in the project, and brings the information on element types into the Company collection.
Omondo is the only worldwide UML solution mastering full project level reverse engineering.


 
Last update Fri Mar 05 14:18:13 CEST 2004 All text, graphics © 2002-2004 by Omondo