[SysML] #10. Understanding SysML bdd Diagram

Block Definition Diagram (BDD) is an essential tool in systems engineering. BDD helps understand complex systems and simplifies the design process by visualizing the structure of the system and the relationships between each component. These diagrams are particularly important in clearly defining the function of a block and its structural relationships with other blocks, effectively representing the basic components of the system and their interactions.

  1. Blocks : Blocks are the basic units that make up a system and can be physical parts or abstract concepts. Each block performs a specific function within the system, and its relationships with other blocks allow us to understand the structure of the overall system.
  2. Actors : Actors are entities that interact with the system, representing users or other systems outside the system. Actors help us understand how a system is connected to the outside world.
  3. Value Types : Value types define the type of data used within a system and its characteristics. This is essential to clarify the type and format of information that the system must process.
  4. Constraint Blocks : Constraint blocks represent constraints that a system or block must adhere to. This element explicitly expresses important limitations and requirements in the design of the system so that the designer can take them into account.
  5. Flow Specification : Flow specifications define how data or energy moves within a system. This is important to understand how the system behaves and the interactions between each component.
  6. Interfaces : Interfaces describe how different blocks interact. This is an essential element for the integration and function of the system by clearly showing how each block exchanges information and interconnects.

  1. Associations : A connection represents a relationship between two blocks and shows how they are connected to each other. For example, the connections between the engine block and transmission block help visualize how the two system parts interact. Connections may involve information, energy, or physical links.
  2. Generalizations : Generalization shows that one block is a special form of another block. This is often expressed as an inheritance structure, meaning the passing of properties and functionality from a more general block to a specialized block. For example, if the ‘vehicle’ block is a general concept, the ‘electric vehicle’ block can be seen as a special type of vehicle. Generalization allows you to construct a hierarchical structure of the system and facilitate code reuse and maintenance.
  3. Dependencies : Dependency refers to a relationship in which one element depends on the definition, implementation, or behavior of another element. Dependencies are important for understanding the impact of changes, allowing you to predict how changes in one element will affect other elements. For example, if a sensor’s output data is used as input to an engine control system, changes to the sensor can directly affect engine control.

  1. Package : Packages are used to manage related elements by logically grouping them. It organizes various parts of the system systematically and makes it easier to manage. In BDD, packages are one of the most commonly used frame types.
  2. Model : A model represents the overall structure of a system or subsystem. It is used to comprehensively represent the main concepts and relationships of a system.
  3. ModelLibrary (Model Library) : Model libraries are used to store reusable model elements. This enables efficient model management and element recycling.
  4. View : A view focuses on handling a specific aspect of the model. This allows detailed analysis or description of specific parts of the system.
  5. Block : Blocks represent the basic components of a system, with each block performing a specific function within the system.
  6. ConstraintBlock : Constraint blocks define constraints necessary for the operation of the system. This clearly presents constraints that must be considered when designing the system.

The header of a BDD diagram typically follows this format:

bdd [model element type] model element name [diagram name]

This format makes it clear what elements the diagram covers and specifically what perspective it presents. For example, a diagram showing the overall structure of a system can use the Model type, and a diagram explaining a specific functional unit can use the Block type.

Block Definition Diagrams (BDDs) are widely used at many stages of systems engineering and have a critical impact on project success. We’ll walk you through how to use this diagram step by step, explaining how BDD plays an important role in each step.

  1. Stakeholder Requirements Analysis : At this stage, BDD visualizes and expresses stakeholders’ needs and expectations. This helps provide a clear understanding of requirements, facilitates communication with stakeholders, and sets initial design direction.
  2. Requirements definition : When defining requirements, BDD helps clarify the capabilities and constraints that the system must meet. You can use blocks to visually represent what part of the system each requirement affects.
  3. architecture design : During the architectural design phase of a system, BDD defines the components and their relationships and outlines the structure of the entire system. This is essential for the design team to better understand the overall structure of the system and plan the integration of each part.
  4. Performance analysis : During performance analysis, BDD is utilized to analyze the performance requirements of system components and the interactions between each element. This allows you to predict whether your system can achieve its target performance and make any necessary adjustments.
  5. Test case development : When developing test cases, BDD helps you develop a test plan by clarifying the functions and interfaces to be tested. Test cases can be defined based on the functional elements of each block and interface.
  6. integrated
    At the system integration stage, BDD shows how various system components combine to perform overall system functions. This is important for planning connections and data flow between components.

BDD can be used in conjunction with other SysML diagrams to provide a comprehensive view of various aspects of a system. For example, a sequence diagram used with BDD shows the specific order of operations within a system, while a state diagram describes the various state changes of a system or component. Using these connections helps you systematically design and analyze all aspects of the system.

Blocks are the core modular units used to describe system structures in Systems Modeling Language (SysML), allowing you to effectively define different types of system components. These blocks are widely used in the modeling and design process of systems engineering, and include three important aspects: block definition, properties, and notation.

What is a block?

Blocks encompass various system components including hardware, software, data, people, facilities, logistics flows, and the natural environment, including logical, conceptual, or physical entities. These components perform specific functions within each system or subsystem. Additionally, the blocks are designed as reusable modules and have the flexibility to be applied to a variety of systems.

Characteristics of blocks

A block represents a set of similar instances or objects, sharing common characteristics and functionality. Each block contains a set of features that describe the characteristics of that instance, and these features define the role and importance of the block. For example, an engine block may have characteristics such as fuel consumption, power output, and size, which affect the overall performance of the system.

Block notation

Blocks are represented as rectangles in SysML diagrams using the specific stereotype ‘<<block>>’. The name of the block is located at the top of the symbol, and is the only required section that identifies the block. Additionally, optional compartments representing the block’s features may be included, which are used to visually describe specific features or attributes of the block. These notations play an important role in improving the readability and understanding of system models.

Specification of model elements

The naming of model elements used in a diagram is determined by their containment relationships or imports within the namespace. To make clear the location of each element in the model’s hierarchy, model elements are specified using fully qualified names. This is essential for identifying the unique location of each element within the model, helping to manage and integrate the complexity of the model.

Function of blocks

Blocks contain two main categories of functionality:

  1. Structural characteristics : These define the internal structure and properties of the block. Structural features describe how a block is organized and what properties each component has. For example, structural features of an automobile engine block may include number of cylinders, engine type, fuel system, etc.
  2. Behavioral characteristics : A block’s behavioral characteristics define how it interacts with its environment and how its state changes. This includes how the block exchanges information with other system components and how it reacts in certain situations.

Optional compartment

A block may contain the following optional compartments:

  • Part: Component parts of the block
  • References: References to other blocks or elements
  • Values: Attribute values
  • Constraints: Constraints
  • Operations: Functional operations
  • Receptions: Receiving external signals
  • Full ports: Full ports (two-way communication possible)
  • Proxy ports: Proxy ports (one-way communication)
  • Flow properties: Flow properties (data or energy flow)
  • Structure: Graphically expresses the internal structure of the block

The Structure section is used to visually represent the internal structure of a block and can contain all the notations of an Internal Block diagram (IBD). Ports are usually shown as small squares on the border of a block, indicating how the block connects to external elements.

Namespace is an important structural concept in SysML modeling and plays a key role in organizing and managing the structure of the system. Various model elements can serve as namespaces, making it clear how the components of a complex system are related to each other. Let’s take a closer look at how to utilize this concept of namespaces and their importance.

Namespace definitions and roles

A namespace is a model element that can contain and organize other model elements. It is used to manage nested elements within the model’s hierarchy and clarify the relationships between them. Namespaces have meaning only in the context of modeling and do not apply to instances of a real system. This structural concept helps logically group systems and manage related elements systematically.

Role in SysML

In SysML, various elements such as packages, models, and blocks can serve as namespaces. In particular, packages are the most commonly used namespace type in BDD to organize and manage various definition elements. Using packages helps clarify the structure of your model and group related elements logically. This organization improves understanding of the model and makes it easier to manage.

Applications in BDD

Namespaces are especially important in BDD diagrams. Named elements in the header of a diagram typically represent packages created within the model’s hierarchy. This package serves as a namespace for the other elements shown in the diagram, organizing the content of the diagram and defining its scope. This structural approach shows how each part of the system is connected and interacts, contributing to improving the efficiency of overall system design.

In SysML modeling, ‘Definition’ and ‘Instantiation’ are important concepts. These two terms clearly define the structure and behavior of the model.

Concept definition

  1. Definition : ‘Definition’ represents a type or class within a system. It describes abstract and general characteristics of a system. For example, a ‘Block’ in SysML can abstractly represent a hardware component, a software module, or a structure of data. These types can be represented by names as simple as ‘CAR’.
  2. Instantiation or Usage : ‘Instantiation’ creates a concrete instance of a defined type. This process allows real-world applications of the type to be represented in the model. For example, ‘GV80:CAR’ is a concrete instance of the block type called ‘CAR’, which represents the specific vehicle model ‘GV80’. Here, ‘CAR’ refers to the type and ‘GV80’ refers to a specific example of that type.


The main difference between ‘Definition’ and ‘Instantiation’ lies in the way they are expressed. While ‘Definition’ is usually expressed simply using only the name of the type, ‘Instantiation’ displays the name of the type along with the name of the specific instance, separated by a colon. This distinction helps you clearly distinguish between types and their instances in your model. This increases the readability and understanding of the model and reduces errors in actual system design.

SysML’s Block Definition Diagram (BDD) is used to define the components of a system and their relationships. You can effectively draw these diagrams using a tool called Enterprise Architect. Today I will explain how to create an ‘Elements of Modeling’ BDD within a package called ‘Modeling’.

First, the ‘Elements of Modeling’ BDD is included in a package named ‘Modeling’. This makes ‘Elements of Modeling’ part of the namespace of the ‘Modeling’ package. A namespace is a scope that describes how elements are grouped.

When you open BDD, you’ll see namespace information like ‘[package] Modeling’ at the top of the frame. This information means that all elements in the current diagram belong to the ‘Modeling’ package. As a result, elements within the ‘Modeling’ package do not need to display namespace information separately.

However, in the case of ‘another element1’, the situation is different. This element belongs to another package (namespace) called ‘another package’. Therefore, the namespace information must be clearly displayed, such as ‘another package::another element1’. Here, two colons (::) are used to separate the namespace and element name.

Using namespaces like this prevents confusion when elements with the same name are used in different contexts and clearly communicates the structure of the model.

This image shows a requirement Diagram in order to Understanding SysML bdd Diagram.
This is a Block Definition Diagram drawn with Enterprise Architect. If you want to get more information about Block Definition Diagram, this article may be helpful.

Let’s look at how to distinguish between the ‘Definition’ and ‘Usage’ of a block in SysML’s Block Definition Diagram (BDD) using Enterprise Architect (EA).

Definition of block

1. Create block:

  • Creating a block called ‘CAR’ is the process of creating a definition for that block. At this stage, the ‘CAR’ block represents the conceptual model of the vehicle, and the general characteristics and structures that act as classes or types are defined.
  • Start a new project, create a project with the name ‘Car’ and add the ‘CAR’ block. Next, create a new BDD using the ‘New Diagram’ button.
image 57

2. Add blocks to the diagram:

  • Drag and drop the created ‘CAR’ block onto the BDD and select ‘Drop As Link’ in the ‘Paste CAR’ dialog to link the definition of the ‘CAR’ block to the diagram. This is the process of visualizing the abstract definition of a block.

Instances of blocks (Usage)

1. Create an instance:

  • Drag and drop the same ‘CAR’ block again and select the ‘Instance (Object)’ option to create a concrete instance of the ‘CAR’ block. This instance represents a specific example of using the ‘CAR’ block in a specific situation or context.
    Example of instance creation
image 58

2. Instance display:

  • Created instances are displayed without the ‘<>’ stereotype by placing a colon in front of the name. For example, ‘Danappa’s : CAR’ is a concrete instance of the ‘CAR’ block, representing the specific vehicle ‘Danappa’s’.
    Instance display example
image 59

In modeling activities, the definition of blocks is important to establish the basic structure and properties of the system, while instances are used to explore different cases with specific configurations or parameters.

[SysML] #1. Understanding SysML Diagrams

[SysML] #2. Understanding SysML Package Diagram

[SysML] #3. Understanding Dependencies of Pkg Diagram

[SysML] #5. Understanding SysML Requirement Diagram

[SysML] #6. Understanding Relations In Req Diagram

[SysML] #7. How to draw a Req Diagram with EA

[SysML] #8. Understanding SysML UseCase Diagram

[SysML] #9. How to draw a UseCase Diagram with EA

[SysML] #11. Understanding SysML ibd Diagram

[SysML] #12. Understanding Part Property of Block

[SysML] #13. Understanding Reference Property of Block

[SysML] #14. Understanding Value Type

[SysML] #15 Understanding Parametric Diagram

[SysML] #16. Understanding Flow Property

[SysML] #17. Understanding Port and Association Block

[SysML] #18. Understanding Behavior of Block

[SysML] #19. Understanding Generalizations

[SysML] #20. Understanding Dependencies, Allocate, Comment

[SysML] #21. Understanding Activity Diagram

[SysML] #22. How to draw a Activity Diagram with EA

[SysML] #23. Seq Diagram LifeLine and Message

[SysML] #24. Seq Diag Constraints Fragment Decompose

[SysML] #25. How to draw a Sequence Diagram with EA

[SysML] #26. Understanding Stm Diagram State and Transition

[SysML] #27. Understanding Stm Diagram Event Pseudostate Region

[SysML] #28. How to draw a State Machine Diagram with EA

Leave a Comment