The Object-Z Specification Language
Graeme Smith
Springer
Object-Z is an object-oriented extension of the formal  specification language Z. It adds to Z notions of classes and objects,  and inheritance and polymorphism. By extending Z's semantic basis, it  enables the specification of systems as collections of independent  objects in which self and mutual referencing are possible.   The Object-Z Specification Language presents a comprehensive  description of Object-Z including discussions of semantic issues,  definitions of all language constructs, type rules and other rules of  usage, specification guidelines, and a full concrete syntax. It will  enable you to confidently construct Object-Z specifications and is  intended as a reference manual to keep by your side as you use and  learn to use Object-Z.   The Object-Z Specification Language is suitable as a textbook or  as a secondary text for a graduate-level course, and as a reference  for researchers and practitioners in industry.