Skip to content

Prerequisites

The following steps must be executed before this exercise:

  • Install EA 17.1

  • Run EA

  • Open the tutorial model available here: MODEL_LINK

  • Set the perspective (in the top right corner) to "SysML" alt text

  • Make sure that the following windows are open:

    • Explore/Model Browser

    • Explore/Inspect

    • Explore/Focus

    • Properties/Properties

    • Properties/Notes

    • Properties/Tagged Values

    • Properties/Features

    • Properties/Requirements

    • Trace/Traceability

    • Trace/Relationships

  • If some windows are not visible, then click on "Portals/Windows" and click on the window names (after that, right click on the windows and select auto-hide): alt text

  • Make sure that the toolbox is visible: alt text

  • Arrange the windows by dragging them into a position where you can intuitively find them: alt text

Package structure

Create a package for system context, functional architecture, physical architecture, interface and value type modeling:

  • Right click on the "Steering Wheel Heating System" package and select "New Package" OR Press CTRL+W

  • Set the name to "Interfaces"

  • Select "Create Diagram" alt text

  • Create a BDD diagram alt text

  • Repeat these steps and create packages and BDDs for system context, functional architecture, physical architecture, and value type modeling: alt text

  • Drag and drop all packages as a Package Element into the "Steering Wheel Heating System" package (you don't have the SysPhS Library package yet; it will be created later): alt text

  • In the "Layout" menu, select "Diagram Layout/Apply Default Layout": alt text

Value Type Modeling

Create Enums

Create enums in the "Value Types" package:

  • Open the "Value Types" BDD

  • Create the "ConfigurationStatus" Enum using the Toolbox: alt text

  • Create enum literals

    • Click on the enum

    • In the Attributes tab of the Features window, write "Successful" and "Error" in the New Attribute field alt text

Create Value Types

Create value types, units and quantity kinds in the "Value Types" package:

  • Open the "Value Types" BDD

  • Create the "Power" Value Type, the "Watt" Unit, and the "Power" Quantity Kind using the Toolbox: alt text

  • Select the Power value type and in the Element tab of the Properties window set the unit and quantityKind stereotype attributes (click on the "..." button in the right side of the fields): alt text

  • Set the symbol and quantity kind of the watt unit

    • Click on the unit and press CTRL+SHIFT+R, OR right-click on the unit and select "Features/Set Run State" alt text

    • In the pop-up menu, set the attributes alt text

Interface Modeling

SysPhS Interfaces

Import the SysPhS interface, physical interaction, and value type library using the "Model Builder":

  • Right click on the "Steering Wheel Heating System" package and select "Model Builder" OR Press CTRL+SHIFT+M

  • Select "SysPhS/SysPhS Library" (you might need to switch the perspective to "All" above the list if SysPhS is not shown) alt text

  • Click on "Create Model"

  • Inspect the models in the newly imported library

Create Interfaces

In the interface package, create the command interface:

  • Open the "Interfaces" BDD

  • Using the Toolbox, create the following Signals: "Start", "Stop", "SetTemperature" alt text

  • Using the interface, create the "CommandInterface" and the "ConfigurationInterface": alt text

  • Create a "referenceTemperature" parameter in the "SetTemperature" Signal

    • Click on the Signal

    • In the Attributes tab of the Features window, write "referenceTemperature" in the New Attribute field and set the type to "Temperature" value type (from the SysPhS library) and the Scope to Public alt text

    • To change the type of an attribute, click into the type field, and after that, click on the small (downward pointing) triangle and click "Select Type", and in the pop-up window, select the type of the attribute alt text

  • Drop all signals into the "CommandInterface" alt text

  • Create the "configure" operation in the "ConfigurationInterface"

    • Click on the interface
    • In the Operations tab of the Features window, write "configure" in the New Operation field, and set the Scope to Public
    • Double click on the operation in the diagram and set the parameters and the return type
    • in parameter defaultTemperature : Temperature
    • in parameter maxHeatingPower : Power
    • in parameter heatByDefault : Boolean
    • return value ConfigurationStatus alt text

Create Interface Blocks

In the Interfaces BDD, create interface blocks for the system context diagram:

  • Open the "Interfaces" BDD

  • Create "Battery IF", "Vehicle Communication IF", "Mechanical Connection IF" interface blocks alt text

  • Drag "ChargeFlowElement" (from the SysPhS physical interaction library) as a port to the "Battery IF" alt text

  • This way, create the following ports: alt text

  • Visually delete the ports using SHIFT+Del alt text

  • Drop the "EntropyFlowElement" to the diagram as a Link alt text

  • Draw a "Generalisation" relationship from the "Mechanical Connection IF" to the "EntropyFlowElement" alt text

  • Select the "Mechanical Connection IF" and in the "Part/Properties" tab of the "Features" window, click on the "Show Inherited" checkbox and click on the checkbox near the "sF" flow property alt text

  • Visually delete the sF flow property alt text

  • Draw a "Realization" relationship from the "Vehicle Communication IF" to the "ConfigurationInterface" and to the "CommandInterface" alt text

  • Right click on the "Vehicle Communication IF" and click on "Features/Show Realized Interfaces" alt text

  • Draw the "Power" value type to "Mechanical Connection IF" and drop as a "Flow Property"

  • Select the flow property and in the Properties window set the direction to "in" and set the name to "vibration" alt text

  • Visually delete the flow property alt text

Create Association Block

In the Interfaces BDD, create association blocks for the battery wire:

  • Open the "Interfaces" BDD

  • Create "Battery Wire" "Association Block" from the Battery IF interface block to itself alt text

  • Name the connector of the battery wire to "Battery Wire" alt text

  • Right-click on the "Battery Wire" and click on "New Child Diagram/Internal Block Diagram" alt text

  • Right-click anywhere on the diagram and select "Synchronize Structural Elements" alt text

  • In the "Interaction Points" tab of the "Features" window, click on the "All" button to visualize the ports alt text

  • Arrange and connect the ports using the connector alt text

Composition Modeling

Create the composition structure of the system context:

  • Open the System Context BDD

  • Create the "Steering Wheel", "Steering Wheel Heating System", "Steering Wheel Heating System System Context", "Vehicle Battery", "Vehicle Infotainment System", "Steering Wheel Frame", "Vehicle Network Subsystem", "Vehicle Subsystem List" alt text

  • Create "Part Associations" between system context-related and Steering Wheel-related elements

alt text - Create "Shared Associations" between Vehicle Network Subsystem-related elements

alt text - Create "Reference Association" between "Vehicle Network Subsystem" and "Vehicle Subsystem List"

alt text - Set the direction source of the reference association to "source to destination" in the properties window

alt text - Drag the Power value type to the Vehicle Battery block and drop as "Property" alt text

  • Name the property to "maxBatteryPower" and visually delete the property alt text

Internal Structure Modeling

Create IBD for the System Context:

  • Open the "System Context" BDD

  • Right-click on the "Steering Wheel Heating System System Context" block and click on "New Child Diagram/Internal Block Diagram"

  • Right-click anywhere on the diagram and select "Synchronize Structural Elements" alt text

  • Name and arrange the elements alt text

  • In the properties window, set the multiplicity of the battery to [1..2] alt text

  • Drag the "Battery IF", "Vehicle Communication IF", and "Mechanical Connection IF" to the properties and drop as ports. After that, name the ports. alt text

  • Change the "Conjugated" attribute of the ports of the battery and the infotainment in the "Properties" window alt text

  • Connect the ports alt text

  • Select the connector of the battery, name it, and press CTRL+L and select the Battery Wire alt text alt text

  • Create an item flow between the veh bus ports (after the pop-up window appears, press ESC)

  • Drag the Signals over the item flow (after the pop-up window appears, click OK) alt text

  • Right-click on the veh bus connector and select "Advanced/Information Flow Realized" alt text alt text

  • Right click on the "veh bus" port of the system and select "New Child Element/Provided Interface", double click on it, and in the pop-up window select the "Command Interface" alt text

  • Repeat the previous step and create another provided interface child element alt text

  • In the other "veh bus" port, create the required interface counterparts alt text