Feature interaction problem
Encyclopedia
Feature interaction is a software engineering concept. It occurs when the integration of two features would modify the behavior of one or both features.
The term feature is used to denote a unit of functionality of a software application. Similar to many concepts in computer science, the term can be used at different levels of abstraction. For example, the plain old telephone service (POTS) is a telephony application feature at one level, but itself is composed of originating features and terminating features. The originating features may in turn include the provide dial tone feature, digit collection feature and so on.
This definition of feature interaction allows one to focus on certain behavior of the interacting features such as how their response time may be changed given the integration. Many researchers in the field consider problems that arise due to change in the execution behavior of the interacting features. Under that context, the behavior of a feature is defined by its execution flow and output for a given input. In other words, the interaction changes the execution flow and output of the interacting features for a given input.
, a telephone line (the system) typically offers a set of features that include call forwarding
and call waiting
. Call waiting allows one call to be suspended while a second call is answered, while call forwarding enables a customer to specify a secondary phone number to which additional calls will be forwarded in the event that the customer is already using the phone.
To illustrate the example, we consider a telephone line provided to a customer, and we assume that both call forwarding and call waiting are enabled on the line. When a first call arrives on the line, the phone rings and is answered. Since neither feature is activated by the first call, there is no noticeable problem. When a second call arrives before the first has terminated, the telephone system has a decision to make: whether the call should be forwarded to the secondary number (call forwarding) or the person who answered the first call should be notified that another call has arrived (call waiting). Since this decision has no obvious correct answer, the optimal answer depends on the needs of the customer. This feature interaction is a specific example of a general and common problem that has become prevalent due to increasing system complexity.
In this situation, it is possible that the system’s decision will be made in a non-deterministic
fashion due to race conditions
and other design factors. The consequences of feature interactions can range from minor irritations to life-threatening software failures, and therefore there is ongoing research that aims to find ways of detecting as well as resolving feature interactions.
The term feature is used to denote a unit of functionality of a software application. Similar to many concepts in computer science, the term can be used at different levels of abstraction. For example, the plain old telephone service (POTS) is a telephony application feature at one level, but itself is composed of originating features and terminating features. The originating features may in turn include the provide dial tone feature, digit collection feature and so on.
This definition of feature interaction allows one to focus on certain behavior of the interacting features such as how their response time may be changed given the integration. Many researchers in the field consider problems that arise due to change in the execution behavior of the interacting features. Under that context, the behavior of a feature is defined by its execution flow and output for a given input. In other words, the interaction changes the execution flow and output of the interacting features for a given input.
Example
In the context of telephonyTelephony
In telecommunications, telephony encompasses the general use of equipment to provide communication over distances, specifically by connecting telephones to each other....
, a telephone line (the system) typically offers a set of features that include call forwarding
Call forwarding
Call forwarding , in telephony, is a feature on some telephone networks allowing an incoming call to a called party to be redirected to a third party. For example, the third party may be a mobile telephone, voicemail box or other telephone number where the desired called party is situated. It was...
and call waiting
Call waiting
Call waiting , in telephony, is a feature on some telephone networks. If a calling party places a call to a called party which is otherwise engaged, and the called party has the call waiting feature enabled, the called party is able to suspend the current telephone call and switch to the new...
. Call waiting allows one call to be suspended while a second call is answered, while call forwarding enables a customer to specify a secondary phone number to which additional calls will be forwarded in the event that the customer is already using the phone.
To illustrate the example, we consider a telephone line provided to a customer, and we assume that both call forwarding and call waiting are enabled on the line. When a first call arrives on the line, the phone rings and is answered. Since neither feature is activated by the first call, there is no noticeable problem. When a second call arrives before the first has terminated, the telephone system has a decision to make: whether the call should be forwarded to the secondary number (call forwarding) or the person who answered the first call should be notified that another call has arrived (call waiting). Since this decision has no obvious correct answer, the optimal answer depends on the needs of the customer. This feature interaction is a specific example of a general and common problem that has become prevalent due to increasing system complexity.
In this situation, it is possible that the system’s decision will be made in a non-deterministic
Nondeterministic algorithm
In computer science, a nondeterministic algorithm is an algorithm that can exhibit different behaviors on different runs, as opposed to a deterministic algorithm. There are several ways an algorithm may behave differently from run to run. A concurrent algorithm can perform differently on different...
fashion due to race conditions
Concurrency (computer science)
In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...
and other design factors. The consequences of feature interactions can range from minor irritations to life-threatening software failures, and therefore there is ongoing research that aims to find ways of detecting as well as resolving feature interactions.
Workshops and conferences
- The series of Feature Interaction Workshops (FIW) and the International Conferences on Feature Interaction (ICFI) are the primary venues devoted to this problem:
Event | Location | Co-chairs |
---|---|---|
FIW'92 | St. Petersburg, USA | N. Griffeth, Y.-J. Lin |
FIW'94 | Amsterdam, The Netherlands | L.G. Bouma, H. Velthuijsen |
FIW'95 | Kyoto, Japan | K.E. Cheng, T. Ohta |
FIW'97 | Montreal, Canada | P. Dini, R. Boutaba, L. Logrippo |
FIW'98 | Lund, Sweden | K. Kimbler, L.G. Bouma |
FIW'00 | Glasgow, Scotland | M. Calder, E. Magill |
FIW'03 | Ottawa, Canada | D. Amyot, L. Logrippo |
ICFI'05 | Leicester, UK | S. Reiff-Marganiec, M. D. Ryan |
ICFI'07 | Grenoble, France | F. Ouabdesselam, L. du Bousquet |
ICFI'09 | Lisbon, Portugal | S. Reiff-Marganiec, M. Nakamura |
Research groups
Papers
- FAQ Sheet on Feature Interaction Pamela Zave.
- Agents and their Services: An Ontological Approach to Feature Interaction B. Cohen, City University.
- A Feature Interaction Benchmark for IN and Beyond E. Jane Cameron, Nancy D. GriffethNancy Davis GriffethDr. Nancy D. Griffeth is a Professor of Mathematics and Computer Science at Lehman College of The City University of New York. She did seminal work in defining the feature interaction problem and organizing a community of researchers around the Feature Interaction Workshops to study the problem...
, Yow-Jian Lin, Margaret E. Nilson, William K. Schnure, Bellcore, and H. Velthuijsen, PTT Research, The Netherlands. - Conference proceedings of FIW and ICFI.
- Feature interaction: a critical review and considered forecast. M. Calder, M. Kolberg, E. H. Magill, and S. Reiff-Marganiec. Computer Networks 41, pp. 115–141 (2002).
- Feature Interaction as a Context Sharing Problem. Armstrong Nhlabatsi, Robin Laney, and Bashar Nuseibeh. International Conference on Feature Interactions, 11-12 June, University of Lisbon, Portugal, pp. 133-148 (2009).