Astah SysML Tutorial
Internal Block Diagram
Let's move to another diagram the Internal Block Diagram. Internal Block Diagrams are used to describe the internal structure of a system in terms of its parts, ports and connectors. In this tutorial we'll draw the internal structure of the "PowerSubsystem" Block.
Below is a sample of an Internal Block Diagram that you are going to draw.
(From P.68 Figure.9.3 of OMG SysML 1.2)
First, to create the Internal Block Diagram, right-click the "PowerSubsystem" Block and select [Add Internal Block Diagram] from its Pop-up menu.
Then a new Internal Block Diagram will be created under the "PowerSubSystem" Block and you find two models that are created in the diagram which are the related models with the PowerSubsystem Block.
Now let's draw the other Parts of the diagram, and then click on the diagram.
The [Add Part] dialog opens, make sure that [Add a new Part] option is checked and then click [OK]. Put "epc" on the left side of the : as its name and then put "ElectricalPowerController" as its Type.
A dialog appears to ask if you'd like to create a new "ElectricalPowerController" block since this model does not exist in the file. Click [Yes].
The "ElectricalPowerController" will be created (See the structure tree) and the Part is successfully added in the diagram.
TIP - Resizing the model elements: When you want to resize model elements, you can do so by clicking one of the corners of the model element and dragging it.
Next, create the other two Parts, "ecu:PowerControlUnit" and "emg: ElectricMotorGenerator" in the same way.
Then create the External Part which is in blue in the sample diagram. First create a "BrakePedal" Block which will be used as its Type. Right-click the root topic in the structure tree and select [Create Model] - [Add Block] and name it "BrakePedal".
Drag the "BrakePedal" Block and drop it on to the Internal Block Diagram, then a dialog appears to ask which you'd like to create it as Internal Part or an External Part. Click "External Part" and then click [OK].
Double-click the part name and type "bkp".
Now you have all the model elements on the diagram. Add the Ports between them the same was as you did in the Block Definition Diagram.
Once the Ports are made, add ItemFlows between the "epc" and "emg" Parts. First select the [ItemFlow] in the tool menu.
Then click one Port from the other. And create another one the other way around.
Next create a Convey to these ItemFlows. Before adding the Convey, let's create an "ElectricCurrent" Block that we want to set as a Convey.
Select the ItemFlow and go to its Property View. Click [Add] button, then a [Refer Type] dialog opens. Select the "ElectricCurrent" and click [OK].
Create another ItemFlow the same way.
Last, let's create the Interfaces to complete this Internal Block Diagram. Let's add the Provided Interface and Requirement Interface to the port of "epc" part. There are three ways to add the Interfaces.
- From Port's Pop-up menu [Add Required Interface] / [Add Provided Interface]
- From the [Provided Interface] / [Required Interface] tab of Port's property view
- From Internal Block Diagram's tool bar
Add an "I_IEPCData" Required Interface and "I_IEPCCmd" Provided Interface to "epc" part in any way you'd like. This is easy.
Now let's add ones to the "ecu" part too. Let's start with "I_IEPCData" Provided Interface. To do so, select [Realization] from the tool bar.
Then click the port of "ecu" part and "I_IEPCData" Required Interface.
You will have the two Interfaces combined now, right-click it and select "Uncombined" from its Pop-up menu.
That will separate them. Move it to the right as shown in the sample diagram.
Now create the "I_IEPCCmd" Required Interface the same way, except you are going to use "Usage Dependency" this time instead of "Realization".
The rest would be the same - having them uncombined. Last, connect the "epc" and "ecu", "ecu" and "bkp" to complete this diagram.
To create the connection, select [Connector] from the tool bar and click the two target model elements. That's all!