Posteado por: Iván Garcerant en: 12-07-08
Si el análisis pone en descubierto las partes de aquello que se ha visto como un todo, entonces el análisis de casos de uso ha de poner en descubierto las instancias que intervienen en el sistema a la hora de realizar la funcionalidad descrita en dicho caso de uso.
Para efectos de la tarea análisis de caso de uso, en su versión con modelo de domino, dichas instancias van a pertenecer a alguna de las clases descritas en el modelo de dominio. El objetivo del análisis va a establecer los detalles de la relación que es necesaria que tengan estas clases para lograr la funcionalidad descrita en el caso de uso.
Tomemos el siguiente modelo de dominio para el sistema de subterráneo (Metro) de una ciudad cualquiera:
Fig. 1 – Diagrama de clases del modelo de dominio del sistema metro
Y complementemos con el siguiente modelo de casos de uso; asumiendo de momento que los casos de uso han sido descrito en detalle en algún documento apropiado.
Fig. 2 – Diagrama de casos de uso del sistema metro
Finalmente, tomemos el caso de uso Compra de Ticket para completar nuestro ejemplo:
Nombre: Compra de Ticket.
ID: N/A.
Actor: Usuario del Metro.
Descripción breve: El usuario del metro compra un boleto del sistema luego del pago de la cantidad apropiada.
Tabla 1 – Detalles del caso de uso: Compra de Ticket
Ya armados con todos estos detalles, nos podemos hacer la siguiente pregunta:
¿Qué clases del modelo de dominio intervienen en el caso de uso?
No existe una respuesta necesariamente correcta, queda a juicio del analista el tomar una u otra clase según su visión y particular enfoque del problema; en mi caso, he tomado las clases Usuario del Metro, Venta de Ticket, y Ticket.
Luego de identificar que conceptos de nuestro modelo de dominio intervienen en el caso de uso, necesario ahora indicar cuales son los mensajes que estas instancias deben intercambiar para completar la funcionalidad. Este intercambio lo presentamos en un diagrama de UML, típicamente un diagrama de secuencia.
Fig. 3 – Diagrama de secuencia con el escenario de análisis
del caso de uso: Compra de Ticket
El resultado de nuestro análisis ha sido una primera versión de los mensajes que han de intercambiar las instancias de las clases Usuario del Metro, Venta de Ticket y Ticket, para lograr la funcionalidad requerida en el caso de uso Compra de Ticket.
Hay que fijarse que el modelo de domino original tenía pocos o ningún atributo o método para sus clases. El resultado del análisis es que ahora estas clases han sido detalladas un poco más, indicando para algunas de ellas (las que intervienen en el los escenarios de análisis) cuales métodos son necesarios e incluso, el proposito de cada uno de estos.
Cuando se parte de un modelo de dominio, el análisis de caso de uso no hace más que enriquecer este modelo, detallando como he dicho ya, cuales métodos son necesarios que estén presentes. Al final, el análisis habrá completado un esbozo de un modelo del sistema; modelo este que ya habrá asumido todos los requisitos de nuestros clientes y presentará una relación de clases capaz de instanciar lo visto en el análisis.
Queda por supuesto más pasos antes de contar con un sistema listo para su uso; es necesario que realicemos la integración con las clases de análisis (si las hemos usado) así como llevar a cabo el diseño del sistema; es decir, aún no estamos listos para programar, pero si estamos listos para diseñar.
[...] lenguaje con ayuda de software especial de dibujo. Así que si se ven algunos artículos tales como ejemplo de análisis de caso de uso, se tendrán un buen conjunto de ejemplos de diagramas bien [...]
muy bueno el ejemplo muy claro y muy entendible disipe todas las dudas que tenia gracias
12-07-08 a 7:05 pm
Según UML, las relaciones de dependencia entre los casos de uso son las de inclusión y la extensión; sin embargo en el diagrama de casos de uso que he colocado tengo una relación diferente: prerequisito. Esto es valido siempre y cuando tengamos un documento o anexo donde hayamos detallado el significado de este estereotipo personalizado.
En nuestro caso, este comentario cubre esa exigencia de tener definido lo que hemos personalizado; espero que sea obvio que el estereotipo de relación “prerequisito” une dos casos de uso cuando uno requiere que otro se haya completado previo a su activación. (Si lo piensas utilizar debes arrastrar la definición también!)
El ejemplo en verdad lo hice con otro propósito en mente, por lo que el estereotipo lo puse en español y los casos de uso sin ID numérico; pero a fin de cuentas el modelado ha de ser flexible para que pueda ser expresivo.
Espero que nadie se me confunda.