Once the System Architecture is defined, you can start defining the Sub-System-Architecture. System decomposition is introduced to follow the fundamental philosophy of DATAFLOW concept based systems. System decomposition allows you to split up and delegate systems to functional blocks until they become small enough to be handled in one piece (separation of concerns by loose coupling).
Decomposition is done by holding the "CTRL Key + Left Click" onto the blue top section of the system or system component element.
Figure 1 - Split the System into Units
After a decomposition, a new unit is represented by an empty diagram. This diagram is the child diagram of the decomposed system/system component. The toolbox window in this diagram now offers many additional items to define your Sub-System- and Software-Architecture.
Figure 2 - Additional Diagram Toolbox Items for Sub-System- and Software-Architecture
Create System Decomposition
When creating the architecture for a system/sub-system, the following steps should be performed for each level of decomposition:
- Edit the component to be divided into components by pressing Ctrl + Click
Figure 3 - Decompose System / System Components
- Create all required Sub-Systems as ‘System Components’.
Figure 4 - Create System Components
- Move the external interfaces inherited from the parent component to the correct Sub-System using Drag & Drop. Inherited (or external) interfaces are visualized by the black outside borders.
Figure 5 - Assign External Hardware Interfaces
- Add any internal Hardware Interfaces to the created components (see how to add Hardware Interfaces).
Figure 6 - Add Hardware Interfaces
- Connect the internal interfaces using Hardware Channels.
Figure 7 - Connect Hardware Channels
- Name the channels based on the used Hardware Protocol. Double click the channel for renaming.
Figure 8 - Channel Name
- Repeat this procedure until the system architecture is complete.
Define Hardware Interfaces
Add External Hardware Interface to a Component
To add a new Hardware Interface to a component, drag & drop it from the toolbox window onto the component. The name and type can be changed by double-clicking on the Hardware Interface.
It is also possible to change these values in the property inspector.
Figure 9 - Add Hardware Interface (Drag & Drop)
Adding a Hardware Interface to a ‘System’, ‘System Component’ or ‘Software Container’ will also create an external Hardware Interface in its child diagram. This can then be added to a component inside this container (see below).
Hardware Interfaces will not affect code generation in any way, and they are only used for documentation of the system and/or software architecture.
To add an external Hardware Interface inherited from the parent diagram (with a black line on the left and right border) to a component, drag and drop it on the component.
Figure 10 - Add External Port
This will create an external Hardware Interface in the child diagram when the external Hardware Interface is added to a container. That way, the system interface can be propagated down to the component that is actually implementing it.
Changing the name or type of the external Hardware Interface will also affect the same property of the parent Hardware Interface it is referencing as well.
Define Hardware Channels
Connect Hardware Interfaces with Hardware Channels
To connect two Hardware Interfaces with a Hardware Channel, follow these steps.
- Select the source Hardware Interface.
- Move the mouse pointer to one of the three dots presented on the Hardware Interface.
- Click and drag from the source interface to the target Hardware Interface.
- Once the mouse hovers over the target, three connectors are visible.
- Drop the channel to any of this 3 connectors.
- When the channel is dropped to the center connector, it is automatically placed on the left or right side of the Hardware Interface based on the position of the other end. If it is dropped to the left or right connector, the channel is fixed there and will never change sides.
Figure 11 - Connect Hardware Interfaces with a Hardware Channel
The label on the Hardware Channel can be changed with a double click on the channel. This label is meant to document the protocol or other important properties of the connection in the diagram.
Figure 12 - Channel Naming
The created Hardware Channel can be styled using the tools from the Format Ribbon, such as Line Color, Arrow Type and Line Style. The label will always have the same color as the line itself. New Hardware Channels will be created with the last used Format.
Hardware Channels will not affect code generation in any way and are only used for documentation of the system architecture.