La interacción entre funcionalidades es un concepto de ingeniería de software . Ocurre cuando la integración de dos funcionalidades modifica el comportamiento de una o ambas.
El término «funcionalidad» se utiliza para designar una unidad de funcionalidad de una aplicación de software. Al igual que muchos conceptos en informática, este término puede emplearse en distintos niveles de abstracción. Por ejemplo, el servicio telefónico básico (POTS, por sus siglas en inglés) es una funcionalidad de una aplicación de telefonía, pero a su vez se compone de funcionalidades de origen y de destino. Las funcionalidades de origen pueden incluir, a su vez, la función de proporcionar tono de marcado , la función de recopilación de dígitos, etc.
Esta definición de interacción de características permite centrarse en ciertos comportamientos de las características que interactúan, como por ejemplo, cómo puede modificarse su tiempo de respuesta tras la integración. Muchos investigadores en este campo consideran los problemas que surgen debido a cambios en el comportamiento de ejecución de las características que interactúan. En este contexto, el comportamiento de una característica se define por su flujo de ejecución y su salida para una entrada determinada. En otras palabras, la interacción modifica el flujo de ejecución y la salida de las características que interactúan para una entrada determinada.
Ejemplo
En el ámbito de la telefonía , una línea telefónica (el sistema) suele ofrecer una serie de funciones, entre las que se incluyen el desvío de llamadas y la llamada en espera . La llamada en espera permite suspender una llamada mientras se contesta otra, mientras que el desvío de llamadas permite al cliente especificar un número de teléfono secundario al que se redirigirán las llamadas adicionales en caso de que el cliente ya esté utilizando el teléfono.
Para ilustrar el ejemplo, consideremos una línea telefónica asignada a un cliente y supongamos que tanto el desvío de llamadas como la llamada en espera están habilitados. Cuando llega la primera llamada, el teléfono suena y se contesta. Dado que ninguna de las dos funciones se activa con la primera llamada, no se observa ningún problema. Cuando llega una segunda llamada antes de que la primera haya finalizado, el sistema telefónico debe tomar una decisión: si la llamada debe desviarse al número secundario (desvío de llamadas) o si la persona que contestó la primera llamada debe ser notificada de que ha llegado otra llamada (llamada en espera). Como esta decisión no tiene una respuesta correcta obvia, la respuesta óptima depende de las necesidades del cliente. Esta interacción entre funciones es un ejemplo específico de un problema general y común que se ha generalizado debido a la creciente complejidad de los sistemas.
En esta situación, es posible que la decisión del sistema se tome de forma no determinista debido a condiciones de carrera y otros factores de diseño. Las consecuencias de las interacciones entre funcionalidades pueden variar desde pequeñas molestias hasta fallos de software que ponen en peligro la vida del usuario; por ello, se están realizando investigaciones para encontrar maneras de detectar y resolver dichas interacciones.
Talleres y conferencias
- La serie de Talleres de Interacción de Funcionalidades (FIW) y las Conferencias Internacionales sobre Interacción de Funcionalidades (ICFI) son los principales foros dedicados a este problema:
Véase también
Enlaces externos
Grupos de investigación
- Grupo de Interacción de Características Híbridas
- Universidad de Ámsterdam
- Universidad de Uppsala
Papeles
- Hoja de preguntas frecuentes sobre la interacción con las funciones , Pamela Zave .
- Agentes y sus servicios: Un enfoque ontológico para la interacción de funciones. B. Cohen, City University.
- Un punto de referencia para la interacción de características en IN y más allá. E. Jane Cameron, Nancy D. Griffeth , Yow-Jian Lin, Margaret E. Nilson, William K. Schnure, Bellcore y H. Velthuijsen, PTT Research, Países Bajos.
- Actas de la conferencia archivadas el 20 de junio de 2013 en la Wayback Machine de FIW e ICFI en IOS Press .
- Interacción de características: una revisión crítica y un pronóstico meditado . M. Calder, M. Kolberg, EH Magill y S. Reiff-Marganiec. Computer Networks 41, pp. 115–141 (2002).
- Interacción de características como un problema de compartición de contexto . Armstrong Nhlabatsi, Robin Laney y Bashar Nuseibeh. Conferencia Internacional sobre Interacciones de Características, 11-12 de junio, Universidad de Lisboa , Portugal, pp. 133-148 (2009).
- Calidad del software