MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Formal Analysis of a Space Craft Controller using SPIN (1998) [63 citations — 30 self]

Download:
pdf | ps
by Klaus Havelund, Mike Lowry, John Penix
In Proceedings of the 4th SPIN workshop
http://ase.arc.nasa.gov/havelund/Publications/remote-agent-ieee.ps.gz
Add To MetaCart

Abstract:

This paper documents an application of the finite state model checker SPIN to formally analyze a multi-threaded plan execution module. The plan execution module is one component of NASA's New Millennium Remote Agent, an artificial intelligence based spacecraft control system architecture which launched in October of 1998 as part of the DEEP SPACE 1 mission. The bottom layer of the plan execution module architecture is a domain specific language, named ESL (Executive Support Language), implemented as an extension to multi-threaded COMMON LISP. ESL supports the construction of reactive control mechanisms for autonomous robots and space crafts. For this case study, we translated the ESL services for managing interacting parallel goal-and-event driven processes into the PROMELA input language of SPIN. A total of 5 previously undiscovered concurrency errors were identified within the implementation of ESL. According to the Remote Agent programming team the effort has had a major impact, locating errors that would not have been located otherwise and, in one case, identifying a major design flaw. In fact, in a different part of the system, a concurrency bug identical to one discovered by this study escaped testing and caused a deadlock during an in-flight experiment 96 million kilometers from earth. The work additionally motivated the introduction of procedural abstraction in terms of inline procedures into SPIN. Index Terms-- Program verification, concurrent programs, model checking, temporal logic, program abstraction, model extraction, spacecraft software.

Citations

714 Design and Validation of Computer Protocols – Holzmann - 1991
407 Construction of abstract state graphs with PVS – Graf, Saïdi - 1997
229 Model checking java programs using java pathfinder – Havelund, Presburger - 1998
186 Common LISP: The Language – Steele - 1984
172 PVS: Combining specification, proof checking, and model checking – Owre, Rajan, et al. - 1996
102 Computing abstractions of infinite state systems automatically and compositionally – Bensalem, Lakhnech, et al. - 1998
77 Experiments in theorem proving and model checking for protocol verification – Havelund, Shankar - 1996
28 Constructing compact models of concurrent java programs – Corbett - 1998
24 InVeSt: A Tool for the Verification of Invariants – Bensalem, Lakhnech, et al. - 1998
22 Plan execution for autonomous spacecrafts – Pell, Gat, et al. - 1997
17 Modeling and Validation of Java Multithreading Applications using SPIN – Demartini, Iosif, et al. - 1998
10 Applying model checking in Java verification – Havelund, Skakkebaek - 1999