Abstrakt. Vi presenterar ett ramverk för modellkontroll av samtidiga programvarusystem som omfattar både tillstånd och händelser. I motsats till andra state/event-strategier integrerar vårt arbete också två kraftfulla verifieringstekniker, kontraexempelstyrd abstraktion förfining och kompositionstänkande. Vår specifikationsspråk är en tillstånd / händelse förlängning av linjär temporal logik, och tillåter oss att uttrycka många egenskaper hos programvara på ett koncist och intuitivt sätt. Vi visar hur vanliga automatiska LTL-modeller som kontrollerar algoritmer kan anpassas till vårt ramverk utan extra kostnad, vilket gör att vi direkt kan dra nytta av den stora forskningen om effektiv LTL-verifiering. Vi har implementerat detta arbete inom vår samtidiga C-modellkontroll, MAGIC, och kontrollerat ett antal egenskaper hos OpenSSL-0.9.6c (en open-source implementation av SSL-protokollet) och Micro-C OS version 2 (ett operativsystem i realtid för inbyggda applikationer). Våra experiment visar att detta nya tillvägagångssätt inte bara underlättar skrivandet av specifikationer, men också skryter med viktiga vinster både i rymden och i tid under verifiering. I vissa fall stötte vi till och med på specifikationer som inte kunde verifieras med hjälp av traditionella ren händelsebaserade eller statsbaserade metoder, utan blev lätthanterliga inom vår stat/eventsram. Vi rapporterar en bugg i källkoden för Micro-C OS version 2, som hittades under våra experiment.
Denna formulering har fördelen att man kan anpassa tekniker som används för modellkontroll av tidsmässiga egenskaper hos samtidiga programvarusystem, inklusive motexempel-vägledd abstraktion förfining och kompositionsresonemang REF.
State/event-based software model checking
{'venue': 'In Integrated Formal Methods', 'journal': None, 'mag_field_of_study': ['Computer Science']}