Feature interaction problem: Difference between revisions

Content deleted Content added
No edit summary
Line 1:
'''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.
 
 
 
==Example==
In the context of [[telephony]], 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.