Tutorial: How to draw SUV models with Astah SysML (Updated June 28, 2013) This tutorial is designed to help the readers to learn how to draw diagrams with Astah SysML using sample diagrams from the SysML specification by OMG. Throughout this tutorial, you will learn basic operations to draw diagrams with Astah. Table of Contents 1: Introduction - What is Astah SysML? 2: Let’s get started – installing and starting Astah SysML 3: Overview of Astah Window 4: Block Definition Diagram 5: Internal Block Diagram 6: Parametric Diagram 7: UseCase Diagram 8: Requirement Diagram 9: Thanks! 1: Introduction - What is Astah SysML? “SysML” is a general-purpose graphical modeling language for specifying, analyzing, designing, and verifying complex systems that may include hardware, software, information, personnel, procedures and facilities. According to the Chairman and CEO of OMG, Richard Mark Soley, it is already the industry standard for engineering large, complex systems; more safety and quality system development teams are rapidly adopting SysML. Every engineering specialty, from mechanical to electronic to software engineering have a common language to design safe, complex systems architectures. Astah SysML is a modeling tool that enables you to draw SysML diagrams swiftly with refined and intuitive interface design. You can learn more about Astah SysML on the Astah SysML overview page. http://astah.net/editions/sysml 2: Let’s get started – installing and starting Astah SysML Okay let’s get started and get Astah SysML installed on your computer! 1. Make sure that you meet the System Requirements to run Astah SysML 2. Download the Astah SysML installer from the download page 3. Double-click the installer and install Astah SysML 4. Launch Astah from the Windows start menu or double-click the Astah icon If you already have a license, go to [Tool] from the Main Menu to open the “License Management” dialog box and click [Set License Key] and set it up. If you don’t have a license, you can use Astah SysML for free as an evaluation version for the first 20 days. (After the 20 days, you may be able to get an extended license for a further 270 days!) In this tutorial, we are going to show you how to draw the sample diagrams from the SysML specification version 1.2 by OMG. 3: Overview of the Astah Window Before we start, we should do a short overview of Astah – roles of each pane, etc... 1: Management View The Management View contains a menu bar and icons of frequently used menu options. 2: Project View The Project View consists the following five tabs: Structure: It shows all the diagrams and main models in the tree so that you can see the model structure in a tree view. You can also add new diagrams or models from this section. Inheritance: This shows the inheritance tree of the models, especially Blocks and Interfaces. Simply select a model and see its inheritance(s) in the diagram. You can add diagrams or models from this view also. Map: You can control and adjust the area of diagram to show in the diagram editor with this view. This view is very useful when you have a large diagram, you can select certain areas you want to see enlarged in blue rectangle, and then Astah shows the covered area in the diagram editor. Diagram: This shows a list of all the diagrams in a file. You can sort the list by diagram type, name, or its parent model elements, etc. Search: You can search and replace model names from here. 3: Property View This is where you can modify detailed properties of model selected in the diagram. 4. Diagram Editor This is where to draw diagrams. To start a drawing, first, create a new project file from [File] – [New]. 4: Block Definition Diagram Let’s draw the sample Block Definition Diagram below which details the specification of Units and ValueTypes employed in the SUV design. (Figure B2 from OMG SysML Specification v1.2 – P.162) First, create a Block Definition Diagram. There are two ways to accomplish this. You can use [Diagram] – [Block Definition Diagram] from the Main Menu. You can also right-click the root project in the Structure Tree and select [Create Diagram] – [Add Block Definition Diagram]. Then a blank Block Definition Diagram opens in the Diagram Editor. On the top of the Diagram Editor, there is a list of icons called “tool bar” that has a menu to create models with. To find out which icon does what, move your mouse over each icon, it will tell you what the icon is for in a tool tip. First, create the [Automotive Value Types] package. To create a Package, select [Package] in the tool bar and then click the diagram. A package will be added in the diagram, name it “Automotive Value Types” and then hit the Enter key to complete. Now let’s create Value Types that are shown in pink in the sample diagram. Select the Value Type button in the tool bar. Because you want to place the Value Types inside the [Automotive Value Types] Package, click directly on the package then the Value Type, it will be placed inside of it. Then type the name directly in. Now create the other 5 Value Types in the same way. TIPS 1: Moving model elements You can move around the model elements by simply dragging them. To rename the model elements, just double-click its name. TIPS 2 : How to continuously create the same model elements When you want to add same model elements continuously, hold the [Shift] key down and keep clicking the diagram editor. Now let’s draw the Generalization between the Value Types. To create one, select [Generalization] in the tool bar then click two Value Types to connect. Select [Generalization], then click “Accel” ValueType and then “Real”. The Generalization is created as to the right. Create the Generalizations from the other 4 Value Types to “Real” in the same way. You will then have the diagram like the one below. To make all the Generalization lines together, select them all and then go to [Edit] – [Shared Style] – [Vertical]. All the lines will then be in one solid line like the figure below. Now let’s create the Units that are shown in blue. The way to create Units is exactly the same as ValueTypes. First, create the “Automotive Units” Package that holds all of the Units. Then select [Unit] in the tool bar which you can find from the dropbutton of ValueType. Click inside of the “Automotive Units” package and name them. Now your diagram should look like this. Next, create QuantityKinds. This time let’s create them from the Structure Tree. Right-click the [Automotive Value Types] Package and then select [Create Model] – [Add QuantityKind]. All the QuantityKind will be made under the [Automotive Value Types]. After all the QuantityKind is made, set each QuantityKind to the Units. To do so, select the Unit in the diagram and go to the [Base] tab of its property view, open the drop-down list and set each Unit to QuantityKind. Below is the figure setting “Time” QuantityKind to the “sec” Unit. After the QuantityKind is set in the Property View, the QuantityKind information appears within the Units in the diagram. You have now completed the first Block Definition Diagram, name this diagram “ModelingDomain”. To do this, select the “Block Definition Diagram0” in the Structure tree and type in the [Base] tab of its Property view. For more practice, let’s draw another Block Definition Diagram and create Blocks to define the fuel flow properties of the “PowerSubsystem”. (From P.179 Figure.B.23 of OMG SysML 1.2) First, let’s create the “HSUV” Block and then create a Block Definition Diagram for it. To create a new Block, right-click the root topic and select [Create Model] – [Add Block]. Name the new Block “HSUV”. Now create a new Block Definition Diagram under this HSUV Block. Right-click this Block and select [Create Diagram] – [Add Block Definition Diagram]. The new Block Definition Diagram will open; name the diagram “PowerSubsystem Fuel Flow Definition”. Create the 5 Blocks that are shown in yellow in the sample diagram. Select a Block in the tool menu and then click on the diagram. Name them “PowerSubsystem”, “Fuel”, “FuelTankAssembly” and “InternalCombustionEngine”. After all the Blocks are made, make the associations between them. Creating an Association is same as when you created the Generalization before. Select the Association from the tool menu and then click the two Blocks you want to connect. Let’s draw one between the “PowerSubsystem” and “FuelTankAssembly” Blocks. The association is a Composition, so select the “Composition” from the tool bar. Click “PowerSubsystem” and then “FuelTankAssembly” and create another one - click “PowerSubsystem” and then “InternalCombustionEngine”. To make these Compositions in one line like the sample diagram, select both Composition lines and then select [Line Style] – [Line (Right Angle)] from the Pop-up menu. The Composition line will look like the ones below. TIPS 3: How to set the property for Associations There are a few ways to make the Association type. Here’s how to set it to Compositions as an example. 1: From Pop-up menus: Right-click the Association line and set it to Composite from “Aggregation”. 2: From the Property View: Select the Association Line in the diagram and go to its Property View. Open [Association End A/B] tab and specify it in the “Aggregation” field. Now let’s set the name for the Association End. Select the Composition line and go to its Property View and open [Association End A/B] tab and put “ft” for “FuelTankAssembly” End and “ice” for “InternalCombustionEngine” End. When you are on this [Association End A/B] tab, make sure that the Target is the end block you want to name for. Now add the Flow Properties to the “FuelTankAssembly”, “InternalCombustionEngine” and “FuelFlow” Blocks. There are four ways to do so. 1: From the Block’s Pop-up menu [Add Element] – [Add Flow Property] 2: By clicking the blue cross of the “flow properties” compartment of the Block 3: From [FlowProperty] of the Block’s property view 4: From the Block’s Pop-up menu in the Structure Tree Add the Flow Properties in any way you’d like. Type its Name, specify the Type and FlowDirection in its property view. Next add Ports to these Blocks. Click the [Port] button from the tool bar and click on the “FuelTankAssembly” Block. Go to the [Base] tab of Port’s Property view and name it "FuelTankFitting” then set the Type as “FuelFlow”. “FuelFlow” goes both directions, so two arrows would appear inside the port on the diagram. Add another “ICEFuelFitting” Port to the “InternalCombustionEngine” just like the one you just created. Last, add the Values to the “Fuel” Block (The blue Block in the diagram). To add the Values, click the blue cross button in the “values” compartment. Then type the two Values as shown in the sample diagram. When you type “Temp” and “Press” it asks you to create a new Type, click [Yes] both times. 5: 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. TIPS 4: 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. 1: From Port’s Pop-up menu [Add Required Interface] / [Add Provided Interface] 2: From the [Provided Interface] / [Required Interface] tab of Port’s property view 3: 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! 6: Parametric Diagram Now let’s move on to creating the Parametric Diagram below. (From P.180 Figure.B.24 – Defining Fuel Flow Constraints (Parametric Diagram) of OMG SysML 1.2) A parametric diagram is defined as a restricted form of the Internal Block Diagram. A Parametric Diagram may contain constraint properties and their parameter, along with other properties from within the Internal Block context. Let’s create a new Parameter Diagram by Right-clicking the “PowerSubSystem” Block and selecting [Add Parametric Diagram] from its Pop-up menu. First, draw the Constraint Property which is a property of any Block that is typed by a Constraint Block. We need a Constraint Block to do that, so let’s create one. Right-click on the root-topic and create a new Package to hold this Constraint Block from [Create Model] – [Add Package] and name it as “Constraints”. Now create a new Constraint Block in this Package by rightclicking on it, then go to [Create Model] – [Add Constraint Block] and name it as “FuelFlow”. A Constraint Block “FuelFlow” is created. Go to [Constraint] tab of its Property View and add the constraint from the Constraint field as shown below. Now drag the Constraint Block from the Structure Tree into the diagram editor and name it “fuelflow”. Now Create the Value Properties that are shown in pink in the sample diagram. But before we do that, we need to create a few Blocks first. Let’s quickly create a new Block Definition Diagram with the instruction below for you to practice! 1. Create a new Block Definition Diagram name it whatever you like 2. In the Structure Tree, select [PowerSubSystem] and [InternalCombustionEngine] Blocks, then drag and drop them on the Block Definition Diagram 3. Next create two more Blocks – FuelFlowRate and FuelDemand and create Compositions between them 4. Let’s add values to the “FuelFlowRate” and “FuelDemand” Blocks. To do so, select each Block and go to its Property View and open the [values] tab. Click [Add] button, and then name it “fuelDemand” and choose Type for “Real” from its dropdown list. Now let’s do the same to “fuelFlowRate”. Now that you are all set, let’s get back to the Parametric Diagram and create an “ice.fi.fuelDemand” Value Property. First select the Value Property from the tool bar and click on the diagram. When you click on a diagram, the following dialog appears. Select “fuelDemand:Real” and then click [OK]. Now create another Value Property in a same way you just did. Now all you need to do is to add the Value Properties and the Constraint Parameter with Binding Connector to complete this Parametric Diagram. To connect them with BindingConnector, you need to add the “Constraint Parameter” to the Constraint Properties first. Select the “Constraint Parameter” and add it to “fuelflow” Constraint Property and name them as shown in the sample diagram. Now select “BindingConnector” and then connect each Value Type and the Constraint Property. You have completed this Parametric Diagram. 7: UseCase Diagram Now let’s draw an UseCase Diagram. (From P.166 Figure.B.6 – Establishing Operational Use Cases for “Drive the Vehicle” of OMG SysML 1.2) To create an UseCase Diagram, select [Diagram] – [UseCase Diagram] from Main menu. First, create an Actor. Select [Actor] from tool bar then click on the diagram and name it as “Driver”. Create the 6 UseCases in the same way. After all the model elements are created, make the relationships between them. First, between the Actor and two UseCases in blue, you want to connect them with Association line. Use “Extend” and “Include” for connecting all the UseCases to complete the diagram. 8: Requirement Diagram The last diagram in this tutorial which we’ll cover is a Requirement Diagram. Let’s organize the requirements and test cases regarding the “HSUV” using the Requirement Diagram. The sample diagram is below. (From P.1172 Figure.B.13 – Acceleration Requirement Relationships of OMG SysML 1.2) First, create a new Package “HSUVRequirements” in the Structure Tree and then create a Requirement Diagram from the pop-up menu of the Package. From this tutorial you know how to do all of this. Next, create the Requirements and Test Cases. Ones in pink are the Requirements and green is the Test Case. Create them from the tool bar menu. Now draw the “Accelerate” UseCase which is shown in yellow. It’s easy to do so because the “Accelerate” UseCase is already made, all you need to do is to drag and drop the “Accelerate” from the structure tree to the diagram. Do the same for the blue model, which is a Block. Drag and drop the “PowerSubsystem” block from the structure tree in the diagram. Now let’s connect those model elements with <<verify>>, <<testify>…etc. You can find which button does what by having the mouse over the tool button and then click two model elements to connect. 9: Thanks! Thank you for reading through this tutorial. With this tutorial, you must have experienced enough operations to learn the basic features to draw diagrams with Astah SysML. We’ll keep updating this tutorial with more content in future. Below is a list of features that didn’t appear in this tutorial but could be useful for your needs. - Set default color for each model element Set default color by stereotypes Export diagrams to PNG/JPEG/EMF/SVG image files Set Hyperlinks Create Mindmaps and convert Mindmaps to SysML diagrams..etc. If you have any questions or feature requests for Astah SysML please feel free to send them over to us at anytime! Contact us : http://astah.net/contact-us - Astah SysML Development Team
© Copyright 2024