Software & Systems Modeling

, Volume 12, Issue 2, pp 229–244 | Cite as

Event-B patterns and their tool support

  • Thai Son Hoang
  • Andreas Fürst
  • Jean-Raymond Abrial
Special Section Paper


Event-B has given developers the opportunity to construct models of complex systems that are correct-by-construction. However, there is no systematic approach, especially in terms of reuse, which could help with the construction of these models. We introduce the notion of design patterns within the framework of Event-B to shorten this gap. Our approach preserves the correctness of the models, which is critical in formal methods and also reduces the proving effort. Within our approach, an Event-B design pattern is just another model devoted to the formalisation of a typical sub-problem. As a result, we can use patterns to construct a model which can subsequently be used as a pattern to construct a larger model. We also present the interaction between developers and the tool support within the associated RODIN Platform of Event-B. The approach has been applied successfully to some medium-size industrial case studies.


Event-B Formal methods Design patterns Formal modelling Model reuse 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrial J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)MATHCrossRefGoogle Scholar
  2. 2.
    Abrial J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2010)MATHCrossRefGoogle Scholar
  3. 3.
    Abrial J.-R., Butler M., Hallerstede S., Hoang T.S., Mehta F., Voisin L.: RODIN: an open toolset for modelling and reasoning in event-B. Int. J. Softw. Tools Technol. Transf. 12(6), 447–466 (2010)CrossRefGoogle Scholar
  4. 4.
    Abrial J.-R., Hallerstede S.: Refinement, decomposition, and instantiation of discrete models: application to event-B. Fundam. Inf. 77(1–2), 1–28 (2007)MathSciNetMATHGoogle Scholar
  5. 5.
    Abrial J.-R., Hoang T.S.: Using design patterns in formal methods: an event-B approach. In: Fitzgerald, J.S., Haxthausen, A.E., Yenigün, H. (eds) ICTAC, Lecture Notes in Computer Science, vol. 5160, pp. 1–2. Springer, Berlin (2008)Google Scholar
  6. 6.
    Back R.-J.: Refinement calculus II: parallel and reactive programs. In: deBakker, J.W., deRoever, W.P., Rozenberg, G. (eds) Stepwise refinement of distributed systems. Lecture Notes in Computer Science, vol. 430, pp. 67–93. Springer, The Netherlands (1989)Google Scholar
  7. 7.
    Bayley, I.: Formalising design patterns in predicate logic. In: SEFM, pp. 25–36. IEEE Computer Society, USA (2007)Google Scholar
  8. 8.
    Butler, M.: Decompostion Structures for Event-B. In: Integrated Formal Methods. Lecture Notes in Computer Science, vol. 5423, pp. 20–38. Springer, Berlin (2009).
  9. 9.
    Decker G., Weske M.: Local enforceability in interaction petri nets. In: Alonso, G., Dadam, P., Rosemann, M. (eds) BPM. Lecture Notes in Computer Science, vol. 4714, pp. 305–319. Springer, Berlin (2007)Google Scholar
  10. 10.
    DEPLOY Project: Deliverable JD1—Report on Knowledge Transfer (2009).
  11. 11.
    Fürst, A.: Design patterns in Event-B and their tool support. Master’s thesis, Deparment of Computer Science, ETH Zurich, March (2009).
  12. 12.
    Fürst, A.: Documentation on tool support for Event-B design patterns (2010).
  13. 13.
    Fürst, A., Hoang, T.S.: Rodin platform archive of question/response protocol (2010).
  14. 14.
    Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995). ISBN: 10: 0201633612; 13: 978-0201633610.Google Scholar
  15. 15.
    Gasparis E., Nicholson J., Eden A.H.: Lepus3: an object-oriented design description language. In: Stapleton, G., Howse, J., Lee, J. (eds) Diagrams. Lecture Notes in Computer Science, vol. 5223, pp. 364–367. Springer, Berlin (2008)Google Scholar
  16. 16.
    Hoang T.S., Fürst A., Abrial J.-R.: Event-B patterns and their tool support. In: Hung, D.V., Krishnan, P. (eds) SEFM, pp. 210–219. IEEE Computer Society, USA (2009)Google Scholar
  17. 17.
    Lamport L.: The temporal logic of actions. Trans Progr Lang Syst 16(3), 872–923 (1994)CrossRefGoogle Scholar
  18. 18.
    Mikkonen, T.: Formalizing design patterns. In: ICSE, pp. 115–124 (1998)Google Scholar
  19. 19.
    Requet A.: BART: a tool for automatic refinement. In: Börger, E., Butler, M.J., Bowen, J.P., Boca, P. (eds) ABZ. Lecture Notes in Computer Science, vol. 5238, pp. 345. Springer, Berlin (2008)Google Scholar
  20. 20.
    Silva R., Butler M.: Supporting reuse of event-B developments through generic instantiation. In: Breitman, K., Cavalcanti, A. (eds) ICFEM. Lecture Notes in Computer Science, vol. 5885, pp. 466–484. Springer, Berlin (2009)Google Scholar
  21. 21.
    Spivey M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall International, Englewood Cliffs (1992)Google Scholar
  22. 22.
    Taibi T., Herranz-Nieva Á., Moreno-Navarro J.J.: Stepwise refinement validation of design patterns formalized in TLA+ using the TLC model checker. J. Object Technol. 8(2), 137–161 (2009)CrossRefGoogle Scholar
  23. 23.
    Wieczorek, S., Roth, A., Stefanescu, A., Charfi, A.: Precise steps for choreography modeling for SOA validation and verification. In: Proceedings of the Fourth IEEE International Symposium on Service-Oriented System Engineering, December (2008).

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  • Thai Son Hoang
    • 1
  • Andreas Fürst
    • 1
  • Jean-Raymond Abrial
    • 2
  1. 1.Swiss Federal Institute of Technology (ETH-Zurich)ZurichSwitzerland
  2. 2.MarseilleFrance

Personalised recommendations