You are on page 1of 36

Victor Manuel Toro C.

vm.toro815@uniandes.edu.co

Ingeniera de Sistemas y Computacin Universidad de los Andes Bogot - Colombia

Plan de temas
Breve historia de los Casos de Uso Casos de Uso - definicin clsica Definicin mejorada de Caso de Uso Modelo de Dominio y Casos de Uso Proceso de Desarrollo guiado por Casos de Uso Documentacin detallada de Casos de Uso Conclusiones Referencias Preguntas
2

Historia de los Casos de Uso y UML (1)


Nov 97 UML 1.1 approved by the OMG

Victor Toro - CincoSOFT Ltda.

Historia de los Casos de Uso y UML (2)

1a Ed:. 1999 2a Ed.: 2005 1a Ed.: 1997 2a Ed.: 2000 3a Ed.: 2003 1a Ed.: 2000 2a Ed.: 2003

Definicin original de Caso de Uso (CdU)

Un Caso de Uso es una descripcin de los pasos que realiza un actor que interacta con un sistema, para lograr un objetivo. A Use Case is a list of steps defining interactions between an actor and a system, to achieve a goal.

Ejemplo de un Caso de Uso


Comprar un Producto 1. El cliente pasea a travs del catlogo y selecciona items para comprar. 2. El cliente va a la seccin de liquidacin de compras. 3. El Cliente llena la informacin de envo (destinatario, direccin, forma de envo). 4. El Sistema presenta la informacin completa de cantidad y precio de los items seleccionados, costo de envo, impuestos, y total. 5. El Cliente llena la informacin de su tarjeta de crdito. 6. El Sistema solicita la autorizacin de la operacin. 7. El Sistema registra la venta 8. El Sistema enva un e-mail de confirmacin al usuario. ALTERNATIVA: Autorizacin Rechazada En el paso 6, se niega la autorizacin de la operacin. El sistema permite que el usuario ingrese otra tarjeta de crdito. ALTERNATIVA: Cliente Frecuente 3a El Sistema despliega la informacin del ltimo envo 3b El usuario acepta los datos mostrados, los actualiza Regresar al paso 6

Documentacin detallada de un Caso de Uso


Nombre: Actores: Versin: Resumen: Secuencia Normal: Alternativas: Excepciones: Puntos de Extensin: Triggers: Suposiciones: Precondicin: Postcondicin: Otros Documentos: Autor(es): Verbo infinitivo + Sustantivo [+ adjetivo] Roles que lo utilizan X.Y 2 a 5 renglones
Pasos numerados: [qu hace el actor - qu hace el sistema]+

Variantes en la interaccin (sub-numerar) Excepciones en la interaccin (sub-numerar) Llamada a otros Casos de Uso (en qu paso)
Eventos que lo activan automticamente

Pendientes de confirmar Situacin inicial requerida Caracterizacin de la situacin final Leyes, decretos, reglamentos, ... [Nombre, trabajo realizado, fecha]+

Caso de Uso clsico:

Ejemplo de documentacin detallada (1)

Tomado de: http://tynerblain.com/blog/2007/04/09/sample-use-case-example/

...

Caso de Uso clsico:

Ejemplo de documentacin detallada (2)


...

Tomado de: http://tynerblain.com/blog/2007/04/09/sample-use-case-example/

...

Caso de Uso clsico:

Ejemplo de documentacin detallada (3)


...

...
Tomado de: http://tynerblain.com/blog/2007/04/09/sample-use-case-example/

Matricular Estudiante Asignar valor de la Matrcula

Visin global: Contabilidad


Generar Certificados de Notas Cancelar Matrcula

Modelo de Casos de Uso

Oficina de Registro

Asignar Coordinadores de curso Manejar secciones de Curso

Profesor Coordinador

Manejar profesores de secciones Ingresar Notas

Estudiante

Basado en un ejemplo de Rubby Casallas - U. de los Andes

Profesor de Curso

Consultar Notas

Problemas con los Casos de Uso clsicos


1. No hay pistas para saber si un CdU est completo 2. No hay pistas para saber si los CdU estn completos 3. No son apropiados para transmitir conocimiento del negocio a los diseadores y desarrolladores. 4. Difcil formarse una idea de la complejidad del sistema 5. Muy difcil estimar el tiempo y los recursos necesarios 6. Son aburridos de escribir (muchas veces se hacen porque toca)

12

Problemas con los Casos de Uso clsicos:

Grandes variaciones en la estimacin


Cinco grupos de 3 a 4 Ingenieros ( c/u con 5 aos de experiencia promedio en contratacin y/o desarrollo de sistemas empresariales) recibieron el mismo enunciado de problema. Se les pidi estimar # de casos de uso y esfuerzo de desarrollo

Propuesta

Definicin mejorada de Caso de Uso


Un Caso de Uso en un objeto de negocio ms un conjunto de acciones sobre este objeto, que permiten que un actor llegue a un objetivo. Un Caso de Uso en un objeto de negocio (junto con otros objetos de negocio relacionados), ms con un conjunto de acciones sobre el objeto de negocio (que eventualmente involucran a algunos de los objetos relacionados), que permiten que un actor llegue a un objetivo. Con las siguientes 4 caractersticas: til para el negocio Indivisible Simple Completo

14

Caso de Uso: Preparar factura


Nueva factura

Factura en blanco

Agregar item

Factura con todos los tems

Aplicar descuento

Factura con descuentos aplicables

Liquidar IVA Calcular Retenciones

Factura con IVA Factura lista para enviar

Caso de Uso: Preparar factura


Acciones requeridas inicialmente
Calcular retenciones Liquidar IVA Aplicar descuento Agregar tem Nueva Calcular gastos de entrega Anular Confirmar y Archivar

Factura

Imprimir Enviar por e-mail Guardar provisional Buscar y cargar


Polticas de descuentos

Clientes Catlogo de productos Lista de Precios

Objetos de negocio relacionados

Acciones completadas

Caractersticas de un Caso de Uso mejorado


til para el negocio:
Permite obtener un resultado o llegar a un estado que resuelve una de necesidades del negocio.

Indivisible:
Si se descompone ... ya no es til para el negocio.

Simple:
Ante varias alternativas, se escoger una alternativa sencilla que cumpla las necesidades del usuario.

Completo:
Dispone de toda la informacin y todas las acciones necesarias para llegar al objetivo.
17

Casos de Uso mejorados:

Algunas ventajas
Brindan un contexto integral para pensar cada Caso de uso. Facilitan completar la funcionalidad de cada Caso de uso ... antes de iniciar el desarrollo (antes de firmar el contrato a costo fijo y trmino fijo!). Facilitan acordar explcitamente la funcionalidad de cada Casos de Uso. No hay que describir todas las secuencias posibles. No son tan aburridos de escribir. ...
18

Casos de Uso mejorados :

Qu hemos logrado hasta ahora?


1. No hay pistas para saber si un CdU est completo 2. No hay pistas para saber si los CdU estn completos 3. No son apropiados para transmitir conocimiento del negocio a los diseadores y desarrolladores. 4. Difcil formarse una idea de la complejidad del sistema 5. Muy difcil estimar el tiempo y los recursos necesarios 6. Son muy aburridos de escribir
19

Y si el problema es complicado?
Casos de Uso de un sistema de gestin de:
Una biblioteca ? Una colegio ? Un hotel ? Una empresa de taxis ?? Un hospital ?? Una administradora de pensiones ??? Una compaa reaseguradora ???? Una agencia aduanera ????? Una compaa de Fiducia ?????? Una central de distribucin elctrica ??????? 20 ...

Y si el problema es complicado:

El Modelo de Dominio (Domain Model)


Identifica los principales Objetos de Negocio del problema Muestra las relaciones entre estos Objetos de Negocio Identifica los principales atributos (campos) de los Objetos de Negocio Bsicamente, es un modelo Entidad-Relacin ... Se expresa como un Diagrama de Clases de UML.

21

Ejemplo de Modelo de Dominio


Pedido
fechaRecibido fechaDespachado precioTotal IVA vendedor ...

Cliente * 1
nombre direccion ...

1 ClienteEmpresa * PedidoProducto
cantidad precioAcordado ...

ClientePersona
...

Producto * 1
precioDeLista categoriaIVA ...

nombreContacto topeCredito ...

Vendedor asignado

* 0..1

Empleado

Enunciado de un problema:

Manejo de subscripciones* (1)


La Casa Periodstica El Momento necesita un sistema de informacin para administrar y darle mayor flexibilidad al manejo de subscripciones. Algunos elementos del problema:
El Momento tiene varios productos: el peridico, la revista Modas, la Separata Industrial, la coleccin Salud, el libro Los mejores Vinos, la coleccin de Cocina Colombiana, .... Cada uno de esos productos tiene una determinada periodicidad (diario, semanal, quincenal, mensual, ... durante un perodo determinado), o son de aparicin nica (p. ej., el libro Los mejores vinos apareci el 12 de Marzo de 2008). De vez en cuando salen nuevos productos que hay que registrar en el sistema. Ejemplo inventado por V. M. Toro
*

Enunciado de un problema:

Manejo de subscripciones (2)


Hay Paquetes Comerciales que puede comprar el subscriptor. Cada paquete est compuesto por uno o varios productos, cada uno por una determinada duracin. Por ejemplo:
Paquete Familiar Plus: El peridico por 1 ao, mas la Revista Modas por 6 meses, mas el libro Los mejores Vinos; Paquete Bsico-6: El peridico por 6 meses (todos los das); Paquete Fines de Semana: El perodico por 1 ao, los das Viernes, Sbados, Domingos y Festivos. ...

Enunciado de un problema:

Manejo de subscripciones (3)


Frecuentemente se inventan nuevos paquetes comerciales. Usualmente los paquetes comerciales tienen un perodo de validez. Por ejemplo, el paquete Navidad-2012, que consta del peridico por 6 meses ms la coleccin Cocina Colombiana. Este paquete ser ofrecido del 15-Nov2012 al 31-Dic2012. Cada paquete tiene un precio y eventualmente algunas condiciones. Las condiciones pueden ser: solo para estudiantes, solo para pensionados, vlido nicamente en Bogot, solo para renovaciones, ...

Enunciado de un problema:

Manejo de subscripciones (4)


Un cliente compra (o se subscribe a) alguno de esos paquetes. La forma de pago puede ser: efectivo, cheque, tarjeta, consignacin, ... . Debe quedar registro de la forma de pago, pues a veces hay problemas (cheque sin fondos, tarjeta vencida, ...). Un mismo cliente puede tomar varias subscripciones (p. ej., una para la casa, otra para el consultorio, otra para sus paps, ...). A veces un cliente llama y pide que le suspendan temporalmente una subscripcin (p. ej., durante una temporada que se va de viaje). En ese caso, la duracin de la suspencin se agrega a la duracin de la subscripcin. Es importante llevar el registro de todas las suspensiones que haya solicitado un cliente.
26

Enunciado de un problema:

Manejo de subscripciones (5)


A veces un cliente llama a pedir que le cambien la direccin de entrega. Este cambio puede ser definitivo o temporal. Se debe llevar registro de estos cambios de direccin, y la(s) fecha(s) entre las que debe aplicarse. Cada semana se le pide al sistema que genere cartas de invitacin a renovar a los clientes cuya subscripcin se vence en los prximos 15 das. Cada da el sistema debe imprimir cartas de felicitacin para los subscriptores que cumplen aos al da siguiente. --- * --27

Modelo de Dominio:

Manejo de Subscripciones

Manejo de Subscripciones:
Manejar Producto Manejar Paquete

Casos de Uso y Modelo de Dominio Manejar Direcciones


Manejar Clientes (CRUD)

Vender

Manejar Suspensiones

Casos de Uso y Modelo de Dominio


Cada Caso de Uso cubre algunos Objetos de Negocio, y las relaciones entre ellos. Cada Objeto de Negocio debe quedar en --al menos-un Caso de Uso. Cada relacin debe quedar en --al menos-- un Caso de Uso.
30

Casos de Uso mejorados + Domain Model :

Qu hemos logrado hasta ahora?


1. No hay pistas para saber si un CdU est completo 2. No hay pistas para saber si los CdU estn completos 3. No son apropiados para transmitir conocimiento del negocio a los diseadores y desarrolladores. 4. Difcil formarse una idea de la complejidad del sistema 5. Muy difcil estimar el tiempo y los recursos necesarios 6. Son muy aburridos de escribir
31

Proceso de desarrollo guiado por Casos de Uso


Contrato 2 Contrato 1
Especificacin

Propuesta 2

Propuesta 1

Propuesta 3

Contrato 3

Desarrollo

RUP

Construccin
Entrega Entrega Entrega

Inicio

Elaboracin

Entrega

...

Transicin

Para cada Caso de Uso Web-Service:

Extreme Programming

Programacin
Refinar Interfaz
Pantallas / Web-Service y Navegacin

Aprobacin del usuario Refinar Modelo de Datos


del Caso de Uso / Web-Service

Tests unitarios

Tests funcionales

Tests de carga

Soporte

32

Principales Entregables
Domain Model (versin inicial) Especificacin de la Lgica del Negocio Inventario de Casos de Uso y Web-Services Agrupados en mdulos/subsistemas Nueva versin del software (incremental y acumulativa) Manual de usuario del mdulo

Manuales definitivos

RUP

Construccin
Entrega Entrega Entrega

Inicio

Elaboracin

Entrega

...

Transicin

Extreme Programming

Para cada Caso de Uso Web-Service:

Diseo detallado de interfaz del Caso de Uso del Servicio

Programacin
Tests unitarios

Refinar Interfaz
Pantallas / Web-Service y Navegacin

Aprobacin del usuario

Tests funcionales

Refinar Modelo de Datos


del Caso de Uso / Web-Service

Diseo detallado del modelo de datos del Caso de Uso del servicio

Tests de carga

Documentacin de Casos de Uso:

Propuesta de Plantilla
Ver documento Word anexo

Referencias
The Unified Modelind Language Reference Manual 1a Ed: 1999 * 2a Ed.: 2005 G. Booch, I. Jacobson, J. Rumbaugh * Addison-Wesley UML Distilled 1a Ed: 1997 * 2a Ed.: 2000 * 3a Ed.: 2003 Martin Fowler, Kendall Scott * Addison-Wesley Use Cases - Requirements in Context 1a Ed: 2000 * 2a Ed.: 2003 Dary Kulak, Eamonn Guiney * Addison-Wesley
35

Preguntas ? Comentarios ? Otros puntos de vista ?

You might also like