By presenting state-of-the-art research results on various aspects of formal and visual modeling of software and systems, this book commemorates the 60th birthday of Hartmut Ehrig. The 24 invited reviewed papers are written by students and collaborators of Hartmut Ehrig who are established researchers in their fields. Reflecting the scientific interest and work of Hartmut Ehrig, the papers fall into three main parts on graph transformation, algebraic specification and logic, and formal and visual modeling.
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 Explores various 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
This book presents a comprehensive documentation of the scientific outcome of 14 satellite events held at the 13th International Conference on Model-Driven Engineering, Languages and Systems, MODELS 2010, held in Oslo, Norway, in October 2010. Besides the 21 revised best papers selected from 12 topically focused workshops, the post-proceedings also covers the doctoral symposium and the educators symposium; each of the 14 satellite events covered is introduced by a summary of the respective organizers. All relevant current aspects in model-based systems design and analysis are addressed. This book is the companion of the MODELS 2010 main conference proceedings LNCS 6394/6395.
Growing demands for the quality, safety, and security of software can only be satisfied by the rigorous application of formal methods during software design. This book methodically investigates the potential of first-order logic automated theorem provers for applications in software engineering. Illustrated by complete case studies on protocol verification, verification of security protocols, and logic-based software reuse, this book provides techniques for assessing the prover's capabilities and for selecting and developing an appropriate interface architecture.
Testing often accounts for more than 50% of the required e?ort during system development.Thechallengeforresearchistoreducethesecostsbyprovidingnew methods for the speci?cation and generation of high-quality tests. Experience has shown that the use of formal methods in testing represents a very important means for improving the testing process. Formal methods allow for the analysis andinterpretationofmodelsinarigorousandprecisemathematicalmanner.The use of formal methods is not restricted to system models only. Test models may alsobeexamined.Analyzingsystemmodelsprovidesthepossibilityofgenerating complete test suites in a systematic and possibly automated manner whereas examining test models allows for the detection of design errors in test suites and their optimization with respect to readability or compilation and execution time. Due to the numerous possibilities for their application, formal methods have become more and more popular in recent years. The Formal Approaches in Software Testing (FATES) workshop series also bene?ts from the growing popularity of formal methods. After the workshops in Aalborg (Denmark, 2001), Brno (Czech Republic, 2002) and Montr ́ eal (Canada, 2003), FATES 2004 in Linz (Austria) was the fourth workshop of this series. Similar to the workshop in 2003, FATES 2004 was organized in a?liation with the IEEE/ACM Conference on Automated Software Engineering (ASE 2004). FATES 2004 received 41 submissions. Each submission was reviewed by at least three independent reviewers from the Program Committee with the help of some additional reviewers. Based on their evaluations, 14 full papers and one wo- in-progress paper from 11 di?erent countries were selected for presentation.
This volume constitutes the revised selected papers from the three workshops collocated with the 18th International Conference on Software Engineering and Formal Methods, SEFM 2020, held in Amsterdam, The Netherlands, in September 2020. The 15 full papers presented together with 8 short papers in this volume were carefully reviewed and selected from a total of 35 submissions. The contributions that are collected in this volume have been selected from the presentations at the following workshops: ASYDE 2020: Second International Workshop on Automated and Verifiable Software System Development; CIFMA 2020: Second International Workshop on Cognition: Interdisciplinary Foundations, Models and Applications; and CoSim-CPS 2020: Fourth International Workshop on Formal Co-Simulation of Cyber-Physical Systems. Due to the Corona pandemic this event was held virtually.
Learn how to design complex, correct programs and fix problems before writing a single line of code. This book is a practical, comprehensive resource on TLA+ programming with rich, complex examples. Practical TLA+ shows you how to use TLA+ to specify a complex system and test the design itself for bugs. You’ll learn how even a short TLA+ spec can find critical bugs. Start by getting your feet wet with an example of TLA+ used in a bank transfer system, to see how it helps you design, test, and build a better application. Then, get some fundamentals of TLA+ operators, logic, functions, PlusCal, models, and concurrency. Along the way you will discover how to organize your blueprints and how to specify distributed systems and eventual consistency. Finally, you’ll put what you learn into practice with some working case study applications, applying TLA+ to a wide variety of practical problems: from algorithm performance and data structures to business code and MapReduce. After reading and using this book, you'll have what you need to get started with TLA+ and how to use it in your mission-critical applications. What You'll LearnRead and write TLA+ specsCheck specs for broken invariants, race conditions, and liveness bugsDesign concurrency and distributed systemsLearn how TLA+ can help you with your day-to-day production work Who This Book Is For Those with programming experience who are new to design and to TLA+. /div
This book presents the revised versions of nine invited lectures presented by leading researchers at the fourth edition of the International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFT 2004, held in Bertinoro, Italy, September 2004. SFM 2004 is devoted to real-time systems. The lectures presented cover formal models and languages for the specification, modeling, analysis, and verification of time-critical systems, the expressiveness of such models and languages, as well as supporting tools and related applications in different domains. The book offers a unique and comprehensive state-of-the-art survey on real-time systems. Researchers and advanced students will appreciate the book as a valuable source of reference and a systematic guide to the use of formal methods for the specification, analysis, and verification of real-time systems.
This is an excellent introduction to formal methods which will bring anyone who needs to know about this important topic up to speed. It is comprehensive, giving the reader all the information needed to explore the field of formal methods in more detail. It offers: a guide to the mathematics required; comprehensive but easy-to-understand introductions to various methods; a run-down of how formal methods can help to develop high-quality systems that come in on time, within budget, and according to requirements.
This textbook gives students a comprehensive introduction to formal methods and their application in software and hardware specification and verification. It has three parts: The first part introduces some fundamentals in formal methods, including set theory, functions, finite state machines, and regular expressions. The second part focuses on logi