This book presents new techniques for the formal specification and verification of object–oriented software. Since modularity is of critical importance for reuse and component–based programming, special emphasis is given to the completeness of the presented specification techniques to allow module verification based on the specification of the imported modules. A formal framework developed for a Java subset illustrates these new techniques.