Design by contractはソフトウェアの機能や関数/メソッドの事前条件、事後条件、いかなる場合でも不変である状態(条件)、を明らかにし、文書化する手法だ。機能や関数/メソッドが想定している範囲を明らかにし、想定外の使われ方を防ぐことにより不具合防止を支援する。 条件をソースコードに含めておき、条件を満たさない場合に、実行をやめたりするものを契約プログラミング(Programming by contract)と呼ぶ。assertのような言語仕様を使ったり、例外処理を使ったりして、機能や関数/メソッドが想定外の使われ方をしていることを明らかにする。 外部仕様に相当するドキュメントにはこれらの条件が比較的記述されていることが多いように思う。詳細設計、内部仕様やソースコードに記す場合には、対象の数が多くなることもあり、網羅的に記述するのはしんどいところだろう。形式的でないドキュメントに
契約による設計(Design by Contract) プログラムの品質向上手法として、契約による設計(Design by Contract、以下DBC)という手法があります。DBCでは、あるオブジェクトに対するメソッド呼び出しを行っているとき、プログラムが正しく動作している際に満たされるべき条件として、以下の3条件を規定しておきます。 事前条件…… メソッド呼び出し時の引数が満たすべき条件 事後条件…… メソッドによる処理が終了した時点で満たすべき条件 不変条件…… メソッドによる処理により変化しないものを規定する条件 以上の3条件のうちいずれかの条件が満たされない場合、プログラムは正しく動作していない、つまりバグがあることになります。 例として、ある実数xの平方根yを計算するメソッドを作成する場合の事前条件と事後条件について考えます。実数xが0以上の値でなければ平方根を求めることができ
∞ /notes/setting-up-contracts-for-java-in-eclipse | 2011-02-07 | eclipse java programming Setting up Contracts for Java in Eclipse Cross-posted to: https://fsteeg.wordpress.com/2011/02/07/setting-up-contracts-for-java-in-eclipse/ On Friday, Contracts for Java was announced on the Google Open Source Blog. Learning about this at the beginning of the weekend was perfect timing for me: I had time to c
Java Programming Language Googleの20%プロジェクトからJava向けの新しい技術「cofoja (Contracts for Java)」が公開された。既存の実装に大きく手を加えることなく、デバッグをより簡単にしてくれる効果が期待できる。バグは些細なコードが起こすものだったりするが、それを追跡して発見するのは時に困難を極める。これは問題が発生した箇所と、実際にバグがある箇所が大きく離れていることが理由になっていることもある。問題発生箇所とバグ発生箇所を近くにまとめることができれば、それだけバグ発見も取り組みやすくなる。 cofojaはこれを簡単に実現するための技術。インタフェースに制約表現を追加可能にするところがポイントとなっており、クラスの実装に手を加えなくてもインタフェースに制約表記を追加することで実行時にチェックできるようになる。ブログに掲載されている
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く