本ハンズオンでは、モデル検査器を自作する体験を通して、その内部的な仕組みを探「求」します。
形式手法は、システムを何らかの数学的な対象によって記述し、理論的に分析する手法の総称です。特に今回扱うモデル検査では、Kripke モデルと呼ばれるグラフ構造を探索することで、非同期系のバグを網羅的に検出することができます。古くは 1980 年代から研「究」されてきた技術ですが、近年では AWS をはじめとしたクラウドベンダや OSS でも採用されており、まさに実用が花開く普「及」期と言えるでしょう。
今回は例題として、Web 開発でありがちな「同時実行によるデータ不整合」を取り上げます。冒頭でモデル検査の考え方を解説した後、用意したスケルトンを段階的に埋める形式で、参加者自身でモデル検査器の自作と検証を体験します。
既存ツールを使用するモデル検査のチュートリアルは巷に数多ありますが、単に「ツールを動かしてみた」だけでは、その背後にある動作原理は見えません。本ハンズオンではツール自体を自作する体験を通して、シンプルな記述から複雑な挙動が生まれる驚き、そして理論を実世界に応用する面白さが実感できます。