Written for hardware-software system engineers, researchers and
students, this text introduces a systems engineering method that guides
the development of software and embedded hardware-software systems
seamlessly from requirements capture to their implementation. It helps
the designer to cope with the three stumbling-blocks of building modern
software based systems: size, complexity and trustworthiness. It covers
within a single conceptual framework both design, verification by
reasoning techniques, and experimental validation by simulation and
testing. The text contains detailed proofs, exercises, as well as
numerous real-world examples and case studies.