06ECSS and NASA guidelines for space software
The standards ECSS and NASA set for flight software: what they require, how criticality drives cost, and where the two families differ.
T minus 00:08:00 THE FRAMEWORK
Flight software is written against a standard, and which standard decides a surprising amount about schedule and cost. In Europe that is ECSS; in the United States, the NASA procedural requirements. They agree on the essentials and differ in structure.
T minus 00:04:00 WHAT THEY ACTUALLY DEMAND
Traceability, in both directions. Every requirement reaches code and a test; every piece of code traces back to a requirement. Code that traces to nothing is as much a finding as a requirement that was never implemented.
Structural coverage. At the highest criticality it is not enough that tests pass. You must show which branches and conditions were exercised, and account for any that were not.
Coding standards with justified deviations. Usually a MISRA-style subset. Dynamic allocation after initialisation, recursion and unbounded loops are the usual casualties.
Independence. At high criticality, verification is done by people who did not write the code, and assurance reports outside the project chain. The point is not distrust of the developer but the fact that the person who misread a requirement while writing the code will misread it the same way while testing it. Independence is what stops a shared assumption from being verified against itself.
Failure analysis. FMEA and fault trees that include the software, not just the hardware it commands. The interesting cases are rarely the software faulting outright. They are the software behaving exactly as specified while a sensor lies to it, a timing assumption stops holding, or two components each do the right thing and the combination does not.
The cost driver is criticality, not size. The same algorithm at Category A and Category D can differ by an order of magnitude in effort, entirely in evidence rather than code. This is why establishing criticality early matters more than almost any other early decision.
T minus 00:01:00 IF YOU ARE STARTING
T minus 00:00:20 SOURCES
ECSS-E-ST-40C, Space engineering: Software. ECSS Secretariat, ESA-ESTEC, 6 March 2009. Superseded by Rev.1, 30 April 2025.
ECSS-Q-ST-80C Rev.1, Space product assurance: Software product assurance. ECSS Secretariat, ESA-ESTEC, 15 February 2017.
ECSS-E-ST-10-02C Rev.1, Space engineering: Verification. ECSS Secretariat, ESA-ESTEC, 1 February 2018.
NPR 7150.2D, NASA Software Engineering Requirements. NASA, effective 8 March 2022.
NASA-STD-8739.8B, Software Assurance and Software Safety Standard. NASA Office of Safety and Mission Assurance.
NASA Software Engineering Handbook is the working guidance behind NPR 7150.2, requirement by requirement.
MISRA C:2012, Guidelines for the Use of the C Language in Critical Systems. MISRA, 2013.