UML-B: A Plug-in for the Event-B Tool Set

UML-B is a graphical formal modelling notation that relies on Event-B for its underlying semantics and is closely integrated with the `Rodin', Event-B verification tools. UML-B is similar to UML but has its own meta-model. UML-B provides tool support, including drawing tools and a translator to generate Event-B models. When a UML-B drawing is saved the translator automatically generates the corresponding Event-B model. The Event-B verification tools (syntax checker and prover) then run automatically providing an immediate display of problems which are indicated on the relevant UML-B diagram.The UML-B modelling environment consists of a UML-B project containing a UML-B model. Four interlinked diagram types (package, context, class and statemachine) are available. Package Diagrams are used to describe the `refines' and `sees' relationships between top level components (machines and contexts) of a UML-B project. UML-B mirrors the Event-B approach where static data (sets and constants) are modelled in a separate package called a `context'. The context diagram is similar to a class diagram but has only constant data represented by ClassTypes, Attributes and Associations.ClassTypes define `carrier' sets or constant subsets of other ClassTypes.