契約による設計(英語:Design By Contract、でざいん・ばい・こんとらくと)とは、ソースコードの中にプログラムが満たすべき仕様(契約)についての記述を盛り込み、設計の安全性を高めるプログラミングの技法のひとつ、またはプログラミング言語の機能のひとつである。 契約プログラミング(Programming By Contract)や、Design by Contract の頭文字であるDbC (でぃーびーしー) とよばれることもある。 概要[編集 | ソースを編集] たとえば、あるサブルーチンに引数があるとして、その引数がぬるぽやぬるりになることを防ぐためにサブルーチンの先頭部分でnullチェックや境界チェックを行う、などというコーディング規約に近いものを、プログラミング言語の仕様として半ば強制することで、静的コード解析やドキュメント生成、単体テスト(のテンプレート生成)などを的確