Prerequisites
The following steps must be executed before this exercise:
-
Install EA 17.1
-
Run EA
-
Open the tutorial model available here: MODEL_LINK
-
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):

-
Arrange the windows by dragging them into a position where you can intuitively find them:

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"
-
Repeat these steps and create packages and BDDs for system context, functional architecture, physical architecture, and value type modeling:

-
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):

-
In the "Layout" menu, select "Diagram Layout/Apply Default Layout":

Value Type Modeling
Create Enums
Create enums in the "Value Types" package:
-
Open the "Value Types" BDD
-
Create enum literals
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:

-
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):

-
Set the symbol and quantity kind of the watt unit
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)

-
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"

-
Using the interface, create the "CommandInterface" and the "ConfigurationInterface":

-
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

-
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

-
-
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

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

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

-
Draw a "Generalisation" relationship from the "Mechanical Connection IF" to the "EntropyFlowElement"

-
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

-
Draw a "Realization" relationship from the "Vehicle Communication IF" to the "ConfigurationInterface" and to the "CommandInterface"

-
Right click on the "Vehicle Communication IF" and click on "Features/Show Realized Interfaces"

-
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"

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

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

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

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

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"

-
Create "Part Associations" between system context-related and Steering Wheel-related elements
- Create "Shared Associations" between Vehicle Network Subsystem-related elements
- Create "Reference Association" between "Vehicle Network Subsystem" and "Vehicle Subsystem List"
- Set the direction source of the reference association to "source to destination" in the properties window
- Drag the Power value type to the Vehicle Battery block and drop as "Property"

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"

-
In the properties window, set the multiplicity of the battery to [1..2]

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

-
Change the "Conjugated" attribute of the ports of the battery and the infotainment in the "Properties" window

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

-
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)

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

-
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"

-
Repeat the previous step and create another provided interface child element

-
In the other "veh bus" port, create the required interface counterparts



















