Table of Contents

Model Editor

Model Editor is a graphical modeling tool that allows users to model AUT using states and transitions. It is tightly integrated with all other tabs within IDE to form a full modeling, automation and execution platform.


Model Editor Overview

Model Editor is a graphical modeling and Model Execution.

The editor consists of:


Modeling Canvas

Modeling Canvas consists of the modeling area, a tool pallet and view/property pane on the right when made visible.

Canvas has three modes matching mini button groups on tool pallet:

Tool Pallet

The mini buttons in tool pallet are divided into three groups:

You will also notice that the background for the modeling canvas changes for each mode: white, blueish and pinkish.

Creating New States

To create a state, select the state tool palette and click on the canvas to place the state.

There are several types of states offering different visual representation of the states, except the initial and final states. In general, visual shape of the states do not affect their function. Only the State Properties may change how state behaves, especially for the models to represent Concurrent System or Message-Drive Systems.

Moving States

Move states by drag and drop the state handler icon. The transitions connected to the state will move or re-route as necessary as the state moves.

You can move multiple states at a time by first Marking States. As you move any of the marked state, the rest of the marked states move with it.

Creating Transitions

Transition connects a source state to a target state. To create a transition, select transition mini-button and click on the source state and then click on the target state. You will be prompted to enter a name for the transition.

Positioning Transition Labels

Transition labels can be moved by clicking on the move handler icon, move mouse and click again to place the transition label. Drag and drop on the move handler icon also works.

Transition labels are positioned relative to the anchor point of the starting segment.

The text will auto wrap if it's too long for the text box. You can resize the text box by dragging on the resizer.

Routing Transitions

Transition consists of multiple segments that can be moved individually.

To move a segment, click the segment, move mouse and click again to place the segment. Alternatively you may drag and drop the segment.

Starting segment and ending segment connects to the side of the state. You may move the segment to the adjacent side of the state by moving the segment passed the bounds of the side of the state.

At times you may want to re-route (re-draw) the transition. There are two ways to do this:

You can accomplish this from the Context Menus.

Marking States / Transitions

There two ways to mark states:


Context Menus

States and Transitions have contextual menus. To open the context menus, hover mouse over the state or transition label and click. on

Menu items has hover title describing the action for the menu item.

State Menus

State menu:

Transition Menus

Transition menu:


Tree View

Tree View displays states and transitions in a sorted tree view structure in the view panel on the right side of Modeling Canvas and allows you to quickly highlight (locate) the state and transitions on the model.

Requirement View

Requirement View allows you to identify where in the model (states and transitions) a requirement is covered.

Defect View

Defect View shows the defects that have been found in model execution and allows you to locate where in the model the defect was found and highlight the test path on the model to reproduce the defect.

By default, the defects from the current model execution is displayed. You may select a specific model execution in IDE Result to display the defects.


State Properties

State Properties View

Custom class name must be styled in config/ide.css file.

Transition Properties

Transition Properties View

Custom class name must be styled in config/ide.css file.

Guard Hint / Satisfying Hint

When traversing the model, sequencers must deal with the transitions that fail due to guard conditions. All sequencer are designed to automatically resolve the guard failures by finding an alternate path. Most of the time this is sufficient. From time to time the sequencer may need some hints to resolve the guard failure or find better path to resolve a particular guard failure.

Hint is a code or series of codes assigned to transition guard, either as a Guard Hint or Satisfying Hing.

For example, the “checkout” transition has a guard with shoppingCartItems > 0. To resolve shoppingCartItems > 0, the “addItem” transition will satisfy shoppingCartItem > 0. To match “addItem” and “checkout” transitions, we would assign hint code of “ADDITEM” to “checkout” transition's Guard Hint and “addItem” transition's Satisfying Hint.

Multiple hint codes can be assigned (separated by comma) to transition as Guard Hint and Satisfying Hint. Any of the hint code will be sufficient to satisfy the matching transition guard and vice versa.


Box Properties

Box Properties View

Custom class name must be styled in config/ide.css file.


Swimlane Properties

Swimlane Properties View

Model Execution

There are three ways to execute the models:

This can be accomplished with the shortcut buttons:

Model execution can be monitored with Execution Monitor .


Log Files

There are two types of log files, they can be accessed via