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

In this blog post, we will take a closer look at Dependencies, Allocate, Comment.

A dependency is one of the frequently used relationship types in SysML or UML modeling, indicating the dependence of one element on another. These relationships are especially useful in the early stages of system design, when the details of the relationship are not clear. It is often used. Dependencies provide flexibility, but at the same time represent semantically weak links, so they can be subdivided or replaced by more specific relationship types as the exact nature of the relationship becomes clear.

What dependency relationships mean

  • Relationship between client and provider: Dependency indicates that a client element depends on a provider element. This dependency means that the client cannot function normally without the provider. A relationship in which one element of the model (the client) depends on another element (the provider). When changes occur in the provider element, changes may also be required in the client element.
  • Information Flow: Although dependency does not directly refer to the flow of information, it is often conceptualized as information or resources moving from supplier to client.
  • Modeling Flexibility: Dependencies are useful when the details of the relationship have not been analyzed or are unknown at the beginning of the modeling process. It represents connections between elements that modeling relies on, but does not fix specific meaning or behavior, making it easy to change.
  • Traceability and Impact Analysis: Dependency relationships are used to establish traceability between two model elements and automate impact analysis when changes are made to the design.

Dependency representation in BDD

  • Dotted lines and open arrowheads: In BDD, dependencies from the client to the provider are represented by dotted lines and open arrowheads. This visually indicates that the client is dependent on the provider.
  • Select Stereotype: After creating a connector, you can specify the meaning of the dependency more specifically by selecting from various stereotypes in the connector’s properties window. This refines the meaning of dependencies and aids in model interpretation.
  • Use with different element types: Dependencies can be used not only between blocks, but also between various model elements such as packages, requirements, etc. This is useful for expressing dependencies between various parts of a model.

Special dependency relationships in SysML

  • Package imports, aspect conformance, etc.: SysML defines many special kinds of dependency relationships. These dependencies are more often used in package diagrams or requirements diagrams, where they are useful for representing complex relationships between various elements of a model.

Practical reasons and uses for dependencies

  • Dependency relationships allow modeling tools to analyze the downstream impact of design changes and automatically determine the impact on other elements in the model. This supports decision-making during the design process and helps manage change efficiently.

Modeling and representing dependency relationships plays an important role in system design using SysML in terms of traceability, maintainability, and change management. This is one of the key elements that allows designers to clearly understand and manage the dependencies between the various elements of a complex system.

The assignment relationship between blocks and activities is one of the important modeling techniques in Systems Modeling Language (SysML). This relationship defines the mapping between the system’s behavior (activity) and the structures (blocks) that perform that behavior. These relationships allow designers to connect the functional requirements and physical components of a system and provide an integrated understanding of the system’s structure and behavior.

Importance of assignment relationships

  • Function Assignment: This relationship maps specific activities (tasks or functions that the system must perform) to be performed by concrete blocks (components of the system). This clarifies “which block performs which function” and provides a link between the functional and physical aspects of the system design.
  • Improve understanding of the system: Helps understand how the system works overall by showing how the various components of the system interact through assignment relationships to perform the functions of the overall system.
  • Close the gap: Eliminate gaps that may arise during the design process by clarifying the relationship between the system’s requirements (expressed as activities) and the components (blocks) that meet those requirements.

Expression of assignment relationship

SysML allows assignment relationships to be expressed in a variety of ways. For example, within an activity diagram, you can represent assignment relationships between activities (actions) and the blocks (structures) that perform those activities. Additionally, allocation relationships can be expressed using dependency Relationships with <> sterotype. Assignment relationships are primarily used to specify the blocks in which activities are implemented, and this mapping contributes to greater clarity and accuracy in system design.

Use of assignment relationships

By using assignment relationships, systems engineers can:

  • Functional Decomposition: Decomposes the functionality of a complex system into smaller, manageable parts and defines how each part is assigned to concrete blocks.
  • Assignment of Responsibilities: Clarify the responsibilities that each component of the system must perform, thereby understanding how each part of the system contributes.
  • Design Verification: Allocation relationships allow you to verify that the system design meets requirements and, if necessary, adjust the design to better meet requirements.

Assignment relationships between blocks and activities play an important role in SysML modeling in integrating the structural and behavioral aspects of the system. These relationships allow designers to more clearly define the interactions between a system’s components and develop a design to effectively meet the system’s functional requirements.

In Systems Modeling Language (SysML), annotations (comments) are an important means of providing additional information about model elements within a diagram. Annotations are useful for understanding diagrams and clearly communicating design intent, constraints, and related information. Let’s learn more about how to use annotations and their importance.

Use of Comments

  • Information Conveyance: Annotations consist of text strings and can convey all the information required for model elements within the diagram. This may include design intent, usage instructions, details, or notes.
  • Association with diagram elements: Annotations can optionally be attached to other elements of the diagram and are connected to those elements by a dotted line. This makes it clear that the annotation provides additional information about a specific model element.
  • Links between diagrams: Some modeling tools include hyperlinks in annotations, allowing users to easily navigate to related diagrams or external documents. This helps strengthen connectivity between documents and makes information more accessible.

Comment notation

  • Comments are usually displayed as rectangles with a curved upper right corner. If the comment is about a specific element, it is connected to that element using a dotted line.
  • SysML can indicate special types of annotations, such as rationale, problem, or diagram description, by specifying a stereotype before the annotation body. This stereotype appears in comments with a note symbol.

Importance of Comments

  • Annotations play an important role in helping you understand the model, clarifying design intent, and communicating complex information effectively. Additionally, annotations contribute to increasing the completeness of the model when used with requirements relationships and assignments.


In the bdd below, it is assumed that SMPS can be controlled through serial communication. Since it has not yet been decided which serial communication will be used to control, SMPS has a dependency relationship attached to the MCU Serial Communication Interface Block during modeling.

This image shows a block definition Diagram in order to Understanding Dependencies
This is a Block Definition Diagram drawn with Enterprise Architect. If you want to get more information about dependencies of block, this article may be helpful.

Dependency connects from Client (i.e. dependent element) to Supply. In other words, there is an arrow on the Supply side. This means that if the supply side changes, the client will be affected in some way.


The bdd below assumes a system behavior that hard resets the system when a system malfunction occurs and the Watch-Dog Timer expires. And this System Hard Reset Activity was assigned to MCU, SMPS, and Watch Dog respectively. In this way, you can express which Structural Feature implements the Behavior Feature using Allocation Relationship.

image 206

For reference, you can use Traceability to easily figure out which elements a specific block is related to. (You can activate it at Start → All Windows → Design → Trace.)

The Tracebility window is a useful feature that allows you to visualize traceability as elements are explored in the model, as it provides a hierarchical view of the connections that that element has, starting with a specific element.

Comment is a function for writing additional explanations and can be freely written anywhere. Because modeling is abstract, it may be difficult to accurately express intent using SysML alone unless you are an experienced modeler. In this case, comments are very useful. It has a similar use to making comments when coding.

You can use Note in toolbox → Common Elements. Just enter the description in the Notes window and connect it to other elements using the Note Link in the Common Relationships section. (Quick Link, you can also use the upward facing arrow attached to the right of the element)

image 208

For reference, if you drag and drop a specific diagram into the bdd window, the Select Type window appears. Here, if you select Hyperlink and select Ok, a Hyperlink that can go directly to a specific diagram is created on the bdd.

Now, create a Note, annotate it like “To Battery Input BDD” and link to related elements. Then place the Hyperlink so that it is included above the Note. If the hyperlink is hidden behind the note, right-click the mouse → Z-Order to move it to the front of the note.

Now select Note and Hyperlink together and right-click → Group Elements to group them.

Now, it seems possible to improve the readability of the diagram by creating a note that allows you to move directly to a specific diagram, as shown in bdd below.

image 209

[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] #10. Understanding SysML bdd Diagram

[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] #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