It is rare to find a book that answers the questions of software engineers who are working with dynamic systems (robots, control systems, real-time operating systems, and so on), where formalisms of actions and behaviors are often answered by abstract theories of artificial intelligence. These theories are often imported in simplified forms, with looser formalisms to meet practical demands. Crossing the line between the abstract and the practical is often a difficult task. This book presents an attempt to cross that line, by providing practical theory that software engineers can use to develop reactive dynamic systems with formal specifications.
The book is divided into five parts. Part 1 introduces the topic. Part 2 covers the theoretical basis of action and behavior representation. This part consists of three chapters. The first chapter establishes an action language to be used for specifications and proofs. It is based on the temporal logic of actions (TLA) language. This formal language supports the inscription of behavior properties, and provides means of proofs for formally specifying dynamic systems.
Part 3 focuses on the development of system specifications using the theory presented in Part 2. It consists of four chapters. Each chapter focuses on some implementation aspects. For example, chapter 5 focuses on the elementary implementation of specifications using tools such as finite state structures. Chapter 6, “Fundamentals of Design Methodology,” essentially covers specification refinement processes; the title of this chapter may not reflect its content accurately. Chapters 7 and 8 are extensions on topics covered in chapter 5 related to complex structures, namely, objects, relations, and components. Part 4 looks at distributed and real-time systems, as two examples of dynamic systems to which the work presented in this book applies. Part 5 concludes the book.
Overall, this is a well-written book, which takes a practical software engineering approach, rather than a philosophical artificial intelligence (AI) one. The book will make good complementary reading for courses on intelligent agents, showing a practical route for translating theory into software specifications.