Software certification: coding, code, and coders

  • Authors:
  • Klaus Havelund;Gerard J. Holzmann

  • Affiliations:
  • California Institute of Technology, Pasadena, CA, USA;California Institute of Technology, Pasadena, CA, USA

  • Venue:
  • EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe a certification approach for software development that has been adopted at our organization. JPL develops robotic spacecraft for the exploration of the solar system. The flight software that controls these spacecraft is considered to be mission critical. We argue that the goal of a software certification process cannot be the development of "perfect" software, i.e., software that can be formally proven to be correct under all imaginable and unimaginable circumstances. More realistically, the goal is to guarantee a software development process that is conducted by knowledgeable engineers, who follow generally accepted procedures to control known risks, while meeting agreed upon standards of workmanship. We target three specific issues that must be addressed in such a certification procedure: the coding process, the code that is developed, and the skills of the coders. The coding process is driven by standards. The code is mechanically checked against the standards with the help of state-of-the-art static source code analyzers. The coders, finally, are certified in on-site training courses that include formal exams.