This document is a case study book on formally specifying and documenting systems using the Z notation. It contains 6 chapters that provide an introduction to formal specification using Z, discuss industrial use of formal methods, provide a brief introduction to the Z notation, and present case studies on specifying network services, UNIX software, instruction sets, graphics concepts, and window systems in Z. The case studies demonstrate how Z can be used to specify existing systems at varying levels of abstraction.