Modern software systems operate under an unprecedented degree of uncertainties, making them hard to specify, model, test, analyze, and verify. Safety assurance of such systems requires efforts that unite different disciplines such as formal methods, software science, software engineering, control theory, machine learning.
Safety assurance of software systems has never been as imminent a problem as it is today. Practitioners and researchers who work on the problem face a challenge unique to modern software systems: uncertainties. For one, the cyber-physical nature of modern software systems as exemplified by automated driving systems mandates environmental uncertainties to be addressed and the resulting hazards to be mitigated. Besides, the abundance of statistical machine-learning components massive numerical computing units for statistical reasoning such as deep neural networks make systems hard to explain, understand, analyze, or verify.
The book is the first to provide a comprehensive overview of such united and interdisciplinary efforts. Driven by automated driving systems as a leading example, the book describes diverse techniques to specify, model, test, analyze, and verify modern software systems. Coming out of a collaboration between industry and basic academic research, the book covers both practical analysis techniques (readily applicable to existing systems) and more long-range design techniques (that call for new designs but bring a greater degree of assurance).
The book provides high-level intuitions and use-cases of each technique, rather than technical details, with plenty of pointers for interested readers.
Preface. Optimisation-Based Falsification. Monitoring Temporal
Specifications. Formal Specification of Temporal Properties. Testing for
Machine Learning-Based Systems. Safety Standards and Safety Assurance
Framework for ADS. Uncertainty-wise Testing. Decision Making for Automated
Driving. Formal Modelling. Theorem Proving at Work. Search-Based Analysis and
Engineering. Fault Localisation and Understanding. Index.
Ichiro Hasuo, Ph.D. (cum laude, Radboud University Nijmegen, 2008), is a Professor at National Institute of Informatics (NII), Tokyo, Japan. He is at the same time the Research Director of the JST ERATO "Metamathematics for Systems Design'' Project, and the Director of Research Center for Mathematical Trust in Software and Systems at NII. His research field is software science and his interests include formal verification, mathematical and logical structures, category theory, integration of formal methods and testing, and application to cyber-physical systems and systems with statistical machine learning components.
Fuyuki Ishikawa, Ph.D. (The University of Tokyo, 2007), is an Associate Professor in Information Systems Architecture Science Research Division and the Director of GRACE Center, at National Institute of Informatics (NII), Tokyo, Japan. His research focuses on software engineering, especially for dependability of emerging AI and smart cyber-physical systems, including test generation, fault analysis, automated repair, and formal verification for automated driving systems. He is leading relevant initiatives of the Japanese industry such as the QA4AI guidelines for quality assurance of AI systems.