Function block diagrams and UML structure diagrams look similar. Sometimes, inputs and outputs of function blocks are also called inports and outports. The following table discusses differences and similarities.
UML classes with ports |
|
Function Block Interfaces |
|
Class/Type
descriptions
|
|
Ports of UML2 classes can be typed with required and provided interfaces. If they define both, they are bidirectional.
The direction of ports is completely independend of their location at the left or the right side of a class symbol.
|
|
Ports of function blocks are never bidirectional. They are typed with simple and complex data types.
In most languages are the inputs at the left and outputs at the right side of the function block symbol.
|
|
Structure / Block diagrams |
|
Ports with matching required and provided interfaces may be connected in structure diagrams. |
|
Inputs and outputs may be connected if they have the same data type. |
Depending on its cardinality, a port may be connected to more than one other port. |
|
One output may be connected to many inports. One input must only be connected to one output. |
Ports receive and send messages. Messages are complex objects which are transmitted. The transmission may consume time and ressources. Ports often have input queues for storing incoming messages. The communication model is asynchronuous. A synchronuous communication mechanism is also often provided by UML tools. |
Communication model
|
Connections between inputs and outputs are continuous dataflows with no time delay.
(Because function blocks are executed synchronuously.)
|
Object structures may be changed dynamically during runtime. |
Dynamic instances
|
Function block structures are mostly static. They are not changed during runtime. |