Formal Modelling for Ada Implementations: Tasking Event-B

  • Andrew Edmunds
  • Abdolbaghi Rezazadeh
  • Michael Butler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7308)


This paper describes a formal modelling approach, where Ada code is automatically generated from the modelling artefacts. We introduce an implementation-level specification, Tasking Event-B, which is an extension to Event-B. Event-B is a formal method, that can be used to model safety-, and business-critical systems. The work may be of interest to a section of the Ada community who are interested in applying formal modelling techniques in their development process, and automatically generating Ada code from the model. We describe a streamlined process, where the abstract modelling artefacts map easily to Ada language constructs. Initial modelling takes place at a high level of abstraction. We then use refinement, decomposition, and finally implementation-level annotations, to generate Ada code. We provide a brief introduction to Event-B, before illustrating the new approach using small examples taken from a larger case study.


Proof Obligation Environ Machine Programming Construct Protected Object Controller Task 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrial, J.R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press (2010)Google Scholar
  2. 2.
    Russo, A.: Formal Methods in Industry: The State of Practice of Formal Methods in South America and Far East (2009)Google Scholar
  3. 3.
    Metayer, C., Clabaut, M.: DIR 41 Case Study. In: [27], p. 357Google Scholar
  4. 4.
    Taft, T., Tucker, R., Brukardt, R., Ploedereder, E. (eds.): Consolidated Ada reference manual: language and standard libraries. Springer-Verlag New York, Inc., New York (2002)Google Scholar
  5. 5.
  6. 6.
    The DEPLOY Project Team: Project Website,
  7. 7.
    Edmunds, A., Rezazedah, A.: Event-B Wiki: Development of a Heating Controller System,
  8. 8.
    Butler, M.: Decomposition Structures for Event-B. In: Leuschel, M., Wehrheim, H. (eds.) IFM 2009. LNCS, vol. 5423, pp. 20–38. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  9. 9.
    Silva, R., Pascal, C., Hoang, T., Butler, M.: Decomposition Tool for Event-B. Software: Practice and Experience (2010)Google Scholar
  10. 10.
    Edmunds, A., Butler, M.: Tasking Event-B: An Extension to Event-B for Generating Concurrent Code. In: PLACES 2011 (2011)Google Scholar
  11. 11.
    Silva, R.: Towards the Composition of Specifications in Event-B. In: B 2011 (2011)Google Scholar
  12. 12.
    Edmunds, A., Rezazedah, A.: Event-B Project Archives: Tasking Event-B Tutorial. University of Southampton,
  13. 13.
    Burns, A., Dobbing, B., Vardanega, T.: Guide for the use of the Ada Ravenscar Profile in high integrity systems. Ada Lett. XXIV, 1–74 (2004)Google Scholar
  14. 14.
    The Eclipse Project: Eclipse - an Open Development Platform,
  15. 15.
    AdaCore: GNAT Programming Studio,
  16. 16.
    The Advance Project Team: The Advance Project,
  17. 17.
    Sarshogh, M., Butler, M.: Specification and Refinement of Discrete Timing Properties in Event-B. In: AVoCS 2011 (2011)Google Scholar
  18. 18.
    Abrial, J.: The B Book - Assigning Programs to Meanings. Cambridge University Press (1996)Google Scholar
  19. 19.
    ClearSy System Engineering: The B Language Reference Manual (Version 4.6 edn.)Google Scholar
  20. 20.
    Bert, D., Boulmé, S., Potet, M., Requet, A., Voisin, L.: Adaptable Translator of B Specifications to Embedded C Programs. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 94–113. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  21. 21.
    Stoddart, B., Cansell, D., Zeyda, F.: Modelling and Proof Analysis of Interrupt Driven Scheduling. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, pp. 155–170. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  22. 22.
    CSK Systems Corporation: (The VDM++ Language Manual)Google Scholar
  23. 23.
    Verhoef, M., Larsen, P.G., Hooman, J.: Modeling and Validating Distributed Embedded Real-Time Systems with VDM++. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 147–162. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  24. 24.
    Degerlund, F., Grönblom, R., Sere, K.: Code Generation and Scheduling of Event-B Models (2011)Google Scholar
  25. 25.
    Berry, G.: Synchronous Design and Verification of Critical Embedded Systems Using SCADE and Esterel. In: Leue, S., Merino, P. (eds.) FMICS 2007. LNCS, vol. 4916, p. 2. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  26. 26.
    Snook, C., Butler, M.: UML-B: A Plug-in for the Event-B Tool Set. In: [27], p. 344Google Scholar
  27. 27.
    Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.): ABZ 2008. LNCS, vol. 5238. Springer, Heidelberg (2008)zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Andrew Edmunds
    • 1
  • Abdolbaghi Rezazadeh
    • 1
  • Michael Butler
    • 1
  1. 1.Department of Electronics and Computer ScienceUniversity of SouthamptonSouthamptonUK

Personalised recommendations