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.
翻译:可变性约束是可配置系统需求中不可或缺的组成部分。需求中对选项合法组合所规定的约束,定义了待建系统潜在有效配置的空间。本文报告了我们在多个太空任务所使用的飞行软件框架中,处理与可变性相关的需求约束的经验。我们发现,实践者在使用当前已开源的框架时面临一个挑战:该框架中与可变性相关的需求和约束的规范分散在多个文档中,而非集中于软件需求规范中。这种分散可能导致设计选择副作用的理解偏差、开发人员工作量增加以及运行期间的缺陷。基于我们的经验,我们在飞行软件框架中提出了一种新的软件可变性模型,类似于产品线特征模型。我们描述了开发该模型的结构化技术,展示了其用法,并在飞行软件的关键服务模块上对其进行了评估。结果表明,我们的轻量级建模技术有助于发现缺失且不一致的可变性相关需求和约束。更广泛地,我们建议此类可变性建模技术可成为开发人员的一种有效手段,用于集中规范并改进对其他可配置系统中分散的可变性相关需求和约束的分析。