契约式设计（，缩写为 DbC），一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的，精确的并且可验证的接口，这样，为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻，因为它和商业契约的情况有点类似。因为“Design by Contract”是属于Eiffel Software的注册商标，很多开发人员用契约式编程（Programming by Contract），契约编程（Contract Programming），或者契约优