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>>
Nota:
- Caso de Uso Base:
(Realizar Compra)
- Caso de Uso Extendido:
(Aplicar Descuento)
- El caso de uso
(Aplicar Descuento)
es ejecutado de manera condicional por(Realizar Compra)
en puntos específicos de su secuencia llamado punto de extensión.
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) |