SysML

[SysML] #12. SysML Part Properties Explained: From Basics to EA Practice

AutoSysEng 2025. 7. 14. 23:34

 

Are you struggling with SysML Part Properties? If you've ever been puzzled by Block Definition Diagrams, you've come to the right place. We'll break down everything from the basic concepts of Part Properties to hands-on practice in Enterprise Architect. Let's get started!

Hello! Have you ever felt a bit lost when looking at a complex system diagram? Especially with SysML, terms like 'Block Definition Diagram' or 'Part Property' can seem daunting at first. I've certainly had moments where I was scratching my head, trying to make sense of all the interconnected blocks. But don't you worry! Today, we're going to take a closer look at 'Part Properties,' a crucial element that defines the very structure of a system. Let's figure it out together! 😊

 

 

What Exactly Are Part Properties? 🤔

[cite_start]

Simply put, Part Properties are used to define the characteristics of each component that makes up a system. It's a tool that clearly illustrates how various parts within a system are connected and what role each one plays in the grand scheme of things. [cite: 972]

For instance, when modeling a car, individual components like the engine, transmission, and wheels can all be represented as Part Properties. This helps explain their interactions and functions within the larger system. [cite_start]It really clarifies the structure! [cite: 972]

💡 Understanding the Whole-Part Relationship!
In SysML, the relationship between a whole system and its components is expressed using Part Properties. [cite_start]This is a critical concept for designing complex systems. [cite: 973]
  • Physical Systems: In a physical system like a car, this represents an assembly relationship. The 'whole' block (the car) is formed by combining several 'part' blocks (engine, wheels). This is similar to a Bill of Materials (BOM), making the function of each part clear.
  • Software Systems: In software, this concept is also vital. The lifecycle of the 'whole' object directly impacts its sub-objects. For example, if the main object is deleted, all its associated sub-objects are deleted too. This is often managed through composition relationships in programming.

 

Defining and Expressing Part Properties 📊

If you have experience with object-oriented programming, this might feel familiar. A class acts as a blueprint for objects, and its fields can be instances of other classes. Similarly, in SysML, a Part Property of a block represents an instance of its Type. For example, a 'Car' block would include instances of 'Engine' and 'Wheel' blocks as its Part Properties. When a block is instantiated, its Part Properties must be instantiated as well.

Part Properties are typically displayed in a block's 'Part Compartment' using the following format:

Format Description Example
<part name> The name or role of the part, which helps identify it. engine
: <type> The block that defines the type of this part. : Engine
[<multiplicity>] Indicates how many instances of the part can exist. [4]
⚠️ Pay Attention to Multiplicity!
Multiplicity is crucial for defining the exact structure.
    [cite_start]
  • Lower Bound: The minimum number of instances. If it's 0, the part is optional. [cite: 973]
  • Upper Bound: The maximum number of instances. [cite_start]It can be a specific number (like 1 or 4) or an asterisk (*) for "many" or unlimited. [cite: 973]
  • [cite_start]
  • Default: If not specified, the multiplicity is assumed to be [1..1], meaning exactly one instance is required. [cite: 973]

 

Visualizing with Composite Association 🔗

To visually represent this strong 'whole-part' relationship on a Block Definition Diagram (BDD), we use a Composite Association. It's a solid line with a filled black diamond on the 'whole' side. This diamond signifies that the 'part' is a component of the 'whole'.

📝 Example: Car Model Association

Imagine our 'CAR' block. We can draw Composite Association lines from the 'CAR' block to the 'Wheel' block. We can give a role name to the end of the line connected to the 'Wheel' block, like wheel, and set its multiplicity to [4]. This visually states: "A Car has 4 wheels."

[cite_start]

An important rule of this association is that a part can only belong to one whole at a time. This means the multiplicity on the 'whole' (the diamond side) is typically 1, ensuring system integrity. [cite: 974]

 

Practice in Enterprise Architect: Using IBDs 💻

Now, let's see how this works in a real tool like Enterprise Architect. While BDDs define the types and their relationships, an Internal Block Diagram (IBD) shows the internal structure of a single block, detailing how its part properties are used.

Let's create an IBD for our 'CAR' block.

  1. Create the IBD: Right-click the 'CAR' block in your BDD or Project Browser, and select 'New Child Diagram' → 'Internal Block Diagram'.
  2. Add Part Properties: You can drag the part properties (like 'Engine' and 'Wheels') from the Project Browser onto the IBD canvas. Alternatively, right-clicking the canvas and selecting 'Synchronize Structural Elements' will add them automatically.
  3. Connect the Parts: Now, you can show how these parts interact. Use the 'Connector' tool from the Toolbox to draw lines between them. For example, draw a connector from the 'Battery' part to the 'Motor' part, and from the 'Motor' to each 'Wheel' part.

But we can get even more specific!

💡 Level Up with Item Flow!
A simple connector shows that two parts interact, but Item Flow specifies what is exchanged (e.g., energy, data, or material).

To use it, you first need to model the items themselves as blocks in your BDD. For our car, let's create blocks named 'Current' and 'Torque'.

Back in the IBD, you can add an Item Flow from 'Battery' to 'Motor' and select 'Current' as the conveyed item. Then, you can "realize" this flow on the connector (Right-click connector → Advanced → Information Flows Realized), which visually links the abstract flow to the physical path. This makes your model incredibly clear and precise!

 

 
💡

Part Properties at a Glance

Purpose: Define the components (parts) that make up a system (whole block).
Expression: Use Composite Associations on a BDD to show the relationship.
Internal View:
Use an IBD to show how parts interact internally via Connectors and Item Flows.
Key Syntax: partName : Type [multiplicity] defines each part's role, type, and quantity.

Frequently Asked Questions ❓

Q: What's the main difference between a Composite Block and a Part Property?
[cite_start]
A: A Composite Block is the main system or subsystem (the 'whole'), which has an internal structure. A Part Property is a component *within* that structure (a 'part'). So, the 'Car' is a Composite Block, and its 'Engine' is a Part Property. [cite: 1206, 1207]
Q: Is "Part Relationship" the same as "Composite Association"?
A: Yes, "Part Relationship" is another term for a composite relationship or composite association. [cite_start]It formally represents the structural connection where one block is a part of another. [cite: 1207]
Q: When should I use an IBD instead of just showing parts on a BDD?
A: Use a BDD to define the *types* of blocks and their general relationships. Use an IBD to show the *internal structure* of a specific block instance, including how its parts are connected and interact with each other. IBDs are for detailing the 'inside' of a block.

Today we took a deep dive into Part Properties, from the basic concepts to practical application in IBDs. It might seem like a lot, but as you see, breaking it down makes it much easier to understand, doesn't it? By properly modeling these structural elements, you can get a much clearer picture of how a system works. In the next post, we'll explore 'Reference Properties'! If you have any questions, don't hesitate to ask in the comments! 😊

This article is a re-reation of the core content of the article I wrote last year using AI. If you are interested in the original article, please refer to the HTML below!

 

[SysML] #12. Understanding Part Property of Block.html
0.17MB