Abstract
This paper discusses lessons learned in the attempt to apply the long-known principles of correct-by-construction (CbyC) first promoted by Dijkstra, to modern model-based development practices. We recall the intent and scrutinize the outcomes of a string of research projects that focused explicitly on the pursuit of CbyC by means of model-driven methods and technologies. The lessons learned show that when CbyC extends from the algorithmic and functional dimension to extra-functional concerns, some of the strength of original CbyC concept and its pull dilute. One of the possible causes of that phenomenon, is that – in some situation – the assertive style of algorithm refinement gives way to more tentative exploration of an unknown solution space where the known truths are insufficient to steer the development.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Amey, P.: Correctness by Construction, Praxis High Integrity Systems Ltd., 05 December 2006. https://buildsecurityin.us-cert.gov/articles/knowledge/sdlc-process/correctness-by-construction. Accessed 22 Jan 2016
Kourie, D.G., Watson, B.W.: The Correctness-by-Construction Approach to Programming. Springer, Heidelberg (2012)
Sifakis, J.: Embedded systems - challenges and work directions. In: Higashino, T. (ed.) OPODIS 2004. LNCS, vol. 3544, pp. 184–185. Springer, Heidelberg (2005)
Bordin, M., Vardanega, T.: Correctness by construction for high-integrity real-time systems: a metamodel-driven approach. In: Abdennadher, N., Kordon, F. (eds.) Ada-Europe 2007. LNCS, vol. 4498, pp. 114–127. Springer, Heidelberg (2007)
Cancila, D., Passerone, R., Vardanega, T.: Composability for high-integrity real-time embedded systems. In. Proceedings of the First Workshop on Compositional Theory and Technology for Real-Time Embedded Systems (CRTS 2008), Barcelona, Spain. ACM/IEEE, 30 November 2008
Mazzini S., Puri S., Veran G., Vardanega T., Panunzio M., Santamaria C., Zovi A.: Model-driven and component-based engineering with the CHESS methodology. In: Proceedings of DASIA Conference, Malta, May 2011
Baracchi, L., Cimatti, A., Garcia, G., Mazzini, S., Puri, S., Tonetta, S.: Requirements refinement and component reuse: the FoReVer contract-based approach. In: Bagnato, A., Quadri, I.R., Rossi, M., Indrusiak, L.S. (eds.) Industry and Research Perspectives on Embedded System Design. IGI Global, Hershey (2014)
Benveniste, A., Caillaud, B., Nickovic, D., Passerone, R., Raclet, J.B., Reinkemeier, P., Sangiovanni-Vincentelli, A., Damm, W., Henzinger, T., Larsen, K.: Contracts for Systems Design
Chapman, R.: Correctness by construction: a manifesto for high integrity software. In: Proceedings of the 10th Australian Workshop on Safety Critical Systems and Software, vol. 55, Sydney, Australia
Panunzio, M., Vardanega, T.: A component-based process with separation of concerns for the development of embedded real-time software systems. J. Syst. Softw. 96, 105–121 (2014)
Schmidt, D.: Guest editor’s introduction: model-driven engineering. Computer 39(2), 25–31 (2006)
Dijkstra, E.: On the role of scientific thought. In: Dijkstra, E. (ed.) Selected Writings on Computing: A personal Perspective. Texts and Monographs in Computer Science, pp. 60–66. Springer, New York (1982)
Panunzio, M., Vardanega, T.: Ada ravenscar code archetypes for component-based development. In: Brorsson, M., Pinho, L.M. (eds.) Ada-Europe 2012. LNCS, vol. 7308, pp. 1–17. Springer, Heidelberg (2012)
The Object Management Group: UML Profile for MARTE: Modeling and analysis of real-time embedded systems (2011). http://www.omg.org/spec/MARTE/1.1/. Accessed 22 Jan 2016
Estivill-Castro, V., Hexel R.: Correctness by construction with logic-labeled finite-state machines – comparison with event-B. In: 2014 23rd Australian Software Engineering Conference (ASWEC), pp. 38–47, 7–10 April 2014
Anand, M., Fischmeister, S., Kim, J., Lee, I.: Generating sound and resource-aware code from hybrid systems models. In: Broy, M., Krüger, I.H., Meisinger, M. (eds.) ASWSD 2006. LNCS, vol. 4922, pp. 48–66. Springer, Heidelberg (2008)
CONCERTO Project: Guaranteed component assembly with round trip analysis for energy efficient high-integrity multi-core systems. Artemis Call 2012 333053. http://www.concerto-project.org/. Accessed 22 Jan 2016
CHESS Project: Composition with guarantees for high-integrity embedded software components assembly. http://www.chess-project.org/. Accessed 5 May 2015
SafeCer Project: Safety certification of software-intensive systems with reusable components. http://safecer.eu/. Accessed 22 Jan 2016
OCRA: A command-line tool for the verification of logic-based contract refinement for embedded systems. https://es-static.fbk.eu/tools/ocra/. 22 Jan 2016
MAST: Modeling and analysis suite for real-time applications. http://mast.unican.es/. Accessed 22 Jan 2016
Wallace, M.: Modular architectural representation and analysis of fault propagation and transformation. Electron. Notes Theoret. Comput. Sci. (ENTCS) 141(3), 53–71 (2005)
Sljivo, I., Gallina, B., Carlson, J., Hansson, H., Puri, S.: A method to generate reusable safety case fragments from compositional safety analysis. In: Schaefer, I., Stamelos, I. (eds.) ICSR 2015. LNCS, vol. 8919, pp. 253–268. Springer, Heidelberg (2014)
AUTOSAR: Software architecture specification. http://www.autosar.org. Accessed 22 Jan 2016
Crnkovic, I.: Component-based software engineering for embedded systems. In: ICSE 2005, pp. 712–713 (2005)
Cicchetti, A., Ciccozzi, F., Mazzini, S., Puri, S., Panunzio, M., Zovi, A., Vardanega, T.: CHESS: a model-driven engineering tool environment for aiding the development of complex industrial systems. In: ASE 2012, pp. 362–365 (2012)
Baker, T.P.: What to make of multicore processors for reliable real-time systems? In: Real, J., Vardanega, T. (eds.) Ada-Europe 2010. LNCS, vol. 6106, pp. 1–18. Springer, Heidelberg (2010)
Srinivas, M., Patnaik, L.M.: Genetic algorithms: a survey. Computer 27(6), 17–26 (1994). doi:10.1109/2.294849
Romanovsky, A., Thomas, M.: Industrial Deployment of System Engineering Methods. Springer, Heidelberg (2013). doi:10.1007/978-3-642-33170-1
Acknowledgements
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
Baracchi, L., Mazzini, S., Puri, S., Vardanega, T. (2016). Lessons Learned in a Journey Toward Correct-by-Construction Model-Based Development. In: Bertogna, M., Pinho, L., Quiñones, E. (eds) Reliable Software Technologies – Ada-Europe 2016. Ada-Europe 2016. Lecture Notes in Computer Science(), vol 9695. Springer, Cham. https://doi.org/10.1007/978-3-319-39083-3_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-39083-3_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-39082-6
Online ISBN: 978-3-319-39083-3
eBook Packages: Computer ScienceComputer Science (R0)