Statecharts Engine for UML 2.0

Targets :

  • Engine for (a subset of) Statecharts UML 2.0: Interpreter + Compiler
  • Support for MDA Code Generators
  • Standalone Tool (?), Library (?)
  • Not Invasive Framework (?)

Solutions Schema

1. Simple Pure Protocol Solution

Interface + Protocol State Machine (PSM).

TODO: examples

2. Simple Protocol Solution

Interface + Behavior State Machine (BSM).

Example 2.1: Channel Implementation. Step 1: Interface definition

Figura 1 : Channel Interface

Example 2.1: Channel Implementation. Step 2: Protocol definition

Figura 2 : Channel Protocol

Example 2.1: Channel Implementation. Step 3: Code Generation:

Figura 3 : (High Level) Result

  1. state4j: is the framework
  2. generated: contains generated code
  3. channel: contains channel component ( user specific component)

Methods2EventsMapping convert methods call to events call

TargetSupportImpl extends (or wrap, or we could use an aspect?!) a component implementation for framework specific behavior (for query like isClosed, for async event publishing, etc..)

Actions2MethodsMapping convert call actions to call methods on TargetSupportImpl

TODO: Source code for examples

TODO: complex protocols active resources, time events, scheduling, hierarchical resources.