Please note : This help page is for an older version of Enteprise Archtiect. The latest help can be found here.

Software Engineering


Software Engineering is a process that includes automated code generation, reverse engineering of source code and synchronization between the source code and model.

Enterprise Architect also enables you to rapidly model, generate - or forward engineer - and reverse engineer:

Software Engineering is available in the Professional, Corporate, Business and Software Engineering, System Engineering and Ultimate editions of Enterprise Architect.

Code Generation

Enterprise Architect enables you to generate source code from UML model elements, creating a source code equivalent of the Class or Interface element for future elaboration and compilation. In particular you can generate C, C++, C#, Delphi, Java, PHP, Python, ActionScript, Visual Basic and VB.NET source code. The source code generated includes Class definitions, variables and function stubs for each attribute and method in the UML Class. You can use the Source Code Viewer to view any source code you are opening.


You view source code for an element by selecting it and pressing either [Ctrl]+[E] or [F12]. If the element does not have a generation file (that is, code has not been or cannot be generated, such as for a Use Case), Enterprise Architect checks whether the element has a link to either an operation or an attribute of another element. If such a link exists, and that other element has source code, the code for that element displays.

You can also generate code from three UML behavioral modeling paradigms:

The Code Template Framework (CTF) enables you to customize the way Enterprise Architect generates source code. It also enables you to generate languages that Enterprise Architect does not specifically support, by helping you define the appropriate code generation templates for that language.

You can integrate the facilities of Enterprise Architect with other development environments. The MDG Integration for Eclipse and MDG Integration for Visual Studio are standalone products that provide an enhanced code engineering functionality between Enterprise Architect and the development environments.

Reverse Engineering

Reverse Engineering is the import of existing source code into model elements, mapping the source code structures onto their UML representations. This enables you to examine legacy code and the functionality of code libraries for reuse, or to bring the UML model up to date with the code. You can reverse engineer in the same languages as you perform code generation with Enterprise Architect.

Enterprise Architect is also able to reverse engineer binary files, namely Java .jar files and .NET PE files.


Reverse Engineering of other languages including CORBA IDL is also currently available through the use of the MDG Technologies. See


Synchronization is when changes in the model are exported to the source code and changes to source code are imported into the model. This enables you to keep your model and source up to date as the project develops.

Round-Trip Engineering

Round trip engineering is a combination of reverse and forward generation of code and includes synchronization between the source code and the model in all but the most trivial of code engineering projects. In order to get the most out of round trip engineering in Enterprise Architect, you should be familiar with the modeling conventions used when generating and reverse engineering the languages you use.