Software life cycle
Each software projects are managed by a certain life cycle following international standards. It consists of several development phases, the requirement engineering phase, the design engineering phase and qualification engineering and maintenance phase.
Requirement and design engineering
Structured or object-oriented analysis of software and detailed interface definitions are done to manage the complexity and performance of embedded software. Specific failure, safety, reliability and performance analysis (e.g. Failure Detection, Isolation and Recovery, FDIR) provides a justification of software architecture and detail design. Traceability between the different development and validation phases ensure the compliance from the user requirements down to the implementation.
The software development is performed on a hardware target as development or engineering model. Different programming languages are used for implementation (e.g. C and Assembler) depends on needed performance, hardware target and available development tools.Verification and validation
Verification and validation is a main task for developing software with high performance and high quality. Before software integration on the hardware target specific validation and development tests are done within a test system. It provides real-time interface and data simulation as well as hardware and software tools for functional and performance testing. Test automation is essential to achieve a high degree of test coverage and reliability. For each project a specific adaptation or development of a test system is done in order to be able to be compliant for interface simulations and performance tests.Data processing and algorithms
On-board data processing and data reduction are key aspect to get specific scientific data and auxiliary information to ground. Additionally algorithms are needed to provide information for on-board control under real-time conditions. Specific algorithms has been developed at DLR (e.g. for spacecraft pointing, Kalman filtering) or from external partners (e.g. data compression provided by ISA/France). On-ground simulations of performance and accuracy before final implementation are done for justifying the design and software validation.Methods and tools
Software analysis, requirement and design engineering, configuration management and problem tracking, validation tests and simulations are done with dedicated tools supporting the whole development life cycle following international standards (e.g. ESA ECSS-E-40, PSS-05-0). Due to the long project life times the tools should be used from well established providers. E.g. Rational tools are used for COROT and Venus Express.Maintenance
Software maintenance has two main aspects, maintenance of on-board software and maintenance of on-ground facilities, development environment and data base. For on-board maintenance a complete up- and download of the on-board software from ground must be possible e.g. in case performance improvements due to hardware degradations. In general a special software is needed to support these features ensuring a safe operation by fulfilling specific safety requirements.
On-ground maintenance has to be guaranteed in order to support maintenance of on-board flight software over to whole mission life cycle after finalizing the software integration and tests and after launch. The long maintenance phase (e.g. until 2014 for Rosetta, 2009 for COROT, 2008 for Venus Express) requires a special concept for maintaining the whole IT platform, knowledge base and for staff development. Therefore an extended effort for project documentation, data base and tool migration is considered already at each project kick-off.IT base and structure
Projects for software and hardware development become more and more complex due to the international distribution of the developer teams. A well performed IT-platform for a distributed environment is essential for software development with high quality.
A specific IT- platform is provided for application and data servicing built as client/server application. This allows a common use of tools for management, development and validation and data base for the whole project team. IT support and data/knowledge base migration is guaranteed by a cooperation with T-Systems.
In order to cover the whole software life cycle, to be able to expand resources during special project phases and to involve specific technical know how an cooperation with several external partners has been established (e.g. IB Ulmer, CLIPhIT, Windriver). This allows a flexible and efficient realization of projects as well as a continue establishing of new technologies.