リファインメント:抽象レベルの異なる2つの仕様の関係
事後状態の存在や不変量の保存だけは足りない
→ リファインメント
P.67~
P.68下~
正しさを確認しながら詳細化を進める
P.69上~
例えば、抽象的に表現された操作を、プログラミング言語で具体化する
P.69中~
初期仕様が正しいこと前提
省略
[ex6-2] 形式手法を用いて、正しさを確認しながら詳細化を進めたとしてもバグが残る原因はどれですか
詳細化:垂直リファインメント
機能追加:水平リファインメント
P.70中~
追加した機能が、既にあったものを壊してないことを確認
P.70下~
順序は任意
省略
[ex6-3] どちらに相当しますか:既に作り込んだ機能を保った上で新しい機能を作り込んだ
[ex6-4] どちらに相当しますか:形式仕様言語で書かれた仕様に基づきプログラミングを行なった
[ex6-5] あるオペレーションについて上位と下位の2つのレベルで考えるとき、考えるべき状態の数はいくつですか
教科書(図はすべてこちらより引用):
中島震,「形式手法入門―ロジックによるソフトウェア設計―」,オーム社