A case study in domain-customized model checking for real-time component software

  • Authors:
  • Matthew Hoosier;Matthew B. Dwyer; Robby;John Hatcliff

  • Affiliations:
  • Kansas State University, Manhattan, KS;University of Nebraska, Lincoln, NE;Kansas State University, Manhattan, KS;Kansas State University, Manhattan, KS

  • Venue:
  • ISoLA'04 Proceedings of the First international conference on Leveraging Applications of Formal Methods
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Despite a decade of intensive research on general techniques for reducing the complexity of model checking, scalability remains the chief obstacle to its widespread adoption. Past experience has shown that domain-specific information can often be leveraged to obtain state-space reductions that go beyond general purpose reductions by customizing existing model checker implementations or by building new model-checking engines dedicated to a particular domain. Unfortunately, these strategies limit the dissemination of model checking across a number of domains since it is often infeasible for domain experts to build their own dedicated model checkers or to modify existing model checking engines. To enable researchers to more easily tailor a model checking engine to a particular software-related domain, we have constructed an extensible and highly explicit-state software model checking framework called Bogor. In this paper, we describe our experience in customizing Bogor to check design models of avionics systems built using real-time CORBA component-based middleware. This includes modeling the semantics of a real-time CORBA event channel as a Bogor abstract data type, implementing a customized distributed state-space exploration algorithm that leverages the quasi-cyclic nature of periodic real-time computation, and encapsulating the Bogor checking engine in a robust full-featured development environment called Cadena that we have built for designing, analyzing, synthesizing, and implementing systems using the CORBA Component Model.