[SysML] #2. Understanding SysML Package Diagram

Welcome to our journey to delve into the core of SysML, a system modeling language again . Today, we will take an in-depth look at ‘Package’ and ‘Package Diagram’, which are important concepts that are inseparable from SysML. The world of systems engineering sees a structured approach as essential to understanding and designing complex systems. In this article, we will learn why Packages and Package Diagrams are so important and how these concepts play an essential role in structuring a system.

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

A package is the basic unit in SysML that groups and modularizes the components of a model. By organizing a complex system by breaking it down into manageable parts, designers can effectively deal with the complexity of the system. It systematically organizes related model elements such as blocks, use cases, and activities by grouping them together. A package allows nested containment relationships of these model elements and can contain multiple elements.

Packages play two important roles: container and namespace.

SysML uses several kinds of packages to construct models. Each package type has a specific purpose, which increases the clarity and flexibility of the model.

  1. Model: Represents the entire system model and is used as the top element of a modeling project.
  2. Package: Groups and organizes related model elements. They form a subset of the model, and multiple packages can be nested.
  3. Model Library: A package containing reusable model elements that can be referenced by multiple models or packages.
  4. View: Groups model elements that represent a specific aspect or perspective of the system. For example, they may be responsible for perspectives such as ‘system structure’ or ‘system behavior’.


A namespace is a way to separate and manage all elements with names (e.g. types, functions, variables, etc.). In systems modeling, namespaces help prevent name collisions and clearly identify each element within the model. In modeling large systems or complex environments where multiple models interact, the importance of namespaces becomes even more pronounced.

In SysML, packages serve as namespaces. Elements within each package must be unique within that package, and can have the same name without conflict, even if the name overlaps with another package. This provides a fully qualified name for each element in the model, which is essential for unambiguous identification and referencing of elements within the model.

  1. Identity and uniqueness: Ensures the uniqueness of each element in the model. Allows elements with the same name to coexist within different contexts (i.e. namespaces).
  2. Organization: Allows you to organize your model more systematically by grouping related elements together, which makes the model easier to read and manage.
  3. Scope management: Defines the access scope of elements and clearly distinguishes between elements that are accessible globally or only in specific parts.
  4. Reusability and extensibility: Namespaces increase the reusability of model elements, allowing other models or projects to use or extend the same structure.
  5. Dependency management: Clearly express dependencies between model elements and make these relationships clear when certain elements depend on elements in other namespaces.



A container is a structural unit that contains and organizes other model elements. This plays a big role in defining the structure of the model and breaking down the complexity of the system into easily manageable units. In SysML, containers are mainly implemented through packages, which group model elements to form a namespace.

Grouping of model elements: Containers clarify the structure of the model by logically grouping related model elements.
Forming a hierarchy: The nesting potential of containers contributes to forming a hierarchy of the model. This hierarchical structure helps you understand and manage complex systems easily.
Reusability of model elements: Containers increase the reusability of groups of model elements, making modeling efforts more efficient and consistent.
Dependency Management: Containers clearly express dependencies between the model elements they contain, and are important for understanding the relationships between different parts of the system.
Access control and manageability: Packages can be used to manage modification rights to parts of a model for specific users or teams, and facilitate navigation and configuration management of the model.

  1. Package: A package is the most common container type in SysML, grouping model elements and defining structural parts.
  2. Block: Blocks model the structural components of a system and are used to represent the physical and logical structure of the system.



In SysML, package diagrams play a key role in visually representing the structure and hierarchy of the system model. This diagram is like a ‘map’ of the model, clearly showing the various elements within the model and the relationships between them. Today we will take a closer look at the header structure of a package diagram and its importance.

The information displayed in the header of the package diagram is as follows:
pkg [model element type] package name [diagram name]

  1. Diagram type (pkg) : ‘pkg’: Standard abbreviation for package diagram. This abbreviation specifies that the diagram is a package diagram and is the first information provided to the viewer of the diagram. ‘pkg’ plays a key role in identifying the type of diagram.
  2. Model element type : This section indicates the types of key model elements shown in the diagram. Possible types include ‘Model’, ‘Package’, ‘Model Library’, and ‘View’. This information specifically indicates the scope and type of information the diagram contains and provides important hints for interpreting the diagram.
  3. Package name : The package name refers to the specific package that the diagram represents. This clarifies the topic of the diagram and helps you understand the location and role of that package within the model. The package name serves as an important identifier within the model and is essential for structural understanding of the model.
  4. Diagram name : The diagram name can be optional and further describes the purpose or focus of the diagram. This name indicates with what specific perspective or purpose the diagram was created and provides additional context to the diagram’s use and interpretation.
image

for example, above package diagram header show, diagram type : pkg, Model element type : package, Package Name : Structure, Diagram Name : view&view point.

Package

  1. Role: A package is a container that logically groups related model elements. It defines the structure of the model and provides namespaces to prevent name conflicts between elements. The package makes your model clearer and more organized.
  2. Application example: For example, the ‘Driving Control System’ package contains all driving control-related model elements and allows them to be managed systematically.

Model

  1. Role: A model is a top-level container that represents the entire system or project. most of case, It serves as the structural root of the entire modeling object and includes other packages and model elements. but model can be used within package Hierarchy if needed.
  2. Application example: The ‘automotive electronic system’ model includes model elements related to the entire automotive electronic system and represents the overall structure of the system.

Model Library

  1. Role: A model library is a package containing reusable model elements. This includes type definitions, block definitions, etc., allowing them to be referenced and used in other models or projects.
  2. Application example: Commonly used sensor types, interface definitions, etc. can be included in the model library and reused in various models.

View

  1. Role: A view is a package that represents a specific aspect or perspective of a system model. It extracts and expresses parts of the model to meet the requirements of specific stakeholders.
  2. Example of use: ‘Safety Analysis View’ extracts and expresses only the safety-related elements of the system, allowing safety analysts to easily access the necessary information.

Profile

  1. Role: A profile is a package that defines an extension of SysML, giving it additional meaning tailored to a specific domain or application. This is implemented through stereotypes, tagged values, constraints, etc.
  2. Usage example: ‘Autonomous car profile’ defines special requirements and constraints related to autonomous driving and allows them to be applied during the modeling process.
image 2

for example, above image shows model, model library, package, view element in package diagram


In SysML, various containment notations are important to clearly convey the structure of the model and the relationships between elements. This notation clarifies the relationships between namespaces and elements within the model, contributing to the readability and accuracy of the model. Below, we will look at specific explanations of each notation and how to use it.

  1. Usage: Crosshair notation includes a plus sign (‘+’) surrounded by a circle at the end of a solid line to indicate that one package is structurally contained within another package. This makes it clear that certain elements are owned by other elements and provides a visual representation of the hierarchical structure.
  2. Example: Used to indicate that the ‘Engine Control Module’ package is contained within the ‘Drive Control System’ package.
image 3
This image shows Crosshair Notation in Package Diagram

Nested notation

  1. Usage: The nested notation indicates the visual inclusion of another package or element within one package. This method is particularly useful in complex models to clearly demonstrate how multiple elements are organized.
  2. Example: Within the ‘Driving Control System’ package diagram, sub-packages such as ‘Speed Control’ and ‘Direction Control’ are visually represented.

Qualified name string notation

  1. Usage: Qualified name string notation represents the full or relative path of an element as a string, making it clear which namespace the element belongs to. This makes efficient use of space on the diagram and allows precise positioning of elements.
  2. Example: Clearly express the package path to which a particular sensor belongs, such as ‘Drive Control System::Speed Control::Speed Sensor’.

Fully qualified name

  1. Usage: Qualified names are used to clearly indicate the embeddedness and hierarchy of model elements. A path separated by a double colon (‘::’) indicates the hierarchy of the package to which the element belongs.
  2. Example: ‘Fleet Management System::Drive Control System::Engine Control Module’ indicates that the Engine Control Module is located within the Drive Control System within the Vehicle Management System.


[SysML] #1. Understanding SysML Diagrams

Leave a Comment