Define your Sub-System-Architecture - System Decomposition

by Marco Wuelser

 

Decomposition

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.

mceclip0.png

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.

mceclip0.png

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:

  1. Edit the component to be divided into components by pressing Ctrl + Click

    mceclip5.png
    Figure 3 - Decompose System / System Components

  2. Create all required Sub-Systems as ‘System Components’.


    mceclip1.png
    Figure 4 - Create System Components

  3. 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.

    mceclip8.png
    Figure 5 - Assign External Hardware Interfaces

  4. Add any internal Hardware Interfaces to the created components (see how to add Hardware Interfaces).

    mceclip6.png
    Figure 6 - Add Hardware Interfaces

  5. Connect the internal interfaces using Hardware Channels.

    mceclip5.png
    Figure 7 - Connect Hardware Channels

  6. Name the channels based on the used Hardware Protocol. Double click the channel for renaming.

    mceclip4.png
    Figure 8 - Channel Name

  7. 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.

image-77.png

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).

 

NOTE

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.

mceclip6.png
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.

 

NOTE

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.

  1. Select the source Hardware Interface.
  2. Move the mouse pointer to one of the three dots presented on the Hardware Interface.
  3. Click and drag from the source interface to the target Hardware Interface.
  4. Once the mouse hovers over the target, three connectors are visible.
  5. Drop the channel to any of this 3 connectors.
  6. 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.

    mceclip7.png
    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.

mceclip8.png
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.

 

NOTE

Hardware Channels will not affect code generation in any way and are only used for documentation of the system architecture.

Go back