An Architecture-Tracking Approach to Evaluate a Modular and Extensible Flight Software for CubeSat Nanosatellites

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.

[1]  Marcos E. Orchard,et al.  New opportunities offered by Cubesats for space research in Latin America: The SUCHAI project case , 2016 .

[2]  Sabrina Corpino,et al.  Verification of a CubeSat via hardware-in-the-loop simulation , 2014, IEEE Transactions on Aerospace and Electronic Systems.

[3]  Klaus Schilling,et al.  UWE-3, in-orbit performance and lessons learned of a modular and flexible satellite bus for future pico-satellite formations , 2015 .

[4]  Martin Glinz,et al.  On Non-Functional Requirements , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[5]  Daniel Selva,et al.  Design Guidelines for General-Purpose Payload-Oriented Nanosatellite Software Architectures , 2018 .

[6]  Ryan Plauche Building Modern Cross-Platform Flight Software for Small Satellites , 2017 .

[7]  Mitsuhito Komatsu,et al.  Evolution from education to practical use in University of Tokyo's nano-satellite activities , 2010 .

[8]  Mengu Cho,et al.  Introduction to lean satellite and ISO standard for lean satellite , 2015, 2015 7th International Conference on Recent Advances in Space Technologies (RAST).

[9]  Witold Kinsner,et al.  A Command and Data Handling unit for pico-satellite missions , 2009, 2009 Canadian Conference on Electrical and Computer Engineering.

[10]  Klaus Schilling,et al.  An extensible on-board data handling software platform for pico satellites , 2008 .

[11]  Kishor S. Trivedi,et al.  An empirical investigation of fault repairs and mitigations in space mission system software , 2013, 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[12]  James Lumpp,et al.  Development of a modular command and data handling architecture for the KySat-2 CubeSat , 2014, 2014 IEEE Aerospace Conference.

[13]  Daniel L. Dvorak,et al.  NASA Study on Flight Software Complexity , 2009 .

[14]  A.F.C. Van den Berg Fault-Tolerant On-Board Computer Software for the Delfi-n3Xt Nanosatellite , 2012 .

[15]  Stéphane Ducasse,et al.  Polymetric Views - A Lightweight Visual Approach to Reverse Engineering , 2003, IEEE Trans. Software Eng..

[16]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[17]  Shinichi Nakasuka,et al.  Command-centric architecture (C2A): Satellite software architecture with a flexible reconfiguration capability , 2020 .

[18]  Jian Guo,et al.  Survey of worldwide pico- and nanosatellite missions, distributions and subsystem technology , 2010 .

[19]  James E. Lumpp,et al.  Design of flight software for the KySat CubeSat bus , 2009, 2009 IEEE Aerospace conference.

[20]  Greg D. Manyak Fault Tolerant and Flexible CubeSat Software Architecture , 2011 .

[21]  Eberhard Gill,et al.  In-orbit results of Delfi-n3Xt: Lessons learned and move forward , 2016 .

[22]  David McComas,et al.  The Core Flight System (cFS) Community: Providing Low Cost Solutions for Small Spacecraft , 2016 .

[23]  Joseph Sifakis,et al.  Architecture-Based Design: A Satellite On-Board Software Case Study , 2016, FACS.

[24]  Gerard J. Holzmann,et al.  The power of 10: rules for developing safety-critical code , 2006, Computer.

[25]  Alex Becerra,et al.  Lessons Learned from Building the First Chilean Nano-satellite: The SUCHAI Project , 2018 .

[26]  Indrek Sünter Software for the ESTCube-1 command and data handling system , 2014 .

[27]  Shinichi Nakasuka,et al.  Technology demonstration on University of Tokyo's pico-satellite “XI-V” and its effective operation result using ground station network , 2007 .

[28]  Marian Petre,et al.  Why looking isn't always seeing: readership skills and graphical programming , 1995, CACM.

[29]  Pavel Fiala,et al.  Embedded microcontroller system for PilsenCUBE picosatellite , 2013, 2013 IEEE 16th International Symposium on Design and Diagnostics of Electronic Circuits & Systems (DDECS).

[30]  Thomas H. Zurbuchen,et al.  Achieving Science with CubeSats: Thinking Inside the Box , 2016 .

[31]  N. G. Fitz-Coy,et al.  Design of command, data and telemetry handling system for a distributed computing architecture CubeSat , 2013, 2013 IEEE Aerospace Conference.

[32]  David McComas,et al.  Verifying architectural design rules of the flight software product line , 2009, SPLC.

[33]  David McComas,et al.  Architecture-Based Unit Testing of the Flight Software Product Line , 2010, SPLC.

[34]  Joonas Javanainen Reliability evaluation of Aalto-1 nanosatellite software architecture , 2016 .

[35]  E. Glenn Lightsey,et al.  A reusable command and data handling system for university cubesat missions , 2014, 2014 IEEE Aerospace Conference.

[36]  Marco Pagnamenta Rigorous software design for nano and micro satellites using BIP framework , 2014 .

[37]  Carles Araguz López Towards a modular Nano-Satellite Software Platform: Prolog Constraint-based Scheduling and System Architecture , 2014 .

[38]  James Mason,et al.  Results from the Planet Labs Flock Constellation , 2014 .

[39]  Magne Alver Normann Software Design of an Onboard Computer for a Nanosatellite , 2016 .

[40]  John M. Bellardo,et al.  PolySat's Next Generation Avionics Design , 2011, 2011 IEEE Fourth International Conference on Space Mission Challenges for Information Technology.