Round-trip engineering

Many reengineering activities can also be understood as RTE when the software is updated to reflect changes made to the previously reverse engineered specification.

In on-demand RTE, authors of the artifacts may concurrently update the artifacts (even in a distributed setting) and at some point choose to execute matching to identify inconsistencies and choose to propagate some of them and reconcile potential conflicts.

Many commercial tools and research prototypes support this form of RTE; a 2007 book lists Rational Rose, Micro Focus Together, ESS-Model, BlueJ, and Fujaba among those capable, with Fujaba said to be capable to also identify design patterns.

Two prominent RTE implementations in this category are framework-specific modeling languages and Spring Roo (Java).

OMG proposed the QVT (query/view/transformation) standard to handle model transformations required for MDA.

UML (if used for MDA) diagrams specification was criticized for lack the detail which is needed to contain the same information as is covered with the program source.

Their translation during code-generation will result in common programming statement (.e.g if,switch,enum) being either missing or misinterpreted.

[8][9] There is also general lack of advanced tooling for modelling that are comparable to that of modern IDEs (for testing, debugging, navigation, etc.)