Abstract
To reduce the verification costs and to be more confident on software, static program analysis offers ways to prove properties on source code. Unfortunately, these techniques are difficult to apprehend and to use for non-specialists. Modelling allows users to specify some aspects of software in an easy way. More precisely, in embedded software, state machine models are frequently used for behavioural design. The aim of this paper is to bridge the gap between model and code by offering automatic generation of annotations from model to source code. These annotations are then verified by static analysis in order to ensure that the code behaviour conforms to the model-based design. The models we consider are UML state machines with a formal non-ambiguous semantics, the annotation generation and verification is implemented in a tool and applied to a case study.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Souyris, J., Wiels, V., Delmas, D., Delseny, H.: Formal verification of avionics software products. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 532–546. Springer, Heidelberg (2009)
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)
France, R., Evans, A., Lano, K., Rumpe, B.: The uml as a formal modeling notation. Comput. Stand. Interfaces 19(7), 325–334 (1998)
Fernandes Pires, A., Duprat, S., Faure, T., Besseyre, C., Beringuier, J., Rolland, J.F.: Use of modelling methods and tools in an industrial embedded system project: works and feedback. In: ERTS, France (2012)
Berry, G., Gonthier, G.: The esterel synchronous programming language: design, semantics, implementation. Science of Computer Programming 19(2), 87–152 (1992)
Gomez, M.: Embedded state machine implementation. Embedded Systems Programming 41 (2000)
Baudin, P., Cuoq, P., Filliâtre, J., Marché, C., Monate, B., Moy, Y., Prevosto, V.: ACSL Version 1.6. (2012)
Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18(8), 453–457 (1975)
Duprat, S., Gaufillet, P., Moya Lamiel, V., Passarello, F.: Formal verification of sam state machine implementation. In: ERTS, France (2010)
Stouls, N., Prevosto, V.: Aoraï Plug-in Tutorial
Jobredeaux, R., Wang, T., Feron, E.: Autocoding control software with proofs i: Annotation translation. In: 2011 IEEE/AIAA 30th Digital Avionics Systems Conference (DASC), pp. 7C1-1–7C1-13 (October 2011)
Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous data flow programming language lustre. Proceedings of the IEEE 79(9), 1305–1320 (1991)
Crane, M.L., Dingel, J.: On the semantics of uml state machines: Categorization and comparision. In: Technical Report 2005-501, School of Computing, Queen’s University (2005)
Reggio, G., Astesiano, E., Choppy, C., Hussmann, H.: Analysing uml active classes and associated state machines - a lightweight formal approach. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, pp. 127–146. Springer, Heidelberg (2000)
Börger, E., Cavarra, A., Riccobene, E.: Modeling the dynamics of uml state machines. In: Gurevich, Y., Kutter, P.W., Odersky, M., Thiele, L. (eds.) ASM 2000. LNCS, vol. 1912, pp. 223–241. Springer, Heidelberg (2000)
Varró, D.: A formal semantics of uml statecharts by model transition systems. In: Corradini, A., Ehrig, H., Kreowski, H.J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 378–392. Springer, Heidelberg (2002)
Gogolla, M., Presicce, F.P.: State diagrams in uml: A formal semantics using graph transformations - or diagrams are nice, but graphs are worth their price. In: University of Munich, pp. 55–72 (1998)
Baresi, L., Pezzè, M.: On formalizing uml with high-level petri nets. In: Agha, G., De Cindio, F., Rozenberg, G. (eds.) APN 2001. LNCS, vol. 2001, pp. 276–304. Springer, Heidelberg (2001)
Aredo, D.B.: Semantics of uml statecharts in pvs. In: Proc. of the 12th Nordic Workshop on Programming Theory (NWPT 2000) (2001)
Lilius, J., Paltor, I.P.: Formalising uml state machines for model checking. In: France, R.B. (ed.) UML 1999. LNCS, vol. 1723, pp. 430–444. Springer, Heidelberg (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Pires, A.F., Polacsek, T., Wiels, V., Duprat, S. (2013). Behavioural Verification in Embedded Software, from Model to Source Code. In: Moreira, A., Schätz, B., Gray, J., Vallecillo, A., Clarke, P. (eds) Model-Driven Engineering Languages and Systems. MODELS 2013. Lecture Notes in Computer Science, vol 8107. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41533-3_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-41533-3_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-41532-6
Online ISBN: 978-3-642-41533-3
eBook Packages: Computer ScienceComputer Science (R0)