: Cajero :Sistema * introducirItem(upc,cantidad) finalizarVenta() hacerPago(cantidad) Cajero Realizar Venta Cliente crearNuevaVenta() Interacciones
Ejemplo de diagrama de casos de uso
Ejemplo diagrama de casos de uso Actores Secundarios Actor Principal
Ejemplo diagrama de casos de uso Reservar Libro Préstamo Libro Devolver libro Socio Extender Préstamo Préstamo revista Profesor Devolver revista Bibliotecario Actualizar catalogo Socio Consultar
Casos de uso y Colaboraciones Con un caso de uso se describe un comportamiento esperado del sistema, pero no se especifica cómo se implementa. Una caso de uso se implementa a través de una colaboración: “Sociedad de clases y otros elementos que colaborarán para realizar el comportamiento expresado en un caso de uso” Una colaboración tiene una parte estática (diagramas de clases) y una parte dinámica (diagramas de secuencia).
Casos de uso y Colaboraciones Hacer Pedido Gestión Pedidos caso de uso colaboración realización
Casos de uso y Colaboraciones
“El objetivo de la arquitectura del sistema es encontrar el conjunto mínimo de colaboraciones bien estructuradas, que satisfacen el comportamiento especificado en todos los casos de uso del sistema”
Organización de casos de uso Tres tipos de relaciones: Generalización Un cdu hereda el comportamiento y significado de otro Inclusión Un cdu base incorpora explícitamente el comportamiento de otro en algún lugar de su secuencia. Extensión Un cdu base incorpora implícitamente el comportamiento de otro cdu en el lugar especificado indirectamente por este otro cdu
Generalización Los casos de uso “hijo” son una especialización del caso de uso “padre”. Produce confusión y se debería evitar su uso
Ejemplo Generalización Comprobar clave Examinar retina Validar Usuario (Gp:) Realizar Pedido
Consultar Pedido (establecer prioridad) Realizar Pedido Urgente «extend» Extensión «include» «include» Inclusión
Relación de inclusión Permite factorizar un comportamiento en un caso de uso aparte y evita repetir un mismo flujo en diferentes casos de uso. Ejemplo: Hacer Pedido: Obtener y verificar el número de pedido; Incluir (Validar usuario); para cada línea en el pedido: Consultar el estado; Preparar un informe para el usuario
Relación de extensión El caso de uso base incluye una serie de puntos de extensión. El caso de uso base no conoce los casos de uso de extensión, está completo sin las extensiones. Los puntos de extensión no son parte del flujo principal. Sirve para modelar la parte opcional del sistema un subflujo que sólo se ejecuta bajo ciertas condiciones varios flujos que se pueden insertar en un punto
Relación de extensión Ejemplo:
Hacer Pedido: Incluir “Validar usuario”; Recoger los ítem del pedido del usuario; establecer prioridad: punto de extensión Enviar pedido para ser procesado.
Relación de extensión Devolver Libro (Gp:) Poner multa
«extend» Puntos de extensión libro retrasado (Gp:) Bibliotecario
Nombre: Poner multa Precondición: Libro devuelto fuera de plazo Flujo: 1. El bibliotecario introduce detalles multa 2. El sistema registra e imprime la multa Nombre: Devolver libro Actor principal: Bibliotecario Precondición: Bibliotecario está autenticado Flujo: 1. El bibliotecario introduce id del prestatario 2. El sistema muestra datos del prestatario y los libros que tiene prestados 3. El bibliotecario selecciona libro a devolver punto de extensión: libro retrasado 4. El sistema registra devolución 5. …
Relación de extensión Produce confusión y no debería utilizarse. Conviene su uso sólo para insertar un nuevo comportamiento no previsto en un caso de uso existente.
Obtención de casos de uso 1) Identificar los usuarios del sistema. 2) Encontrar todos los roles que juegan los usuarios y que son relevantes al sistema. 3) Para cada rol identificar todas las formas (objetivos) de interactuar con el sistema. 4) Crea un caso de uso por cada objetivo. 5) Estructurar los casos de uso. (¡Cuidado!) 6) Revisar y validar con el usuario.
Plantilla usecases.org (Larman) Nombre del caso de uso Actor Principal Personas involucradas e Intereses (Actores secundarios) Precondiciones (estado del sistema antes de empezar) Postcondiciones (estado del sistema al finalizar) Escenario Principal (Flujo Básico) Extensiones (Flujos Alternativos) Requisitos especiales Tecnología y Lista Variaciones de datos Frecuencia Cuestiones abiertas
Caso de uso “Realizar Venta” Resumen: Un cliente llega al TPV con un conjunto de artículos. El Cajero registra los artículos y se genera un ticket. El cliente paga en efectivo y recoge los artículos. Actor Principal: Cajero Personal Involucrado e Intereses: Cajero: quiere entradas precisas, rápida y sin errores de pago Compañía: quiere registrar transacciones y satisfacer clientes. … Precondición: El cajero está autenticado Postcondiciones: Se registra la venta. Se calcula el impuesto. Se actualiza contabilidad e inventario…
Caso de uso “Realizar Venta” Flujo Básico: 1. A: El cliente llega al TPV con los artículos. 2. A: El cajero inicia una nueva venta 3. A: El cajero introduce el identificador de cada artículo. 4. S: El sistema registra la línea de venta y presenta descripción del artículo, precio y suma parcial. El Cajero repite los pasos 3 y 4 hasta que se indique. 5. S: El Sistema presenta el total 6. A: El Cajero le dice al Cliente el total a pagar 7. S: El Cliente paga y el sistema gestiona el pago. 8. S: El Sistema registra la venta completa y actualiza Inventario. 9. S: El Sistema presenta recibo
Caso de uso “Realizar Venta” Extensiones (Flujos Alternativos): 3a. Identificador no válido 1. El Sistema señala el error y rechaza la entrada 3-6a. El Cliente pide eliminar un artículo de la compra 1. El Cajero introduce identificador a eliminar 2. El sistema actualiza la suma … 7a. Pago en efectivo 1. El Cajero introduce cantidad entregada por el cliente 2. El Sistema muestra cantidad a devolver … ….
Caso de uso “Realizar Venta” Requisitos especiales: – Interfaz de usuario con pantalla táctil en un monitor de pantalla plana. El texto debe ser visible a un metro de distancia. – Tiempo de respuesta para autorización de crédito de 30 sg. El 90% de las veces … Lista de Tecnología y Variaciones de Datos: – El identificador podría ser cualquier esquema de código UPC, EAN,.. – La entrada de información de la tarjeta se realiza mediante un lector de tarjetas. … Cuestiones Pendientes: – Explorar cuestiones de recuperación de accesos a servicios remotos – ¿Qué adaptaciones son necesarias para diferentes negocios?
Utilidad de los casos de uso “Ofrecen un medio sistemático e intuitivo para capturar los requisitos funcionales, centrándose en el valor añadido para el usuario”
Dirigen todo el proceso de desarrollo puesto que la mayoría de actividades (planificación, análisis, diseño, validación, test,..) se realizan a partir de los casos de uso.
Mecanismo importante para soportar “trazabilidad” entre modelos.
Utilidad de los casos de uso Hay consenso en considerar casos de uso como esenciales para capturar requisitos y guiar el modelado. Pero ha existido mucha confusión sobre cómo usarlos. ¿Número de casos de uso apropiado en un proyecto? ¿Qué casos de uso hay en el sistema?
Página anterior | Volver al principio del trabajo | Página siguiente |