LearningtoProgramwellwithObjectsandContracts,DesignbyContractsparadigm,writtenbyBetrandMeyer,inventerofEiffellanguage.