Validace modelu
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 26. srpna 2019; kontroly vyžadují
2 úpravy .
Model checking ( model checking , anglicky model checking ) je metoda automatického formálního ověřování paralelních systémů s konečným počtem stavů, umožňuje kontrolovat, zda daný model systému splňuje formální specifikace.
Jako model se obvykle používá tzv. Kripkeho model , který je formálně definován následovně: , kde je množina stavů, je množina počátečních stavů, je přechodový poměr, je označovací funkce.





Specifikace jsou obvykle uvedeny v jazyce formální logiky. Pro specifikaci hardwaru a softwaru se zpravidla používá temporální logika - speciální jazyk, který umožňuje popsat chování systému v čase.
Důležitou otázkou specifikace je úplnost. Metoda kontroly modelu umožňuje ověřit, že model navrhovaného systému odpovídá dané specifikaci, nelze však určit, zda daná specifikace pokrývá všechny vlastnosti, které musí systém splňovat.
Hlavní úskalí, kterou je třeba v průběhu testování na modelech překonat, souvisí s kombinatorickým efektem exploze ve stavovém prostoru. K tomuto problému dochází v systémech s mnoha komponentami, které se vzájemně ovlivňují, a také v systémech s datovými strukturami, které mohou nabývat velkého počtu hodnot.
Nástroje
- BLAST - statický analyzátor C - programů
- CADP (Construction and Analysis of Distributed Processes) je návrhový nástroj pro protokoly a distribuované systémy
- CHESS je nástroj pro testování vícevláknových programů pro .Net ( spravované ) a Win32, 64
- ISP - ověřovatel programového kódu MPI
- Java Pathfinder je bezplatný nástroj pro kontrolu vícevláknových programů Java .
- MoonWalker je bezplatný nástroj pro testování programů .Net
- MRMC (Markov Reward Model Checker)
- NuSMV - symbolický ověřovatel
- PRISM - pravděpodobnostní symbolický ověřovatel
- Králík - ověřovač pro systémy reálného času
- SPIN je univerzální ověřovač pro kontrolu správnosti distribuovaných programů a protokolů
- Vereofy - programový ověřovatel komponentních systémů
- μCRL2 je bezplatný nástroj založený na ACP
- UPPAAL je sada nástrojů pro modelování, verifikaci a validaci systémů v reálném čase modelovaných jako sítě časových automatů
- Zing [1] je sada nástrojů pro vývoj ovladačů společnosti Microsoft , která umožňuje kontrolovat stavové modely souběžného softwaru.
Poznámky
- ↑ Zing . Získáno 18. července 2018. Archivováno z originálu 18. července 2018. (neurčitý)
Literatura
- Clark E. M., Gramberg O., Peled D. Verifikace programových modelů. Kontrola modelu. - M. : MTSNMO, 2002. - 416 s. — ISBN 5940570542 .
- Karpov Yu. G. Kontrola modelů. Verifikace paralelních a distribuovaných softwarových systémů. - Petrohrad. : BHV-Petersburg, 2009. - 460 s. — ISBN 9785977504041 .
- Velder S. E., Lukin M. A., Shalyto A. A., Yaminov B. R. Ověření automatických programů. - Petrohradská státní univerzita ITMO, 2011. - 242 s.
Odkazy