D32 UML-B

From Event-B
Jump to navigationJump to search

Overview

Progress on UML-B consists of three parallel developments.

  1. Enhancement and maintenance of the current and existing UML-B plug-in with new functionality and usability features.
  2. Development of a new plug-in to provide animation of UML-B state-machine diagrams.
  3. Development of a new plug-in (called iUML-B) that provides an alternative to UML-B which is more closely integrated with Event-B.

Enhancement and Maintenance of Existing UML-B

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 email or through dedicated SourceForge trackers. The list below gives an overwiew of the noteworthy features added in UML-B during the past year:
  1. Functional enhancements to modelling
    • State-machine 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.
    • Conceptual Singleton classes - provides a conceptual grouping of associated modelling elements without generating the lifting mechanisms of a class.
    • Super-type arrows to target ExtendedClassTypes and RefinedClasses - this functionality was missing in previous versions.
    • Event convergence property on state-machine transitions - convergence was previously available only on events
  2. Enhancements to improve usability
    • Report to user if translation didn't proceed due to model validator - previously, it was not clear when the model had failed validation and the translation had not been executed.
    • Improve refresh of diagrams - in some situations the diagram graphics did not update error marking and property changes unless some other event caused a refresh.
    • Improvements and additions to model validations - some model validations were inconsistent or incomplete.
    • Preference for line routing style for each diagram type - allows the user to choose whether to use rectilinear or oblique line routing for each diagram type.
  3. Corrections
    • Correct and improve missing default labelling in diagrams.
    • Corrections and improvements to automatic diagram deletion.
    • Improved management of diagram files when model changes.
    • Add missing comment fields in properties view.

UML-B State-machine Animation Plug-in

The UML-B State-machine Animation Plug-in is a new feature developed by University of Southampton as a response to a request from industrial partners to support the animation of UML-B state-machine diagrams. The essence of the 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 State-machine notation.

iUML-B - Integrated UML-B

The prototype iUML-B plug-in (not yet released) is an extension to the Event-B EMF framework. It will consist of a collection of independent plug-ins that provide support for diagrammatic modelling integrated with Event-B textual modelling. At this stage a plug-in to show the project structure (in terms of machines and contexts and their relationships) has been released. A plug-in to support state-machine diagrams integrated with textual Event-B is at a prototype stage and nearing release. Plug-ins to support other kinds of diagram are in the early stages of development.

Motivations

Enhancement and Maintenance of Existing UML-B

The aim is to continually improve the usability of UML-B in the light of experience. Although the motivation for a more integrated version of UML-B that would be attractive to experienced Event-B users has been recognised for some time, the original aim of UML-B was to make formal modelling more accessible to new users. This aim remains valid and therefore the current non-integrated UML-B should be developed and enhanced wherever possible. Therefore, some issues concerning its usability have been identified and rectified. Some of these issues required enhancements to the modelling language. In particular, several case studies have highlighted the need for transitions that may be taken from any sub-state or a range of sub-states.

UML-B State-machine Animation Plug-in

The motivation for the State-machine Animation plug-in was to extend UML-B with animation capabilities similar to those that the 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 State-machine Animation plug-in uses the ProB tool to animate the translated Event-B models and provides an animation interface based on the UML-B State-machine models.

iUML-B - Integrated UML-B

The motivations for an alternative version of UML-B, that is tightly integrated with Event-B, was recognised at the beginning of the Deploy project. The aim of UML-B was to provide an easier modelling environment for users that were familiar with UML-like modelling but not with textual mathematical notations. Experienced Event-B users would also benefit from the visualisations provided by UML-B but they do not wish to be distanced from the generated Event-B and would prefer to be able to create parts of their models in the Event-B notation alongside the diagrammatic parts.

Choices / Decisions

Enhancement and Maintenance of Existing UML-B

As UML-B is already a relatively mature product attracting strong interest from various institutions, the main goal is currently to improve usability and stability of the tool rather than develop major new features. Consequently development has concentrated primarily on improving the basic tooling and user interface. However, if users are limited by the modelling language, which can be interpreted as an usability issue, new features to the language may be added.

UML-B State-machine Animation

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.

iUML-B - Integrated UML-B

A precursor stage to developing iUML-B 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. A plug-in for State-Machine diagram models as an extension to the Event-B EMF models is currently being developed and is nearing release.

Available Documentation

The following pages give useful information about UML-B:

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

UML-B State-machine Animation Plug-in:

  • General information[2]
  • Tutorial[3]

Planning

The current version of UML-B will continue to be enhanced. This may include some new modelling features such as better support for synchronisation of state-machines and support for more UML modelling details. However, usability of the current features is seen as the main objective. This will include,

  • Support for copy, cut and paste of diagram elements so that they can be moved and/or replicated more easily,
  • Support for re-attaching links (e.g. transitions) to different source/target elements,
  • Facilities for refactoring/renaming elements,
  • Support for the event extension mechanism of Event-B,
  • Integration of Context Diagram model elements on Class diagrams,
  • Improve facilities for navigating between state-machines and visualising multiple state-machines.

The new iUML-B tools will continue to be developed and released including,

  • Enhancement of the Project Diagram Plugin for Event-B to make it extensible and/or to automatically cater for future component types,
  • Release of the State-machine diagram plug-in as an integrated part of Event-B modelling,
  • Development of a new plug-in to support event refinement diagrams.

References