Previous: Model Driven Architecture - MDANext: Visualize, Debug and Profile Executing Code

Code Engineering

Sparx Systems

Code engineering encompasses automated code generation, reverse engineering of source code and synchronization between the source code and model. Enterprise Architect supports code engineering for more than than ten programming languages out of the box!

10+ Languages out of the box

  • ActionScript
  • C
  • C# (for.NET 1.1 and .NET 2.0)
  • C++ (and .NET managed extensions)
  • Delphi
  • Java (including Aspects and Generics)
  • PHP
  • Python
  • Visual Basic
  • Visual Basic .NET
  • Hardware Description Languages - HDLs (Ada, VHDL more.)

Import .jar files and .NET assemblies

In addition to source code files, Enterprise Architect reverse-engineers binary modules from:

  • Java Archive files (.jar)
  • .Net PE files (.exe, .dll)*
  • Intermediate Language files (.il)

Customizable source code generation

Enterprise Architect’s Code Template Framework provides powerful, flexible forward engineering of UML models into source code. Code templates specify customizable transformations from UML elements into a target programming language. This means you can tailor generated source code to suit your standards. Furthermore, you can use the Code Template Framework to forward engineer additional languages, that not already built into Enterprise Architect.

Code Engineering in Enterprise Architect
Click to enlarge

On-demand and live-generation of code

Enterprise Architect provides a Live Code Generation feature that automatically updates your source code as you make changes to your model.

For example, when you create new operations and attributes for a class in the model, these are instantly written out to the source file.

Built-in syntax highlighting source code with dynamic source ‘outliner’

You can use the built-in source code editor to open, view and modify source code files. Simply select an element in the model and the editor displays its source code with syntax highlighted and a navigable code outline.

Use the editor's toolbar to quickly generate code or synchronize the model.