This page describes our ongoing work on feature interaction in
An important approach towards software design that is advocated by modern
software engineering is to consider a complex system as a combination of a
basic system, which provides the necessary behavior for stand-alone
operation, and a set of modules of functionality, called features,
which are added on top of the basic system.
While this approach has clear benefits for both developer and user, it also
presents problems. In the presence of mutliple features on top of the same
basic system the behavior of one feature may affect the behavior of
another in unexpected or unwanted ways. The problem of identifying such
interactions is called the feature interaction detection problem.
The telecommunications domain provides a particularly important setting in
which feature interaction may occur widely, since ``plug-in'' architectures
are its model of choice. In telephony systems, features are pieces of
functionality that are designed to provide a new facility to a subscriber
or to simplify the administration of the network.
A classical example of feature interaction occurs between Call
Waiting (if a busy subscriber receives a call, the new incoming call is
put on hold) and Call Forwarding (every call to a subscriber is
forwarded to another phone). These features cannot be activated in
conjunction: if one of them has priority, the other is disabled.
What's the Problem?
Resolving interaction between features is usually not problematic.
What is problematic is determining whether interaction can occur.
Even for small systems the task of exploring all possible behaviors is
usually beyond human capabilities, and the use of formal testing and
simulation environments seems unavoidable.
Feature Interaction in
There have been several formal approaches tot the feature interaction
detection problem, based on model checking or on satisfiability checking.
In the Computational Logic group here in Amsterdam, we're pursuing two
lines of attack, one based on satisfiability checking, the other based on
constraints. Please explore the links on the left-hand side to find out
Send nice feedback and friendly requests to firstname.lastname@example.org.