A method of refinement in UML-B - Said, Mar Yah @ Mek Yah; Butler, Micheal; Snook, Colin (Springer-Verlag Berlin Heidelberg, 2015)
UML-B is a ‘UML-like’ graphical front end for Event-B that provides support for object-oriented and state-machine modelling concepts, which are not available in Event-B. In particular, UML-B includes class diagram and state-machine diagram editors with automatic generation of corresponding Event-B. In Event- B, refinement is used to relate system models at different abstraction levels. The same refinement concepts are also applicable in UML-B but require special consideration due to the higher-level modelling concepts. In previous work we described a case study to introduce support for refinement in UML-B. We now provide a more complete presentation of the technique of refinement in UML-B including a formalisation of the refinement rules and a definition of the extensions to the abstract syntax of UML-B notation. The provision of gluing invariants to discharge the proof obligations associated with a refinement is a significant step in providing verifiable models. We discuss and compare two approaches for constructing gluing invariants in the context of UML-B refinement.