Seznam nástrojů pro kontrolu modelů - List of model checking tools
Tento článek uvádí kontrola modelu nástroje a dává syntetický přehled o jejich funkcích.
Přehled některých nástrojů pro kontrolu modelu
Následující tabulka obsahuje modeláře, kteří mají
(1) webovou stránku, ze které lze stáhnout,
(2) deklarovanou licenci,
(3) popis zveřejněný v archivované literatuře a
(4) článek z Wikipedie, který to popisuje.
V následující tabulce jsou použity následující zkratky:
- Ekvivalence:
- SB: Silná bisimulace
- WB: Slabá bisimulace
- BB: Větvení bisimulace
- STE: Silná stopová ekvivalence
- WTE: Slabá stopová ekvivalence
- já: May Equivalence
- ME: Must Equivalence
- OE: Pozorovací ekvivalence
- SE: Rovnocennost bezpečnosti
- t * E: tau * .a Rovnocennost
- Softwarová licence:
- FUSC: Zdarma za určitých podmínek (např. Zdarma pro akademické pracovníky)
název | Kontrola modelu | Kontrola rovnocennosti | GUI | Dostupnost | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Prostý, pravděpodobnostní, stochastický, ... | Modelovací jazyk | Vlastnosti | Podporované ekvivalence | Generování pultového příkladu | GUI | Grafická specifikace | Vizualizace příkladu čítače | Softwarová licence | Použitý programovací jazyk | Platforma / OS | |
VÝBUCH | Analýza kódu | C | Monitorujte automaty | Ano | Ne | Ne | Ne | Volný, uvolnit | OCaml | Související s Windows a Unix | |
CADP | Prostý a pravděpodobnostní | LOTOS, FC2, FSP, LNT | AFMC, MCL, XTL | SB, WB, BB, OE, STE, WTE, SE, tau * E | Ano | Ano | Ne | Ano | FUSC | C, Bourneova skořápka, Tcl /Tk, LOTOS, LNT | Mac OS, Linux, Solaris, Windows |
CPAchecker | Analýza kódu | C | Monitorujte automaty | Ano | Ano | Ne | Ano | Volný, uvolnit | Jáva | Žádný | |
SEN | Reálný čas | C ++, Časované automaty | Monitorujte automaty | Ano | Ne | Ne | Ne | Volný, uvolnit | C ++ | Související s Windows a Unix | |
Java Pathfinder | Prostý a načasovaný | Jáva | neznámý | Ne | Ano | Ne | Ne | Smlouva o otevřeném zdroji | Jáva | Mac OS, Windows, Linux | |
LTSmin | Prostý, v reálném čase | Promela, μCRL, mCRL2, Vstupní jazyk DVE | μ-kalkul, LTL, CTL * | SB, BB | Ano | Ne | Ne | Ne | Volný, uvolnit | C, C ++ | Unix, Mac OS X, Windows |
mCRL2 | Prostý, v reálném čase | mCRL2 | μ-kalkul | SB, BB, t * E, STE, WTE | Ano | Ano | Ne | Ano | Volný, uvolnit | C ++ | Mac OS, Linux, Solaris, Windows |
MRMC | Pravděpodobný v reálném čase | Prostý MC | CSL, CSRL, PCTL, PRCTL | SB | Ne | Ne | Ne | Ne | Volný, uvolnit | C | Windows, Linux, Mac OS |
NuSMV | Prostý | Vstupní jazyk SMV | CTL, LTL, PSL | Ano | Ne | Ne | Ne | Volný, uvolnit | C | Unix, Windows, Mac OS X | |
PAT | Prostý, v reálném čase, pravděpodobnostní | CSP #, Časovaný CSP, Pravděpodobnostní CSP | LTL, Tvrzení | Ano | Ano | Ano | Ano | Volný, uvolnit | C# | Windows, jiné OS s Mono | |
HRANOL | Pravděpodobnostní | PEPA, Jazyk PRISM, prostý MC | CSL, PLTL, PCTL | Ne | Ano | Ne | Ne | Volný, uvolnit | C ++, Jáva | Windows, Linux, Mac OS | |
ROZTOČIT | Prostý | Promela | LTL | Ano | Ano | Ne | Ano | FUSC | C, C ++ | Související s Windows a Unix | |
TAPAAL | Reálný čas | Petriho sítě s časovaným obloukem, věkové invarianty, inhibiční oblouky, transportní oblouky | Podmnožina TCTL | Ne | Ano | Ano | Ano | Volný, uvolnit | C ++, Jáva | Mac OS, Windows, Linux | |
TAPA | Prostý | CCSP | CTL, μ-kalkul | SB, WB, BB, STE, WTE, já, ME, OE | Ano | Ano | Ano | Ano | Volný, uvolnit | Jáva | Windows, Mac OS a Unix |
UPPAAL | Reálný čas | Časované automaty Podmnožina C. | Podmnožina TCTL | Ano | Ano | Ano | Ano | FUSC | C ++, Jáva | Mac OS, Windows, Linux | |
ROMEO | Reálný čas | Time Petriho sítě, stopkové parametrické Petriho sítě | Podmnožina TCTL | Ano | Ano | Ano | Ne | Volný, uvolnit | C ++, tcl / tk | Mac OS, Windows, Linux | |
TLA + Kontrola modelu (TLC) | Prostý | TLA +, PlusCal | TLA | Ano | Ano | Ano | Ne | Volný, uvolnit | Jáva | Mac OS, Windows, Linux |
Modelovací jazyky
- CCSP: Procesní kalkul získaný z CCS začleněním některých provozovatelů CSP. Definuje to Olderog[1] a van Glabbeek / Vaandrager.[2]
- CSP: Komunikace sekvenčních procesů; formální jazyk pro popis vzorů interakce v souběžných systémech. FDR2 je nástroj pro zdokonalení kontroly pro CSP, který porovnává dva modely z hlediska kompatibility.
- Vstupní jazyk DVE: systém je popsán jako síť rozšířených strojů konečného stavu komunikujících prostřednictvím sdílených proměnných a kanálů bez vyrovnávací paměti. Neobsahuje podporu pro kanály v mezipaměti a pro kontrolu typu zprávy, která má být přijata, aniž by provedla správné přijetí.
- FC2: (Common Format V2) Reprezentace ASCII na úrovni stroje pro synchronizované (hierarchické) sítě automatů. Definováno akcí Esprit Basic Research Action CONCUR, 1992. Používá se jako vstupní a výměnný formát řadou ověřovacích nástrojů, zejména v oblasti procesních algeber.
- FSP: Finite State Processes language definovaný na Imperial College.
- Jáva: Objektově orientovaný programovací jazyk.
- LNT: LOTOS nová technologie; specifikační jazyk inspirovaný procesními kalkulemi, funkčními programovacími jazyky a imperativním programovacím jazykem; LNT byl navržen jako moderní náhrada za LOTOS a E-LOTOS.
- LOTOS: Specifikace jazyka dočasného objednání (norma ISO 8807); jazyk formální specifikace založený na časovém uspořádání použitý pro specifikaci protokolu v normách ISO OSI.
- PEPA: Algebra procesu hodnocení výkonu; je to stochastická procesní algebra určená pro modelování počítačových a komunikačních systémů.
- Plain MC: jednoduché formáty textových souborů používané v MRMC a PRISM.
- Promela: Meta jazyk procesu nebo protokolu; je to ověřovací modelovací jazyk. Jazyk umožňuje dynamické vytváření souběžných procesů k modelování například distribuovaných systémů.
- TLA +: Univerzální specifikační jazyk založený na časové logice akcí, původně používaný pro distribuované a souběžné systémy. Jazyk specifikací a jejich vlastností je stejný.
Vlastnosti
- AFMC: Bez střídání modální μ-kalkul.
- Tvrzení: Prohlášení imperativního tvrzení.
- CSL: Continuous Stochastic Logic, charakterizuje bisimulaci kontinuálních Markovových procesů.
- CSRL: Continuous Stochastic Reward Logic; logika specifikující míry nad CTMC rozšířená o strukturu odměn (tzv. Markovovy modely odměn).
- CTL: Logika výpočetního stromu; logika větvícího času, což znamená, že jeho model času je stromová struktura, ve které není určena budoucnost; v budoucnu existují různé cesty, z nichž každá může být skutečnou cestou, která je realizována.
- LTL: Lineární temporální logika; modální časová logika s modalitami odkazujícími na čas.
- MCL: Model Checking Language; Bez střídání Modální μ-kalkul rozšířeno o uživatelsky přívětivé regulární výrazy a konstrukty předávající hodnotu; subsumy CTL a LTL.
- mCRL2 mu-počet: Kozenův výrok modální μ-kalkul (kromě atomových propozic), rozšířeno o: procesy závislé na datech, kvantifikace přes datové typy, multi-akce, čas a pravidelné vzorce.
- PCTL: Pravděpodobnostní CTL; rozšíření CTL, které umožňuje pravděpodobnostní kvantifikaci popsaných vlastností.
- PLTL: Pravděpodobnostní lineární časová logika.
- PRCTL: Pravděpodobnostní logika stromu výpočtu odměn; rozšiřuje se PCTL s vlastnostmi ohraničenými odměnou.
- PSL: Jazyk specifikace vlastnosti
- SVA: SystemVerilog podmnožina jazyka pro uplatnění norem, standardizovaná jako IEEE 1800
- XTL: eXtended Temporal Language; jazyk specifický pro doménu pro rychlou implementaci kontrolních modelů založených na akcích, explicitním stavu a předávání hodnot.
Porovnání nástrojů pro kontrolu modelu
Vědecké publikace
Existuje několik článků, které systematicky porovnávají různé modely kontroly na společné případové studii. Srovnání obvykle pojednává o kompromisech modelování, kterým čelí při použití vstupních jazyků každého modelu kontroly, a také o srovnání výkonů nástrojů při ověřování vlastností správnosti. Lze zmínit:
- V roce 1999 Judi Romijn porovnala dva modely dámy (CADP a ROZTOČIT ) o interoperabilitě audio-video protokolu HAVi pro spotřební elektroniku.[3]
- V roce 2003 Yifei Dong, Xiaoqun Du, Gerard J. Holzmann a Scott A. Smolka zveřejnili srovnání čtyř modelových dám (jmenovitě: Cospan, Murphi, ROZTOČIT a XMC) na komunikačním protokolu, GNU i-protokolu.[4]
- V roce 2005 publikovali Elena M. Bortnik, Nikola Trcka, Anton Wijs, Bas Luttik, J. M. van de Mortel-Fronczak, Jos C. M. Baeten, Wan Fokkink a J. E. Rooda srovnání čtyř modelových dám (jmenovitě: CADP, muCRL, ROZTOČIT, a UPPAAL ) na systému průmyslové výroby, rotační vrtačku.[5]
- V roce 2018 publikovali F. Mazzanti a A. Ferrari srovnání deseti modelových dám (jmenovitě: CADP Nástroje CPN, FDR4, NuSMV / nuXmv, mCRL2, ProB, ROZTOČIT, TLA +, UMC a UPPAAL ) o problému dohledu nad vlakem, s přihlédnutím jak k uživatelské přívětivosti jazyků, tak k výkonu nástrojů.[6]
Mezinárodní softwarové soutěže
- Od roku 2007 Soutěž o kontrolu hardwarového modelu (HWMCC) porovnává výkonnost nástrojů pro kontrolu modelů orientovaných na návrh hardwaru.
- Od roku 2011 Soutěž o kontrolu modelu (MCC) porovnávají výkon nástrojů pro kontrolu modelů určených k analýze vysoce souběžných systémů.
Společné referenční hodnoty
- MCC (modely soutěže Model Checking Contest): sbírka stovek Petriho sítí pocházející z mnoha akademických a průmyslových případových studií.
- VLTS (Very Large Transition Systems): sbírka označených přechodových systémů rostoucí velikosti, používaných v mnoha vědeckých publikacích.
Reference
- ^ E.R. Starší: Provozní sémantika Petriho sítě pro CCSP
- ^ Rob van Glabbeek, Frits Vaandrager: Struktury událostí a CCSP
- ^ Romijn, Judi (červen 1999). Model Kontrola volebního protokolu vůdce HAVi (Technická zpráva). Amsterdam: CWI. SEN-R9915. Shrnutí ležel.
- ^ Dong, Yifei; Du, Xiaoqun; Holzmann, Gerard; Smolka, Scott (2003). „Fighting Livelock in the GNU i-Protocol: A Case Study in Explicit-State Model Checking“. Softwarový nástroj pro přenos technologií. 4 (4): 505–528.
- ^ Bortnik, Elena M .; Trcka, Nikola; Wijs, Anton; Luttik, Bas; van de Mortel-Fronczak, J. M .; Baeten, Jos C. M .; Fokkink, Wan; Rooda, J. E. (2005). „Analýza a chi model gramofonového systému využívající Spin, CADP a Uppaal " (PDF). Journal of logických a algebraických metod v programování. 65 (2): 51–104. doi:10.1016 / j.jlap.2005.05.001.
- ^ Mazzanti, Franco; Ferrari, Alessio (2018). „Deset různorodých formálních modelů pro systém automatického dohledu vlaků CBTC“. Sborník z 3. semináře o modelech pro formální analýzu reálných systémů a 6. mezinárodního semináře o ověřování a transformaci programů (MARS / VPT’18), Soluň, Řecko. Elektronické sborníky z teoretické informatiky. 268. str. 104–149. arXiv:1803.10324v1. doi:10.4204 / EPTCS.268.4.
externí odkazy
- Nástroje: databáze nástrojů pro ověřování
- Seznam nástrojů pro ověření a syntézu (public domain repository on GitHub)
- Seznam ověřovacích nástrojů pro pravděpodobnostní, stochastické, hybridní a časované systémy
Ostatní modeláři, kteří ještě nemají stránku Wikipedie:
- AcPeg,
- AlPiNA,
- Kontrola AltaRica (ARC),
- APMC,
- BANDERA,
- BOGOR,
- CADENCE SMV,
- CMurphi,
- CBMC,
- CWB-NC,
- BOŽSKÝ,
- DSVerifier,
- EBMC,
- Edinburgh CWB,
- EmbeddedValidator,
- ESBMC,
- Expander2,
- Fc2Tools,
- OZUBENÉ KOLO,
- Kronos,
- Zlepšit,
- Intrepyd,
- JasperGold,
- LLBMC,
- LTSA,
- μCRL,
- Marcie,
- McErlang,
- MCMAS,
- Náměsíčný,
- nuXmv,
- ompca,
- ProB,
- PMC,
- PSCV,
- Kontrola vlastnosti Questa (PropCheck),
- Reactis Tester,
- ČERVENÉ,
- SAL,
- SATABS,
- SATMC,
- SLMC,
- CHYTRÝ,
- Bod,
- SSG,
- SyncStitch,
a
- Tina.