Symbolic Model Verifier
Der Symbolic Model Verifier (SMV) ist ein Werkzeug zur Modellprüfung (englisch Model Checking). Dieser Model Checker prüft endliche Zustandsautomaten (engl. finite state machines) mit der temporalen Logik CTL. SMV wurde von Kenneth L. McMillan im Rahmen seiner Doktorarbeit[1] an der Carnegie Mellon University entwickelt.
Technologie
Die Eingabesprache erlaubt es, einen Automaten synchron, asynchron, detailliert oder abstrakt zu beschreiben. In der Sprache gibt es nur finite Datentypen, also boolesche Variablen, skalare Variablen und feste Arrays. Statische, strukturierte Datentypen können jedoch erstellt werden.
CTL unterstützt die präzise Definition von zeitlichen Eigenschaften wie Safety, Lebendigkeit, Fairness oder Deadlock-Freiheit. Um die Modelle zu prüfen, verwendet SMV einen symbolischen Algorithmus, der auf geordneten binären Entscheidungsdiagrammen (OBDD) basiert.
Eingabedatei
Die Eingabedatei enthält die Beschreibung des Zustandsautomaten und die Anforderungsspezifikation in der Eingabesprache von SMV.
Darstellung von Zuständen
Die Zustände werden durch Enumerationen dargestellt. Das Verhalten kann nicht-deterministisch spezifiziert werden. Nicht initialisierte Variablen entsprechen (externen) Ereignissen. Sie können während des Model-Checkings geprüft werden. Mit SMV kann das Systemmodell in mehrere Module aufgeteilt werden. Diese Module dienen der besseren Verständlichkeit und dem Modellieren von Interaktionen zwischen Systemkomponenten.
Interaktionen zwischen Systemkomponenten
Die Interaktion zwischen den Systemkomponenten kann synchron oder asynchron erfolgen. Synchron bedeutet beispielsweise, dass alle Module nebenläufig an einem Takt orientiert sind. Bei einer asynchronen Ausführung haben die Prozesse unterschiedliche Ausführungszeiten.
Bei der Verifikation kann Fairness erzwungen werden, indem die Prüfung sich auf bestimmte Ausführungspfade beschränken lässt, längs derer eine Formel unendlich oft wahr ist. Somit kann ein fairer Zugriff auf Betriebsmittel erzwungen werden. Keinem der Prozesse wird ein Betriebsmittel für immer entzogen.
Aktuelle Version
Das letzte Release von SMV ist Version 2.5 für Windows NT aus dem Jahr 1998. Der Model Checker läuft auf SunOS 5, Solaris, Linux, Ultrix.
NuSMV
NuSMV wurde in einem Gemeinschaftsprojekt vom ITC-IRST (Istituto Trentino di Cultura, Istituto per la Ricerca Scientifica e Tecnologica in Trient), der Carnegie Mellon University, der Universität Genua und der Universität Trient als aktualisierte Version von SMV entwickelt. Es handelt sich dabei um eine Neuimplementierung und Erweiterung von SMV. So unterstützt NuSMV Model Checking mittels eines SAT solvers. Es wurde als offene Architektur entworfen und findet rege Verwendung in anderen Projekten.
NuSMV-2 ist als quelloffene Software unter der LGPL veröffentlicht worden.
Die neueste Version von NuSMV ist Version 2.6.0[2] NuSMV-2 kann unter den meisten gängigen Betriebssystemen, die den POSIX-Standard unterstützen, kompiliert werden. Auf der Website wird auch ein Windows-Installer angeboten.
Literatur
- Kenneth Mc Millan: Symbolic Model Checking. Kluwer, 1993, ISBN 0-7923-9380-5.
- Edmund M. Clarke, Orna Grumberg, Doron A. Peled: Model Checking. The MIT Press, 1999, ISBN 0-262-03270-8.
- Béatrice Bérard, Michel Bidoit, Alain Finkel: Systems and Software Verification: Model-Checking Techniques and Tools. Springer, 2001, ISBN 3-540-41523-8.
Weblinks
Einzelnachweise
- ↑ Kenneth McMillan: Symbolic Model Checking. Kluwer, 1993.
- ↑ NuSMV: a new symbolic model checker
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.