डिजाइन बाय कॉन्ट्रॅक्ट (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
