ArXiv TLDR

Small Yet Configurable: Unveiling Null Variability in Software

🐦 Tweet
2604.15957

Xhevahire Tërnava, Georges Aaron Randrianaina, Luc Lesoil, Mathieu Acher

cs.SE

TLDR

Small software can have high configurability; reducing unnecessary variability aids maintainability and size reduction.

Key contributions

  • Analyzed 108 GNU coreutils programs for compile-time and run-time variability.
  • Found up to 76 configuration options in small programs, with variability growing over time.
  • Identified strong correlation (0.78) between run-time variability and codebase size.
  • Introduced 'null-variable' software concept with no configurability beyond mandatory features.

Why it matters

This paper reveals that even small software can be highly configurable, challenging assumptions. Understanding and managing variability helps create smaller, simpler, and more maintainable systems.

Original Abstract

Many small-scale software systems, that is, with limited codebase or binary size, are widely used in everyday tasks, yet their configurability remains largely unexplored. At the same time, studies on modern software systems show a trend toward increasing configurability, alongside growing interest in building immutable, specialized, and reproducible software. In this paper, we present the first empirical study on the extent of configurability in small-scale software systems. By analyzing 108 programs from GNU coreutils, we show that even small programs can exhibit significant compile-time and run-time variability, with up to 76 options per program. Then, there is a high correlation (0.78) between run-time variability and codebase size. Furthermore, an analysis of the 20 smallest programs across 85 releases reveals that variability tends to increase over time, primarily due to the added compile-time variability. This suggests that shifting options between run-time and compile-time, removing unnecessary run-time variability, or resolving compile-time variability early, can help reduce codebase complexity and size. We also introduce, for the first time, the concept of null-variable software system, one with no configurability beyond mandatory features. Our findings show that high configurability is not exclusive to large-scale systems and that reducing unnecessary variability can lead to lightweight, smaller, and more maintainable software. We hope this effort contributes to designing new software by understanding how to balance its configurability with codebase size.

📬 Weekly AI Paper Digest

Get the top 10 AI/ML arXiv papers from the week — summarized, scored, and delivered to your inbox every Monday.