blob: 6efab054efa6242a701676a62b80a6301798a5ee [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="_4wqaMMPaEdmbOvqy4O0adg"
name="transforming_design_into_implementation,_0Y0dsMlgEdmt3adZL5Dmdw" guid="_4wqaMMPaEdmbOvqy4O0adg"
authors="Jim Ruehlin" changeDate="2007-07-20T08:43:58.859-0700" version="1.0">
<mainDescription>&lt;p>&#xD;
&lt;b>Transforming&lt;/b> the design into code implements the system structure in the chosen source language. It also&#xD;
implements the system behavior defined in the functional requirements. &lt;b>Implementing&lt;/b> the system behavior means&#xD;
writing the code that allows different parts of the application (classes or components) to collaborate in realizing the&#xD;
behavior of the system.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
There are various techniques for automatically transforming design to implementation. Here are some examples:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
Standard patterns can be applied to generate design and code elements from related design and implementation. For&#xD;
example, a standard transformation pattern can be applied to a data table to create Java&amp;trade; classes to access the&#xD;
data table. Another example is using an &lt;a href=&quot;http://www.eclipse.org/emf/&quot; target=&quot;_blank&quot;>Eclipse Modeling&#xD;
Framework&lt;/a> to generate code for storing data that matches the model and to generate a user interface&#xD;
implementation for populating data. A pattern or transformation engine can be used to create the implementation, or&#xD;
the implementation can be done by hand. Pattern engines are easier and more reliable, but handwritten code&#xD;
implementing a defined pattern will have fewer errors than handwritten code implementing a novel or unique design.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Models can be detailed and used to generate an implementation. Both structure (class and package diagrams) and&#xD;
behavior diagrams (such as collaboration, state, and activity diagrams) can be used to generate executable code.&#xD;
These initial versions can be further refined as needed.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
The design may be platform-independent to varying degrees. Platform-specific design models or even code can be&#xD;
generated by transformations that apply various rules to map high-level abstractions of platform-specific elements.&#xD;
This is the focus of the Object Management Group (OMG) Model-Driven Architecture (MDA) &lt;a&#xD;
href=&quot;http://www.omg.org/&quot; target=&quot;_blank&quot;>(http://www.omg.org&lt;/a>) initiative.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Platform-specific visual models can be used to generate an initial code framework. This framework can be further&#xD;
elaborated with additional code not specified in the design.&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
In all cases, however, some design abstraction (classes, components, and so on) is detailed to become the&#xD;
implementation.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>