This has turned into the third post in a series. The theme of the series is to model some musical instrument equipment ("Bass Guitar Effects") using SysML. A Block Definition Diagram (BDD) and an Internal Block Diagram (IBD) were created. Originally, I had posted an all-ecompassing BDD that blurred the roles of the BDD and IBD. Several recommendations were made
- Move internal details such as inter-part connections from the BDD to the IBD
- Use aggregation (open diamond) rather than composition (black diamond)
- Use properties rather than object instances.
A SysML BDD of Bass Guitar Effects
A SysML IBD of Bass Guitar Effects
To make things more tangible, look at the following picture.
|Bass Guitar Effects|
This Block Definition Diagram shows what makes up "Carl's Bass Effects". Because none of the equipment is affixed permanently, the blocks are modeled using aggregation rather than composition. Composition might be warranted if there were more coupling, say if I opened the chassis of each device and soldered the circuits together.
|BDD Showing an Aggregation of Bass Guitar Effects|
Note: I selected Ctrl-Shift-Y and turned off the display of the References compartment since it's redundant.
To create the IBD, I right-clicked on "Carl's Bass Effects" and selected New Diagram. In EA Project Explorer terms, the diagram is a child element of the Block. See the green icon.
|EA Project Explorer Showing and IBD in a Block|
To start the IDB, I select all of the properties under "<block> Carl's Bass Effects" and drag to the canvas.
|Adding Reference Properties to an IDB|
|Show Full Name: Element Type Checkbox|
|IDB Showing Reference Properties, Ports, and Connectors|
EA's ability to nest elements provided the mechanism by which this IDB was created. The nesting gives block instances context, even for shared items like the ones in this example.