Objectives
With this call we seek innovative ideas proposing and demonstrating the feasibility and interest of software development solutions in two main domains:
- Totally novel ideas targeting one or several aspects of the development of space software (requirement, design, coding, integration, verification, validation, qualification, operation, maintenance).
- Disruptive ideas aimed at increasing the autonomy, security and dependability of spacecraft and opening the way to new missions.
Background
New generation of processors
Modern satellite processors are able to support the execution of multiple complex applications to increase the performance, autonomy and dependability of the entire spacecraft.
The availability of small but powerful microcontrollers is paving the way to replacing ad-hoc Field Programmable Gate Arrays (FPGAs) in many pieces of equipment to take advantage of their greater flexibility and versatility. This translates into the multiplication of small software products spread throughout all subsystems of a spacecraft.
It is therefore of prime importance to adapt the complete development process while ensuring the top-level quality of software products.
Software development process
The development of software for ESA projects is following the ECSS-E-ST-40C and ECSS-Q-ST-80C standards that identify processes and outputs. The standards are tailored to match the needs of each project. The first level of tailoring is related to the criticality level of the software to be developed. The development of critical space software may require a lot of effort and be time consuming.
In addition, as software is flexible, it is often used to implement late requirements and workarounds. Therefore, the onboard software is more and more often on the critical path of the space systems.
The verification and validation of software are important steps for the qualification of the software products to be executed on board the spacecraft. The complexity and the numerous interfaces of the onboard software makes its verification difficult. Late updates of the software may lead to unexpected regressions.
Recent years have seen the generalisation of the use of DevOps solutions, which are improving teamwork and providing better traceability of activities during the development process. In addition, the application of continuous integration of software components provides immediate feedback to developers and allows developments to be monitored well.
Self-modifying systems ('learning' systems) pose a particular challenge to critical systems, as their validation and integration into critical systems requires specific mechanisms to ensure their dependability.
It is of prime importance to continue to improve the development process by increasing automation and ensuring a constant quality compliant with ECSS standards, while taking advantage of the latest hardware evolution. Note that the proposed developments do not have to comply to referenced ECSS standards but they have to consider the processes, requirements and outputs defined in these standards to propose ideas for improving their implementation and the verification of the compliance to these standards.
Examples of improvements in the development process include:
- Introduction of the use of Space System Ontology developments by conceptualising the universes of discourse specified within the ECSS standards, combining object role modelling (www.orm.net), OMG Business Process Model and Notation (BPMN) and Decision and Model Notation (DMN).
- Improve requirements by checking their conformance to an ontology, propose a novel configuration management of requirements throughout the lifetime of a system.
- Towards seamless design by supporting a continuous model-based process from system to software engineering and support of software/hardware co-engineering process.
- New coding approaches and languages for critical systems (e.g. RUST) and scientific and AOCS computing (e.g. Julia).
- Integration of software components through data modelling and automatic consistency check of interface requirements (e.g. based on EDS).
- Reinforcement of the verification of software through semantic code analysis, automatic analysis of static analysis reports, automatic generation of tests for ensuring proper coverage of source and object, fuzzy testing, technical budget estimations.
- Validation of software through a model-based approach, automatic generation of verification control artefacts for software components, AI-based Independent Software Verification and Validation (ISVV), scheduling analysis support for multi-processing unit devices, accurate technical budget measurements.
- Simplification of the qualification through automatic generation of qualification data package and automatic execution of qualification tests on different processor architectures (Sparc, ARM, Risc-V).
- Ease operation by improving the observability of onboard systems by supporting the security analysis of operations, manage user requests.
- Ease the maintenance of operational software through the automatic analysis of problem reports, the support of a secured deployment of new functions on one or many spacecraft.
New applications for spacecraft avionics
The performance of the new generation of processors and the availability of tools able to support the development of complex software are opening the path to the implementation of advanced applications on board spacecraft to make them more autonomous. A greater autonomy of spacecraft is indispensable to reduce the costs of operations and to enable new missions.
Some examples of these applications are:
- Autonomous fault detection, isolation and recovery relying on data available on board the spacecraft that are much more numerous than the ones available in the housekeeping telemetry sent to ground. Advanced techniques shall make it possible to identify anomalies and unexpected behaviour of the avionics systems a long time in advance. Therefore, the housekeeping telemetry can be reduced when a system is nominal and operators can be warned well in advance of a potential issue so that maintenance planning can be optimised (e.g. no activity at night and during weekends).
- Support of autonomous onboard continual training of AI applications, e.g. for identification of the landing area on the Moon or an asteroid, for adapting to a new environment, for improving science return.
- Autonomous operation of the spacecraft or constellations for ensuring the optimised execution of the mission, e.g. collision avoidance, orbit control, calibrations, distributed goals and processing, reconfiguration of constellations.
- Closer interaction between payloads and system functions, e.g. use of instruments as sensors, communication as application and for operations.
- Verification of the effects of telecommands on the avionics system to ensure the spacecraft always remains in a safe state, e.g. through simulation or a model-based approach.
- Improve the cyber defence of the spacecraft for ensuring the protection of the space segment assets, e.g. using specific reconfigurable hardware resources to implement security functions that can be updated during the lifetime of the system.
- Development environment able to automatically configure and generate an execution platform containing only the necessary services required for a mission (real-time executive, libraries (mathematical, PUS, OBCP, etc.)).
- Development of techniques for reducing the amount of data to be uploaded to an operational spacecraft to update AI models and to accelerate their execution on radiation hardened processors.
Source / contact: Open Space Innovation Platform - OSIP - Campaign: New concepts for onboard software development (esa.int)
IF YOU ARE INTERESTED IN KNOWING MORE
ABOUT THIS PROJECT PLEASE
REGISTER AS FREE MEMBER OR LOGIN IF ALREADY REGISTERED