Directriz: Relación ampliada
La relación de ampliación conecta un guión de uso de ampliación a un guión de uso de base. Esta directriz demuestra cómo utilizar esta relación.
Relaciones
Descripción principal

Explicación

La relación de ampliación conecta un guión de uso de ampliación a un guión de uso de base. Debe definir el lugar de la base en el que insertar la ampliación haciendo referencia a puntos de ampliación del guión de uso de base (consulte el apartado Directriz de producto de trabajo: Guión de uso, donde se tratan los puntos de ampliación). Por lo general, el guión de uso de ampliación es abstracto, pero no es necesario.

Puede utilizar las ampliaciones con diferentes objetivos:

  • Para mostrar que un componente de un guión de uso es un comportamiento del sistema opcional, o potencialmente opcional. De este modo, separa el comportamiento opcional del obligatorio en el modelo.
  • Para mostrar que un subflujo se ejecuta sólo bajo ciertas condiciones (a veces excepcionales), como desencadenar una alarma.
  • Para mostrar que puede haber un conjunto de segmentos de comportamiento de los cuales uno o varios pueden insertarse en un punto de ampliación en un guión de uso de base. Los segmentos de comportamiento que se insertan (y el orden en que se insertan) dependerán de la interacción con los actores durante la ejecución del guión de uso de base.

La ampliación es condicional, lo que significa que depende de lo que ocurra durante la ejecución del guión de uso de base. El guión de uso de base no controla las condiciones para la ejecución de la ampliación, las condiciones se describen en la relación de ampliación. El guión de uso de ampliación puede acceder y modificar atributos del guión de uso de base. Sin embargo, el guión de uso de base no puede ver las ampliaciones, ni acceder a sus atributos.

Las extensiones modifican el guión de uso de base implícitamente. También se puede considerar que el guión de uso de base define una infraestructura modular en la que se pueden añadir extensiones, pero el guión de uso de base no tiene visibilidad alguna de las extensiones específicas.

El guión de uso de base debe ser completo en y por sí mismo, lo que significa que debe ser comprensible y significativo sin referencias a las extensiones. No obstante, el guión de uso de base no es independiente de las extensiones, puesto que no se puede ejecutar sin la posibilidad de seguir a las extensiones.

Ejemplo:

Diagrama descrito en el texto adjunto.

Los guiones de uso Establecer teleconferencia y Mostrar identidad del llamador son extensiones del guión de uso de base Establecer llamada.

En un sistema telefónico, el guión de uso Establecer llamada proporciona el servicio principal que se proporciona a los usuarios. Los ejemplos de servicios opcionales son:

  • Poder añadir una tercera parte a una llamada (Establecer teleconferencia).

  • Permitir que el receptor vea la identidad del llamador (Mostrar identidad del llamador).

Se pueden representar los comportamientos necesarios para los servicios opcionales como guiones de uso de ampliación del guión de uso de base Establecer llamada. Este el uso correcto de la relación de ampliación: puesto que Establecer llamada es significativo en sí mismo, no es necesario leer las descripciones de los guiones de uso de ampliación para comprender el objetivo principal del guión de uso de base, y los guiones de uso de las extensiones tienen carácter opcional.

Si se deben poder crear instancias de forma explícita tanto el guión de uso de base como el guión de uso "base más ampliación", o bien, si se desea la adición para modificar el comportamiento en el guión de uso de base, en su lugar se debe utilizar la generalización de guiones de uso (consulte el apartado Directriz de producto de trabajo: Generación de guiones de uso).

El guión de uso de ampliación puede constar de uno o más argumentos de inserción, cada uno de los cuales puede tener vías de acceso alternativas incorporadas. Los segmentos de inserción modifican de modo incremental el comportamiento del guió de uso de base. Cada segmento de inserción del guión de uso de ampliación se puede insertar en una ubicación separada del guión de uso de base, lo que significa que la relación de ampliación tiene una lista de referencias a puntos de ampliación, cuyo número es igual al número de segmentos de inserción del guión de uso de ampliación. Cada punto de ampliación se debe definir en el guión de uso de base.

Un guión de uso de base consta de varias relaciones de ampliación, lo que significa que una instancia de guión de uso puede seguir a más de una ampliación a o largo de su ciclo de vida. Un guión de uso de ampliación se puede ampliar a varios guiones de uso de base, pero no implica ninguna dependencia entre los guiones de uso de base. Pueden incluso existir varias relaciones de ampliación entre el mismo guión de uso de ampliación y guión de uso de base, siempre que la ampliación se haya insertado en ubicaciones diferentes de la base, lo que significa que las diferentes relaciones de ampliación deben hacer referencia a puntos de ampliación distintos del guión de uso de base. Un guión de uso de ampliación puede, en sí mismo, ser la base en una relación de ampliación, inclusión o generalización. Por ejemplo, lo guiones de uso de ampliación pueden ampliar otros guiones de uso de ampliación de modo anidado.

Ejecución de la ampliación

Cuando una instancia de guión de uso que realiza el guión de uso de base llega a una ubicación del guión de uso de base en la que se ha definido un punto de ampliación, se evalúa la condición de la relación ampliada correspondiente. Si la condición es verdadera o está ausente, la instancia de guión de uso sigue la ampliación (o el segmento de inserción que corresponde al punto de ampliación). Si la condición de la relación de ampliación es falsa, la ampliación no se ejecuta.

El guión de uso de ampliación puede, como sucede en cualquier guión de uso, tener un flujo básico de sucesos y flujos alternativos de sucesos (consulte el apartado Directriz de producto de trabajo: Guión de uso, donde se trata la estructura del flujo de sucesos). La vía de acceso exacta que seguirá la instancia de guión de uso a través de la ampliación depende de lo que suceda antes de la ejecución (el estado de la instancia de guión de uso) y también de lo que suceda en la interacción con actores cuando se ejecuta la ampliación. Una vez que la instancia de guión de uso haya ejecutado la ampliación, la instancia de guión de uso reanuda la ejecución del guión de uso de base a partir del punto en el que lo dejó.

Diagrama descrito en el texto adjunto.

Una instancia de guión de uso siguiendo a un guión de uso de base y su ampliación.

Un guión de uso de ampliación puede tener más de un segmento de inserción, cada uno de ellos relacionado con su propio punto de ampliación en el guión de uso de base. Si procede, la instancia de guión de uso reanuda el guión de uso de base y continúa al punto de ampliación siguiente especificado en la relación de ampliación. En dicho punto, ejecuta el segmento de inserción siguiente del guión de uso de ampliación. Esto se repite hasta que se ejecuta el último segmento de inserción. Tenga en cuenta que la relación de ampliación sólo se comprueba en el primer punto de ampliación si la condición es verdadera, en cuyo caso la instancia de guión de uso debe realizar todos los segmentos de inserción.

Diagrama descrito en el texto adjunto.

Una instancia de guión de uso siguiendo a un guión de uso de base y un guión de uso de ampliación, el último con dos segmentos de inserción.

La multiplicidad de la relación de ampliación restringe el número de repeticiones de la ampliación completa que se pueden producir. Observe que se repite la ampliación completa (y que limita la multiplicidad), no sólo un segmento de inserción.

Documentación de la relación de ampliación Ir a la parte superior de la página

Describa la condición de la ampliación en términos de atributos del guión de uso de base. También puede elegir la omisión de la condición, en cuyo caso la ampliación siempre se ejecuta.

Cada relación de ampliación tiene una lista de referencias a puntos de ampliación (uno o más) en el guión de uso de base. Se hace referencia a los puntos de ampliación por nombres. Si el guión de uso de ampliación tiene varios segmentos de inserción, debe especificar el segmento que corresponde a un punto de ampliación concreto. También debe especificar los pasos o los subflujos del guión de uso de ampliación que constituyen cada segmento de inserción.

Ejemplo:

En un sistema telefónico, el guión de uso abstracto Mostrar identidad del llamador puede ampliar el guión de uso Establecer llamada. Es un servicio opcional al que, con frecuencia, se hace referencia como "ID de llamador", que puede haber solicitado, o no, el receptor. Una descripción de la relación de ampliación de Mostrar identidad del llamador a Establecer llamada podría ser similar a la siguiente:

Condición: El receptor debe haber solicitado el servicio "ID de llamador".

Punto(s) de ampliación Mostrar identidad - inserte el guión de uso Mostrar identidad del llamador completa.

Si lo desea, puede proporcionar multiplicidad a la relación de ampliación. Si se omite la multiplicidad, se da por supuesto que es una.

Ejemplo de uso

Imagine el sistema telefónico simple siguiente:

Diagrama descrito en el texto adjunto.

El guión de uso abstracto Establecer teleconferencia es una ampliación del guión de uso Establecer llamada.

En este modelo, una representación simple de nuestro sistema telefónico familiar, el servicio de llamadas básico se describe en el guión de uso Establecer llamada. Un esquema paso a paso del flujo de sucesos básico tendría un aspecto similar al siguiente:

  1. El llamador levanta el receptor.
  2. El sistema presenta tono de marcado.
  3. El llamador marca un dígito.
  4. El sistema desactiva el tono de marcado.
  5. El llamador marca el resto del número.
  6. El sistema analiza dígitos, determina la dirección de red del receptor.
  7. El sistema analiza los dígitos y determina la ubicación de la red en la que se encuentra el receptor.
  8. A continuación, el sistema determina si se puede establecer un circuito virtual al receptor.
  9. Si se puede establecer un circuito virtual, el sistema llama al teléfono del receptor y presenta el tono de marcado en el teléfono del llamador.
  10. Cuando el receptor responde al teléfono, el sistema inhabilita el tono de marcado del teléfono del llamador, detiene tono de marcado del teléfono del receptor y completa el circuito virtual.
  11. El sistema inicia un registro de facturación, registra la hora de inicio de la llamada, los puntos finales de la llamada y la información de cliente del llamador.
  12. La llamada continúa durante un lapso de tiempo determinado. Cuando o el llamador o el receptor se desconectan de la llamada, el sistema registra la hora final de la misma, libera todos los recursos necesarios para dar soporte al circuito virtual y, a continuación, finaliza el guión de uso.

Para añadir funciones a este sistema de modo que permita que el llamador o el receptor puedan conectar un tercero en la llamada (con frecuencia llamado "teleconferencia"), se debe añadir comportamiento al flujo de sucesos. Una alternativa, y la primera que se va a tener en cuenta, consiste en situar las diferencias directamente en Establecer llamada. Dichas diferencias se podrían modelar por medio de flujos de sucesos alternativos, tal como se describe en el apartado Directriz de producto de trabajo: Guión de uso. La solución funciona con las adiciones más sencillas, siempre que la funcionalidad añadida no confunda ni oculte el significado original del guión de uso. La otra alternativa consiste en separar las diferencias en un guión de uso de ampliación abstracto denominado Establecer teleconferencia que amplíe el guión de uso de base.

El guió de uso Establecer llamada tendría la adición siguiente:

Puntos de ampliación:
Teleconferencia
se produce después del paso 11.

El guión de uso de ampliación, Establecer teleconferencia, se podría describir del modo siguiente:

Guión de uso Establecer teleconferencia
Este guión de uso amplia Establecer llamada.   Se ha insertado en el punto de ampliación Teleconferencia.
Flujo básico:
1. El llamador pulsa el botón de colgar, enlace o señal.
2. El sistema genera 3 pitidos cortos como confirmación.
3..12.<estos pasos son idénticos a los pasos 3..12 del guión de uso de base>
13. El llamador se vuelve a conectar al receptor del guión de uso Establecer llamada.

Se desaconseja que los pasos 3..12 sean comunes con el guión de uso.   Un modo de resolverlo consiste en descomponer en factores la parte común como un guión de uso de inclusión (consulte el apartado Directriz de producto de trabajo: Relación de inclusión).