Developers can use EA to perform round trip code engineering which includes reverse engineering of existing code and generation of code from UML class diagrams. State Machine, Package and Activity diagrams can be used by the developer to better understand the interaction between code elements and the arrangement of the code.

Round trip engineering
Enterprise Architect gives the developer unparalleled flexibility, with the ability to round trip engineer software from existing source code to UML 2.1 diagrams and back again. Round trip Engineering involves both forward and reverse engineering of code. Keeping the model and code synchronized is an important aspect of round trip engineering.

Reverse engineering
EA allows developers to reverse engineer code from a number of supported languages and view the existing code as class diagrams. The developer can use class diagrams to illustrate the static design view of the system. Class diagrams consist of classes and interfaces and the relationships between them. The classes defined in UML class diagrams can have direct counterparts in the implementation of a programming language

Forward engineering
As well as being able to reverse engineer code EA offers the developer the option of forward engineering code (code generation). This allows the developer to make changes to their model with EA and have these changes implemented in the source code.

Determine the system state
To visualize the state of the system the developer can make use of State Machine Diagrams to describe how elements move between states, classifying its behavior, according to transition triggers and constraining guards. State Machine diagrams are used to capture system changes over time, typically being associated with particular classes (often a class may have one or more state machine diagrams used to fully describe its potential states).

Visualize package arrangement
Package diagrams are used to help design the architecture of the system. They are used to organize the diagrams and elements in manageable groups, and to declare their dependencies.

Follow the flow of code
Activity Diagrams are used to allow for a better understanding of the flow of code. Activity diagrams illustrate the dynamic nature of the system. This allows the modeling of the flow of control between activities and represents the changes in state of the system.