Originally published in 2002, this book presents techniques in the application of formal methods to object-based distributed systems. A major theme of the book is how to formally handle the requirements arising from OO distributed systems, such as dynamic reconfiguration, encapsulation, subtyping, inheritance, and real-time aspects. These may be supported either by enhancing existing notations, such as UML, LOTOS, SDL and Z, or by defining fresh notations, such as Actors, Pi-calculus and Ambients. The major specification notations and modelling techniques are introduced and compared by leading researchers. The book also includes a description of approaches to the specification of non-functional requirements, and a discussion of security issues. Researchers and practitioners in software design, object-oriented computing, distributed systems, and telecommunications systems will gain an appreciation of the relationships between the major areas of concerns and learn how the use of object-oriented based formal methods provides workable solutions.