Features
Typically the product of the model-centric development is the executable model. This model is then automatically translated into executable code. Bugs are discovered when this code is executed.

Motivation for Model Debugger
Model debugger helps to identify defects at a much higher level of abstraction, earlier in the development cycle.
The current version of the UML Model Debugger supports activities and state machines. It supports Java as an action language, and can be extended to support the execution of models that conform to a specific profile.
The UML Model Debugger provides a wide range of debugging capabilities:
- It supports the most commonly used execution modes such as step-wise execution and run to breakpoint.
- It allows dynamic object creation. Object here can be an instance of a class, an activity, or a state machine. After the creation the user can execute behaviors and invoke operations.
- It allows run-time observation of an object's attribute values.
- The most useful feature is the visualization of the execution of model behavior (diagram animation).

Model debugging perspective
We extended RSM with a Model Debugging perspective that contains various views:
- Debug view. This view shows all running behaviors organized according to the call history. This view corresponds to the debug view of eclipse debugging framework, but the granularity of control and display in our case is model elements (e.g. State, Transition, Action, Edge). Since UML allows concurrent flows in behaviors, the execution stack is a tree. This view is responsible for control of the execution process (starting, stopping, and step mode execution). It also allows sending signals to running behaviors.
- Variables view. This view corresponds to the variables view of eclipse debugging framework. It allows observation of attribute and variable values of current context.
- Breakpoints view. This view shows the currently defined breakpoints and allows deleting, enabling and disabling. Breakpoints can be easily added using the popup menus of model elements in diagrams and the RSM Project Explorer.
- Instances view. This view allows dynamic object creation and destruction, observing the values of objects' attributes, and invoking the operations on the objects.
- Event Pools view. This view shows pending events in the event pools of active objects.
- Signals view. This view allows sending signals to running behaviors.
- I/O view. This view shows history of signals sent to and from running behaviors.
- Console view. This view display text printed by Java snippets.
- Snippet view. This view allows editing and viewing of Java snippets.
- Diagram Animation. This powerful feature provides a visual representation of the executing behavior.
When running an activity, the user can see which nodes are ready for execution (orange), which edges pass token offers (blue), or which node provides the token (magenta).

UML activity animation
When running a state machine, the user can see the current state (magenta), which elements are ready for execution (orange), and running elements (green).

UML state machine animation
We released a prototype version of the tool and we continue to extend the capabilities of the tool and improve its maturity. The tool is being used as part of a response to the OMG's RFP for Executable UML. The tool is available under an academic license.
