The B Method is a means for specifying, designing and coding software systems. The long-awaited B-Book is the standard reference for everything concerning this method. It contains the mathematical basis on which it is founded, the precise definitions of the notations used, and a large number of examples illustrating its use in practice. J.-R. Abrial, the inventor of B, has written the book in such a way that it can be used for self-study or for reference. It is in four parts, the first dealing with the mathematical foundations and the definition of the various mathematical structures that are needed to formalise software systems; special emphasis is placed on the notion of proof. The second part contains a presentation of the Generalised Substitution Language and of the Abstract Machine Notation; examples are given to show how large specifications can be constructed systematically. The next part introduces the two basic programming features of sequencing and loop. The last part covers the very important notion of refinement. It shows how to construct large software systems by means of layered architectures of modules. With the appearance of The B-Book, formal methods practitioners, computer scientists, and systems developers at last will have access to the definitive account of what will become one of the standard approaches to the construction of software systems.