UML Reverse Engineering for Existing Java, C#, and Visual Basic .NET Code

Reverse engineer existing source code with Altova UModel

UModel Reverse Engineering Features:

  • Reverse engineer individual files, folders, or entire projects
  • Automatically resolve namespace or class aliases
  • Reverse engineer source code or binary files
  • Add reverse engineered code to an existing model or create a new model
  • Numerous diagram generation and hyperlinking options
  • Reuse reverse-engineered components for code generation

Download Trial

Reverse Engineer Existing Applications and Generate UML Models to Facilitate Analysis, Enhancement, or Reuse

Hand-written or legacy source code can be difficult to decipher, since operability of the software does not depend on complete or accurate documentation, or even on a well-structured code body. Further, some projects incorporate binary or byte-code files that also require analysis. The original developer may no longer be available, or maybe development was assigned in pieces and no single individual knows the entire project.

Altova UModel® 2017 includes a powerful reverse engineering capability to read Java 1.4, Java 5.0, Java 6.0, Java 7.0, Java 8.0, C# 1.2, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6.0, C# 7.0, VB 7.1, VB 8.0, or VB 9.0 source code and binary files, and generate UML models for a visual representation that is much clearer and more easily analyzed than a printout of the source as text.

You can apply reverse engineering to model an existing application, or get a new project off to a quick start by importing class libraries such as employee, customer, vendor, and other classes that your team has already developed.

You can instruct UModel to automatically open the diagrams when reverse engineering is complete, or use the model tree and hierarchy window to explore the object relationships.

Hierarchy of a reverse engineered project in Altova UModel

Reverse Engineer Source Code

UModel can import Java source code files from JBuilder, Eclipse, and NetBeans projects, C# source code from Microsoft Visual Studio and Borland C#, and Visual Basic .NET project files.

You can import a single directory, a directory tree, or an entire project, and you can choose to merge the imported code into an existing UModel project, or create a new one.

If you import Java source code that has accompanying JavaDocs, the UModel documentation window can be optionally populated for each UML diagram. Similarly, C# and Visual Basic .NET DocComments can also be imported as documentation for your model project.

UModel reverse engineering of Visual Basic .NET code is line-oriented and case-insensitive (so Class1, CLASS1, class1, ClAsS1 are considered as identical), consistent with looser Visual Basic .NET naming requirements.

Reverse Engineer Binary Files

UModel can import Java, C#, and Visual Basic .NET binary files. For Java, type import is supported for all class archives adhering to the Java Virtual Machine Specification.

For C#, type import is supported for assemblies targeting the .NET Framework and .NET Compact Framework for PocketPC, Smartphone, and WindowsCE. For Visual Basic .NET, DLLs and EXEs from the filesystem, or an assembly from the global cache (GAC) or from a MSVS.NET reference can be imported.

Additional binary import options may be available, depending on the requirements of the specific binaries you select. The UModel integrated Help system can guide you through all the details of importing binary files.

If you make revisions or enhancements to the models of binary files, UModel lets you generate new source code to implement the changes.


Affordable High-End Functionality – Starting at $149

Available in three editions priced from just $149 to $379 (€119 to €299) per user, Altova UModel is cost-effective for individual developers or entire teams.

Even the UModel Basic Edition supports all 14 UML diagram types, includes advanced code engineering for Java, C#, and Visual Basic, and automates generation of project documentation. Finally, you don't have to spend a fortune to get a tool with the advanced UML functionality to accelerate development projects of all sizes!

Visit the UModel Edition Comparison for a detailed list of the features included in each edition.

"I'm very happy with UModel. Finally a UML modeling tool that is affordable and that works the way I like!"

Jashan Chittesh
Independent Game Developer

Generate Sequence Diagrams after Reverse Engineering

UModel lets you generate sequence diagrams from source code files that have been reverse engineered into UML classes, an invaluable aid to analysis of complex interactions.

You can automatically split very large sequence diagrams and hyperlink them for convenient navigation.

A UML sequence diagram reverse engineered from source code in Altova UModel

Next Steps