| SPP Tool Chain | ![]() |
| 2.1 Dataflow |
A dataflow graph consists of a set of nodes performing computations and directed links connecting them representing the flow of data. A flat graph representation does not scale well for human consumption, so we extended the basic methodology with hierarchy.
The modeling elements that are used in representing a dataflow graph are described below. The description consists of a name of the modeling element, the stereotype of the modeling element which indicates the concrete syntactic realization of the element in GME (i.e. Folder, Model, Atom, Connection, Set, etc.), an explanation of the role and purpose of modeling element, and a description of the attributes of the modeling element. For additional details on understanding the concrete syntactic constructs of GME, please refer to the GME documentation.
|
Stereotype: |
Folder |
|
Description: |
ComponentTypes is the folder to be reserved exclusively for creating Component Types model. In this folder a user can model the component types which can be both Primitive as well as Compounds and Alternatives. A user is expected to build compound types using instances of primitive or compound types that he/she has created earlier in the ComponentTypes folder. |
|
Stereotype: |
Model |
|
Description: |
Component is an abstract base class that help capture the common characteristics of the concrete class Primitive and abstract class Container. |
|
Stereotype: |
Model |
|
Description: |
Container is an abstract base class that help capture the common characteristics of the concrete classes Alternative and Compound. |
|
Stereotype: |
Model |
||||||
|
Description: |
Primitive components are the leaf nodes in the
dataflow hierarchy. The modeling of Primitive component is composed of three
aspects: |
||||||
|
Attribute: |
|
|
Stereotype: |
Model |
|
Description: |
Compound components are the the composite dataflow nodes, they can contain dataflow subgraphs themselves. Compound component is composed of instances of primitive, compound or alternative components which have been created earlier in the ComponentTypes folder. |
|
Stereotype: |
Model |
|
Description: |
Alternative components are the the composite dataflow nodes, they can contain dataflow subgraphs themselves. As same as Compound component, Alternative component is composed of instances of primitive, compound or alternative components which have been created earlier in the ComponentTypes folder. |
|
Stereotype: |
Atom |
|
Description: |
Port is an abstract base class that help capture the common characteristics of InputPort and OutputPort. |
|
Icon: |
|
||||||||||||
|
Stereotype: |
Atom |
||||||||||||
|
Description: |
InputPort captures the input interfaces of components. |
||||||||||||
|
Attribute: |
|
|
Icon: |
|
||||||||||||||||||
|
Stereotype: |
Atom |
||||||||||||||||||
|
Description: |
OutputPort captures the output interfaces of components. |
||||||||||||||||||
|
Attribute: |
|
|
Stereotype: |
Folder |
|
Description: |
System is a separate folder for creation of the system model. In this folder a user is expected to use instances of the previously created types, Primitive, Compound and Alternative located in ComponentTypes folder to define the dataflow for the entire system. The hierarchical dataflow description is facilitated in this folder with the use of SCompound and SAlternative, and the hardware architecture is described by the SArchitecture model. |
|
Stereotype: |
Model |
|
Description: |
Inherited from the Compound model, SCompound is the compound component used to define the dataflow for the system model. The OCL constraints have been included in the meta-model that will prevent a user from creating a primitive or a compound type within a SCompound component, it can only contain the instance models of the Primitive, Compound and Alternative components created in the ComponentTypes folder. |
|
Stereotype: |
Model |
|
Description: |
Inherited from the Alternative model, SAlternative is the kind of alternative component used to define the dataflow for the system model. The OCL constraints have been included in the meta-model that will prevent a user from creating a primitive or a compound type within a SAlternative component, it can only contain the instance models of the Primitive, Compound and Alternative components created in the ComponentTypes folder. |
13. Dataflow
|
Stereotype: |
Connection |
|
Description: |
Dataflow connections are associations between ports representing the flow of data. Notice that connecting an output port of a component to an output port of another component does not make sense, yet the metamodel allows it. Furthermore, notice that it is not true that the only kind of dataflow connection needed is one connecting output ports to input ports. All input ports of Compounds or Alternative need to be connected to an input port of a contained component, for example. Therefore, it is more elegant to specify a generic Port to Port connection in UML and have an OCL constraint restrict it to meaningful combinations than it is to specify a separate dataflow connection for each legal combination. |
|
Icon: |
|
||||||
|
Stereotype: |
Atom |
||||||
|
Description: |
Constraint atom provides a facility for the user to enforce the constraint to the component it belongs to. |
||||||
|
Attribute: |
|
|
Icon: |
|
||||||
|
Stereotype: |
Atom |
||||||
|
Description: |
Replicator and its Replication association with the elements to be replicated provide the user a facility that within SPML it is not required to explicitly model repetitive constructs, instead the user can model one copy of the construct, and associate a Replicator atom with the construct via Replication association. An interpreter is provided that can then automatically perform the replication. The Replicator has a ReplicationCount attribute that determines the number of replicas to be created |
||||||
|
Attribute: |
|
13. Replication
|
Stereotype: |
Connection |
|
Description: |
Replication connections are associations from the Replicator atom to the Component or Ports which need repetitive constructs. |
The metamodel of the above elements in the dataflow graph is shown as below:

Build Primitive Software ComponentType
Build Primitive Hardware ComponentType
Next Up: 2.2 Computational Cores