Intro
Developing spacecraft flight software (FSW) is challenging under any circumstances. It is especially challenging for a small, cost-constrained mission with ambitious goals. Many small satellites (e.g., CubeSats and SmallSats) fit into this category. In these projects, all stages of the development cycle, especially test, tend to be compressed. FSW developers may face problems such as insufficient staff, inadequate access to flight-like hardware, poorly specified interfaces, and under-specified and rapidly changing requirements. While these problems exist to some degree in all flight projects, they are more pronounced in the context of a cost-constrained, rapid deployment. 1
How to develop FSW for such a project? In general, there are three possible approaches:
- Develop the FSW from scratch, using patterns and practices from previous missions.
- Adapt and reuse FSW developed specifically for a previous mission.
- Use aFSW framework that is designed to support reuse over multiple missions.
[1] R. L. B. Jr, T. K. Canham, G. J. Watney, L. J. Reder, J. W. Levison, and R. L. Bocchino, “F Prime: An Open-Source Framework for Small-Scale Flight Software Systems”. We contend that (3) is the only viable option for highly cost-constrained, highly reliable software. Option (1) usually is prohibitively expensive and/or leads to poor quality software. It is also inefficient. Option (2) can work, but it is not ideal. Unless software is designed for reuse, it is difficult to reuse, because the reusable and non-reusable parts tend to be intertwined. Developers have to spend a lot of effort excising the reusable parts and reshaping the interfaces to fit their needs.
*[ADCS] Attitude Determination and Control Subsystem
*[EPS] Electric Power Subsystem
[OBC] On-board Computer [OBSW] On-board Software
-
Robert L Bocchino Jr, Timothy K Canham, Garth J Watney, Leonard J Reder, Jeffrey W Levison, and Robert L Bocchino. F prime: an open-source framework for small-scale flight software systems. ↩