You are on page 1of 52

El modelo de casos de uso

Ingeniera de la Programacin Captulo 4

Contenidos

3.1 Introduccin 3.2 Actores y Casos de Uso 3.3 Modelo de casos de uso

3.3.1 Diagrama de contexto y modelo inicial. 3.3.2 Plantillas de especificacin. 3.3.3 Modelo estructurado.

3.4 Relaciones entre actores y casos de uso 3.5 Proceso de construccin del modelo de casos de uso 3.6 Propuesta de ciclo de desarrollo

3.1 Introduccin

Introducidos por I. Jacobson en Objectory. Los casos de uso describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el punto de vista de los usuarios. Son descripciones de la funcionalidad del futuro sistema independientes de la implementacin. Sirven para captar los requisitos funcionales de un sistema software.
3

Introduccin

Por qu casos de uso?

Fcilmente compresibles por clientesusuarios. Representan los requisitos funcionales. Se utilizan como base para un desarrollo iterativo e incremental. Incorporados en la mayor parte de los mtodos de desarrollo OO de segunda generacin.

3.2 Actores y Casos de Uso

Los actores definen qu existe fuera del sistema


Entorno del sistema

Sistema Caso de uso


Empleado

Cas o de uso Caso de uso

Sistema Au torizaciones

Comunicacin

Un actor puede ser una persona, un conjunto de personas, un sistema hardware, un sistema software o un reloj.
5

Actores

Un actor representan un rol que puede desempear alguien o algo que necesita intercambiar informacin con el sistema.
Cliente Bancario

Casos de uso

Un caso de uso describe una forma concreta de utilizar parte de la funcionalidad del sistema. La coleccin de todos los casos de uso describe toda la funcionalidad del sistema.
Extraccin de dinero del cajero Ingreso de dinero en el cajero Consulta de saldo

Caso de uso (definicin)

I. Jacobson propone dos definiciones:

Documento que describe una secuencia de eventos que realiza un actor (agente externo) que usa el sistema para llevar a cabo un proceso que tiene algn valor para el. Cada caso de uso est formado por una secuencia de eventos, iniciada por un actor, que describe la interaccin que tiene lugar entre el actor y el sistema.

Caso de uso

Caractersticas:

Son iniciados por un actor (actor primario o principal). Pueden participar otros actores (secundarios) Poseen un nombre. Pueden contener condiciones de inicio (precondiciones) y condiciones de terminacin (postcondiciones) La descripcin del caso de uso contiene la secuencia de eventos.

Caso de uso (notacin)

La comunicacin entre actores y casos de uso se muestra de la forma:

Cliente Bancario

Extraccin de dinero del cajero

10

3.3 Modelo de casos de uso

Notacin grfica con actores y casos de uso. Relaciones


Entre actores: herencia. Entre actores y casos: comunicacin. Entre casos de uso:
Usa, extiende (UML 1.3) Incluye, extiende, hereda de (UML 1.5)

Descripcin: plantillas textuales para cada caso de uso.


11

Notacin grfica

El modelo de casos de uso muestra grficamente toda la funcionalidad del sistema.


Alta Cliente Buscar

extiende incluye
Introducir Pedido

Cliente

extiende extiende

Obtener Estado Pedido Pago en cuenta Pago con tarjeta

Empleado

incluye
Buscar Pedido Cancelar Pedido

incluye

12

Organizacin del modelo

Estructurado en tres capas:


Diagrama de contexto y modelo inicial. Plantillas de descripcin. Modelo estructurado.

13

3.3.1 Diagrama de contexto.

El diagrama de contexto muestra los lmites del sistema y los actores (agentes externos) que interactuarn con el mismo.
Terminal Punto de Venta
Empleado

Cliente

Proveedor

Responsable de compras

Director Comercial

14

Modelo inicial

Contiene la agrupacin jerrquica de los distintos casos de uso:

Mediante paquetes UML (subsistemas).


Biblioteca Prstamos

Socios

15

Modelo inicial (2)

O bien:
Sistema de Pedidos
Gestin Pedidos Nuevo Pedido Cancelar Pedido Empleado Estado Pedido Gestin de Artculos

Nuevo Producto Borrar Producto Administrador

Gestin de Clientes

Borrar Pedido Nuevo Cliente Buscar Pedidos Buscar Cliente

16

Modelo inicial (2)

Utilizando un rbol de descomposicin funcional.


Sistema de Pedidos

Gestin Pedidos Nuevo Pedido

Gestin Artculos Nuevo Producto Borrar Producto

Gestin Clientes

Nuevo Cliente Buscar Cliente

Cancelar Pedido
Estado Pedido Borrar Pedido Buscar Pedidos

17

3.3.2 Plantillas de descripcin


Los casos de uso se describen utilizando plantillas en lenguaje natural. Habitualmente:


Nombre del CU. Descripcin. Actores (primario y secundarios) Precondiciones, Postcondiciones. Flujo de eventos.

18

Ejemplo TPV

Para un terminal punto de venta:


Un terminal punto de venta (TPV) es un sistema computerizado usado para registrar las ventas y gestionar pagos. Se usa en supermercados y en grandes almacenes. Incluye componentes hardware (como el ordenador y el escner del cdigo de barras) y software para ejecutar el sistema.

19

Ejemplo TPV (2)

Diagrama de contexto y modelo inicial


Terminal Punto de Venta Iniciar Sesin Venta Productos
Cliente

Empleado

Devolver productos Acabar Sesin


Responsable de compras Director Comercial

Compra proveedores Hacer ofertas Fijar Precio

Proveedor

20

Ejemplo TPV (3)

Variaciones sobre el ejercicio:


Supermercado tradicional Iniciar Sesin Venta Productos
Cliente

Empleado

Devolver productos

Supermercado electrnico

Venta Productos Devolver productos


Cliente

21

Plantillas TPV
Venta Productos

Empleado

Cliente

Empleado

Venta Productos

Si nicamente se desea mostrar la interaccin de los actores con el sistema informtico.

22

Plantilla TPV
Caso de uso Actores Propsito Venta de Productos Cliente (iniciador), Empleado Capturar una venta y su pago en efectivo Resumen Un cliente llega a la caja con productos para comprar. El empleado registra los productos y gestiona el pago en efectivo. Al acabar el cliente se va con los productos. Precondiciones El empleado se ha identificado en el sistema. Postcondiciones La venta se almacena en el sistema. Incluye Extiende Hereda de -

23

Plantilla TPV
Intenciones de usuario 1. El caso de uso se inicia cuando un cliente llega a la caja con productos. 2. El empleado indica que comienza una nueva venta. 4. El empleado introduce el cdigo de cada producto y la cantidad 6. El empleado indica el fin de la venta 8. El empleado dice el total al cliente. 9. El cliente entrega el importe 10. El empleado indica el dinero que ha recibido 12. El empleado deposita el dinero recibido en la caja, entrega el cambio y el recibo. 13. El cliente se va con los productos comprados ../.. continua Obligaciones del sistema

3. El sistema registra el inicio de una venta 5. El sistema determina el precio del producto y aade la informacin a la cuenta. 7. El sistema calcula y muestra el total.

11. El sistema calcula y muestra el cambio. Imprime un recibo y registra la venta.

24

Plantilla TPV
Extensiones sncronas #1. Si en 4 se introduce un cdigo de producto inexistente el sistema genera un mensaje de error. #2. Si en 9 el cliente no tiene dinero suficiente la venta se cancela. Extensiones asncronas Ninguna

Si nicamente se desea mostrar la interaccin con el sistema informtico, debe eliminarse la referencia al cliente dentro de la descripcin anterior.

25

Plantilla TPV (caso de uso sistema)


Caso de uso Actores Propsito Venta de Productos Empleado (iniciador) Capturar una venta y su pago en efectivo Resumen Un cliente llega a la caja con productos para comprar. El empleado registra los productos y gestiona el pago en efectivo. Al acabar el cliente se va con los productos. Precondiciones El empleado se ha identificado en el sistema. Postcondiciones La venta se almacena en el sistema. Incluye Extiende Hereda de -

26

Plantilla TPV (caso de uso sistema)


Intenciones de usuario 1. El empleado indica que comienza una nueva venta. 3. El empleado introduce el cdigo de cada producto y la cantidad 5. El empleado indica el fin de la venta 7. El empleado indica el dinero que ha recibido Obligaciones del sistema 2. El sistema registra el inicio de una venta 4. El sistema determina el precio del producto y aade la informacin a la cuenta. 6. El sistema calcula y muestra el total. 8. El sistema calcula y muestra el cambio. Imprime un recibo y registra la venta.

Extensiones sncronas #1. Si en 3 se introduce un cdigo de producto inexistente el sistema genera un mensaje de error. #2. En 7 el empleado puede cancelar la venta. Extensiones asncronas Ninguna

27

Estilos de descripcin: casos esenciales y reales

Los casos de uso esenciales son independientes de la interfaz y de la tecnologa.

Caso de uso esencial (descripcin muy abstracta)

Caso de uso real/concreto (descripcin muy detallada)

28

Casos esenciales y concretos


Accin de Usuario Insertar Tarjeta Introducir PIN Verificar PIN Presentar men de operacin Pulsar tecla Presentar men de cuenta Pulsar tecla Preguntar cantidad Introducir cantidad Hacer eco de cantidad Pulsar tecla Devolver tarjeta Recoger tarjeta Dispensar dinero Recoger Dinero Intenciones de Usuario Identificarse Elegir Entregar dinero Recoger dinero Obtener Efectivo, Caso de uso esencial Responsabilidades Sistema Verificar identidad Ofrecer elecciones de men Respuesta del Sistema Leer cinta magntica Solicitar PIN

29

Escenarios y Casos de Uso

Un escenario es una descripcin textual de una interaccin particular entre los actores y el sistema. A un caso de uso le corresponden varios escenarios. Los escenarios bsicos o principales no contienen situaciones de error. Los secundarios describen situaciones de error o alternativas de ejecucin.

30

3.3.3 Modelo estructurado

Contiene los actores y las relaciones entre los casos de uso (explicado despus)
CommonUseCases:CoffeeMachine
<<usecase>>

MakeCoffee
:Customer
<<usecase>>

MakeTea
<<include>>
<<usecase>>

TeaMaking

Ejemplo tomado de Telelogic Tau 2.2

31

Modelo estructurado (2)

Ejemplo de UML 1.5

32

3.4 Relaciones entre actores y casos de uso.

Herencia entre actores: La relacin de herencia entre actores indica que el actor descendiente puede jugar todos los roles del actor antecesor.

Actor antecesor

Cliente Bancario

Cliente Corporativo

Cliente Normal

Actor descendiente

33

Herencia entre actores

Actor abstracto: Participa en el modelo pero no interacta directamente con el sistema.

34

Relaciones entre casos de uso: incluye

Inclusin: Un caso de uso A incluye a un caso


de uso B, si una instancia de A puede realizar todos los eventos que aparecen descritos en B.
<<include>> Buscar Socio

Bibliotecario
(from Use Case View)

Baja Socio

La instanciacin de Baja Socio utiliza siempre el flujo de eventos de Buscar Socio

35

Inclusin de casos de uso

En la descripcin de A se incluye una referencia a B.

Flujo de eventos del caso de uso A Flujo de eventos del caso de uso B

36

Relacin de extensin

Un caso de uso B extiende a un caso de uso A, si en la descripcin de A figura una condicin cuyo cumplimiento origina la ejecucin del flujo de eventos de B.
<<extend>> Evaluar Solicitud de Crdito

Solicitar Informacin adicional al cliente

37

Relacin de extensin (2)

Una extensin equivale a una inclusin + una condicin.

Descripcin del caso de uso A

Condicin Descripcin del caso de uso B

38

Relacin de extensin (3)

til para:

Partes opcionales de un caso de uso. Representar sub-cursos de eventos que se ejecutan bajo ciertas condiciones. Para representar un men con opciones.

39

Extensin (4)

Se pueden tener varios puntos de extensin.


Caso base: Reservar un vuelo
Descripcin del caso de uso A

Punto de extensin 1

Condicin Condicin Descripcin del caso de uso B

Seleccionar asiento
Punto de extensin 2

Imprimir asignacin

Extensin: realizar asignacin de asiento

40

Relacin de herencia

Un caso de uso B se dice que especializa a un caso de uso A si el flujo de eventos asociado a B es un refinamiento del flujo de eventos asociado a A.

Relacin similar a la herencia OO. Permite separar un patrn de interaccin genrico (caso padre) de un patrn de interaccin ms especfico (caso descendiente).

41

Herencia (2)

Ejemplo

Enviar solicitud crdito

Enviar solicitud de crdito personal

Enviar solicitud de crdito empresarial

42

Relaciones entre casos de uso (1)

Dado un conjunto de casos de uso no existe una nica forma de representar las relaciones entre ellos. Diferencias entre inclusin y extensin:

Una inclusin es equivalente a una extensin sin condiciones. El caso incluido siempre forma parte del caso que incluye. El caso que incluye no tiene sentido sin el incluido.

43

Relaciones entre casos de uso (2)

Diferencias extensin y especializacin:

La extensin se utiliza para representar alternativas de ejecucin que se llevan a cabo en algunas ocasiones. La especializacin se utiliza para representar patrones genricos de interaccin que pueden especializarse en patrones ms especficos o concretos.

44

3.5 Proceso de construccin del modelo de casos de uso

Para construir el modelo de casos de uso:


Tcnica descendente. Tcnica ascendente.


Ascendente
Organizar modelo de Casos de uso
Generalizar escenarios Crear escenarios

Descendente
Detectar actores

Encontrar Casos de uso

Detallar Casos de uso

45

Reglas para identificar actores

Los usuarios pueden jugar varios roles cuando interactan con el sistema. Un usuario se puede corresponder con varios actores.

46

Reglas para detectar actores

Cualquier grupo o individuo que caiga en alguna de las siguientes categoras:


Quin usar el sistema? Quin instalar el mismo? Quin har labores de mantenimiento? Quin lo apagar? Qu otros sistemas se comunicarn con ste? Quin obtiene informacin? Quin proporciona informacin?
47

Reglas para identificar casos de uso

Prestando atencin a los actores:

Cules son las tareas que los actores quieren que el sistema realice para ellos?. Podr un actor crear, almacenar, cambiar o borrar datos del sistema?. Ser necesario que un actor informe al sistema sobre cambios que han ocurrido en el exterior del mismo?. Ser necesario que el actor sea informado sobre ciertas ocurrencias o cambios dentro del sistema?.
48

Reglas...

Las respuestas a cada una de las preguntas anteriores representan flujos de eventos que identifican casos de uso candidatos.

49

3.6 Propuesta de ciclo de desarrollo

El ciclo de desarrollo en espiral se puede estructurar tomando como base los casos de uso del sistema.

Ciclo de Desarrollo 1

Ciclo de Desarrollo 2

Ciclo de Desarrollo n

Analizar

Disear

Construir

Testear

50

Ciclo de desarrollo...

Cada ciclo de desarrollo conlleva anlisis, diseo, implementacin y pruebas.


Ciclo de Desarrollo 1 Ciclo de Desarrollo 2 Ciclo de Desarrollo 3 Ciclo de Desarrollo n

Caso de Uso A Versin Simplificada

Caso de Uso A Versin Completa

Caso de Uso B

Caso de Uso C

51

Ejemplo
Desarrollo de un software para procesar ordenes de pedido para una compaa de ventas por correo. sta se encarga de vender productos comprados a diversos proveedores. Dos veces por ao, la compaa publica un catalogo con sus productos, el cual es enviado a sus clientes y a otras personas interesadas. Los clientes compran productos enviando una lista de los mismos con la forma de pago. La empresa completa la orden y enva el pedido a la direccin correspondiente del cliente. El software de procesamiento de pedidos debe ser capaz de efectuar un seguimiento completo de una orden desde que sta es recibida hasta que sta es enviada. Los clientes pueden devolver artculos. Una interfaz electrnica, como la Web, puede ser apropiada para algunos clientes. La compaa utilizar diversas compaas de envo para atender los pedidos. ! NO se incluyen todos los requisitos!

52

You might also like