Skip to main content
Please allow one business day for order processing.
Close this alert
Preorder
Guide to Software Verification with Frama-C: Core Components, Usages, and Applications (Computer Science Foundations and Applied Logic)

Guide to Software Verification with Frama-C: Core Components, Usages, and Applications (Computer Science Foundations and Applied Logic)

Current price: $80.49
Publication Date: July 7th, 2024
Publisher:
Springer
ISBN:
9783031556074
Pages:
726
Available for Preorder

Description

Frama-C is a popular open-source toolset for analysis and verification of C programs, largely used for teaching, experimental research, and industrial applications.

With the growing complexity and ubiquity of modern software, there is increasing interest in code analysis tools at various levels of formalization to ensure safety and security of software products. Acknowledging the fact that no single technique will ever be able to fit all software verification needs, the Frama-C platform features a wide set of plug-ins that can be used or combined for solving specific verification tasks.
This guidebook presents a large panorama of basic usages, research results, and concrete applications of Frama-C since the very first open-source release of the platform in 2008. It covers the ACSL specification language, core verification plug-ins, advanced analyses and their combinations, key ingredients for developing new plug-ins, as well as successful industrial case studies in which Frama-C has helped engineers verify crucial safety or security properties.
Topics and features:
* Gentle, example-based introduction to software specification and verification * Wide panorama of state-of-the-art specification and analysis techniques * Step-by-step guide to develop your own, tailor-made analysis on top of the platform* Inspiring success stories of Frama-C deployment on industrial code* More than 15 years of R&D on analysis and verification of C code
This book is firmly rooted on the practice of software analysis, with numerous examples, exercises and application guidelines. As such, it is particularly well suited for software verification practitioners wishing to deploy verification on their code, as well as for undergraduate students with little or no experience in code analysis techniques. More advanced sections on the theoretical underpinnings of the analyzers will be of interest for graduate students and researchers.

Nikolai Kosmatov is a Senior Researcher at Thales Research & Technology, France. Virgile Prevosto is a Senior Researcher and Julien Signoles is a Research Director, both at Universit Paris-Saclay, CEA, List, France.

About the Author

Nikolai Kosmatov is a research engineer at Thales Research & Technology since 2019, where he leads the Formal Methods group. His main focus is applying formal methods based techniques and tools (including Frama-C) to industrial projects. Previously, he worked for 13 years at CEA List as an expert researcher in the Frama-C team at Software Safety and Security Lab (LSL). He obtained Ph.D. in Mathematics in 2001 from St.Petersburg State Univ., MS in Computer Science in 2003 from Univ. of Besançon, and Habilitation in Computer Science (HDR) from Univ. Paris-Sud in 2018. His research interests include software testing, formal verification, combinations between static and dynamic analysis techniques, and runtime verification. He co-authored four patents and more than 90 scientific papers in international conferences and journals. He was PC co-chair of several international events related to verification and testing, e.g., TAP 2015, IFIP-ICTSS 2019, ACM SAC-SVT 2020 and 2021. He is co-responsible for the working group on software testing (MTV2) of the French CNRS network on Programming and Software Engineering (GDR GPL) and organizes its annual workshops. Dr. Kosmatov contributed to the design and development of several software verification tools. He is the main author of the PathCrawler-online.com testing web service. Virgile Prevosto is a researcher, senior expert in static analysis and formal methods at Université Paris-Saclay, CEA, List, where he works since 2006 in the Software Safety and Security Lab (LSL). After an engineering degree and MS in Computer Science at École Polytechnique (France), he got a Ph.D. in Computer Science from Univ. Paris 6 (now Sorbonne Université) in 2003. He has been one of the main developers of the Frama-C platform nearly since its inception and co-authored more than 25 peer-reviewed papers on Frama-C-related topics. He gave tutorials and training sessions on Frama-C in various academic and industrial venues and teaches static analysis and Frama-C for more than ten years at ENSIIE. He was a co-chair of the program committee of the Formal IDE (F-IDE) workshops in 2018 and 2019 and TAP conference in 2023. He has been CEA List's principal investigator in many collaborative projects at national and European levels, including the technical coordination of U3CAT (French ANR), Device-Soft (French/German Projet Inter Carnot Fraunhofer), and Decoder (H2020). Julien Signoles is a research director at Université Paris-Saclay, CEA, List, where he works since 2006 in the Software Safety and Security Lab (LSL). He got a Ph.D. in Computer Science from University Paris-Sud (now University Paris-Saclay, France) in 2006 and an Habilitation (HDR) from the same university in 2018. His research focuses on runtime annotation checking and applications of formal methods to code safety and security. He is one of the main contributors to Frama-C since its conception. In particular, he is the scientific head of E-ACSL, theruntime annotation checker of Frama-C. He published more than 50 peer-reviewed papers on Frama-C-related topics. He teaches formal methods in French universities and engineering schools, and has given plenty of Frama-C tutorials and talks to a broad audience including students, academic researchers, as well as engineers and decision-makers from industry. He has been the CEA List's principal investigator in many French and European projects. He is co-responsible for the working group on Languages and Program Verification (LVP) of the French CNRS network on Programming and Software Engineering (GDR GPL) and scientific advisor of the Department of Software and System Engineering at CEA List.