An Architecture-Tracking Approach to Evaluate a Modular and Extensible Flight Software for CubeSat Nanosatellites - Carlos E. Gonzalez; Camilo J. Rojas; Alexandre Bergel; Marcos A. Diaz (IEEE Access)
Delivering better flight software is an important concern to improve CubeSat missions success. It has been identified as a key element to enhance team collaboration, increase reusability, reduce the mission risk, and facilitate the development and operation of new mission concepts, such as satellite mega-constellations. An appropriated fight software architecture represents the functional and non-functional requirements and guides the development. Therefore, to achieve the expected software quality, the architecture should be closely monitored during the entire software life cycle. However, ensuring that a flight software for a spacecraft embedded system closely follows the proposed architecture and addresses the set of non-functional requirements is a difficult and nontrivial problem. Motivated by requirements commonly described in previous CubeSat missions, in this work, we present the design and implementation of a flight software architecture based on the command design pattern. We also present an architecture tracking methodology to verify and control the flight software quality criteria during the development process through the use of graphical software analysis tools and agile programming techniques. This automatic software analysis tool was developed using Git, Jenkins, Moose, and Roassal, and has been applied in the SUCHAI series of nanosatellites to evaluate the impact of the architecture verification during the development history. The implemented flight software and the verification tools have been released as open source platforms and are available for the CubeSat community.