Abstract
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.
References
Abrial J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)
Abrial J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2010)
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)
Abrial J.-R., Hallerstede S.: Refinement, decomposition, and instantiation of discrete models: application to event-B. Fundam. Inf. 77(1–2), 1–28 (2007)
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)
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)
Bayley, I.: Formalising design patterns in predicate logic. In: SEFM, pp. 25–36. IEEE Computer Society, USA (2007)
Butler, M.: Decompostion Structures for Event-B. In: Integrated Formal Methods. Lecture Notes in Computer Science, vol. 5423, pp. 20–38. Springer, Berlin (2009). http://www.springerlink.com/content/3202127567642301/
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)
DEPLOY Project: Deliverable JD1—Report on Knowledge Transfer (2009). http://www.deploy-project.eu/pdf/fv-d5-jd1-reportonknowledgetransfer.zip
Fürst, A.: Design patterns in Event-B and their tool support. Master’s thesis, Deparment of Computer Science, ETH Zurich, March (2009). http://e-collection.ethbib.ethz.ch/view/eth:41612
Fürst, A.: Documentation on tool support for Event-B design patterns (2010). http://wiki.event-b.org/index.php/Pattern
Fürst, A., Hoang, T.S.: Rodin platform archive of question/response protocol (2010). http://deploy-eprints.ecs.soton.ac.uk/230/
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.
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)
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)
Lamport L.: The temporal logic of actions. Trans Progr Lang Syst 16(3), 872–923 (1994)
Mikkonen, T.: Formalizing design patterns. In: ICSE, pp. 115–124 (1998)
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)
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)
Spivey M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall International, Englewood Cliffs (1992)
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)
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). http://deploy-eprints.ecs.soton.ac.uk/41/
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Paddy Krishnan, Antonio Cerone, and Dang Van Hung.
This is an extension of an earlier report [16]. Part of this work is supported by the DEPLOY project (http://www.deploy-project.eu).
Rights and permissions
About this article
Cite this article
Hoang, T.S., Fürst, A. & Abrial, JR. Event-B patterns and their tool support. Softw Syst Model 12, 229–244 (2013). https://doi.org/10.1007/s10270-010-0183-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-010-0183-7