Abstract
Efficient reuse is a goal of many software engineering strategies and is useful in the safety-critical domain where formal development is required. Event-B can be used to develop safety-critical systems, but could be improved by a component-based reuse strategy. In this paper, we outline a component-based reuse methodology for Event-B. It provides a means for bottom-up scalability, and can also be used with the existing top-down approach. We describe the process of creating library components, their composition, and specification of new properties (involving the composed elements). We introduce Event-B component interfaces and propose to use a diagrammatic representation of component instances (based on iUML-B) which can be used to describe the relationships between the composed elements. We also discuss the specification of communication flow across component boundaries and describe the additional proof obligations that are required.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The ADVICeS project is funded by Academy of Finland, grant No. 266373.
References
The Rodin User’s Handbook. http://handbook.event-b.org/
Iliasov, A., Troubitsyna, E., Laibinis, L., Romanovsky, A., Varpaaniemi, K., Ilic, D., Latvala, T.: Supporting reuse in Event B development: modularisation approach. In: Frappier, M., Glässer, U., Khurshid, S., Laleau, R., Reeves, S. (eds.) ABZ 2010. LNCS, vol. 5977, pp. 174–188. Springer, Heidelberg (2010)
Abrial, J.R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2010)
Banach, R.: The landing gear case study in hybrid Event-B. In: Boniol, F., Wiels, V., Ait Ameur, Y., Schewe, K.-D. (eds.) ABZ 2014. CCIS, vol. 433, pp. 126–141. Springer, Heidelberg (2014)
Butler, M., Colley, J., Edmunds, A., Snook, C., Evans, N., Grant, N., Marshall, H.: Modelling and refinement in CODA. In: Refine, pp. 36–51 (2013)
Edmunds, A., Butler, M.: Tasking Event-B: an extension to Event-B for generating concurrent code. In: PLACES 2011, February 2011
Edmunds, A., Walden, M.: Modelling “operation-calls” in Event-B with shared-event composition. Technical report 1144 (2015)
Hallerstede, S.: Justifications for the Event-B modelling notation. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, pp. 49–63. Springer, Heidelberg (2006)
Hallerstede, S., Hoang, T.S.: Refinement by interface instantiation. In: Derrick, J., Fitzgerald, J., Gnesi, S., Khurshid, S., Leuschel, M., Reeves, S., Riccobene, E. (eds.) ABZ 2012. LNCS, vol. 7316, pp. 223–237. Springer, Heidelberg (2012)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Upper Saddle River (1985)
Abrial, J.R., et al.: Rodin: an open toolset for modelling and reasoning in Event-B. Softw. Tools Technol. Transf. 12(6), 447–466 (2010)
Kessel, M., Atkinson, C.: Ranking software components for pragmatic reuse. In: 2015 IEEE/ACM 6th International Workshop on Emerging Trends in Software Metrics (WETSoM), pp. 63–66. IEEE (2015)
Leuschel, M., Butler, M.: ProB: a model checker for B. In: Proceedings of Formal Methods Europe 2003 (2003)
Meyer, B.: Design by contract: the Eiffel method. In: TOOLS, vol. 26, p. 446. IEEE Computer Society (1998)
Oliveira, C., Wermelinger, M.: The community workbench. In: Proceedings of the 26th International Conference on Software Engineering, pp. 709–710. IEEE Computer Society (2004)
Pereverzeva, I.: Formal development of resilient distributed systems. Ph.D. thesis, Åbo Akademi University (2015)
Perry, D.L.: VHDL, 2nd edn. McGraw-Hill, New York (1994)
Poppleton, M.R.: The composition of Event-B models. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 209–222. Springer, Heidelberg (2008)
Back, R., Wright, J.: Refinement Calculus: A Systematic Introduction. Springer Science & Business Media, New York (2012)
Romanovsky, A., Thomas, M.: Industrial Deployment of System Engineering Methods. Springer, Heidelberg (2013)
Said, M.Y., Butler, M., Snook, C.: Language and tool support for class and state machine refinement in UML-B. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 579–595. Springer, Heidelberg (2009)
Silva, R.: Towards the composition of specifications in Event-B. In: B 2011, June 2011
Silva, R.: Supporting development of Event-B models. Ph.D. thesis, University of Southampton, May 2012
Silva, R., Butler, M.: Shared event composition/decomposition in Event-B. In: FMCO Formal Methods for Components and Objects, November 2010
Snook, C.: Event-B Statemachines (2011). http://wiki.event-b.org/index.php/Event-B_Statemachines
Snook, C.: iUML-B Statemachines. In: Proceedings of the 5th Rodin User and Developer Workshopp (2014)
Snook, C., Butler, M.: UML-B: formal modelling and design aided by UML. ACM Trans. Softw. Eng. Methodol. 15, 92–122 (2006)
The ADVICeS Team: The ADVICeS Project. https://research.it.abo.fi/ADVICeS/
Wikipedia: Component-Based Software Engineering - Software Component. https://en.wikipedia.org/wiki/Component-based_software_engineering
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Edmunds, A., Snook, C., Walden, M. (2016). On Component-Based Reuse for Event-B. In: Butler, M., Schewe, KD., Mashkoor, A., Biro, M. (eds) Abstract State Machines, Alloy, B, TLA, VDM, and Z. ABZ 2016. Lecture Notes in Computer Science(), vol 9675. Springer, Cham. https://doi.org/10.1007/978-3-319-33600-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-33600-8_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-33599-5
Online ISBN: 978-3-319-33600-8
eBook Packages: Computer ScienceComputer Science (R0)