Abstract
In the power generation industry, digital control systems may play an important role in plant safety. Thus, these systems are the object of rigorous analyzes and safety assessments. In particular, the quality, correctness and dependability of control systems software need to be justified. This paper reports on the development of a tool-based methodology to address the demonstration of freedom from intrinsic software faults related to concurrency and synchronization, and its practical application to an industrial control software case study. We describe the underlying theoretical foundations, the main mechanisms involved in the tools and the main results and lessons learned from this work. An important conclusion of the paper is that the used verification techniques and tools scale efficiently and accurately to industrial control system software, which is a major requirement for real-life safety assessments.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Aiken, A., Foster, J.S., Kodumal, J., Terauchi, T.: Checking and inferring local non-aliasing. In: PLDI, pp. 128–140 (2003)
Baier, C., Katoen, J.P.: Principles of Model-Checking. MIT Press, Cambridge (2008)
Balabonski, T., Haucourt, E.: A geometric approach to the problem of unique decomposition of processes. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 132–146. Springer, Heidelberg (2010)
Ball, T., Rajamani, S.K.: The slam project: debugging system software via static analysis. In: POPL, pp. 1–3 (2002)
Bardin, S., Finkel, A., Leroux, J., Petrucci, L.: Fast: acceleration from theory to practice. STTT 10(5), 401–424 (2008)
Behrmann, G., David, A., Larsen, K.G.: A tutorial on uppaal. In: Bernardo, M., Corradini, F. (eds.) SFM-RT 2004. LNCS, vol. 3185, pp. 200–236. Springer, Heidelberg (2004)
Beyer, D., Henzinger, T.A., Jhala, R., Majumdar, R.: The software model checker blast. STTT 9(5-6), 505–525 (2007)
Cimatti, A., Clarke, E.M., Giunchiglia, F., Roveri, M.: Nusmv: A new symbolic model checker. STTT 2(4), 410–425 (2000)
Clarke Jr., E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (1999)
Cuoq, P., Prevosto, V.: Frama-c’s value analysis plug-in. CEA LIST Technical Report (2010), http://frama-c.com/download/frama-c-value-analysis.pdf
Cuoq, P., Signoles, J., Baudin, P., Bonichon, R., Canet, G., Correnson, L., Monate, B., Prevosto, V., Puccetti, A.: Experience report: OCaml for an industrial-strength static analysis framework. In: ICFP, pp. 281–286 (2009)
CWE Common Weakness Enumeration —, http://cwe.mitre.org/
Dijkstra, E.W.: Cooperating sequential processes. In: Programming Languages: NATO Advanced Study Institute, pp. 43–112. Academic Press, London (1968)
Dräger, K., Kupriyanov, A., Finkbeiner, B., Wehrheim, H.: Slab: A certifying model checker for infinite-state concurrent systems. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 271–274. Springer, Heidelberg (2010)
Emanuelsson, P., Nilsson, U.: A Comparative Study of Industrial Static Analysis Tools. Linköpink University Technical Report (2008)
Fajstrup, L., Goubault, E., Raußen, M.: Algebraic topology and concurrency. Theoretical Computer Science 357, 241–278 (2006)
Frama-c Software Analyzers —, http://frama-c.com/
Goubault, E.: Geometry and concurrency: a user’s guide. Mathematical Structures in Computer Science 10(4), 411–425 (2000)
Goubault, E., Haucourt, E.: A practical application of geometric semantics to static analysis of concurrent programs. In: Abadi, M., de Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 503–517. Springer, Heidelberg (2005)
Grandis, M.: Directed Algebraic Topology. New Mathematical Monographs. Cambridge University Press, Cambridge (2009)
Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley Professional, Reading (2003)
Holzmann, G.J., Ruys, T.C.: Effective bug hunting with spin and modex. In: Godefroid, P. (ed.) SPIN 2005. LNCS, vol. 3639, p. 24. Springer, Heidelberg (2005)
Labbé, S., Sangnier, A.: Formal verification of industrial software with dynamic memory management. In: IEEE PRDC. pp. 77–84 (2010)
Labbé, S., Thuy, N.: Formal verification of freedom from intrinsic software faults in digital control systems. In: ANS NPIC&HMIT, pp. 2191–2201 (2010)
Larochelle, D., Evans, D.: Statically detecting likely buffer overflow vulnerabilities. In: USENIX Security Symposium, pp. 177–190 (2001)
Nachbin, L.: Topology and Order. Mathematical Studies, vol. 4. Van Nostrand, Princeton (1965)
Podelski, A., Rybalchenko, A.: Armc: The logical choice for software model checking with abstraction refinement. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, pp. 245–259. Springer, Heidelberg (2006)
Thuy, N., Ourghanlian, A.: Dependability assessment of safety-critical system software by static analysis methods. In: DSN, pp. 75–79 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bonichon, R. et al. (2011). Rigorous Evidence of Freedom from Concurrency Faults in Industrial Control Software. In: Flammini, F., Bologna, S., Vittorini, V. (eds) Computer Safety, Reliability, and Security. SAFECOMP 2011. Lecture Notes in Computer Science, vol 6894. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24270-0_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-24270-0_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-24269-4
Online ISBN: 978-3-642-24270-0
eBook Packages: Computer ScienceComputer Science (R0)