形式 手法
![](https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Agendacumple_en_Z.jpg/170px-Agendacumple_en_Z.jpg)
分類
[水準 0形式 仕様 記述 を行 い、プログラム自体 を非 形式 主義 的 に行 う。「軽 い形式 手法 」と呼 ぶ。費用 対 効果 が早 く得 ることができる選択 である。水準 1形式 手法 を使 って開発 と検証 を行 い、より形式 主義 的 にプログラムを生成 する。例 えば、仕様 記述 からのプログラム作成 において詳細 化 と属性 の証明 を行 う。高信頼 システムに適 した選択 である。水準 2自動 定理 証明 によって完全 に機械 的 な証明 を行 う。道具 を整備 するのに費用 がかかるか、厳密 である必要 がありシステムを記述 するのに手間 がかかる。間違 いが混入 することで生 じる損失 に見合 わなければ実施 しない(例 えば、マイクロプロセッサ設計 の重要 な部分 など)。
プログラム
表示 的 意味 論 表示 的 意味 論 では、システムの意味 は領域 理論 で表現 する。この場合 、領域 理論 の性質 によってシステムの意味 を与 える。しかし、あらゆるシステムが関数 に直感 的 に表現 できるわけではないとも言 われている。操作 的 意味 論 操作 的 意味 論 では、より単純 な計算 モデルの一連 の動作 によってシステムの意味 を表現 する。この場合 、モデルの単純 性 が表現 を明確 にする。しかし、これは意味 論 的 な判断 の先 延 ばしとも言 われている(つまり、使用 された単純 な計算 モデルの意味 論 の定義 はどうなるのか?)。公理 的 意味 論 公理 的 意味 論 では、システムがある処理 を行 う前 と後 の(真 なる)状態 によってシステムの意味 を表現 する。この場合 、古典 的 論理 学 と関係 が深 い。しかし、単 に実行 前 と実行 後 の状態 を示 しただけで実際 にシステムが何 をするかを表現 したことになるのかとの疑念 も言 われている。
軽量 (light weight)形式 手法
[利用
[仕様 記述
[開発
[操作 的 意味 論 に基 づく形式 仕様 記述 の場合 、実際 のシステムの動作 と仕様 上 の動作 (それ自体 が実行 可能 /シミュレート可能 )を比較 する。さらにツールによってはそのような仕様 記述 から自動的 にコードを生成 するものもある。公理 的 意味 論 に基 づく形式 仕様 記述 の場合 、仕様 に記 された事前 状態 と事後 状態 が実行 コード内 にアサーションとして組 み込 まれる。
検証
[人間 による証明
[このような
自動 証明
[これらシステムの
批評
[主 な形式 手法 とその記述 法
[- アクターモデル
- プロセス
計算 - ペトリネット
抽象 状態 機械 (ASM)- Alloy
- ANSI/ISO C Specification Language (ACSL)
- B-Method
- CADP
- Common Algebraic Specification Language (CASL)
- Esterel
- Lustre
- mCRL2
- Perfect Developer
- RAISE
- Rebeca Modeling Language
- SPARK Ada
- Specification and Description Language (SDL)
- Temporal logic of actions (TLA)
- uppaal
- USL
- VDM
- VDM-SL
- VDM++
- Z
言語
モデルチェッカ
脚注
[- ^ R. W. Butler (2001
年 8月 6日 ). “What is Formal Methods?”. 2006年 11月16日 閲覧 。 - ^ C. Michael Holloway. Why Engineers Should Consider Formal Methods. 16th Digital Avionics Systems Conference (27–30 October 1997). オリジナルの2006
年 11月16日 時点 におけるアーカイブ。 2006年 11月16日 閲覧 。. - ^ Monin & Hinchey 2003, pp. 3–4
- ^ Daniel Jackson and Jeannette Wing, "Lightweight Formal Methods", IEEE Computer, 1996
年 4月 - ^ Vinu George and Rayford Vaughn, "Application of Lightweight Formal Methods in Requirement Engineering", Crosstalk: The Journal of Defense Software Engineering, 2003
年 1月 - ^ Daniel Jackson, "Alloy: A Lightweight Object Modelling Notation", ACM Transactions on Software Engineering and Methodology (TOSEM), Volume 11, Issue 2 (2002
年 4月 ), pp. 256-290 - ^ Richard Denney, Succeeding with Use Cases: Working Smart to Deliver Quality, Addison-Wesley Professional Publishing, 2005, ISBN 0-321-31643-6.
- ^ Sten Agerholm and Peter G. Larsen, "A Lightweight Approach to Formal Methods", In Proceedings of the International Workshop on Current Trends in Applied Formal Methods, Boppard, Germany, Springer-Verlag, 1998
年 10月 - ^ Backus, J.W. (1959). "The Syntax and Semantics of the Proposed International Algebraic Language of Zürich ACM-GAMM Conference". Proceedings of the International Conference on Information Processing. UNESCO.
- ^ Knuth, Donald E. (1964), Backus Normal Form vs Backus Naur Form. Communications of the ACM, 7(12):735–736.
- ^ フレデリック・ブルックス、『
銀 の弾 などない』 (No Silver Bullet) 、1986年
参考 文献
[- Monin, Jean François; Hinchey, Michael G. (2003), Understanding formal methods, Springer, ISBN 1-85233-247-6
- Jonathan P. Bowen and Michael G. Hinchey, Formal Methods. In Allen B. Tucker, Jr. (ed.), Computer Science Handbook, 2nd edition, Section XI, Software Engineering,Chapter 106, pages 106-1 – 106-25, Chapman & Hall / CRC Press, Association for Computing Machinery, 2004.
- Michael G. Hinchey, Jonathan P. Bowen, and Emil Vassev, Formal Methods. In Philip A. Laplante (ed.), Encyclopedia of Software Engineering, Taylor & Francis, 2010, pages 308–320.
この
関連 項目
[自動 定理 証明 契約 プログラミング形式 仕様 記述 形式 的 検証 形式 体系 - モデル
検査 - ソフトウェア
工学 仕様 記述 言語 - ベストプラクティス
形式 手法 が根拠 となる理論 に基 づく科学 的 手法 であるのに対 し、現実 の実践 を元 にする。
外部 リンク
[- Formal Methods Wiki
- Formal Methods Europe (FME)
- Formal method keyword on Microsoft Academic Search
- Foldoc:formal methods
- Evidence on Formal Methods uses and impact on Industry Supported by the DEPLOY project (EU FP7)