In the modern era, access to space is more important than ever. Space missions deliver satellites that we use for telecommunications, Earth observation and other purposes every day, and support manned and unmanned space exploration, which helps us answer life’s most meaningful questions and inspires the development of technologies that improve the way we live. Launchers support the delivery of mission-critical payloads.
Software is essential to the success of space missions. Key areas of functionality on launchers and spacecraft including telecommand/telemetry, navigation and positioning, AOCS and energy management require the use of software, without which we would never have explored beyond the Earth’s atmosphere. As hardware technologies develop, onboard software is evolving to include more functionality and complexity.
As failure of space software components could mean mission failure, flight software is tested to standards such as NASA NPR 7150.2d or ECSS-E-ST-40C to ensure that it operates correctly on mission. Efficient and robust testing and verification is needed to ensure project and mission success.
Verification requirements for flight software
Software verification is crucial to demonstrate that safety-critical and mission-critical flight software meets its functional and nonfunctional requirements. A range of activities support meeting verification requirements for flight software, including the following.
Flight software code needs to be tested to verify the software functionality and identify and/or remove defects in the code. This testing should be against software requirements developed during the product development life cycle and is required to meet NASA NPR 7150.2d (§4.5) and ECSS-E-ST-40C (§5.5.3.2.a-c, §5.5.4.2, §5.8.3.5.a) requirements.
Structural coverage analysis (code coverage analysis) for flight software ensures that the software has been tested by requirements-based testing. Code coverage analysis is required to meet NASA NPR 7150.2D (§3.7.4, §4.5.9, §4.5.10) and ECSS-E-ST-40C (§5.8.3.4.b-e) requirements.
The ECSS-E-ST-40C standard further requires object code coverage analysis for criticality category A software where traceability between source code and object code cannot be determined (§5.8.3.5.b).
Safety-critical flight software must operate within timing deadlines. Timing and response time analysis is required to meet NASA NPR 7150.2d (§5.4.5) and ECSS-E-ST-40C (§5.8.3.5.5a.5.) requirements to demonstrate that the code meets performance requirements including satisfaction of timing budgets.
To support this process, schedulability analysis is typically undertaken. This ensures that task scheduling meets temporal deadlines.
Data coupling and control coupling analysis can demonstrate that code implements correct data and control flow, as required by ECSS-E-ST-40C §5.8.3.5.5.
Cyclomatic complexity analysis determines the complexity of code included in mission or safety-critical programs. This analysis is required to meet NASA NPR 7150.2d requirement §3.7.5.
“The AMASS project aims to reduce the cost of certifying systems such as the ones we develop, which is critical for the continued production of safe systems and the growth of our industry. Along with other efficiency improvements, Rapita’s structural coverage analysis solution increased our end-to-end test speed by ~40% when compared with our previous approach, which will let us produce verification evidence faster and reduce downstream certification costs. It was a delight working with Rapita. Their expert engineers quickly adapted to our build system and the integration went far more smoothly than we could have expected.”
Anders Edfors
Attitude and Orbit Control Systems Specialist
OHB Sweden