SysML Structural Diagrams

SysML Structural Diagrams

Welcome to our SysML Structural Diagrams page, where we provide a comprehensive guide to understanding the different types of Structural diagrams and how they are used to capture the physical and logical connections between system components.

Structural diagrams in SysML are used to represent the decomposition of a system or model into its constituent parts. They are an essential tool for engineers, as they provide a clear understanding of the physical and logical connections between system components.

There are four types of Structural diagrams in SysML: Block Definition, Internal Block, Package, and Parametric diagrams. Each diagram type has its unique strengths and is used to capture different aspects of a system.

Choosing the right diagram type is critical to effectively communicating the structure of a system to stakeholders. Engineers must think carefully about the situation and determine which diagram type would be best suited to capture the necessary information.

On this page, we will provide an overview of each of the four types of SysML Structural diagrams, explaining their purpose and when to use them. We will also provide examples of how each diagram type can be used to capture the structure of a complex system.

Whether you are new to SysML or a seasoned practitioner, our guide will provide you with a wealth of information on Structural diagrams and help you understand how they fit into the larger MBSE and Digital Engineering landscape. So, if you want to learn more about SysML Structural diagrams, you have come to the right place.

Structural Related

9 SysML Diagrams Taxonomy: Highlighting SysML Structural Diagrams

SysML Structural Diagram Examples

The Block, The Main Element of Structure

"Block: A Block (notation: rectangle with keyword = «block») represents a system component, a modular structural unit that encapsulates its contents (Properties, Behaviors, Constraints) and supports first-class (i.e., can be drawn and directly manipulated in the model repository) Interfaces. Behaviors encapsulated by Blocks include: Operations, Signals, and State Machines. The unique interaction points for attaching and connecting ("wiring") Block Interfaces are called Ports.

https://sysml.org/sysml-faq/what-is-block-definition-diagram.html

"The block is the modular unit of structure in SysML this is used to define a type of system, component, component interconnection, or item that flows through the system, as well as external entities, conceptual entities, or other logical abstractions." (A Practical Guide to SysML, Friedenthal pg 115)

"Properties are the primary structural feature of blocks... Parts are used to describe the composition hierarchy of a block and define a part in the context of its whole. Value properties describe quantifiable physical, performance, and other characteristics of a block such as weight or speed... Behaviors associated with a block define how the block responds to stimuli."   (A Practical Guide to SysML, Friedenthal pg 115)

"Blocks can be organized into classification hierarchies that allow blocks to be defined in terms of their similarities and differences. Within a classification hierarchy, a block can specialize another more generic block that allows it to inherit features from the general block and add new features specific to it." (A Practical Guide to SysML, Friedenthal pg 116)


Block: 

The block is the basic unit of structure within a system.  Blocks can be characterized by both structural and behavioral properties. 

Structural Properties: 

Constraint: Represents a mathematical relationship (element definition equation or inequality) used for engineering analysis (equation  or inequality).  

Behavioral Properties:

Operations: Represent the functions the block can perform.  Operations include behavior or functions that a block is responsible for.  Operation Format: OperationName(OperationInputName:OperationInputType):OperationReturnType

Parts (Part Properties): 

Represents a structure that’s internal to the block.   A block is composed of part properties.  Part properties have a part name, type, and multiplicity.

Value Properties

Represents types of values that may be used to express information about a system.  Value properties add the ability to carry a unit of measure and quantity kind associated with the value type.  Values have a value name, value type, value multiplicity, & a value

Ports: 

Ports are used in internal block diagrams and are the interfaces for the block.  There are several different types of ports used in SysML but the two worth mentioning are proxy ports and full ports.  Full ports are typed by blocks while proxy ports are typed by interface blocks.


Elements of Definition vs Elements of Usage

Elements of Definition are Reusable elements such as a block or an activity.  Elements of Usage are the usage of that reusable element such as a part property or call behavior action.  The example below will explain the difference. 

We have a "Car" block and a "Wheel" block on a bdd.  These are both elements of definition.  When we add a composition relationship between the blocks we create part properties.  We have architectural options about how the "Wheel" is used in reference to the "Car".  We can put one composition relationship called "wheel" and add a multiplicity of 4.  We could also have two composition relationships with both multiplicity of 2 with names "back wheel" and "front wheel".  You could also have 4 composition relationships made with the part property names as follows: "right front", "left front", "right back", "left back".  All of these different methods are acceptable.  

It is up to the architect to determine which is ideal.  The best way to determine is, does differentiation actually provide us any utility, does it matter.  If you're making a regular car where all 4 wheels are interchangeable, then one relationship with the multiplicity of 4 is likly ideal.  If you are making a sports car where the back wheels are thicker than the front wheels then 2 part properties deferentiating between front and rear would likly be ideal.  If you are making a NASCAR where the wheels are actually angled because they only make left turns, then it would likly be ideal to break out a 4 wheels as separate part properties. 

bdds vs ibds

Block definition diagrams describe the static structure and defines part properties, while internal block diagrams describe the valid configuration of a block using its part properties.  The internal block diagram shows how the part properties will interconnect and what data/items/signals will flow between each part.  The block definition diagram shows decomposition.