Towards automated detection of feature interactions

The feature interaction problem occurs when the addition of a new feature to a system disrupts the existing services and features This paper describes a tabular notation for specifying the functional behavior of features It also describes how four classes of feature interactions can be detected when features are speci ed in this new notation Our goal is to develop a tool that can automatically analyze feature speci cations and detect interactions at the speci cation stage of development Introduction How does one add features to a system without disrupting the services and features already provided A more di cult but related problem is how can one ensure that combinations of independently developed services and features behave as expected These questions and other variations of the feature interaction problem have plagued the telecom munications industry for several years More generally they are problems that a ect the development and evolution of all service oriented software We use the following de nitions of service and feature presented in A service provides stand alone functionality For example Plain Old Telephone Ser vice POTS is a service A feature provides added functionality to an existing feature or service a feature cannot operate stand alone For example Call Waiting adds functionality to POTS A feature interaction occurs when one feature a ects the behavior of another Sometimes feature interactions are desired and one feature is explicitly designed to interact with another In such a case one wants to determine that the features not only interact but that the interaction conforms to the speci ed behavior of the individual features In most cases one simply wants to ensure that supposedly non interacting features cannot interact This research has been supported in part by the Natural Sciences and Engineering Research Council of Canada grant FSP with matching funds from Bell Northern Research Ltd Feature1 Feature2 Featuren e1