Skip to main content

Formal Methods for Software Engineering

Languages, Methods, Application Domains

  • Textbook
  • © 2022

Overview

  • Book suitable for graduate and undergraduate courses in Software Engineering
  • Explains foundations, introduces specification, verification, and testing methods
  • Authors are all highly experienced educators and researchers

This is a preview of subscription content, log in via an institution to check access.

Access this book

eBook USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 84.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

Licence this eBook for your library

Institutional subscriptions

Table of contents (10 chapters)

  1. Languages

  2. Methods

  3. Application Domains

  4. Wrapping up

Keywords

About this book

Software programs are formal entities with precise meanings independent of their programmers, so the transition from ideas to programs necessarily involves a formalisation at some point.

The first part of this graduate-level introduction to formal methods develops an understanding of what constitutes formal methods and what their place is in Software Engineering. It also introduces logics as languages to describe reasoning and the process algebra CSP as a language to represent behaviours. The second part offers specification and testing methods for formal development of software, based on the modelling languages CASL and UML. The third part takes the reader into the application domains of normative documents, human machine interfaces, and security.  Use of notations and formalisms is uniform throughout the book.

Topics and features:

  • Explains foundations, and introduces specification, verification, and testing methods
  • Exploresvarious application domains
  • Presents realistic and practical examples, illustrating concepts
  • Brings together contributions from highly experienced educators and researchers
  • Offers modelling and analysis methods for formal development of software

Suitable for graduate and undergraduate courses in software engineering, this uniquely practical textbook will also be of value to students in informatics, as well as to scientists and practical engineers,  who want to learn about or work more effectively with formal theories and methods.

Markus Roggenbach is a Professor in the Dept. of Computer Science of Swansea University. Antonio Cerone is an Associate Professor in the Dept. of Computer Science of Nazarbayev University, Nur-Sultan. Bernd-Holger Schlingloff is a Professor in the Institut für Informatik of Humboldt-Universität zu Berlin. Gerardo Schneider is a Professor in the Dept. of Computer Science and Engineering of University of Gothenburg. Siraj Ahmed Shaikh is a Professor in the Institute for Future Transport and Cities of Coventry University.

The companion site for the book offers additional resources, including further material for selected chapters, prepared lab classes, a list of errata, slides and teaching material, and virtual machines with preinstalled tools and resources for hands-on experience with examples from the book. The URL is: https://sefm-book.github.io


Authors and Affiliations

  • Dept. of Computer Science, Swansea University, Swansea, UK

    Markus Roggenbach

  • Dept. of Computer Science, Nazarbayev University, Astana, Kazakhstan

    Antonio Cerone

  • Institut für Informatik, Humboldt-Universität zu Berlin, Berlin, Germany

    Bernd-Holger Schlingloff

  • Dept. of Computer Science and Engr., University of Gothenburg, Göteborg, Sweden

    Gerardo Schneider

  • Inst. for Future Transport and Cities, Coventry University, Coventry, UK

    Siraj Ahmed Shaikh

About the authors

Antonio Cerone is an Associate Professor of Computer Science at Nazarbayev University, Kazakhstan. Previously he has been working at the IMT School for Advanced Studies Lucca, the United Nations University, the University of Queensland, the University of South Australia, the Goethe University Frankfurt and the University of Pisa. His main research focus is on formal methods and their application to several domains, including human-computer interaction, safety, security, systems biology, and ecology. He is also interested in cognitive science, open-source development, and collaborative learning. He is the founder and Chair of the Steering Committee of the International Conference on Software Engineering and Formal Methods SEFM.

Dr Hoang Nga Nguyen is an Associate Professor in Automotive Cybersecurity at the Centre for Future Transport and Cities, Coventry University, UK. His research agenda includes cybersecurity in automotive and autonomous systems. His work focuses on automotive threat modelling, risk assessment, security solutions, and security testbed.

Liam O'Reilly is a Senior Lecturer and Programme Director in the Department of Computer Science at Swansea University, UK. His research is in the areas of Formal Methods, Algebraic Specification, Process Algebra, and the Pedagogy of Computer Science and Software Engineering. Liam has also worked as a Software Engineer in industry developing embedded systems. He has extensive experience in the teaching and delivery of Software Engineering including, but not limited to, the design of software, UML, algorithms, and web technology.

Markus Roggenbach is a Professor of Computer Science at Swansea University, UK. He leads the Security Group in Swansea University’s department of Computer Science, where he also has been Director of Research (2016 – 2021). His research foci are formal methods for safety and for cyber security, their semantics, how to utilise them throughout the software life cycle, how to support them with tools, and their application in industrial contexts, e.g., the railway domain. He is a member of the Federation for Information Processing (IFIP) Working Group 1.3 “Foundations of System Specification” (chair in 2015 – 2021).

Bernd-Holger Schlingloff is a Professor of Software Engineering at the Institute for Computer Science of Humboldt University, Berlin, and chief scientist at the Fraunhofer Institute for Open Communication Systems (Fraunhofer FOKUS). Moreover, he is chairman of the boards of the society for the advancement of embedded systems (ZeSys e.V.), and the society for the advancement of applied computer science (GFaI e.V.). His main subject is the specification, verification and testing of embedded safety-critical software. This includes quality assurance of embedded control software, model-based development and model checking, logical verification of requirements, and automated test generation. In his work, he is applying formal methods in industrial projects in the automotive, railway, and medical technology domain.

Gerardo Schneider is a Professor of Computer Science at the University of Gothenburg, Sweden. He had previously been at VERIMAG (Grenoble, France), Uppsala University (Sweden), Irisa/INRIA (Rennes, France), and the University of Oslo (Norway). He has been the Head of the Formal Methods Division at the Department of Computer Science and Engineering since 2017. His research interests include formal verification (runtime verification, model checking, and verification of real-time and hybrid systems), the specification and analysis of normative documents, and privacy. 

Siraj Ahmed Shaikh is a Professor of Systems Security and Director for the Centre for Future Transport and Cities (CFTC) at Coventry University, UK. He also leads the Systems Security Group at CFTC, where his research interests sit at the intersection of cybersecurity, systems engineering and computer science with particular application to automotive and transport systems. He is also Co-Founder and Chief Scientist at CyberOwl, which is dedicated to cyber-physical systems security monitoring for the maritime sector. He has served as the Royal Academy of Engineering (RAEng) Industrial Fellow at HORIBA MIRA (2015-16) where he investigated security testing for the automotive industry.

John V Tucker is a Professor of Computer Science at Swansea University, UK. His research over five decades explores the scope and limits of digital data and computation in mathematical, physical, and social systems. A scholar of the history of technology, he founded Swansea University's History of Computing Collection, and is an expert on the history of science and technology in Wales. He is a Founding Fellow of the Learned Society of Wales and a Member of Academia Europaea.

Bibliographic Information

Publish with us