情報科学 › ソフトウェア設計とテスト › 契約による設計

契約:事前条件と事後条件

定義 2.2(「契約による設計」§2)

状態(変数の値の割り当て)の集合を Σ\Sigma とする。Σ\Sigma の部分集合を表明という。表明 PP と状態 σ\sigma について、σ∈P\sigma \in P を P(σ)P(\sigma) とも書き、「σ\sigma で PP が成り立つ」と読む。

操作 mm の契約とは、表明の組 (P,Q)(P, Q) をいう。PP を事前条件、QQ を事後条件という。契約 (P,Q)(P, Q) は次の約束を表す。

  • 呼び出し側の義務: PP が成り立つ状態でだけ mm を呼ぶ。
  • 実装側の義務: PP が成り立つ状態から実行を始めて止まったなら、止まった状態で QQ が成り立つ。

表明 P,P′P, P' について、P⊆P′P \subseteq P' のとき P⇒P′P \Rightarrow P' と書き、PP は P′P' より強い、P′P' は PP より弱いという。P∧P′=P∩P′P \wedge P' = P \cap P'、P∨P′=P∪P′P \vee P' = P \cup P'、¬P=Σ∖P\lnot P = \Sigma \setminus P、true=Σ\mathrm{true} = \Sigma、false=∅\mathrm{false} = \emptyset と書く。

本文で読む(前後の説明と例)→

閉包の状態

定義

定義は閉包の起点です(証明を要しません)。

印の意味: ✓公理まで証明済み ・ △証明あり(閉包未完)・ ※主張のみ。テーマごとの集計は 閉包の状況。

これを使っている定理

証明で明示的に参照している定理は、まだありません。

関連するノック 1 問