The book is one of the first publications on distributed software design. It provides an introduction to software engineering for distributed systems. The book explains how software engineering methods for both non-distributed and distributed programs can be combined in order to use their advantages. It is targeted at the software engineering market and at the graduate student market in computer science.