One approach to building complex software product families is to partition
the possible functions of the system into conceptual chunks called features
. Ideally, system instances are rapidly assembled by combining features des
ired by the particular customer. Unfortunately, features often interact, me
aning their combination causes unintended undesirable behavior even though
in isolation the features work fine. This paper describes an approach to fe
ature combination and interaction detection via foreground/background model
s, which allows expressing features as augmentations to the behavior of a b
ase model. It also classifies interactions into three categories, based on
how they can be detected, and describes implemented tools which can detect
interactions from the three categories. I show why this approach avoids fal
sely detecting the spurious Type I interactions to which many existing appr
oaches are prone. The tools and methodology, as well as the prevalence of s
purious interactions in existing approaches, are illustrated through applic
ation to telephony features from the feature interaction contest associated
with FIW'98. This data provides evidence that the foreground/background ap
proach catches more nonspurious interactions, with less human effort, than
competing approaches. (C) 2000 Elsevier Science B.V. All rights reserved.