SPINモデルチェッカとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > SPINモデルチェッカの意味・解説 

SPINモデルチェッカ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/07/14 08:42 UTC 版)

SPINモデルチェッカ: SPIN model checker)は、ソフトウェアのモデル検査のためのツールである。Gerard J. Holzmann らが開発し、15年以上に渡って改良を続けてきた。2001年Association for Computing Machinery (ACM) のソフトウェアシステム賞を受賞している。1995年以来、ほぼ毎年モデル検査に興味のある SPIN ユーザーや研究者による SPIN ワークショップが開催されている。

概要

SPIN(Simple Promela INterpreter)は、オートマトンに基づく模型検査器(model checker)。検査対象のシステムは専用の言語Promela (Process Meta Language) で記述される。Promela は、非同期分散アルゴリズムを非決定的オートマトンとしてモデル化する。検証される属性は線形時相論理の論理式で表される。この論理式の否定形をBüchiオートマトンに変換して Promela のモデルと合成し、モデル検査アルゴリズムの一部とする。モデル検査の他に、SPIN はシミュレータとしても操作可能であり、システムのとりうる実行経路の1つを実行し、そのトレース結果をユーザーに示す。

多くのモデルチェッカとは異なり、SPIN はモデル検査そのものを実施するわけではなく、その問題に固有のモデルチェッカのC言語ソースを生成する。このような若干古い技法を使うことでメモリ使用量を削減し、性能を向上させると共に、モデルにユーザーが自由にCのコードを追加できるという利点がある。SPIN では性能向上やメモリ使用量削減のために以下のような様々なオプションを用意している。

  • 半順序法(partial order reduction)
  • 状態データ圧縮
  • ビット状態ハッシング(状態情報全体を格納するのではなく、ハッシュコードをビットフィールドで記憶する。完全性は犠牲になるが、メモリを大幅に削減できる)
  • 弱い公平性の施行(weak fairness enforcement)

GUI として XSpin,JSpin,iSpin が準備されている。

Promela

その名前(Process Meta Language)が示すように、元来通信プロトコルの検証のために設計された言語である。検査対象であるシステムは非同期並行動作するプロセスの集まりとして記述される。C言語に似た文法を持ち、各プロセスの振る舞いを手続き的に記述する。プロセス間通信、非決定的な振る舞いを明示的に記述する文法要素を備えている。

コード内にアサーションをおくことができる。線形時相論理で記述される検証項目はモデル全体に関する性質を記述するのに対して、アサーションはそれが置かれた場所で満たすべき条件を記述する。

参考文献

  • ジェラード・J.ホルツマン, 水野忠則 (訳) "コンピュータプロトコルの設計法―正しいプロトコルの設計と検証へ導く総合解説書 "カットシステム 1994/11 ISBN 978-4906391103

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「SPINモデルチェッカ」の関連用語

SPINモデルチェッカのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SPINモデルチェッカのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのSPINモデルチェッカ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS