Download PDFOpen PDF in browser

The MINERVA Software Development Process

16 pagesPublished: April 16, 2018


This paper presents a software development process for safety-critical software components of cyber-physical systems. The process is called MINERVA, which stands for Mirrored Implementation Numerically Evaluated against Rigorously Verified Algorithms. The process relies on formal methods for rigorously validating code against its requirements. The software development process uses: (1) a formal specification language for describing the algorithms and their functional requirements, (2) an interactive theorem prover for formally verifying the correctness of the algorithms, (3) test cases that stress the code, and (4) numerical evaluation on these test cases of both the algorithm specifications and their implementations in code. The MINERVA process is illustrated in this paper with an application to geo-containment algorithms for unmanned aircraft systems. These algorithms ensure that the position of an aircraft never leaves a predetermined polygon region and provide recovery maneuvers when the region is inadvertently exited.

Keyphrases: formal methods, formal verification, model animation, software development, software validation

In: Natarajan Shankar and Bruno Dutertre (editors). Automated Formal Methods, vol 5, pages 93--108

BibTeX entry
  author    = {Anthony Narkawicz and Cesar Munoz and Aaron Dutle},
  title     = {The MINERVA Software Development Process},
  booktitle = {Automated Formal Methods},
  editor    = {Natarajan Shankar and Bruno Dutertre},
  series    = {Kalpa Publications in Computing},
  volume    = {5},
  pages     = {93--108},
  year      = {2018},
  publisher = {EasyChair},
  bibsource = {EasyChair,},
  issn      = {2515-1762},
  url       = {},
  doi       = {10.29007/5jlw}}
Download PDFOpen PDF in browser