Autor: Carlos M. Macías Medina
Alias: Charlie Macías (México)
Nivel: Básico
Entre los casos de uso se pueden dar tres tipos de relaciones: inclusión, extensión y generalización.
Relación de Inclusión. Una relación de inclusión es aquella en donde, como su nombre lo dice, un caso de uso incluye a otro caso de uso. Hay un caso de uso base que refleja el objetivo principal de la interacción entre el actor y el sistema y un caso de uso incluido que digamos refleja un sub-objetivo dentro del objetivo principal pero dicho sub-objetivo se tiene que alcanzar para poder alcanzar el objetivo principal.
Relación de Extensión. Cuando un caso de uso plantea un objetivo alterno relacionado a un objetivo principal (el del caso de uso base) pero sin que sea necesario alcanzar el objetivo alterno para poder alcanzar el objetivo principal entonces estaremos hablando de una relación de extensión entre los casos de uso. La relación de extensión implica que, bajo ciertas circunstancias, la extensión inyecta comportamiento al caso de uso base.
Relación de Generalización. La generalización entre los casos de uso es como la generalización entre las clases. El caso de uso hijo hereda el comportamiento y significado del caso de uso padre; el hijo puede agregar o redefinir el comportamiento del padre; y el hijo puede sustituir al padre en cualquier lugar (tanto hijo como padre pueden tener instancias concretas).
Para explicar de una manera, espero, más amable estos conceptos voy a poner como ejemplo el juego de Halo 3. En Halo 3 el objetivo principal del juego consiste en completar la campaña (caso de uso base asociado al logro: Completar Campaña). Para poder completar la campaña es necesario acabar las nueve misiones que componen a la campaña (casos de uso incluidos asociados a los logros: Aterrizaje, Resistencia, La Carrera, Asalto, Purificar, Refugio, Última Batalla, La Clave y Vuelve). Opcional mente, si así lo deseamos, podemos desbloquear otros logros tales como: Hierro, Ojo Morado o Mala Suerte pero si no lo hacemos de cualquier forma podemos terminar el juego, estos serían los casos de uso de extensión. Finalmente, Completar la Campaña en Normal, Heroico o Legendario son maneras concretas de Completar la Campaña por lo que podríamos usar una relación de generalización.
Como podemos observar en el diagrama, las relaciones de inclusión y de extensión se modelan usando dependencias (flechas con cabeza abierta y línea discontinua) con los estereotipos de “include” y “extend” respectivamente. También hay que observar el sentido de la flecha, la inclusión siempre va del caso de uso base hacia el caso de uso incluido, mientras que la extensión comienza en la extensión y termina en el base.
Las relaciones de generalización se modelan utilizando flechas con cabeza cerrada y vacía y con línea continua. Siempre van del caso de uso especializado (hijo) al caso de uso general (padre).
Hay que tener mucho cuidado con el uso indiscriminado de las relaciones entre casos de uso. Las relaciones entre casos de uso deben ser consecuencia de un refinamiento, es decir, que, en la medida de lo posible, la primera versión del diagrama de casos de uso debe ser uno que no incluya relaciones entre casos de uso.
El uso indiscriminado de las relaciones entre casos de uso nos conduce hacia modelos enfermos de descomposición funcional y el problema de esta enfermedad es que tiene efectos adversos sobre todo en la estimación de esfuerzo.
Si en uno de tus proyectos te sientes tentad@ a plasmar un caso de uso “Imprimir Comprobante” primero pregúntate si ese objetivo hace sentido fuera del contexto de otro objetivo porque lo más probable es que se trate solamente de una actividad desarrollada dentro del contexto de un proceso, es decir, un caso de uso.

0 comentarios:
Los comentarios nuevos no están permitidos.