Transforming the design into code implements the system structure in the chosen source language. It also
implements the system behavior defined in the functional requirements. Implementing the system behavior means
writing the code that allows different parts of the application (classes or components) to collaborate in realizing the
behavior of the system.
There are various techniques for automatically transforming design to implementation. Here are some examples:
-
Standard patterns can be applied to generate design and code elements from related design and implementation. For
example, a standard transformation pattern can be applied to a data table to create Java™ classes to access the
data table. Another example is using an Eclipse Modeling
Framework to generate code for storing data that matches the model and to generate a user interface
implementation for populating data. A pattern or transformation engine can be used to create the implementation, or
the implementation can be done by hand. Pattern engines are easier and more reliable, but handwritten code
implementing a defined pattern will have fewer errors than handwritten code implementing a novel or unique design.
-
Models can be detailed and used to generate an implementation. Both structure (class and package diagrams) and
behavior diagrams (such as collaboration, state, and activity diagrams) can be used to generate executable code.
These initial versions can be further refined as needed.
-
The design may be platform-independent to varying degrees. Platform-specific design models or even code can be
generated by transformations that apply various rules to map high-level abstractions of platform-specific elements.
This is the focus of the Object Management Group (OMG) Model-Driven Architecture (MDA) (http://www.omg.org) initiative.
-
Platform-specific visual models can be used to generate an initial code framework. This framework can be further
elaborated with additional code not specified in the design.
In all cases, however, some design abstraction (classes, components, and so on) is detailed to become the
implementation.
|