Software is the term given to coded sets of instructions that tell the system what to do in a given situation. Thus, the software represents the “intelligence” of a certain system. As the sophistication and on-board intelligence of spacecraft has increased, e.g. to become more autonomous from ground, so too has the size and complexity of their associated software programs, stretching to hundreds of thousands of lines of code (and up to one million lines of code for the Jules Verne ATV).
What is the Software Systems domain?
The domain of Software Systems covers most aspects of the software in the service of ESA space missions. In particular it covers:
- software engineering methods and tools;
- software technology for onboard and ground systems
- software architectures and building blocks;
- system-software co-engineering techniques in which computer code is specified in a concurrent way together with the system;
- real-time software embedded in spacecraft systems and payloads;
- ground facilities software, including electrical ground support equipment, testbenches, databases and simulation and modelling tools;
- verification and validation techniques for checking mission-critical software
- software standards.
Why is Software Systems important?
Software enables highly complex activities - such satellite precision manoeuvres, autonomous navigation of rovers on a planetary terrain - and provides a means to recover from malfunctions and compensate for hardware equipment defects. Software must work correctly first time in orbit, and getting it right is crucial to mission success: software bugs have been the doom of many spacecraft, going back to the earliest days of space exploration.
The added value of software to space systems has increased greatly in recent decades, reflecting the ever growing functionality and autonomy of spacecraft and the amount of mission data to be collected and processed.
Software systems engineering is needed to ensure that the software is properly designed, developed and verified, like for any physical equipment.