Data flow Diagram
This diagram is used to visualize/specify the data flows between the different Input/Output/Local signals, the
operations applied on these data, and all local declarations of data, types, and processes.
The following pictures represents what can be added to the model in this diagram. Obviously, the Input/Output signals and
the constant Parameter declared in the Interface Definition Diagram can be used in this diagram too. To use them, drag them from the
Outline view to the Editor view. The palette of this diagram is composed of 5 sections:
- Containers: this section is composed of all elements that can be the root of a diagram and all elements in
relation with them.
- Basic Iteration is used to express an iteration as a C-for loop. To use it, give the name
of its iterator and the value of the upper bound. To specify the
initialization part of the Iteration, right-click on the Iteration
and select the Show the Iteration Init part action,
which display the Data flow Diagram for it. Finally, to specify the
process on which the Iteration iterates, double-click on it to open
a Data flow Diagram.
- Iteration is used to express iteration of processes. To use it, connect at least
an index to its Input Port. It is also possible to iterate on
several indexes; for this purpose, right-click on the Iteration,
and select the Add a New Port action to add a new Input Port to connect another index. For the initialization part
and the iterated process, it is the same as for the Basic Iteration Block.
- A Mode Automaton can be added. For more information on it, consult the Mode Automaton Diagram section.
- Local Model Declarations (Action, Function, Node, and Process) can also be declared inside this diagram, and Model
reference can refer to the declaration of a Model Declaration declared at another level.
- To instantiate a Model Declaration, use a Model Instance object. To use it, specify the Referred Interface attribute,
right-click on the Model Instance, and select « Load Model Instance Inputs/Outputs » action. This
action creates the Input Instances, Output Instances, and Parameters Instances corresponding to those of the Referred Interface.
- A Sub Process is a sub part of the current process. It can also be used to specify the cases of the switch operator.
- This diagram contains also the declaration of types: Enumeration, Model Type, Substitution Type, and Tuple Type.

- Identifiers: this section contains the declaration for Constant Values, Indexes, and
Local signals. It provides also elements to refer to constants (Constant Value, Parameter, Literal, or Enumeration Value) or to
signals (Input, Local, or Output) that are declared at a higher level. A Constant Ref or a Signal Ref will automatically take
the figure of the referenced elements.

- Operators: this section contains all operators offered by the SIGNAL language: Arithmetic Operator (Addition,
Substraction, ...), Boolean Operator (Equal, And, ...), array operators (Cartesian Product, Matrix transposition, ...), and
SIGNAL specific operators (Delay, Memorization, ...). Some of these operators have only one Input Port to connect, some other
only two, and all the other are multiple inputs operators. It means that we can add as many Input Port (to connect expressions)
as needed. To add one, right-click on the operator, and select the Add a New Port action. For the Cartesian Product,
it has also Output Port, and it has to have the same number of Input Ports and Output Ports. When an Input Port is added, it
adds automatically an Output Port.

- Links: this section all kinds of connections that can be used in this diagram.
- A Case connector is used to connect a switch operator to a Sub Process (or an Iteration).
- A Condition connector is used to connect a Boolean Expression or a Signal to a conditioned expression,
which can be either an Extraction operator, or an If-Then-Else operator, or a Memorization operator, or an
Assertion.
- A Constant affectation is used to connect a constant expression to a Parameter Instance contained by a Model Instance.
- Finally a Dataflow Connector is used to connect any Signal expression that returns a result to a signal (or to
the Input Port of an other operator). It corresponds to the definition (or partial definition) operator of the SIGNAL language.

- Miscellaneous: this section contains the way to specify Assertion and to import Modules. An assertion can
be defined by specifying its expression attribute (right-click on the Assertion, and select the Edit Composite expression
action) or by connecting a Condition link to it. To import a Module, right-click in the Outline view, select the
Load Resource action, and then select the sme file containing the Module. Finally, you have to add this Module in the
list of Modules attribute of the Use Module model object.
To parametrize each of these elements, right-click on any graphical object and select the Property View.
For more information, refers to the Parametrization of model objects section
(select the Advanced tab, to view the attribute and references of each model object).