Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Papyrus Software Designer"

(Qompass Designer for Papyrus)
(User guide)
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Qompass Designer for Papyrus =
+
= What is Papyrus Software Designer? =
  
== What is Qompass ==
+
Papyrus designer is an extension of the UML Papyrus editor. It supports the software design by providing code generation from models including embedded and real-time systems as potential targets. In does this at two different levels of abstraction.
  
Qompass Designer is a component based modeling approach that supports the code generation from embedded systems. Theses systems are characterized by timing and resource constraints - sometimes also denoted as non-functional properties. Since these systems get more and more complex, it is important that the non-functional properties are not just specified in the documentation and respected by the implemented system, but that these are explicitly modeled and suitable code is derived from the model. Qompass Designer is part of the Qompass tool-suite integrated into Papyrus. The separation of concerns between the two tools is that
+
* Direct code generation for a specific programming language. Currently, C++ and Java are supported, C will be supported soon. The code generator also support reverse and roundtrip code generation.
 +
** [http://wiki.eclipse.org/Java_Code_Generation Java code generation]
 +
** [http://wiki.eclipse.org/Java_reverse_engineering Java code reverse]
 +
** [http://wiki.eclipse.org/Papyrus/Codegen/Cpp_description C++ code generation]
 +
** Adding a New Code Generator: Apart from the aforementioned programming language, it is also possible to develop and integrate other code generators to Papyrus. To learn about how to add a new code generator to Papyrus, refer to the following [http://wiki.eclipse.org/Papyrus/Codegen/Adding_a_New_Code_Generator wikipage].
  
* Qompass analyzer analyzes a system, in particular with respect to schedulability analysis. It enables the validation of several variants to allocate software components to execution resources and thus provides an architectural exploration
+
* Support for component-based models. In this case, the generation starts from a model that includes the definition of software components, hardware nodes and deployment information. The latter consists of a definition of the instances of components and nodes and an <em>allocation</em> between these. Code generation is done by a sequence of transformations steps. The model transformation takes care of some platform specific aspects (e.g. communication mechanisms or thread allocation), based on non-functional properties. This is complementary with the upcoming Papyrus architect that can create an allocation based on modeled analysis data such as period length or worst case execution times.
* Qompass designer supports the code generation for a specified architecture. It enables this code generation by means of a sequence of transformations steps and a final code generation step as shown in the figure below.
+
 
 +
Papyrus Software Designer code generation
  
 
<center>
 
<center>
Line 15: Line 20:
 
<p>
 
<p>
  
Qompass is integrated into the open source UML editor [http://www.eclipse.org/papyrus Papyrus],
+
Papyrus Software Designer is integrated into the open source UML editor [http://www.eclipse.org/papyrus Papyrus],
 
The UML profile [http://www.omgmarte.org MARTE] is used for non-functional properties.
 
The UML profile [http://www.omgmarte.org MARTE] is used for non-functional properties.
Parts of the component model were developed in the context of the French national project [http://www.flex-eware.org Flex-eWare].  
+
Parts of the component model were developed in the context of the French national project [http://www.flex-eware.org Flex-eWare].
  
== Target audience ==
+
= User guide =
  
 
The following information assume that the reader already knows UML and the basics about component oriented design.
 
The following information assume that the reader already knows UML and the basics about component oriented design.
 +
In the sequel, you find information about the Papyrus Designer
  
== Content of this document ==
+
* [[Papyrus/Qompass/designer/getting-started|Getting started and installation instructions]]
 
+
* [[Papyrus/Qompass/designer/input-models|Input models for code generation]]
In the sequel, you find information about the Qompass
+
* [[Papyrus/Qompass/designer/connector-container|Using dedicated interaction components and realizing cross-cutting concerns via the container]]
 +
* [[Papyrus/Qompass/designer/code-generation|Code generation from models]]
 +
* [[Papyrus/Qompass/designer/example-walkthrough|Discussion of a set of examples]]
 +
* [[Papyrus/designer/transformations|M2M transformations during code generation with Papyrus Designer]]
 +
* [[Papyrus/Qompass/designer/reconfiguration|Use of Papyrus Designer for reconfiguration (ongoing work)]]
  
* [[Papyrus_Qompass_getting_started]] Getting started and installation instructions
+
[[Category:Modeling]]
* [[Papyrus_Qompass_input_models]] Input models for code generation
+
[[Category:Papyrus]]
* [[Papyrus_Qompass_connector-container]] Using dedicated interaction components and realizing cross-cutting concerns via the container
+
[[Category:Papyrus-Software-Designer]]
* [[Papyrus_Qompass_code-generation]] The code generation from models
+
* [[Papyrus_Qompass_example-walkthrough]] Discussion of a set of examples
+
* [[Papyrus_Qompass_reconfiguration]] Use of Qompass for reconfiguration (ongoing work)
+

Revision as of 10:56, 1 July 2021

What is Papyrus Software Designer?

Papyrus designer is an extension of the UML Papyrus editor. It supports the software design by providing code generation from models including embedded and real-time systems as potential targets. In does this at two different levels of abstraction.

  • Direct code generation for a specific programming language. Currently, C++ and Java are supported, C will be supported soon. The code generator also support reverse and roundtrip code generation.
  • Support for component-based models. In this case, the generation starts from a model that includes the definition of software components, hardware nodes and deployment information. The latter consists of a definition of the instances of components and nodes and an allocation between these. Code generation is done by a sequence of transformations steps. The model transformation takes care of some platform specific aspects (e.g. communication mechanisms or thread allocation), based on non-functional properties. This is complementary with the upcoming Papyrus architect that can create an allocation based on modeled analysis data such as period length or worst case execution times.

Papyrus Software Designer code generation

PapyrusQompass-methodology.png
Tool Chain overview

Papyrus Software Designer is integrated into the open source UML editor Papyrus, The UML profile MARTE is used for non-functional properties. Parts of the component model were developed in the context of the French national project Flex-eWare.

User guide

The following information assume that the reader already knows UML and the basics about component oriented design. In the sequel, you find information about the Papyrus Designer

Back to the top