契約による設計 契約プログラミング(けいやくプログラミング、英: Contract programming)または契約による設計(けいやくによるせっけい、英: Design by Contract; DbC)は、ソフトウェアの正確性[注 1]と頑健性[注 2]を高めるためのソフトウェア設計の方法論である。DbC はロバート・フロイド、アントニー・ホーア、エドガー・ダイクストラらの形式的検証の仕事を基礎にしている[1]。DbC は(抽象データ型に基づく)オブジェクト指向プログラミングにおける表明の利用や、継承に伴う表明の再定義の原理的規則、例外処理の原理的規則などを提供する[2]。 DbC は、バートランド・メイヤーによって提案された[3][4][5]。 概要[編集] 「契約による設計」(DbC)における中心的な概念は、クライアントとサプライヤ[6]の契約 (contract) である。Db