blob: 5962c5b0a0d9aeb31628ffa15f3dabafe9205946 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="Code generation">
<intro>
<description>
Once the allocation is specified, the Papyrus designer plug-in applies a sequence of model transformations to generate the code required on each node.
</description>
</intro>
<item title="The sequence of actions performed automatically by Papyrus designer" skip="true">
<description>
Select a deployment plan. Right click and choose "generate deployment models and code from plan" in the designer sub-menu. Choose among
the available options: (1) only generate a target model and not code, (2) re-create compilations settings and (3) only
generate code for types that have changed. The first option is useful for testing purposes or if the intermediate
models produced by Papyrus designer are inputs for other models.
The second option is useful, if additional container or connector elements require additional libraries that would not
found otherwise. But it overrides user settings.
The last option aims to reduce the time for generating an executable: for each elements that is re-generated, the associated
file need to be re-compiled.
The Papyrus designer plug-in applies a sequence of model transformations that<br/>
(1) add and adapt connectors and containers as required by the application,
(2) transform the component model into an object-oriented model, i.e. replace ports with attributes and suitable access operations,
(3) create boot-code that instantiates the components and
(4) calculate the sub-set of the resulting model that is required on each node.
Papyrus designer produces a new plugin for each node of the platform model. It contains a suitable project
definition (Eclipse CDT) in the sense that the build settings (macros, include and library paths)
should be configured for the application needs. It also contains a folder "model" along with
the generated model (called "root.uml") and applies the standard UML model-to-code generators
(currently C++) to produce the code required on each node and "
</description>
</item>
</cheatsheet>