Overview of software life cycle related activities

Software Engineering and Standardisation Section activities related to the software life cycle address mainly the beginning of the life cycle and its automation.
System software co-engineering is intended to link the software development with the system requirements. System, in this instance, means any spacecraft sub-system that generates on-board software requirements (examples: data handling, attitude control, thermal control, power management).

Requirements engineering emphasises modelling as a means of enforcing the completeness and consistency of the requirements.

Modelling languages are also used with design methods, but with a particular emphasis on hard real-time systems.

Modelling allows automation of the life cycle through the automatic generation of flight code and some validation tests.

Code is cross compiled for specific space-qualified processors. The choice of language is influenced by the constraints arising from the use of the hardware in space.

The hard real-time nature of most flight software imposes requirements for a thorough schedulability analysis and the use of specific scheduling policies such as Ravenscar.
Last update: 20 March 2007