Figure B.16 - Defining Structure of the Hybrid SUV System (Hybrid SUV Breakdown)

Note how I use a resized parent to visually "bracket" its composed items. It makes it much easier to read, and makes it easier to manage the composition associations. Better still, consider employing <<composition>> wrapper Components as shown in the next image (not standard SysML).

I don't recommend that you name EverySubsystem the way shown in the spec sample; simply apply the «subsystem» stereotype and display it. Motto: "trust the stereotype"

Figure B.16a - Alternative: using «composition» wrappers for assemblies

This is the BIG TRICK for working with complex hierarchical systems !

In this alternative I use "parasitic" «composition» wrapper Components to visually reinforce the assembly structure. My experience is that for complex real-world systems it is very difficult and fiddly to diagram without such wrappers. To use a Component as a composition wrapper, create a Component and place it on the diagram then move an assembly block (parent) and its composed children into the wrapper on the diagram. THE OWNERSHIP OF THE BLOCKS WILL NOT BE AFFECTED. (By contrast, if you move blocks in the containment browser into a Component it will "steal" ownership of the blocks.)

The process can be repeated throughout the system, so that one can then easily move and organise any assembly and its children throughout the composition hierarchy. You can now move the «composition» wrappers around the diagram and it moves its assembled hierarchy, which is much easier than working with multi-select. You can also navigate the composition tree as components in the browser ! Very cool; very useful. This technique also promotes a systematic diagramming and engineering process. Don't leave home without it !

Note how the non-composed references are also now clearly distinguished from the composed ones.

TIP: use a faint border style for the wrapper components.

TIP: Create a wrapper style under Options->Project_Options->Symbols_properties_style using clone style.

TIP: Drag the BDD diagram icon onto the «composition» wrapper to make it the active diagram hyperlink target; make the IBD the active diagram hyperlink target of the wrapped Block.


DISCLAIMER: this is not standard SysML, however it is supported in MagicDraw's SysML Plugin.