que includes exten examples example entre diferencia cual include uml extend use-case

includes - UML, incluir, extender la relación



use case diagram (2)

Tengo problemas para entender cómo funcionan las relaciones incluir y extender. Digamos que tengo una aplicación en línea para ir de compras. La aplicación le permite agregar / recuperar elementos de su carrito sin ser autenticado. Aquí está el escenario de "orden": el cliente hace clic en el botón de pedido. El sistema verifica si el usuario está autenticado. Si el usuario está autenticado, el sistema muestra la página de compra, de lo contrario, el usuario será redirigido a la página de autenticación. Me gustaría saber si el caso de uso de "autenticación" está incluido en el caso de uso de "orden" y, de ser así, ¿por qué? (Estoy haciendo esta pregunta porque el usuario no tiene que autenticarse si ya está autenticado.) Lo siento por mi inglés


He hecho muchas consultas sobre casos de uso y siempre ha sido un tema muy problemático y difícil de aprender y dominar. Es definitivamente una buena idea considerar algún otro método para especificar los requisitos y la funcionalidad del sistema (como prototipos UI, wireframes, etc.). En teoría, los casos de uso son una herramienta realmente ordenada, pero en la práctica es más difícil de aprender, requiere mucho tiempo, no es clara, confunde al equipo y a los clientes, es difícil de verificar / verificar, incluso más difícil de mantener actualizado, etc.

He tratado de aclarar estas dos relaciones aquí, usando su ejemplo, ligeramente extendido para cubrir ambas relaciones y poner el énfasis en las diferencias:

Tenga en cuenta que el caso de uso de "orden de lugar" tendrá varios escenarios, dos de los cuales son relevantes aquí:

  • "Realizar pedido" con autenticación anterior: en este caso, no se invocará la UC "Autenticar"
  • "Realizar pedido" sin autenticación previa: en este escenario, la invocación de "Autenticar" es OBLIGATORIA para poder realizar el pedido correctamente.

Muy frecuente fuente de confusión y errores en el modelado UC surge de esta situación. Algunos modeladores piensan que OBLIGATORIO en el contexto de "incluir" significa que debe ejecutarse SIEMPRE en el contexto de incluir UC, en cada escenario individual. Si no es el caso (como aquí, solo hay un escenario cuando es obligatorio) utilizan extender. Esto es un error, ya que es suficiente que una UC sea obligatoria en al menos un escenario. Estos detalles no se muestran en el diagrama, sino en las descripciones de los escenarios.


Primero debe buscar, antes de hacer una pregunta.

Aquí hay un enlace de este sitio que responde a su pregunta.