Using Feature Locality: Can We Leverage History to Avoid Failures During Reconfiguration?
Despite the best e orts of software engineers, faults still escape into deployed software. Developers need time to prepare and distribute fixes, and in the interim deployments must either tolerate or avoid failures. Self-adaptive systems, systems that adapt to meet changing requirements in a dynamic environment, have a daunting task if their reconfiguration involves adding or removing functional features, because configurable software is known to suffer from failures that appear only under certain feature combinations. Although configuration-dependent failures may be difficult to provoke, and thus hard to detect in testing, the authors posit that they also constitute opportunities for reconfiguration to increase system reliability.