Practical Guide for Code Engineering
3-3 minutes
Code engineering encompasses the capability of automated code generation, reverse engineering of source code and synchronization between the source code and UML models for different programming languages. In the area of code engineering, there are several closely related, and yet different forms for code engineering functions are listed as follows:
Code Generation
In computing, code generation is the process by which a compiler’s code generator converts some intermediate representation of source code into a form (e.g., machine code) that can be readily executed by a machine.
In the context of UML, it means that the user creates UML diagrams, which have some connected model data, and the UML tool derives from the diagrams part or all of the source code for the software system. In some tools the user can provide a skeleton of the program source code, in the form of a source code template, where predefined tokens are then replaced with program source code parts during the code generation process.
Reverse Engineering
Reverse engineering in this context means, that the UML tool reads program source code as input and derives model data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader meaning described in the article “Reverse engineering”).
Round-trip Engineering
Round-trip engineering refers to the ability of a UML tool to perform code generation from models, and model generation from code (a.k.a., reverse engineering), while keeping both the model and the code semantically consistent with each other.
Round-trip engineering is often wrongly defined as simply supporting both forward and reverse engineering. In fact, the key characteristic of round-trip engineering that distinguishes it from forward and reverse engineering is the ability to synchronize existing artifacts that evolved concurrently by incrementally updating each artifact to reflect changes made to the other artifacts.
The Best Modeling Tool for Code Engineering
Visual Paradigm is more than just a UML modeling tool. It supports a series of code engineering features, helping you to advance from the design phase to the implementation phase. Listed below are some of the code engineering features.