This book presents the leading edge in several related fields, specifically object orientated programming, open distributed systems and formal methods for object oriented systems. With increased support within industry regarding these areas, this book captures the most up-to-date information on the subject. Many topics are discussed, including the following important areas: object oriented design and programming; formal specification of distributed systems; open distributed platforms; types, interfaces and behaviour; formalisation of object oriented methods.