This book covers the principles of systems design.
It covers how to handle requirements, architectural design, integration and verification, starting from the perspective of a simple linear lifecycle.
It then gradually introduces recent work on the complexity of real world systems, with issues such as multi-level systems and iterative development.