Speaker
Description
Software Quality Assurance (SQA) is an increasingly important part of modern software development for astronomy. For space projects ESA enforces through ECSS standards strict SQA procedures for the software operating on their space missions, and in the last few years also ground based projects have been pressed to provide higher quality software for their instruments, since stakeholders, like ESO, are more and more aware of the hidden costs linked to software issues, both in terms of money and of loss of observation time Those hidden costs dramatically increase with the size and the operating cost of the telescopes..
It is important that SQA is part of the software life cycle since the early stages, because an early installment of quality management is easier and more productive, while at the same time verification can be performed timely avoiding major or blocking issues, like e.g. heavy rewriting of code.
The SQA management plan, that set the road to achieve that goal, is a deliverable requested in the early stages of most (e.g. ESA, ESO) astronomical project and, being based essentially on a set of standards, it can be formalized, leveraging on the commonalities among INAF projects, to deal with a generalized set of requirements, in a framework where the best practices, tools and procedures are not only outlined but actually implemented. This framework would be suitable to be adapted, through ad hoc tailoring to actual requirements, whenever a new INAF project is starting.
Based on a long experience in different projects (EUCLID/NISP, MORFEO, CUBES, MAVIS, ANDES), we aim to set up an INAF common framework to carry out SQA activities for INAF projects. The framework is virtualized, i.e. a set of virtual machines, which are a natural tool to allow the investigation of different strategies, easily duplicable and adaptable to different projects. We aim to take advantage of CI/CD techniques to build a versatile SQA automated pipeline that implements the project-specific requirements for quality in a continuous manner, strictly following the natural development of the software and avoiding delays in the product improvement. Several tools are implemented to carry out the required SQA checks both commercial (Polyspace, Understand…) and open source (e.g. cppcheck, prospector…). Style Guides for programming languages 9C/C++, Python) are provided and set of rules based on consolidated standards (e.g. MISRA, HIS) are provided.