Utilizada para capturar los requerimientos funcionales de ms alto nivel de un sistema. Mediante su aplicacin se pretende especificar el comportamiento del sistema. No puede ser utilizada provechosamente para capturar los requerimientos no funcionales del sistema. Es una tcnica de modelado informal e imprecisa.
1
Caso de Uso
Un caso de uso es una secuencia de transacciones que son desarrolladas por un sistema en respuesta a un evento que inicia un actor sobre el propio sistema.
Actor
Entidad externa al sistema que se modela y que puede interactuar con l. Puede ser una persona o un grupo de personas homogneas, otro sistema, o una mquina. Los actores son externos al sistema que vamos a desarrollar. Por lo tanto, al identificarlos, estamos comenzando a delimitar el sistema y a definir su alcance. Los actores se representan con dibujos llamados stickman (hombres de palo).
3 4
Los nombres de los Casos de Uso pueden ser expresados de dos maneras: a)- Haciendo uso del verbo en infinitivo + el objeto que est siendo afectado, por ej.: Disear Reportes, Recibir Pedidos. b)- Haciendo uso del verbo gerundio + el objeto principal que est siendo afectado, por ej.: Diseando Reportes, Recibiendo Pedidos.
7 8
Sistema de Produccin
Sistema de Ventas
Ingresando Pedido
Describe tanto lo que hace el actor como lo que hace el sistema cuando interacta con l. Es iniciado por un nico actor. Est acotado a una determinada funcionalidad del sistema. Es independiente del mtodo de diseo que se utilice, y por lo tanto, del lenguaje de programacin.
10
Sistema de Produccin
Los Casos de Uso se representan grficamente con valos. Su nombre siempre se expresa desde el punto de vista del actor. 9
formulacin de QU es lo que tiene que hacer el sistema en interaccin con distintos tipos de actores Modelo o Diagrama de Casos de Uso
18
Pasos a Seguir
Paso 1. Identificar quines utilizarn el sistema en forma directa. Estos son los Actores. La primer pregunta que el analista debe hacer a sus usuarios es Para qu es este sistema? y la segunda es claramente: Para quines es este sistema? Identificar a todos los actores es crtico para un buen anlisis de requerimientos. Se deben identificar todos los tipos de usuario diferentes que tiene el sistema.
19
20
Paso 3. Definir qu quiere hacer ese Actor con el sistema. Cada una de las cosas que el Actor desea realizar con el mismo, se transforma en un Caso de Uso.
Qu cambios del exterior debe informar el actor al sistema? Qu informacin debe informrsele al actor con respecto a los cambios del sistema?
21
22
Paso 5. Detallar ese bloque descriptivo de la actividad Paso 4. Para cada uno de esos Casos de Uso decidir de la manera ms usual (en lenguaje natural), cundo y para qu este Actor utiliza el sistema. Detallar qu ocurre normalmente. Esta es la forma ms fcil de describir la interaccin del actor con el sistema. en la descripcin del Caso de Uso. Se debe mantener dicha descripcin a un alto nivel. Se pueden describir las cosas que hace el sistema, de las que el actor est enterado y, recprocamente, se pueden describir tambin las cosas que hace el Actor, de las cuales el sistema est enterado.
23
24
Paso 6. Una vez que se est conforme con la descripcin, se deben considerar extensiones, y agregarlas como extensiones de los Casos de Uso
Vendedor
(A esto se le denomina explosin de los Casos de Uso, donde se analiza el Comportamiento Condicional).
Descripcin El vendedor ingresa el apellido del cliente. El sistema muestra todos los clientes que coinciden con el apellido. El vendedor selecciona uno y el sistema muestra los detalles del cliente. El sistema muestra el historial de pagos para los ltimos seis meses.
26
Descripcin El vendedor ingresa el apellido del cliente. El sistema muestra todos los clientes que coinciden con el apellido. El vendedor selecciona uno y el sistema muestra los detalles del cliente. Por cada tem que el cliente desea ordenar el vendedor carga la lnea de detalle. Cuando se cargaron todos los tems el sistema confirma la orden.
Vendedor
Descripcin El vendedor ingresa el apellido del cliente. El sistema muestra todos los clientes que coinciden con el apellido. El vendedor selecciona uno y el Chequeando sistema muestra los detalles crdito del del cliente. cliente El sistema muestra el historial Descripcin de pagos para los ltimos seis En el CU Chequeando crdito del meses. Cliente si el sistema no encuentra <<extend>> ningn apellido que coincida, muestra un mensaje de error y le permite ingresar un nuevo apellido de cliente. Registrando
Cliente
28
Errores y excepciones
Durante la ejecucin de un caso de uso, suelen aparecer errores o excepciones. Estas desviaciones del curso normal del Caso de Uso tienen las siguientes caractersticas: 1)- Representan un error o excepcin en el curso normal del Caso de Uso. 2)- No tienen sentido por s mismas, fuera del contexto del Caso de Uso en el que ocurren.
3)- No necesariamente son casos de uso en s mismas.
29 30
CUs: Extensiones
El paso en el cual un caso de uso puede ser extendido se define como punto de extensin. Las condiciones para una Extensin pueden ser especificadas adjuntando una nota a la relacin de extensin.
Condicin: {cliente inexistente} Punto de Extensin: {mostrar detalles del cliente}
Una extensin es un Caso de Uso en s mismo, mientras que una excepcin no. Una extensin no es necesariamente un error o excepcin. Regla: Si algo opcional debe ser expresado con ms de un paso, seguramente es una extensin.
31
<<extend>>
Registrando Cliente 32
Luciana C. Ballejos CIDISI, Centro de I+D en Ingeniera en Sistemas de Informacin
Paso 7. Revisar las descripciones de cada Caso de Uso contra las descripciones de los otros Casos de Uso.
Se observa alguna notoria similitud? Si es as, extraerlas e incluirlas en Casos de Uso comunes, para evitar as la repeticin de actividades en distintos Casos de Uso.
33
Descripcin El vendedor ingresa el apellido del cliente. El sistema muestra todos los clientes que coinciden con el apellido. El vendedor selecciona uno y el sistema muestra los detalles del cliente. Por cada tem que el cliente desea ordenar el vendedor carga la lnea de detalle. Cuando se cargaron todos los tems el sistema confirma la orden.
Descripcin El vendedor ingresa el apellido del cliente. El vendedor selecciona uno y el sistema muestra los detalles del cliente.
<<include>>
<<include>>
Descripcin Vendedor El vendedor ingresa el apellido del cliente. El sistema muestra todos los <<extend>> clientes que coinciden con el apellido. El vendedor selecciona uno y el sistema muestra los Registrando detalles del cliente. Cliente El sistema muestra el historial de pagos para los ltimos seis meses.
Descripcin En el CU Chequeando crdito del Cliente si el sistema no encuentra ningn apellido que coincida, muestra un mensaje de error y le permite ingresar un nuevo apellido 35 de cliente.
36
Una vez que se est familiarizado con el proceso, el paso siguiente es comenzar a entender los balances que se pueden realizar. El primer tema a tratar est relacionado con qu no poner, porque poner demasiado en el modelo y querer abarcar mucho es el error ms comn en la realizacin de este tipo de modelados. Se debe tener cuidado en la descomposicin del Modelo de Casos de Uso en Casos de Uso comunes y 38 extendidos.
37
39
40
Reglas a aplicar...
La primer regla a aplicar es: si esto no es til para el modelo, entonces no modelarlo. Esta regla sirve para evitar prestar atencin a cuestiones que no hacen al objetivo primario de esta etapa. La regla asociada a la anterior es: si es til para el modelo, entonces se debe modelar. No se debe olvidar que no hay que incluir TODO en el modelo. Para ello, existen otras tcnicas de modelado.
41
Modelado Grfico
Los modelos grficos son para aclarar el texto, y no para confundir. Si el grfico de Casos de Uso es una maraa indescifrable, no est cumpliendo su objetivo. Por lo tanto, podemos usar las siguientes reglas:
Si debo particionar mi grfico, puedo hacerlo por actor. La primera particin debe ser separar los casos centrales de los casos auxiliares.
42
Modelado Grfico
Si las relaciones de uso y las extensiones entran en el diagrama principal, debo dejarlas all. Si las relaciones de uso no entran en el diagrama principal, debo mostrarlas en grficos teniendo en cuenta que siempre debo mostrar todos los Casos de Uso que usan a otro en un mismo diagrama. Si tengo un Caso de Uso que es usado por gran parte de los otros casos, debo evitar mostrarlo en el grfico principal. Es probable que no haga falta mostrar esta relacin de uso en un grfico.
43
Consideraciones
Los Casos de Uso se utilizan siempre para capturar los requerimientos de usuario de alto nivel. El modelado de Casos de Uso no debera llevar mucho tiempo. Los Casos de uso no deberan faltar en el anlisis de cualquier sistema de informacin.
44
Documentacin
Los Casos de Uso se documentan con texto informal. Si la descripcin del mismo es muy compleja, es conveniente complementarla con notaciones grficas, por ej. los diagramas de actividad. Algunas de las formas son:
Caso de Uso: Nombre del Caso de Uso Actor: Nombre del Actor
A travs de una lista enumerada. A travs de una tabla. A travs de una tabla cuando hay alternativas. A travs de un grfico.
45
46
A travs de un grfico
Nombre de la Asociacin Funcionalidad 1 Actor 1 Funcionalidad 2 Funcionalidad 8 Funcionalidad 3 Funcionalidad 9 Funcionalidad 4 Actor 3 Funcionalidad 7
Actor 2
Funcionalidad 5
Funcionalidad 6
49 50
Aclaraciones...
Las funcionalidades pueden ser expresadas de dos maneras: a)- Haciendo uso del verbo + el objeto que est siendo afectado, por ej.: Disear Reportes. b)- Haciendo uso del verbo gerundio + el objeto principal que est siendo afectado, por ej.: Agregando Procesos.
Aclaraciones... (cont.)
Las funcionalidades o el Caso de Uso se representan mediante valos. El hombrecito representa al actor. La interaccin entre el actor y el Caso de Uso se establece mediante una lnea continua que une a ambos. La falta de flechas indica que la direccin de la asociacin es bidireccional. Si se desea mayor claridad, se puede colocar el nombre de la asociacin sobre la lnea. Si se desea, puede especificarse en la asociacin la direccin del flujo de la informacin.
51 52
Diez Preguntas...
Al intentar usar los Casos de Uso, se presentan algunas dudas o dificultades. Estas son algunas: 1)- Cmo identifico todos los Casos de Uso? 2)- Cmo divido la funcionalidad del sistema en casos distintos? 3)- Qu nivel de detalle debo adoptar en la especificacin? Es el desarrollo de los Casos de Uso una tcnica de refinamientos sucesivos? 4)- Los Casos de Uso, deben incluir aspectos relacionados con la implementacin fsica de la interaccin?
54
Diez Preguntas...
5)- Cul es la diferencia entre las extensiones y las alternativas? 6)- Cmo debo clasificar las relaciones de uso opcionales, como usos o como extensiones? 7)- Cul es la forma ms prctica de documentar Casos de Uso? 8)- Puedo usar los Casos de Uso para definir prioridades de requerimientos? 9)- Cul es la relacin entre los Casos de Uso y los Casos de Test? 10)- Cmo organizo una especificacin de requerimientos que incluye Casos de Uso?
55
56
2.c- Identificar Casos de Uso que preceden a casos existentes. Qu es lo que tiene que ocurrir antes de este caso de uso?
2.d- Buscar Casos de Uso que suceden a casos existentes. Qu ocurre despus de este Caso de uso? 2.e- Buscar Casos de Uso temporales.
58
10
Pregunta 8:Puedo usar los Casos de Uso para definir prioridades de requerimientos?
Una vez documentados los Casos de Uso de trazo grueso, se deben definir las prioridades de los distintos casos de uso. Es til usar alguna categora, por ejemplo: imprescindible, importante y deseable. Los casos de uso imprescindibles son aquellos que, si no se implementan, hacen que el sistema no tenga sentido.
66
11
Los requerimientos importantes son aquellos que haran que el usuario se sienta decepcionado si no se implementan. Los requerimientos deseables son aquellos que el usuario querra tener, si hubiese tiempo disponible. La estrategia en este caso debera ser: incluir los imprescindibles, discutir los importantes, y eliminar los deseables Esta regla es relativa, ya que al evaluar un requerimiento debe analizar tambin su costo, complejidad, factibilidad tecnolgica y una cantidad de otros factores. 67
Pregunta 9:Cul es la relacin entre los Caso de Uso y los Casos de Test?
Los CUs son un excelente punto de partida para definir Casos de Test, y en particular, los Casos de Test de Aceptacin de Usuarios. 1)- Se debe crear al menos un Caso de Test por CU. En general, se tendrn al menos 4 o 5 Casos de Test de Aceptacin por cada CU. 2)- Se debe crear al menos un Caso de Test por cada alternativa de un CU. 3)- Si hay una relacin de extensin, se debe tener un Caso de Test que la incluya y otro que no.
68
4)- Si hay frases del tipo si, entonces, si no en el curso principal de los CU, se debe hacer al menos un Caso de Test en que la expresin lgica sea verdadera y uno en el que sea falsa. 5)- Por cada CU, se debe incluir al menos un Caso de Test con una accin invlida por parte del usuario. 6)- En todos los Casos de Test se debe especificar el comportamiento esperado del sistema. 7)- Se deben crear los Casos de Test en el momento en que finaliz la documentacin de los CU, si es posible antes de que los usuarios acepten los requerimientos y se de por concluido el anlisis. De esta forma, se encontrarn 69 errores en los CU en momentos oportunos.
4)- Si las relaciones de uso no entran en el diagrama principal, debo mostrarlas en grficos teniendo en cuenta que siempre debo mostrar todos los casos de uso que usan a otro en un mismo diagrama. 5)- Si tengo un caso de uso que es usado por gran parte de los otros casos, debo evitar mostrarlo en el grfico principal, ya que las flechas sern imposibles de organizar.
Se sugiere el siguiente orden para una especificacin de requerimientos utilizando Casos de Uso:
1)- Propsito del sistema: un breve prrafo, de 4 o 5 lneas, que responde a la pregunta Para qu estamos haciendo este sistema? 2)- Lista de actores con su objetivo principal en el uso del sistema. 3)- Grfico(s) de Casos de Uso. 4)- Descripcin de los casos con sus alternativas. 5)- Prototipos para la interfaz de los principales CUs. Luego, debe agregarse la parte no referida a los Casos de Uso, para completar la especificacin de requerimientos. 72
71
12
13