システム検証における基礎である、数理論理学、プログラム理論、並行システム論などに関する基礎実験を行う。形式論理や型推論システム、構造的操作的意味論、プロセス代数に基づく検証システムや、ユニットテスト・リグレッションテストといったソフトウェア工学的手法およびソフトウェア開発環境による支援技術などを取り上げ、その構築実験や実際的な問題への応用実験に取り組む。
システム検証の基礎の理解を、理論的側面だけではなく、実践的なソフトウェア工学およびプログラミング技術の側面の両面からとらえさせるのが本講義のねらいである。(
システム検証に関する技術を習得する。システム検証に対する理論的な理解と実践的な応用力を身につける。具体的には、以下の通りである。(1)システム検証に関する概要を理解する。(2)自動検証ツールの使用経験をつみ、具体的な課題への応用力を身につける。(3)機能仕様と振舞仕様の検証に関する知識と実践力を身につける。(4)プログラムの検証に関する知識を身につける。
並行システム、形式的仕様記述、モデル検査システム、デッドロック検出、構造的操作的意味論、公理的意味論、プログラム検証、プログラム解析、定理証明システム
✔ 専門力 | 教養力 | コミュニケーション力 | ✔ 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
検証ツールを用いた演習を与えつつ、授業を進行する。
授業計画 | 課題 | |
---|---|---|
第1回 | システム検証の概要 | |
第2回 | 自動検証ツール(1):表現と解析の基本 | |
第3回 | 自動検証ツール(2):簡単な例題 | |
第4回 | 機能仕様の検証(1):状態ベース仕様 | |
第5回 | 機能仕様の検証(2):正しさの基準 | |
第6回 | 機能仕様の検証(3):リファインメント | |
第7回 | 機能仕様の検証(4):モデリングと検証 | |
第8回 | 機能仕様の検証(5):オブジェクト指向設計 | |
第9回 | 中間まとめ | |
第10回 | 振る舞い仕様の検証(1):状態遷移系 | |
第11回 | .振る舞い仕様の検証(2):ロジック・モデル検査 | |
第12回 | 振る舞い仕様の検証(3):有界モデル検査 | |
第13回 | プログラムの検証(1):ソフトウェア・モデル検査 | |
第14回 | プログラムの検証(2):テストデータ自動生成 | |
第15回 | まとめ |
形式手法入門-ロジックによるソフトウェア設計」 オーム社 2012 (ISBN 978-4-274-21188-1)
「抽象によるソフトウェア設計-Alloyではじめる形式手法」 オーム社 2011(ISBN 978-4-274-06858-4)
「SPINモデル検査入門-検証モデリング」 近代科学社 2008(ISBN 978-4-7649-0353-1)
レポートにより評価
数理論理学(一階述語論理)の知識を必須とする。