Guideline: Transforming design into implementation
This guideline describes various techniques for transforming design into implementation.
Relationships
Main Description

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.