Designing reliable, complex and dependable software systems is a continuous challenge to the software engineering community. The contribution of this book is two fold: bring to light a large body of knowledge on this issue and proposing basic techniques to build secure high-performance software systems. The first part focuses on performance requirements analysis for distributed software systems. Techniques for analyzing and testing software performance...