形式手法を俯瞰する
参考
『形式手法入門』 p.10
『ソフトウェア工学の道具としての形式手法』 3章
『Formal Specification: a Roadmap』
『A Specifier's Introduction to Formal Methods』
http://www.cs.cmu.edu/~wing/publications/Wing90a.pdf
『形式手法入門』.icon p.10で参照されてる148
#WIP
形式手法
形式手法がわからない
ゼロから学んだ形式手法 - DeNA Testing Blog
形式手法の分野では3つの分野がある
形式仕様記述
モデル検査
自動定理証明
形式検証
ただし、3つは排他的なものではない
ツールに依っては複合しているものもある
形式手法の検証方法
/mrsekut-book-4883732584/021 (1.2.2 形式手法の検証方法)
証明
モデル中の仕様に矛盾がないことを数学的に証明する
証明すべき論理式を書くには相応の知識が必要
自動生成できる場合もある
仕様の修正があると証明を書き直す必要がある
モデル検査
仕様アニメーション
形式手法
ソフトウェアの多種多様な正しさを記述できるが、プログラマ側に高度な知識を要求する
ex.
ホーア論理
代数的仕様記述言語
様相論理
表示的意味論
軽量形式手法
理論に馴染みのないプログラマでも使用でき、コンパイラやリンカに埋め込むことができるもの
ex.
モデル検査
実行時モニタリング
型システム
↑の分類がわからないやつ
形式仕様記述言語
自動定理証明
形式仕様言語の分類 ref 『形式手法入門』.icon p.10
Model Oriented
記述の要素が持つ意味(構文上の要素)を、数学的な実体(意味モデル)集合、関係、列、関数などに対応させる
また、ロジック・モデル検査の方法やプロセス代数の方法では、ラベル付き遷移システムをモデルとする
意味がわからんmrsekut.icon
e.g. VDM, Z, Bメソッド
e.g. SMV, SPIN, LTSA, CCS, CSP
Property Oriented
記述の要素(構文上の要素)が満たす関係式を定義することで、要素の意味を与える
Alogebraic Specification
代数を用いてデータ型やプロセスを定義する代数仕様
Axiomatic Method
述語論理を元にした公理的な方法
実際はこんな風に明確に2分類されるわけでもない
1つの言語が複数のアプローチを使えることもある
どのような観点から対象を記述するかという分類 ref 『形式手法入門』.icon p.10
履歴に基づく仕様
実行経路の集まりからなるふるまいの仕様の取り扱いを目的とする
時相論理
状態に基づく仕様
model orientedの多くが採用している
VDM, Bメソッド
状態遷移仕様
オートマトン
SPIN
ロジックモデル検査
関数的な仕様
数学的な関数によって表現
Alogebraic Specification, HOL, PVS, Coq
操作的な仕様
ラピッドプロトタイピングなど