Models that include a notion of time are ubiquitous in disciplines such as the natural sciences, engineering, philosophy, and linguistics, but in computing the abstractions provided by the traditional models are problematic and the discipline has spawned many novel models. This book is a systematic thorough presentation of the results of several decades of research on developing, analyzing, and applying time models to computing and engineering.
After an opening motivation introducing the topics, structure and goals, the authors introduce the notions of formalism and model in general terms along with some of their fundamental classification criteria. In doing so they present the fundamentals of propositional and predicate logic, and essential issues that arise when modeling time across all types of system. Part I is a summary of the models that are traditional in engineering and the natural sciences, including fundamental computer science: dynamical systems and control theory; hardware design; and software algorithmic and complexity analysis. Part II covers advanced and specialized formalisms dealing with time modeling in heterogeneous software-intensive systems: formalisms that share finite state machines as common "ancestors"; Petri nets in many variants; notations based on mathematical logic, such as temporal logic; process algebras; and "dual-language approaches" combining two notations with different characteristics to model and verify complex systems, e.g., model-checking frameworks. Finally, the book concludes with summarizing remarks and hints towards future developments and open challenges. The presentation uses a rigorous, yet not overly technical, style, appropriate for readers with heterogeneous backgrounds, and each chapter is supplemented with detailed bibliographic remarks and carefully chosen exercises of varying difficulty and scope.
The book is aimed at graduate students and researchers in computer science, while researchers and practitioners in other scientific and engineering disciplines interested in time modeling with a computational flavor will also find the book of value, and the comparative and conceptual approach makes this a valuable introduction for non-experts. The authors assume a basic knowledge of calculus, probability theory, algorithms, and programming, while a more advanced knowledge of automata, formal languages, and mathematical logic is useful.
About the Author: Dr. Carlo A. Furia is a lecturer and researcher in the software engineering at ETH Zürich; his main research interests are within the area of formal methods for software engineering, including approaches to improving the quality, reliability, and correctness of software and software-intensive systems. Prof. Dino Mandrioli has been a professor of theoretical computer science at the Politecnico di Milano since 1992; his research interests are mainly in the field of theoretical computer science, software engineering and systems in real time. Prof. Angelo Morzenti is a professor at the Politecnico di Milano; his research interests are centered on languages, methods and tools for the specification, analysis, validation, verification and design of critical, real-time, distributed, embedded computer-based systems. Dr. Matteo Rossi is an assistant professor at the Politecnico di Milano; his research interests are in the area of formal methods for industrial safety-critical systems.