Relación de Dependencia extend del Diagrama de Casos de Uso

La relación <<extend>>, es una dependencia que indica que un caso de uso (extendido) añade comportamiento opcional a otro caso de uso (base) bajo ciertas condiciones. A diferencia de <<include>>, esta relación no es obligatoria y se activa solo cuando se cumplen criterios específicos, definidos en puntos de extensión (Booch et al., 2006, capítulos 17 y 18; OMG, 2017, sección 18).

La relación <<extend>> permite modelar funcionalidades opcionales o condicionales en sistemas complejos. Al combinar puntos de extensión documentados y especificaciones textuales claras, se logra un equilibrio entre flexibilidad y mantenibilidad. Su uso adecuado evita la sobrecarga de casos base y facilita la adaptación a requisitos cambiantes.

Propósito

Propósito Explicación
Modularidad Separar funcionalidades opcionales o condicionales del flujo principal.
Flexibilidad Permitir que el caso base funcione independientemente de la extensión.
Claridad Evitar sobrecargar el caso base con variantes poco frecuentes.

Notación

Se representa mediante una línea punteada con una flecha abierta, etiquetada con <<extend>>, desde el caso extendido al caso base.

Los puntos de extensión se documentan en la especificación textual del caso base.

Ejemplo

Figura
Ejemplo de Relación de Dependencia <<extend>>

uml diagram

Nota:

Reglas y Buenas Prácticas

Regla Ejemplo Correcto Ejemplo Incorrecto
Usar para funcionalidades opcionales <<extend>> para aplicar descuentos <<extend>> para validar usuario (debe ser <<include>>)
Documentar puntos de extensión Especificar en qué paso del flujo base se activa la extensión. Dejar la condición implícita.
Evitar ciclos <<include>> con etiquetas claras <<incl>> (abreviación ambigua)

Comparación de Relaciones de Dependencia include y extended

Ver Comparación de Dependencias include y extend