  Variability constraints are an integral part of the requirements for a
configurable system. The constraints specified in the requirements on the legal
combinations of options define the space of potential valid configurations for
the system-to-be. This paper reports on our experience with the
variability-related requirements constraints of a flight software framework
used by multiple space missions. A challenge that we saw for practitioners
using the current framework, now open-sourced, is that the specifications of
its variability-related requirements and constraints are dispersed across
several documents, rather than being centralized in the software requirements
specification. Such dispersion can contribute to misunderstandings of the
side-effects of design choices, increased effort for developers, and bugs
during operations. Based on our experience, we propose a new software
variability model, similar to a product-line feature model, in the flight
software framework. We describe the structured technique by which our model is
developed, demonstrate its use, and evaluate it on a key service module of the
flight software. Results show that our lightweight modeling technique helped
find missing and inconsistent variability-related requirements and constraints.
More generally, we suggest that a variability modeling technique such as this
can be an efficient way for developers to centralize the specification and
improve the analysis of dispersed variability-related requirements and
constraints in other configurable systems.
