Está en la página 1de 34

Objetivos del tema

Identificar los actores y casos de uso Representar en UML y textualmente los casos de uso Utilizar las relaciones <<include>> y <<extend>> Relacionar los casos de uso con otras tcnicas de modelado de UML

4.1

Requisitos funcionales: los casos de uso


Requisitos funcionales: Modelo de casos de uso Representacin en UML Definicin de caso de uso y escenario

Tipos de requisitos
Funcionales: caractersticas del sistema
Se describe con casos de uso

Requisitos no funcionales
Usabilidad Rendimiento Mantenibilidad Soporte, adaptabilidad... Implementacin

Tambin Requisitos de dominio (restricciones legales, etc.) y Requisitos de informacin


5

Documentacin de requisitos
Visin
Grandes objetivos y restricciones, alcance del proyecto

Modelo de casos de uso


Describe los requisitos funcionales

Especificacin adicional
Requisitos no funcionales, Requisitos de dominio y Requisitos de informacin

Glosario
Terminologa bsica del dominio

Modelo de casos de uso


Un Modelo de casos de uso describe los requisitos funcionales de sistema desde el punto de vista de casos de uso Los casos de uso describen:
el sistema (casos de uso) el entorno del sistema (actores). la relacin entre el sistema y su entorno

Modelo de casos de uso


Un caso de uso representa una interaccin tpica entre un usuario y un sistema informtico:
Los casos de uso capturan el comportamiento deseado del sistema bajo desarrollo, pero... no especifican cmo se implementa ese comportamiento
8

Utilidad de los casos de uso


Los casos de uso tienen dos papeles fundamentales:
Capturar los requisitos funcionales del sistema Simplificar la construccin de los modelos de objetos Servir de base para las pruebas del sistema

UML: diagramas de casos de uso


Un diagrama de casos de uso es un grafo con dos tipos de nodos:
Actor - que representa cualquier elemento que intercambia informacin con el sistema, por lo que est fuera de l Caso de uso - Es una secuencia de intercambios que representan el dilogo entre el sistema y uno o varios actores. Tiene una descripcin informal en lenguaje natural o en un lenguaje estructurado

Entre ellos hay relaciones de asociacin


10

Diagramas de Casos de uso


El usuario teclea la cantidad que quiere sacar El sistema comprueba que tiene billetes suficientes El cajero enva la peticin al sistema del banco emisor...

Sistema

Caso de uso X

Actor A Actor B Caso de uso Y


11

Notacin de los casos de uso


Los casos de uso se representan por una elipse y un nombre, que puede ir dentro o debajo de la elipse. Los actores se representan con el icono de estereotipo estndar para casos de uso (el stick man o monigote) con el nombre del actor al pie de la figura. Los nombres de los actores suelen empezar por mayscula.

12

Definicin de casos de uso (I)


Una secuencia de acciones realizadas por el sistema, que producen un resultado valioso para un actor en particular Una accin es procedimiento atmico. Se invoca cuando:
el actor enva un estmulo al sistema el sistema recibe un evento temporal

Realizadas por el sistema:


El sistema proporciona una respuesta (pero es una caja negra)

13

Definicin de casos de uso (II)


Una secuencia de acciones realizadas por el sistema, que producen un resultado valioso para un actor en particular Un resultado valioso:
Un caso de uso debe asegurar que un actor pueda desempear una tarea que tiene un valor Esto es importante para determinar el nivel correcto para un caso de uso (casos de uso que no son demasiado pequeos)

Un actor en particular:
El actor es la llave para encontrar casos de uso correctos (Entrevistas, actividades asociadas a un actor...) Un actor interacciona a travs de una instancia concreta del caso de uso (escenario) 14

Escenarios y casos de uso


En realidad, la definicin corresponde a un escenario o instancia del caso de uso:
Una secuencia particular de acciones que lleva a un resultado valioso (o exito) Tambin puede llevar a un resultado de fracaso

Un caso de uso es un conjunto de escenarios (xitos y fracasos) relacionados por el resultado que el actor pretende obtener La relacin entre escenario y caso de uso es idntica a la que existe entre objeto y clase15

Actores y casos de uso


El actor suele ser una persona, pero se diferencia de un usuario Un actor representa un cierto papel que distintos usuarios puede jugar.
El actor sera la clase y el usuario una instancia de la clase. Un mismo usuario podra ser instancia de varios actores.

Una mquina o un sistema tambin puede ser un actor


Incluso el tiempo (un cronmetro) puede ser un actor

16

4.2 Descripcin y Construccin de los casos de uso


Descripcin: plantillas El proceso de encontrar y construir los casos de uso

Descripcin de los Casos de uso


Un caso de uso describe su objetivo (la funcionalidad que se pretende) ms una interaccin entre un actor y un sistema en forma de secuencia de estmulos y respuestas La descripcin se centra en lo que debe hacerse, no en la manera de hacerlo Deben evitarse expresiones imprecisas: sencillez y claridad Puede utilizarse un lenguaje estructurado (secuencia, repeticiones y situaciones opcionales)

18

Casos de uso y caja negra


Incorrecto o Correcto?
El cajero pulsa la tecla Inicio El sistema genera un registro en un fichero de ventas El cajero solicita iniciar una nueva venta El sistema genera una sentencia SQL El sistema registra la venta

19

Formatos de descripcin
El caso de uso se puede describir con varios niveles de detalle:
Breve
Un resumen inicial en un par de frases

Informal
Un conjunto de prrafos y alternativas

Completo
Con todas las alternativas, pre y post-condiciones, etc.

Cf. Ejemplos del Larman


20

Formatos de descripcin
Por otro lado, se distinguen: Casos de uso Esenciales
El comportamiento del sistema sin entrar en detalles tecnolgicos

Casos de uso Concretos


Con el detalle de la interfaz de usuario

Ser necesario ajustarlos a los requisitos no funcionales de tipo tecnolgico antes de completar el diseo de la capa de interfaz
21

Descripcin de los Casos de uso


La descripcin debe contener:
Inicio del caso de uso Fin del caso de uso Interaccin entre el caso de uso y los actores Intercambios de datos Cronologa y origen de los datos

La descripcin se puede completar con diagramas de secuencia o de transicin de estados


22

Descripcin de los Casos de uso


Descripcin El sistema deber permitir a [lista actores] en [instante en el que se puede realizar el caso de uso] [funcionalidad que define el caso de uso] segn se describe en el siguiente caso de uso: Paso 1 Accin {<accin a realizar>, realizar el caso de uso [caso de uso]} <Situacin que produce una alternativa> 2a Si [Situacin que produce una alternativa] el sistema deber {<accin a realizar>, realizar el caso de uso [caso de uso]} 2b Si [Situacin que produce una alternativa] el sistema deber {<accin a realizar>, realizar el caso de uso [caso de uso]} . . Accin En el caso de que [situacin que provoca la excepcin] el sistema deber {<accin a realizar>, realizar el caso de uso [caso de uso]} Secuencia Normal

<Identificador> <nombre descriptivo>

Habitualmente se utiliza una plantilla se algn tipo:

n Excepciones Paso p

Rendimiento

Frecuencia Importancia Urgencia Comentarios

q El sistema deber realizar la/s accin /es descrita/s en {los pasos [primer paso] al [ltimo paso], el paso [nmero de paso]} en un mximo de [cota de tiempo] Este caso de uso se espera que se lleve a cabo una media de [nmero de veces] al [unidad temporal] {vital, importante,quedara bien} {inmediatamente, hay presin, puede esperar} <otras consideraciones en formato libre>

23

Plantilla de casos de uso (cabecera)


RF- <id del requisito> Versin Autores Fuentes <nombre del requisito funcional> <numero de versin y fecha> <autor> <fuente de la versin actual>

Objetivos asociados Descripcin

<nombre del objetivo> El sistema deber comportarse tal como se describe en el siguiente caso de uso { concreto cuando <evento de activacin> , abstracto durante la realizacin de los casos de uso <lista de casos de uso>}

24

Plantilla (pie)
Rendimiento Paso Cota de tiempo

1 2 Frecuencia esperada Importancia Urgencia Comentarios

n segundos n segundos

<n de veces> veces / <unidad de tiempo> {sin importancia, importante, vital} {puede esperar, hay presin, inmediatamente} <comentarios adicionales>

25

Plantilla (secuencia normal)


Precondicin Secuencia Normal <precondicin del caso de uso> Paso 1 Accin {El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el caso de uso < caso de uso RF-x> Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x>

3 4 5 6 n Postcondicin <postcondicin del caso de uso>


26

Plantilla (excepciones)
Excepciones
Paso Accin

Si <condicin de excepcin>,{el <actor> , el sistema} }<accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x>, a continuacin este caso de uso {continua, aborta}

1 4

...

27

Descubrir y construir los Casos de uso


Es un proceso iterativo. Se van descubriendo los escenarios desde el punto de vista del usuario o ACTOR y sus objetivos. Pasos del proceso:
1. 2. 3. 4. Fijar los lmites del sistema Identificar los actores principales Identificar los objetivos de cada actor Definir (elaborar) cada caso de uso
28

Actores y lmites del sistema


Empresa Tienda Hacienda Obj: Recaudar Gerente de Ventas TPDV Cajero

Cliente

Objetivos : Comprar cosas Analizar ventas Procesar venta

29

Descubrir y construir los Casos de uso


En el momento de identificar los actores es conveniente distinguir entre actores principales (que son los que emplean directamente el sistema llevando a cabo las tareas ms importantes) actores secundarios (existen para que los principales puedan utilizar el sistema). La estructura del sistema debe decidirse teniendo en cuenta a los actores principales. Los casos de uso no pueden ser demasiado pequeos, ya que deben aportar algn valor al actor.
30

Preguntas
Pueden utilizarse tcnicas de observacin o entrevista La mayora de los objetivos son obvios (vender, cobrar, gestionar una devolucin...) Para detectar todos los casos de uso, se puede preguntar: Escribe/lee/modifica el actor alguna informacin del sistema? Cules son las principales tareas de cada actor? Informa el actor al sistema de los cambios externos? Desea el actor ser informado de cambios no esperados?

31

Ms preguntas
Preguntas estndar para encontrar otros actores y objetivos:
quin arranca el sistema? quin gestiona los usuarios y la seguridad? el sistema debe hacer algo cada cierto tiempo? quin evala la actividad del sistema? Cmo se actualiza el software?

32

Proceso de elaboracin
Identificar a grandes trazos los casos de uso Las principales etapas de cada caso de uso se describen con un par de frases Se distingue un camino principal y se identifican los caminos alternativos y excepciones Proceso iterativo:
Los casos de uso se amplan, profundizndose en su descripcin Se buscan etapas comunes y alternativas que representar en otros caso de uso relacionados por las relaciones incluye, generaliza y extiende

33

Resultado final (I)


Se debe cuidar que:
Exista una descripcin breve que represente una verdadera imagen del caso de uso Las condiciones de arranque y parada del caso de uso estn bien definidas Los usuarios estn satisfechos de la secuencia de interacciones entre el actor y el caso de uso

34

Resultado final (II)


El problema fundamental es encontrar el nivel de abstraccin adecuado.
En general si un caso de uso se hace demasiado grande a medida que se va detallando es conveniente dividirlo en varios.

Se pueden hacer preguntas como:


es posible ejecutar un paso de forma independiente a los otros o siempre va encadenado con ellos? es lgico agrupar varios pasos para documentarlos, probarlos o modificarlos en conjunto?

35

Escenarios y casos de uso


Un caso de uso tiene como instancias los escenarios:
situaciones concretas que pueden recorrer total o parcialmente el caso de uso

Se deben consideran en lo posible todos los escenarios de modo que se pueda validar el caso de uso.
La ltima comprobacin consiste por tanto en asegurar que el caso de uso represente todos los escenarios.

A veces se confunden casos de uso con escenarios:


Si aparecen muchos casos de uso puede que sea un sntoma de una mala descripcin del sistema
36

Casos de uso - Ejemplo

sacar dinero usuario sistema del banco emisor Consulta de saldo

recarga mvil operador Compaa telefnica

administracin

Cajero automtico
37

CU-003 Descripcin Secuencia Normal

Sacar dinero El sistema deber permitir al cliente del banco, en cualquier momento, sacar dinero segn se describe en el siguiente caso de uso: 1+ El usuario inserta la tarjeta en el cajero 2 + El cajero lee el cdigo de la banda magntica de la tarjeta y verifica si es aceptable y pide el cdigo del usuario 3+ El usuario introduce el cdigo 4 + Si el cdigo es correcto, el cajero pide al usuario que seleccione el tipo de transaccin deseada 5+ El usuario selecciona la funcin sacar dinero, 6 + El cajero le pide al usuario que teclee la cantidad deseada 7 + El usuario teclea la cantidad que quiere sacar, 8 + El cajero enva la peticin al sistema del banco 9 a Si conecta el sistema deber comprobar si hay dinero en la cuenta

9 b Si no conecta el sistema deber comprobar si el dinero es menos que el lmite 10 En cualquiera de los dos casos el sistema: + expulsa la tarjeta + imprime el recibo + entrega el dinero 2' La tarjeta no es aceptada + Se expulsa emitiendo un sonido 4' Cdigo incorrecto (1,2) + Se emite un mensaje dando al usuario la oportunidad de volver a introducir el cdigo (paso 3) 4'' Cdigo incorrecto (3) + Se emite un mensaje y se retiene la tarjeta 9' No autorizado para sacar dinero + El sistema de banco no autoriza a sacar dinero. Se emite un mensaje de informacin y se expulsa la tarjeta 9 a ', 9 b' No hay dinero suficiente + El cajero no dispone de la cantidad pedida. Emite un mensaje y vuelve al paso 7 1..10' Cancelar + En cualquier momento el usuario puede cancelar la transaccin, con lo que se expulsa la tarjeta

Excepciones

38

Cajero automtico: secuencia normal


1 2 3 4 5 6 7 8 9 El sistema visualiza un mensaje de bienvenida en la pantalla El usuario inserta la tarjeta en el cajero El sistema lee el cdigo de la banda magntica de la tarjeta, verifica si es aceptable El sistema pide el PIN al usuario El usuario introduce el cdigo El sistema valida el PIN El sistema pide al usuario que seleccione el tipo de transaccin deseada El usuario selecciona la funcin sacar dinero, El sistema pide al usuario que teclee la cantidad deseada

39

Cajero automtico: secuencia normal


10 11 12 13 14 15 16 El usuario teclea la cantidad que quiere sacar El sistema comprueba que tiene billetes suficientes El cajero enva la peticin al sistema del banco emisor El banco emisor confirma que hay fondos El sistema imprime un recibo El sistema expulsa la tarjeta El sistema entrega el dinero

40

Cajero automtico: excepciones


3 6 6 11 13 13 Si la tarjeta no es aceptada, el sistema la expulsa emitiendo un sonido. El caso de uso termina. Si el usuario introduce un cdigo errneo, el sistema pide de nuevo el PIN y el caso de uso continua en el paso 5 Si el usuario introduce un cdigo errneo por tercera vez, el sistema retiene la tarjeta y el caso de uso termina. El sistema no tiene suficiente dinero y emite un mensaje y el caso de uso continua en el paso 9 Si el banco emisor no autoriza a sacar dinero, el sistema emite un mensaje de informacin y el caso de uso continua en el paso 7 Si no se consigue comunicacin y la cantidad excede del lmite mximo, el sistema emite un mensaje de informacin y el caso de uso continua en el paso 9
41

...

Casos de uso - Ejemplos

Monitor cardiaco

MonitorRemoto

Disparo si algo est fuera de lo normal Mdico

Paciente

Impresin impulsos card. Almacn de diagramas

Sistema que controla la actividad cardiaca de un paciente.


42

4.3 Relaciones entre casos de uso.


Incluye Generaliza Extiende

Relaciones entre los casos de uso


En OOSE o UML 1.1 las relaciones extiende y usa se representaban por la relacin de generalizacin acompaadas de los esterotipos:
<<extiende>> <<usa>>

44

Relaciones entre Casos de uso: UML


En UML 1.4 las relaciones entre casos de uso son Incluye (<<incluye>>) (<<include>>) - Es un estereotipo de dependencia. Indica que un caso de uso es incluido dentro de otro. Extiende (<<extiende>>) (<<extend>>) - Es un estereotipo de dependencia. Ofrece una forma de extensin ms controlada que la relacin de generalizacin. Generalizacin (sin estereotipo) - Indica que un caso de uso es una variante de otro.
45

Resumen de los tipos de relaciones


Relacin
Asociacin

Funcin
Camino de comunicacin entre un actor y un caso de uso en el que participa Insercin de comportamiento adicional en un caso de uso base (sin que ste tenga conocimiento) Relacin entre un caso de uso general y otro ms especfico que hereda caractersticas y aade otras Insercin de comportamiento adicional dentro de un caso de uso que describe la insercin

Notacin

Extiende

<<extiende>>

Generalizacin

Incluye

<<incluye>>

46

Relacin Incluye
Es una relacin de dependencia donde un caso de uso utiliza otro caso de uso completo, indicando que se incrusta en el primero. Cuando un nmero de casos de uso comparten un comportamiento comn, se extrae en un caso de uso que es utilizado (<<include>>) por otros.
El caso de uso incluido es el factor comn. Si el caso de uso nunca se utiliza por s mismo se denomina caso de uso abstracto.
47

Relacin Incluye

<<include>>
Comprobar tarjeta y PIN Sacar dinero

<<include>>

Actor
Consultar saldo

48

Relacin de Generalizacin
Indica que un caso de uso es una variante de otro. El caso de uso especializado puede variar cualquier aspecto del caso de uso base:
Cuando un caso de uso extiende otro, significa que el primero puede incluir parte del comportamiento del caso de uso que l extiende. No tiene porque incluir el comportamiento completo; pudiendo elegir que partes se quieren reutilizar.

Es una relacin muy flexible.


49

Relacin de Generalizacin

Cliente Remoto

Transferencia por Internet Transferencia Giro

Cliente

50

Relacin Extiende
Es una relacin de dependencia donde un caso de uso aade acciones al caso de uso base. El caso de uso base declara un conjunto de puntos de extensin. El caso de uso especializado slo puede alterar el comportamiento de los puntos de extensin marcados.
Si hay ms de uno, hay que identificar exactamente cul es es punto extendido.

Un caso de uso extendido puede manejar excepciones, alternativas, etc. 51

Generaliza y Extiende

Process Sale Extension Points: Payment VIP Customer extend Payment, if Customer.... transferencia Giro Handle Gift Certificate Payment

transferencia por internet

52

Relaciones entre Casos de uso

Process Sale Cashier include include include Handle Check Payment include Handle Cash Payment Handle Credit Payment actor Credit Authorization Service actor Accounting System

Customer

include include Process Rental

53

Relaciones entre Casos de uso


<<extend>> transferencia local Cliente

<<extend>> transferencia por Internet

transferencia <<include>>

Identificacin

54

Casos de uso - Ejemplos


Venta por catalogo telefnico

Comprobacin del estado Vendedor Realizacin de un pedido Atencin al Cliente Completar pedido Empleado

Establecer crdito Supervisor


55

Casos de uso - Ejemplos

Peticiones al catlogo con pedidos

Realizacin de un pedido
<<i

<<

in c

lud

e> >

<<

in c

Orden de pago
lu de >>

Informacin suministrada por el Cliente

nclu de> >

Pedido de productos

56

4.5. Utilidad de la tcnica: el paso a los objetos


Especificacin e implementacin Diagramas de secuencia de caja negra Descomposicin funcional vs colaboracin

Especificacin e implementacin
La especificacin de los casos de uso nos permite conocer el comportamiento externo que define la posible secuencia de mensajes intercambiados entre los actores y el sistema. Al nivel de casos de uso esto es especificado como
un diagrama de secuencia (dilogo actor/sistema) una mquina de estados, incluyendo el diagrama de actividad.

66

Diagramas de secuencia: caja negra


sistema : Sistema : Bibliotecario 1: comenzar el proceso de prstamo

Se realiza el caso de uso Identificacin de socio

2: comprueba la situacin del socio 3: identifique el libro 4: identifica el libro

5: ejemplares disponibles

6: identifica un ejemplar y solicita al sistema que registre el prstamo 7: proceso de registro ha terminado

67

Casos de uso: Implementacin


La relacin entre los casos de uso y su implementacin es una Realizacin. La implementacin de un caso de uso puede ser vista como una colaboracin:
Se trata de objetos y enlaces (instancias de clases y asociaciones) junto con las posibles secuencias de flujos de mensajes que provoca el caso de uso en cuestin.

La vista de los casos de uso es una descripcin funcional de las necesidades estructuradas con respecto a un actor

68

Transicin hacia los objetos


Una descomposicin que siga directamente la forma de los casos de uso conduce a una aproximacin estructurada clsica, funcional...
Realizacin de un pedido
<<i
<< in c lud e> >

<<

in c

Orden de pago
lu de >>

Informacin suministrada por el Cliente

nclu de> >

Pedido de productos

Realizacin de un pedido Orden de pago Pedido de productos Informacin suministrada

69

Transicin hacia los objetos


Es necesario realizar un paso al mundo de los objetos
Se efecta asociando una colaboracin a cada caso de uso La colaboracin describe objetos del mbito, las conexiones entre estos objetos y los mensajes que intercambian stos

La realizacin de un caso de uso por una colaboracin es momento crucial del modelado; Es el momento del cambio hacia la orientacin a objeto
70

Transicin hacia los objetos

Caso de uso
<<Realiza>>

Colaboracin

<<Participa>>

<<Participa>>

<<Participa>>

Objeto

Objeto

Objeto

71

Casos de uso y UP
Cundo inicio elaboracin Donde

January

February

Two adjacent projections.

Use Case: Capture a Sale ... Main Success Scenario: 1. ... 2. ... 3. ... Extensions:

Use Case: Handle Returns ... Main Success Scenario: 1. ... 2. ... 3. ... Extensions:

Analista

Cliente Arquitecto

Usuario

Desarrollador

Quin

Cmo
Software: 72 Herramienta CASE + herramienta de requisitos + Hyperlink

Bibliografa Recomendada
Larman, C. UML y Patrones. Introduccin al Anlisis y Diseo Orientado a Objetos y al Proceso Unificado . Prentice Hall, 2002.
Captulos 6..9, 25

Amador Durn y Beatriz Bernrdez, Metodologa para la Elicitacin de Requisitos de Sistemas Software. 2002.

Lecturas complementarias
J. Rumbaugh, I. Jacobson, G. Booch, El Lenguaje Unificado de Modelado. Manual de referencia. Addison-Wesley,2000 A. Cockburn. Writing Effective Use Cases. Addison-Wesley 2001
73

Caso de estudio Punto de venta


Actores, objetivos y casos de uso:
Cajero:
Procesar ventas Procesar devoluciones Abrir y cerrar caja

Administrador:
Aadir usuarios Modificar usuarios Gestionar tablas del sistema

Director:
Poner en marcha Suspender operaciones

Control de ventas:
Analizar los datos de ventas y rendimiento

74

Diagrama de casos de uso


Procesar Venta Actor_Cajero Procesar Alquiler <<extend>> <<extend>> Gestionar Devolucin Pago con tarjeta Sistema contable

<<extend>>

Pago en metlico Pago con cupn Sistema de autorizacin

Gestionar usuarios Administrador del sistema

Gestionar seguridad

75

Caso de uso Procesar venta


1. El cajero inicia una nueva venta cuando un cliente llega a la caja con uno o varios artculos 2. El cajero introduce el cdigo del artculo 3. El sistema registra una lnea de detalle y muestra el nombre y precio del artculo (pasos 2 y 3 se repiten) 4. El cajero indica el fin de la venta 5. El sistema presenta el total 6. Punto de extensin: PAGO 7. El sistema registra la venta y enva la informacin al sistema contable 8. El sistema imprime el recibo
76

: Sistema : Actor_Cajero inicia nueva venta 1. El cajero inicia una nueva venta cuando un cliente llega a la caja con uno o varios artculos 2. El cajero introduce el cdio del artculo 3. El sistema registra una lnea de detalle y muestra el nombre y precio del artculo (pasos 2 y 3 se repiten) 4. El cajero indica el fin de la venta 5. El sistema presenta el total 6. Punto de extensin: PAGO 7. El sistema registra la venta y enva la informacin al sistema contable ...

introduce el cdigo del artculo

muestra el nombre y precio del artculo

fin de la venta presenta el total Punto de extensin: Forma de PAGO registra la venta

77