Design by Contract (DbC) inakabidhi uhusiano kati ya njia na mwito wake kama makubaliano rasmi, yanayofafanuliwa na mambo matatu: masharti ya awali (kinachofaa kuhakikisha mwito), masharti ya baada (kinachohakikisha njia kwa upande wake) na invariants (kinachobaki kweli kwa kitu kila wakati).
Jukumu tatu
PRECONDITION → caller's duty: inputs/state the method requires to run correctly
POSTCONDITION → method's duty: what it promises on return (if precondition held)
INVARIANT → always-true property of the object, before and after every method
