Design By Contract. The Eiffel Method
Bertrand Meyer · 2005
It is indeed possible to use object-oriented technology to produce, almost routinely, software systems that reach a degree of reliability without any equivalent in conventional methods, languages and tools. This requires a strict application of pure object-oriented concepts, in particular seamlessness (the use of a consistent method and notation throughout the software lifecycle), information hiding, automatic garbage collection, static typing, and the combination of static typing and dynamic binding. Another key component of this approach is the notion of design by contract, which leads to the production of system whose correctness is built-in rather than ensured ex post facto.