Building bug-free O-O software: An Introduction to Design by Contract™
In our opinion the techniques outlined below are as important as the rest of object technology -- as important as classes, objects, inheritance, polymorphism and dynamic binding, which they co