Cameo Simulation Toolkit

model execution framework based on OMG fUML and W3C SCXML standards

The Cameo Simulation Toolkit provides the first in the industry extendable model execution framework based on OMG fUML and W3C SCXML standards. It extends UPDM plugin to validate system behavior by executing, animating, and debugging SysML Parametric models in the context of realistic mock-ups of the intended user interface.

 

Why Simulation?

The purpose of a simulation is to gain system understanding without manipulating the real system, either because it is not yet defined or available, or because it cannot be exercised directly due to cost, time, resources or risk constraints. Simulation is typically performed on a model of the system.

With the Cameo Simulation Toolkit, users can test how the system reacts to user interaction or predefined testing data and execution scenarios.

 

Business Benefits

Users will find that one of the key business benefits of the Cameo Simulation Toolkit is cost efficiency. Employing Cameo Simulation Toolkit will assist enterprises in significantly reducing project costs, allowing users to identify design errors before the actual production of components.

Features

Key Features:

  • Activity execution (OMG™ fUML standard)
  • State machine execution (W3C SCXML standard)
  • SysML parametric execution (OMG SysML standard)
  • Multiple action languages support (JSR223 standard)
  • Exporting UML state machine to SCXML file format
  • Full featured model debugger
  • Execution animation
  • Quick UI prototyping
  • Pluggable engines and evaluators
  • Model-driven test cases and scenarios

 

The Cameo Simulation Toolkit

Provides the first in the industry extendable model execution framework based on OMG fUML and W3C SCXML standards. It extends MagicDraw to validate system behavior by executing, animating, and debugging UML 2 Statemachine and Activity models in the context of realistic mock-ups of the intended user interface.

 

Why Simulation?

The purpose of a simulation is to gain system understanding without manipulating the real system, either because it is not yet defined or available, or because it cannot be exercised directly due to cost, time, resources or risk constraints. Simulation is typically performed on a model of the system.

With the Cameo Simulation Toolkit, users can test how the system reacts to user interaction or predefined testing data and execution scenarios.

 

fUML – the Foundation Language of Executable UML Models

Semantics of a Foundational Subset for Executable UML Models (fUML) is an executable subset of standard UML that can be used to define the structural and behavioral semantics of systems.

fUML defines a basic virtual machine for the Unified Modeling Language, and the specific abstractions supported, enabling compliant models to be transformed into various executable forms for verification, integration and deployment.

Most of UML 2 Activity and Actions semantics elements are supported, including object and control flows, synchronous and asynchronous behavior and operation calls, sending and accepting signals and time events, pins, parameters, decisions, structured activity nodes and many more.*

 

SCXML – State Chart XML: State Machine Notation for Control Abstraction

The W3C SCXML standard provides a generic state machine–based execution environment based on Harel state charts. SCXML is able to describe complex state-machines, including sub-states, concurrency, history, time events and more.

Most things that can be represented as a UML state chart – business process flows, view navigation bits, interaction or dialog management, and many more – can leverage the SCXML engine.

With state machine execution build, users can simulate executable models both as a demonstration tool and to validate and verify system behavior at key milestone reviews.

In addition, Cameo Simulation Toolkit supports UML state machine export to standard SCXML file format for further analysis or transformations.**

 

fUML and SCXML integration

As OMG fUML execution model is used as foundation for all kinds of Cameo Simulation Toolkit executions, but does not support statemachines, SCXML engine is wrapped to fUML Execution interface to fill this gap and provide complete integrated execution of different UML behaviors. It allows calling Statemachine in CallBehaviorActions, use Activities to define entry/do/exit activities of the State, use SendSignalAction to trigger Transitions in the Statemachines.

 

SysML Parametrics

Cameo Simulation Toolkit introduces dynamic execution of mathematical models expressed as SysML Parametric diagrams. The Cameo Simulation Toolkit enforces automatic dependent parameter value updates at any time during simulation. Mathematical expressions can be solved using a free built-in math engine or external well-known math solvers.

 

Action Languages

Multiple languages can be used as action languages in expressions everywhere in the model. Javascript, Ruby, Groovy and Python are supported by default; other JSR223 compatible language implementations can be freely downloaded and plugged.

 

Debugging with animation

When in debug mode, the Simulation Toolkit allows users to suspend execution at breakpoints, examine and edit runtime variables, and highlight execution trace in diagrams.

Debugger panels include:

  • Player-like control panel for step-by-step execution
  • threads/sessions tree
  • variables/runtime structure
  • breakpoints panel
  • input/output console for custom commands or expressions evaluation and textual execution output

 

Validation and Verification

Various kinds of validation and verification options are available, including model validation before execution, runtime values constraints, conditional breakpoints, action preconditions and postconditions checking. Constraints can be defined using multiple languages (see Action Languages). 

 

User Interface Prototyping

The Cameo Simulation Toolkit unleashes the power of MagicDraw User Interface Modeling Diagram. It takes seconds to use drag’n’drop to assign various system parts to GUI components:

  • Classes/Blocks to Frames
  • Signals to Buttons
  • Properties to Labels
  • Images to component backgrounds

Just start simulation to make them alive!

Image Switcher feature allows animation by using multiple images representing different system states.

Additionally, Open API allows using dedicated third-party tools of your choice to create and plug realistic system mockup.

Additional information:
http://www.omg.org/spec/FUML/Current
http://www.w3.org/TR/scxml/

Value Proposition

Providing Value From the Initial Development Stages

Executable UML is the next logical, and perhaps inevitable, evolutionary step in the ever-rising level of abstraction at which programmers express software solutions. Rather than elaborate an analysis product into a design product and then write code, application developers of the future will use tools to translate abstract application constructs into executable entities. Someday soon, the idea of writing an application in Java or C++ will seem as absurd as writing an application in assembler does today.

Grady Booch

 

Cameo Simulation Toolkit

The future is here! You can run systems without a single line of code!

The Cameo Simulation Toolkit provides the first in the industry extendable model execution framework based on OMG fUML and W3C SCXML standards.

It extends MagicDraw by directly executing, animating and debugging system models in the context of realistic mockups of the intended user interface.

 

 

Figure 1.Use the Cameo Simulation Toolkit to...

1-Prototype and Simulate System Behavior

The award-winning MagicDraw modeling environment allows developers modeling any subject matter to do so at a higher level of abstraction than in a programming language, but in sufficient detail that it can be executed and simulated.

 

 

Figure 2. Simulating state machine behavior to gain better understanding

The purpose of a simulation is to gain understanding of a system, and check whether it conforms to engineer expectations and user requirements before building and deploying the real system.

Cameo Simulation Toolkit allows simulating executable models, both as a demonstration tool to stakeholders, and to validate and verify system behavior at key reviews in different development stages.Simulations can also be hooked to GUI prototypes.

2 - Prototype User Interface

Figure 3. Using UI prototypes in simulation

Building and prototyping a system’s physical appearance and user interface is crucial to understanding the end-user use cases and to find interaction bottlenecks.

The Cameo Simulation Toolkit unleashes the power of MagicDraw User Interface Modeling Diagrams by relating GUI models with data and behaviors.

The model to UI binding process is highly intuitive and is based on quick drag’n’drops of model elements.

Icons or real system hardware pictures can be dropped directly from a file system or web browser. Users start the simulation to make them alive – representing runtime values and allowing triggering behaviors. 

3 - Model-based testing solution

One of the most important goals of simulation is to test how a system reacts to a predefined or generated data and user interaction scenario, by monitoring runtime values and diagram animation, and analyzing execution traces and logs.

Cameo Simulation Toolkit allows for system testing in both manual and automated modes.

 

Manual Testing

When simulation is conducted by a human, one can use the step-by-step debug mode to inject signals and enter/change data in the simulation control or mockup window to verify value ranges, state invariants, truth tables, expected traces and more.

The Simulation Toolkit includes an integrated debugger for setting graphical breakpoints, stepping through charts, browsing and editing runtime objects and values, and evaluating custom expressions. The execution trace is highlighted in diagrams where users can quickly see tokens and values in a tooltip on an activated element symbol.

 

 

Figure 4. Runtime Debugger

Execution trace and sequences of events are recorded in the form of generated Sequence Diagrams, while parameter values can be dumped to Instance models and can be used for further reports, analysis and comparison with design level models and diagrams.

 

 

Figure 5. Preparing testcase scenario for automated testing

Automated testing

Instead of manual testing and recording, the test case scenarios can be modeled. UML Activity or Sequence Diagrams can be used to describe the sequence of events and data flows which users or other subsystems must send to test the desired behavior. Previously recorded execution traces or modeled testcases and data sets can be executed to check pre/ post conditions of any action or activity, state invariants, truth tables and other requirements.

When UseCases or SysML requirements are related to testcases using or other relationships, testing results (failed tests) can be effectively represented in coverage matrices or special reports.

Multiple scripting languages can be used as “Action Language,” allowing users the opportunity to leverage external libraries and tools to orchestrate external simulations or data analysis. Users can model how resulting data of one simulation flows to others and is finally recorded into Instance models for further analysis and reports.

Figure 6. Describing testcases for automated testing