Formal Analysis of a Space-Craft Controller Using SPIN

  • Authors:
  • Klaus Havelund;Mike Lowry;John Penix

  • Affiliations:
  • NASA Ames Research Center, Moffitt Field, CA;NASA Ames Research Center, Moffitt Field, CA;NASA Ames Research Center, Moffitt Field, CA

  • Venue:
  • IEEE Transactions on Software Engineering
  • Year:
  • 2001

Quantified Score

Hi-index 0.02

Visualization

Abstract

This paper documents an application of the finite state model checker Spin to formally analyze a multithreaded plan execution module. The plan execution module is one component of NASA's New Millennium Remote Agent, an artificial intelligence-based space-craft 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 multithreaded Common Lisp. Esl supports the construction of reactive control mechanisms for autonomous robots and space-craft. 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 five 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.