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.

Internal Block Diagram

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

Internal Block Diagram 2

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.

Internal Block Diagram 3

Now let's draw the other Parts of the diagram, and then click on the diagram.

Internal Block Diagram 4

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.

Internal Block Diagram 5

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

Internal Block Diagram 6

The "ElectricalPowerController" will be created (See the structure tree) and the Part is successfully added in the diagram.

Internal Block Diagram 7

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.

Internal Block Diagram 8

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

Internal Block Diagram 8

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

Internal Block Diagram External

Double-click the part name and type "bkp".

Internal Block Diagram External 2

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.

Internal Block Diagram External Port

Once the Ports are made, add ItemFlows between the "epc" and "emg" Parts. First select the [ItemFlow] in the tool menu.

Internal Block Diagram Item Flow


Then click one Port from the other. And create another one the other way around.

Internal Block Diagram Item Flow

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

Internal Block Diagram Convey

Internal Block Diagram Convey 2

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]
    Internal Block Diagram Interface
  • From the [Provided Interface] / [Required Interface] tab of Port's property view
    Internal Block Diagram Interface 2
  • 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.

Internal Block Diagram Interface

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.

Internal Block Diagram Interface 4


Then click the port of "ecu" part and "I_IEPCData" Required Interface.

Internal Block Diagram Interface 5

You will have the two Interfaces combined now, right-click it and select "Uncombined" from its Pop-up menu.

Internal Block Diagram Interface 6

That will separate them. Move it to the right as shown in the sample diagram.

Internal Block Diagram Interface 7

Now create the "I_IEPCCmd" Required Interface the same way, except you are going to use "Usage Dependency" this time instead of "Realization".

Internal Block Diagram Interface 9

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!

Internal Block Diagram Connector