Feature interaction problem

Last updated

Feature interaction is a software engineering concept. It occurs when the integration of two features would modify the behavior of one or both features.

Contents

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.

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.

Workshops and conferences

EventLocationCo-chairs
FIW'92St. Petersburg, USA N. Griffeth, Y.-J. Lin
FIW'94Amsterdam, the NetherlandsL.G. Bouma, H. Velthuijsen
FIW'95Kyoto, JapanK.E. Cheng, T. Ohta
FIW'97Montreal, CanadaP. Dini, R. Boutaba, L. Logrippo
FIW'98Lund, SwedenK. Kimbler, L.G. Bouma
FIW'00 Glasgow, ScotlandM. Calder, E. Magill
FIW'03 Ottawa, CanadaD. Amyot, L. Logrippo
ICFI'05 Leicester, UKS. Reiff-Marganiec, M. D. Ryan
ICFI'07 Grenoble, FranceF. Ouabdesselam, L. du Bousquet
ICFI'09 Lisbon, PortugalS. Reiff-Marganiec, M. Nakamura

See also

Research groups

Papers

Related Research Articles

<span class="mw-page-title-main">Call centre</span> An office dealing with a large volume of enquiries by telephone.

A call centre or call center is a managed capability that can be centralised or remote that is used for receiving or transmitting a large volume of enquiries by telephone. An inbound call centre is operated by a company to administer incoming product or service support or information enquiries from consumers. Outbound call centres are usually operated for sales purposes such as telemarketing, for solicitation of charitable or political donations, debt collection, market research, emergency notifications, and urgent/critical needs blood banks. A contact centre is a further extension to call centres telephony based capabilities, administers centralised handling of individual communications, including letters, faxes, live support software, social media, instant message, and email.

An automated call distribution system, commonly known as automatic call distributor (ACD), is a telephony device that answers and distributes incoming calls to a specific group of terminals or agents within an organization. ACDs direct calls based on parameters that may include the caller's telephone number, the number they dialed, the time of day or a response to an automated voice prompt. Advanced ACD systems may use digital technologies such as Computer telephony integration (CTI), computer-supported telecommunications applications (CSTA) or IVR as input to determine the route to a person or voice announcement that will serve the caller. Experts claim that "the invention of ACD technology made the concept of a call centre possible."

In telecommunications, remote call forwarding is a service feature that allows incoming calls to be forwarded to a remote call forwarding number, such as a cell phone or another office location and is designated by the call receiver.

Telephony is the field of technology involving the development, application, and deployment of telecommunication services for the purpose of electronic transmission of voice, fax, or data, between distant parties. The history of telephony is intimately linked to the invention and development of the telephone.

Voice over Internet Protocol (VoIP), also called IP telephony, is a method and group of technologies for voice calls, the delivery of voice communication sessions over Internet Protocol (IP) networks, such as the Internet.

Interactive voice response (IVR) is a technology that allows telephone users to interact with a computer-operated telephone system through the use of voice and DTMF tones input with a keypad. In telecommunications, IVR allows customers to interact with a company's host system via a telephone keypad or by speech recognition, after which services can be inquired about through the IVR dialogue. IVR systems can respond with pre-recorded or dynamically generated audio to further direct users on how to proceed. IVR systems deployed in the network are sized to handle large call volumes and also used for outbound calling as IVR systems are more intelligent than many predictive dialer systems.

Computer telephony integration, also called computer–telephone integration or CTI, is a common name for any technology that allows interactions on a telephone and a computer to be coordinated. The term is predominantly used to describe desktop-based interaction for helping users be more efficient, though it can also refer to server-based functionality such as automatic call routing.

<span class="mw-page-title-main">Voicemail</span> Voice message storage and retrieval

A voicemail system is a computer-based system that allows users and subscribers to exchange personal voice messages; to select and deliver voice information; and to process transactions relating to individuals, organizations, products, and services, using an ordinary phone. The term is also used more broadly to denote any system of conveying a stored telecommunications voice messages, including using an answering machine. Most cell phone services offer voicemail as a basic feature; many corporate private branch exchanges include versatile internal voice-messaging services, and *98 vertical service code subscription is available to most individual and small business landline subscribers.

Call waiting is a telephone service where a subscriber can accept a second incoming telephone call by placing an in-progress call on hold—and may also switch between calls. With some providers it can be combined with additional features such as conferencing, call forwarding, and caller ID. Call waiting is intended to alleviate the need to have more than one telephone line or number for voice communications.

Call forwarding, or call diversion, is a telephony feature of all telephone switching systems which redirects a telephone call to another destination, which may be, for example, a mobile or another telephone number where the desired called party is available. Call forwarding was invented by Ernest J. Bonanno. In North America, the forwarded line usually rings once to remind the customer using call forwarding that the call is being redirected. More consistently, the forwarded line indicates its condition by stutter dial tone. Call forwarding typically can redirect incoming calls to any other domestic telephone number, but the owner of the forwarded line must pay any toll charges for forwarded calls. Call forwarding is often enabled by dialing *72 followed by the telephone number to which calls should be forwarded. Once someone answers, call forwarding is in effect. If no one answers or the line is busy, the dialing sequence must be repeated to effect call forwarding. Call forwarding is disabled by dialing *73. This feature requires a subscription from the telephone company. Also available in some areas is Remote Access to call forwarding, which permit the control over call forwarding from telephones other than the subscriber's telephone. VOIP and cable telephone systems also allow call forwarding to be set up and directed via their web portals.

VoIP spam or SPIT is unsolicited, automatically dialed telephone calls, typically using voice over Internet Protocol (VoIP) technology.

<span class="mw-page-title-main">Business telephone system</span> Multiline telephone system typically used in business environments

A business telephone system is a multiline telephone system typically used in business environments, encompassing systems ranging in technology from the key telephone system (KTS) to the private branch exchange (PBX).

<span class="mw-page-title-main">VoIP phone</span> Phone using one or more VoIP technologies

A VoIP phone or IP phone uses voice over IP technologies for placing and transmitting telephone calls over an IP network, such as the Internet. This is in contrast to a standard phone which uses the traditional public switched telephone network (PSTN).

<span class="mw-page-title-main">Dialogue system</span>

A dialogue system, or conversational agent (CA), is a computer system intended to converse with a human. Dialogue systems employed one or more of text, speech, graphics, haptics, gestures, and other modes for communication on both the input and output channel.

In telephony, line hunting is the method of distributing phone calls from a single telephone number to a group of several phone lines. Specifically, it refers to the process or algorithm used to select which line will receive the call.

Unified communications (UC) is a business and marketing concept describing the integration of enterprise communication services such as instant messaging (chat), presence information, voice, mobility features, audio, web & video conferencing, fixed-mobile convergence (FMC), desktop sharing, data sharing, call control and speech recognition with non-real-time communication services such as unified messaging. UC is not necessarily a single product, but a set of products that provides a consistent unified user interface and user experience across multiple devices and media types.

Call management is the process of designing and implementing inbound telephone call parameters, which govern the routing of these calls through a network. The process is most prominently utilized by corporations and the call centre industry and has its highest effectiveness when call logging software tools are used. Calls are routed according to the set up of calling features within the given system such as Call queues, IVR menus, Hunt groups and Recorded announcements. Call features provide a customised experience for the caller and maximize the efficiency of inbound call handling. Call management parameters can specify how calls are distributed according to an operator's skill level in relation to a call, the time and/or date of a call, the location of the caller or through automatic routing processes.

Dialogic telephony cards was a line of PC expansion cards developed in 1990s by Dialogic Inc., at the time Media & Signaling Division of Intel Corporation, for computer telephony applications. The cards are currently produced today by Sangoma Technologies Corporation.

Voice Elements is a Microsoft a Cloud Service and Calling Plan for Microsoft Teams. Voice Elements was released by Inventive Labs Corporation in 2008, based on their original CTI32 toolkit. Software developers who use C#, VB.NET or Delphi use Voice Elements to write telephony-based applications, such as Interactive Voice Response systems, voice dialers, auto attendants, call centers and more.

In marketing, contact center telephony is the communication and collaboration system used by businesses to either manage high volumes of inbound queries or outbound telephone calls keeping their workforce or agents productive and in control to serve or acquire customers. This business communication system is an extension of computer telephony integration (CTI).