This book investigates the characteristics of simple versus complex systems, and what the properties of a cyber-physical system design are that contribute to an effective implementation and make the system understandable, simple to use, and easy to maintain. The targeted audience is engineers, managers and advanced students who are involved in the design of cyber-physical systems and are willing to spend some time outside the silo of their daily work in order to widen their background and appreciation for the pervasive problems of system complexity.
In the past, design of a process-control system (now called cyber-physical systems) was more of an art than an engineering endeavor. The software technology of that time was concerned primarily with functional correctness and did not pay much attention to the temporal dimension of program execution, which is as important as functional correctness when a physical process must be controlled. In the ensuing years, many problems in the design of cyber-physical systems were simplified. But with an increase in the functional requirements and system size, the complexity problems have appeared again in a different disguise. A sound understanding of the complexity problem requires some insight in cognition, human problem solving, psychology, and parts of philosophy.
This book presents the essence of the author's thinking about complexity, accumulated over the past forty years.