とあることがきっかけで、コマンドキューをもつシステムをAlloyでモデル化し検証したので、ここで紹介します。 問題 あるシステムのミドルウェアを修正することになりました。このミドルウェアは整数値をやり取りするオブジェクトを複数所有します。インタフェースは以下の通りです。 assign(v) // オブジェクトの値をvに上書きします。 copy(obj) // オブジェクトobjの値をコピーします。 getValue() // オブジェクトの値を取得します。 このミドルウェアを実装するためにライブラリを使用しています。このライブラリはオブジェクトを複数所有しています。各オブジェクトはキューを持ち、コマンドをキューに積んでから実行する必要があります。コマンドは2種類あります。 assign(v)コマンドは、値の上書きする。 copy(obj)コマンドは、オブジェクトobjの値をコピー