डिजाइन बाय कन्ट्र्याक्ट (DbC) ले एक मेथड र यसको कलरको बीचको सम्बन्धलाई एक औपचारिक सहमति मान्छ, जसलाई तीन कुराले परिभाषित गरिन्छ: preconditions (कलरले कस्तो ग्यारान्टी दिनु पर्छ), postconditions (मेथडले बदलामा कस्तो ग्यारान्टी दिन्छ), र invariants (अबजेक्टको लागि सधैं सत्य के रहन्छ)।
तीन दायित्व
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
