victormanuel toro c. -...

Click here to load reader

Post on 27-Sep-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Victor Manuel Toro [email protected]

    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)

    Victor Toro - CincoSOFT Ltda.

    Nov 97 UML 1.1 approved by the OMG

    3

  • Historia de los Casos de Uso y UML (2)

    1a Ed:. 19992a Ed.: 2005

    1a Ed.: 20002a Ed.: 2003

    1a Ed.: 19972a Ed.: 20003a Ed.: 2003

  • Definicin original de Caso de Uso (CdU)

    Un Caso de Uso es una descripcin de los pasosque 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.

    5

  • Ejemplo de un Caso de UsoComprar 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 itemsseleccionados, 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 6

  • Documentacin detallada de un Caso de Uso

    Nombre: Verbo infinitivo + Sustantivo [+ adjetivo] Actores: Roles que lo utilizan Versin: X.Y Resumen: 2 a 5 renglones Secuencia Normal: Pasos numerados: [qu hace el actor - qu hace el sistema]+ Alternativas: Variantes en la interaccin (sub-numerar) Excepciones: Excepciones en la interaccin (sub-numerar) Puntos de Extensin: Llamada a otros Casos de Uso (en qu paso) Triggers: Eventos que lo activan automticamente Suposiciones: Pendientes de confirmar Precondicin: Situacin inicial requerida Postcondicin: Caracterizacin de la situacin final Otros Documentos: Leyes, decretos, reglamentos, ... Autor(es): [Nombre, trabajo realizado, fecha]+ 7

  • 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/

  • Visin global:

    Modelo de Casos de Uso

    ProfesorCoordinador

    Manejarseccionesde Curso

    Manejarprofesores

    de secciones

    Profesorde Curso

    ConsultarNotas

    Estudiante

    Contabilidad

    Oficina deRegistro

    Asignarvalor de laMatrcula

    MatricularEstudiante

    GenerarCertificados

    de Notas

    CancelarMatrcula

    AsignarCoordinadores

    de curso

    IngresarNotas

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

  • 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 Completo14

  • Caso de Uso: Preparar factura

    Facturaen blanco

    Facturacon todoslos tems

    Facturacon descuentos

    aplicables

    Facturacon IVA

    Facturalista para

    enviar

    Nuevafactura

    Aplicardescuento

    Agregaritem

    LiquidarIVA

    CalcularRetenciones

  • Caso de Uso: Preparar factura

    Factura

    Clientes

    Catlogo de

    productos

    Lista de Precios

    Polticas de

    descuentos

    Nueva

    Calcular retenciones

    Liquidar IVA

    Aplicar descuento

    Agregar tem

    Calcular gastosde entrega

    Imprimir

    Enviar por e-mail

    Confirmar y Archivar

    Buscar y cargar

    Acc

    ion

    es r

    eq

    ue

    rid

    asin

    icia

    lmen

    te

    Acc

    ion

    esco

    mp

    leta

    das

    Guardar provisional

    Objetos de negociorelacionados

    Anular

  • 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 escribir19

  • 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?

  • 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

    1*

    1*

    1

    *

    Empleado

    0..1*

    Cliente

    ClientePersonaClienteEmpresa

    Pedido

    PedidoProducto Producto

    Vendedorasignado

    nombredireccion...

    fechaRecibidofechaDespachadoprecioTotalIVAvendedor...

    cantidadprecioAcordado...

    precioDeListacategoriaIVA...

    nombreContactotopeCredito...

    ...

  • 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:

    Casos de Uso y Modelo de DominioManejar Producto Manejar Paquete

    Vender

    Manejar Suspensiones

    Manejar Direcciones

    Manejar Clientes (CRUD)

  • 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 escribir31

  • Proceso de desarrollo guiado por Casos de Uso

    32

    Inicio Elaboracin Transicin1 2 3

    Construccin

    ...Entr

    ega

    Ent

    rega

    Ent

    rega

    Ent

    rega

    RU

    P

    Ext

    rem

    e P

    rogr

    amm

    ing

    Tests de carga

    Tests funcionales

    Tests unitarios

    Refinar InterfazPantallas / Web-Servicey Navegacin

    Refinar Modelo de Datosdel Caso de Uso / Web-Service

    Aprobacindel usuario

    Programacin

    Para cadaCaso de Uso Web-Service:

    Co

    ntr

    ato

    1E

    spec

    ifica

    cin

    Pro

    pu

    esta

    1

    Co

    ntr

    ato

    3S

    opor

    te

    Co

    ntr

    ato

    2D

    esar

    rollo

    Pro

    pu

    esta

    2

    Pro

    pu

    esta

    3

  • Inicio Elaboracin Transicin1 2 3

    Construccin

    ...Entr

    ega

    Ent

    rega

    Ent

    rega

    Entr

    ega

    RU

    P

    Ext

    rem

    e P

    rogr

    amm

    ing

    Tests de carga

    Tests funcionales

    Tests unitarios

    Programacin

    Aprobacindel usuario

    Refinar InterfazPantallas / Web-Servicey Navegacin

    Refinar Modelo de Datosdel Caso de Uso / Web-Service

    Para cadaCaso de Uso Web-Service:

    Principales Entregables Inventario de Casos de Uso y

    Web-Services Agrupados en mdulos/subsistemas

    Domain Model(versin inicial)

    Especificacin de laLgica del Negocio

    Nueva versin del software(incremental y acumulativa)

    Manual de usuario del mdulo

    Diseo detallado deinterfaz del Caso de Uso del Servicio

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

    Manuales definitivos

  • Documentacin de Casos de Uso:

    Propuesta de Plantilla

    Ver documento Word anexo

  • Referencias

    The Unified Modelind Language Reference Manual1a Ed: 1999 * 2a Ed.: 2005G. Booch, I. Jacobson, J. Rumbaugh * Addison-Wesley

    UML Distilled1a Ed: 1997 * 2a Ed.: 2000 * 3a Ed.: 2003Martin Fowler, Kendall Scott * Addison-Wesley

    Use Cases - Requirements in Context1a Ed: 2000 * 2a Ed.: 2003Dary Kulak, Eamonn Guiney * Addison-Wesley

    35

  • Preguntas ?

    Comentarios ?

    Otros puntos de vista ?