D32 UML-B: Difference between revisions

From Event-B
Jump to navigationJump to search
imported>Colin
New page: = Overview = The main progress on UML-B has been to implement new features, improve usability and fix bugs. As in the previous years of DEPLOY, these bugs and features are reported either ...
 
imported>Vitaly
No edit summary
Line 30: Line 30:
* Add missing comment fields in properties view\n\
* Add missing comment fields in properties view\n\


UML-B State-machine Animation Plug-in is a new feature developed as a response to a request from industrial partners to support the animation of UML-B state-machine diagrams. The essence of request was to provide a means of visualising the animation and model-checking process of Event-B machines modelled in UML-B tool, in particular state-machines, thus to simplify this process. The tool integrates the capabilities of ProB animation and UML-B tool's notation.


= Motivations =
= Motivations =
 
The motivation for the Animation Plug-in was to extend already beneficial graphical notation of UML-B with animation capabilities similar to those that ProB tool provides for Event-B models. With the aid of such a plug-in animation and model checking would be possible on UML-B diagrams instead of translated and less obvious Event-B code. The resulting plug-in uses ProB tool to run the standard animation on translated models and animates UML-B state-machines at the same time.


= Choices / Decisions =
= Choices / Decisions =
* Integrated UML-B
* Integrated UML-B
: It was planned to develop a new version (iUML-B) of UML-B which is more integrated with Event-B. A precursor stage to this was to develop an EMF representation of Event-B. This was completed last year and is now used successfully by several plug-ins. A Records plug-in was developed in response to user requests. The Records plug-in was implemented as an extension to the Event-B EMF framework. This was seen as a 'practice run' before attempting a similar extension to support UML-B. However, the Records plug-in took longer than expected and this has delayed work on iUML-B. Some progress on iUML-B has recently been made with the release of a project level diagram tool for Event-B and some progress on representing State-Machine diagram models as an extension to the Event-B EMF models.
: It was planned to develop a new version (iUML-B) of UML-B which is more integrated with Event-B. A precursor stage to this was to develop an EMF representation of Event-B. This was completed last year and is now used successfully by several plug-ins. A Records plug-in was developed in response to user requests. The Records plug-in was implemented as an extension to the Event-B EMF framework. This was seen as a 'practice run' before attempting a similar extension to support UML-B. However, the Records plug-in took longer than expected and this has delayed work on iUML-B. Some progress on iUML-B has recently been made with the release of a project level diagram tool for Event-B and some progress on representing State-Machine diagram models as an extension to the Event-B EMF models.
* State-machine Animation Plug-in
: The initial design decision was to extend the UML-B metamodel with the animation components. Due to difficulties with UML-B diagram extensibility an alternative option was determined - to create a separate model, derived from UML-B state-machine subset, with incorporated animation support. This design was successfully implemented together with ProB and Rodin UI extensions into Animation plug-in, which supports such UML-B concepts as classes and different state-machine translation kinds, as well as Event-B refinement.


= Available Documentation =
= Available Documentation =
Line 43: Line 48:
* Tutorials<ref>http://wiki.event-b.org/index.php/UML-B</ref>.
* Tutorials<ref>http://wiki.event-b.org/index.php/UML-B</ref>.
* Worked Examples<ref>http://wiki.event-b.org/index.php/UML-B</ref>.
* Worked Examples<ref>http://wiki.event-b.org/index.php/UML-B</ref>.
UML-B State-machine Animation Plug-in:
* General information<ref>http://wiki.event-b.org/index.php/UML-B_-_Statemachine_Animation</ref>
* Tutorial<ref>http://wiki.event-b.org/index.php/Statemachine_Animation_Tutorial</ref>


= Planning =
= Planning =

Revision as of 15:50, 25 November 2010

Overview

The main progress on UML-B has been to implement new features, improve usability and fix bugs. As in the previous years of DEPLOY, these bugs and features are reported either by mail or through dedicated SourceForge trackers.

The list below gives an overwiew of the noteworthy features added in UML-B during the past year:

  • Additional features added to state machines to support transitions emanating from multiple states
It is often the case that a transition may occur from several (possibly all) states within a state-machine. Such models were impossible to represent in UML-B. Two pseudo-states were added to represent this. Firstly an 'ANY' pseudo-state can be used as a transition source to represent that the transition can occur from ANY state of the state-machine. Secondly a disjunctive pseudo-state can be used to combine several transitions from different source states into a single transition.
  • diagram preferences particular to each diagram type
  • enable super-type arrows to target ExtendedClassTypes and RefinedClasses
  • provide convergence property on state transitions
  • report to user if translation didn't proceed due to model validator
  • improve refresh of diagrams for error marking and for properties changes
  • improvements and additions to model validations
  • correct and improve missing default labelling in diagrams\n\
  • corrections and improvements to automatic diagram deletion.\n\
  • Requires Rodin 2.0 (Eclipse 3.6 and JVM 1.6)
  • Improved management of diagram files when model changes\n\
  • Support (Conceptual) Singleton classes - no instances generated\n\
  • Add preference for line routing style, default rectilinear\n\
  • Add missing comment fields in properties view\n\


UML-B State-machine Animation Plug-in is a new feature developed as a response to a request from industrial partners to support the animation of UML-B state-machine diagrams. The essence of request was to provide a means of visualising the animation and model-checking process of Event-B machines modelled in UML-B tool, in particular state-machines, thus to simplify this process. The tool integrates the capabilities of ProB animation and UML-B tool's notation.

Motivations

The motivation for the Animation Plug-in was to extend already beneficial graphical notation of UML-B with animation capabilities similar to those that ProB tool provides for Event-B models. With the aid of such a plug-in animation and model checking would be possible on UML-B diagrams instead of translated and less obvious Event-B code. The resulting plug-in uses ProB tool to run the standard animation on translated models and animates UML-B state-machines at the same time.

Choices / Decisions

  • Integrated UML-B
It was planned to develop a new version (iUML-B) of UML-B which is more integrated with Event-B. A precursor stage to this was to develop an EMF representation of Event-B. This was completed last year and is now used successfully by several plug-ins. A Records plug-in was developed in response to user requests. The Records plug-in was implemented as an extension to the Event-B EMF framework. This was seen as a 'practice run' before attempting a similar extension to support UML-B. However, the Records plug-in took longer than expected and this has delayed work on iUML-B. Some progress on iUML-B has recently been made with the release of a project level diagram tool for Event-B and some progress on representing State-Machine diagram models as an extension to the Event-B EMF models.
  • State-machine Animation Plug-in
The initial design decision was to extend the UML-B metamodel with the animation components. Due to difficulties with UML-B diagram extensibility an alternative option was determined - to create a separate model, derived from UML-B state-machine subset, with incorporated animation support. This design was successfully implemented together with ProB and Rodin UI extensions into Animation plug-in, which supports such UML-B concepts as classes and different state-machine translation kinds, as well as Event-B refinement.

Available Documentation

The following pages give useful information about UML-B:

  • Lectures[1].
  • Tutorials[2].
  • Worked Examples[3].

UML-B State-machine Animation Plug-in:

  • General information[4]
  • Tutorial[5]

Planning

During the coming year, special efforts will be made on the following topics,

  • Development of the Project Diagram Plugin for Event-B to make it extensible and/or to automatically cater for future component types.
<explain!>
  • Development of a State-machine diagram plug-in as an integrated part of Event-B modelling
<explain!>


References