活动中“客户”与“供应商”达成“契约”而得来。例如：同样的，如果在面向对象程序设计中一个类的函数提供了某种功能，那么它要：契约就是这些权利和义务的正式形式。我们可以用“三个问题”来总结DbC，并且作为设计者要经常问：很多程式语言都有对这种断言的支持。然而DbC认为这些契约对于软件的正确性至关重要，它们应当是设计过程的一部分。实际上，DbC提倡首先写断言。契约的概念扩展到了方法/过程的级别。对于一个方法的契约通常包含下面这些信息：继承中的子类型可以弱化先验条件（但不可以加强它们），并且