Design by Contract (DbC) tittratta r-relazzjoni bejn metodu u l-imsejjaħ tiegħu bħala ftehim formali, definit minn tliet affarijiet: prekondizzjonijiet (dak li għandu jiġi garantit minn l-imsejjaħ), postkondizzjonijiet (dak li l-metodu jigarantixxi billi jirritorna), u invarianti (dak li jibqa' veru għall-objett kontinwament).
It-tliet obbligazzjonijiet
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
