ECSS-Q-HB-80-01A, SPACE PRODUCT ASSURANCE: REUSE OF EXISTING SOFTWARE (05-DEC-2011)
ECSS-Q-HB-80-01A, SPACE PRODUCT ASSURANCE: REUSE OF EXISTING SOFTWARE (05-DEC-2011)., This handbook provides guidance on the approach that can be taken when defining the implementation of activities for the reuse of existing software within a space project.
Existing software is defined in ECSS-Q-ST-80 as follows:
• Any software from previous developments that is used for the project development as is or with adaptation. It also includes software supplied by the customer for use in the project development.
• Any software including any software developed outside the contract to which ECSS software standards are applicable.
• Any software including products such as freeware and open source software products.
In the development of software systems or products, different types of existing software artefacts can be reused, such as:
• Requirements, when reused early in the software product requirements definition.
• Components, when reused early in the software product architecture definition.
• Modules, when reused at detailed design level.
• Libraries and source code, when reused at coding level.
• Documents, plans, tests, and data are other software items that can be reused.
This handbook adopts a broader interpretation of the term ‘existing software’, and assumes that it can comprise the ‘reuse’ of tools for the development of any space software product.
Furthermore, the effective reuse existing software is based on the possibility to fully understand it with respect to properties such as functionality, quality, performance, dependability or safety and to find and adopt it to the development faster than it otherwise can be constructed.
However, whatever is the level of reuse, the quality of the reused existing software is of utmost importance, as low quality can easily lead to system failure and thus loss of mission even for the lowest reuse level. Consequently, significant analyses should be carried out when using existing software. Furthermore, policies that favour reuse of existing software should be adopted with an understanding of the complex impacts of using the already available software.