Design by Contract (DbC) என்பது ஒரு முறை மற்றும் அதன் அழைப்பாளருக்கு இடையேயான உறவை முறையான ஒப்பந்தமாகக் கருதுகிறது, இது மூன்று விஷயங்களால் வரையறுக்கப்படுகிறது: முன்நிபந்தனைகள் (அழைப்பாளர் உறுதிப்படுத்த வேண்டியது), பின்நிபந்தனைகள் (முறை பதிலுக்கு உறுதிப்படுத்துவது) மற்றும் மாறிலிகள் (பொருளுக்கு எப்போதும் உண்மையாக இருக்கவேண்டியது).
மூன்று கடமைகள்
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
