DE CASOS DE USO Ver. 1.2 Febrero 2008 Ernesto Lpez Caballero Introduccin La administracin de requerimientos es un aspecto crucial de los proyectos: un levantamiento mal realizado o una administracin deficiente de requisitos son unas de las causas ms comunes para el fracaso de los proyectos.
Introduccin Los casos de uso como una tcnica excelente para administrar los requerimientos de nuestros proyectos. Situaciones familiares Pero si construimos todo Lo que usted solicit! Si, pero no es lo que quiero Nadie, me pregunt
Mmm, creo que lo que piensan es que se trabaje de esta manera Tengo una gran idea! Crees que se pueda solicitar esta caracterstica? No hay problema!! Por qu no nos dijo que quera esa caracterstic a?
Qu es un Requerimiento? De manera general, un requerimiento es una condicin o caracterstica que debe satisfacerse. En el contexto de desarrollo de software, un requerimiento es una caracterstica identificable expresada en trminos de funcionalidad o desempeo que un sistema debe poseer para lograr su objetivo.
Tipos de Requerimiento Requerimientos funcionales Describen lo que el sistema debe hacer, es decir especifican acciones que el sistema debe ser capaz de realizar (funcionalidad). Requerimientos no funcionales Describen atributos del sistema o atributos del ambiente del sistema, por ejemplo: Facilidad de uso, Confiabilidad, Desempeo, de diseo, de interfaz, Legales, de Seguridad.
Tipos de Requerimiento Los requisitos NO funcionales tambin son importantes. Desempeo, cumplimiento de estndares o leyes, atributos de calidad (confiabilidad, disponibilidad, seguridad, mantenibilidad, portabilidad), etc. Desempeo Portabilidad Disponibilidad Diferencia entre solicitudes y requerimientos Los usuarios nos envan sus solicitudes en diversos formatos:
Para que sean requerimientos se debe o Analizar correctamente el problema o Entender las necesidades reales o Documentar formalmente
Rotafolios Documents Documents E- mail Listados Hojas Electrnicas Analista En concreto Los requerimientos constituyen la Definicin del Sistema
Los requerimientos constituyen la Definicin del Sistema
Cual es el problema? El problema puede ser definido como la diferencia entre... (Problema) Las cosas como se desean y Las cosas como se perciben Gause & Weinberg, 1989 Turn Your Lights On ! Adicionalmente, No hay una Buena Percepcin del Proyecto Porque: No hay un entendimiento claro del negocio y sus objetivos No se identifican correctamente a todos los involucrados y sus intereses, visin o requerimientos particulares No hay un buen nivel de involucramiento de usuarios y partes interesadas (stakeholders) No existe una metodologa clara para administrar los requerimientos de los sistemas, as como los cambios que surjan
Atributos en los requerimientos Requerimiento 100 Origen Costo Estatus Prioridad Estabilidad Riesgo Los ATRIBUTOS y RELACIONES de Requerimientos son una fuente poderosa para administrar la informacin Requerimiento 201 Requerimiento 302 Dificultad UML y los Requerimientos Vista de Procesos Integradores del sistema Eficiencia Escalabilidad estabilidad Vista de Implantacin Ingeniero del sistema Topologa del sistema Entrega, instalacin Comunicaciones Vista de Implementacin Programadores Gestin del software Vista de Lgica Usuario final Funcionalidad Vista de Casos de Uso Arquitectura 4+1 Vistas El modelo central de UML es el de Casos de Uso (Use Case Model) A travs de los casos de uso, se modela el comportamiento y se toma en cuenta a todos los actores del sistema Utiliza diagramas y documentos de especificacin de casos de uso Los casos de uso constituyen el conjunto de requerimientos funcionales del sistema
Modelo de casos de uso Caso de Uso Actor Conceptual Fsica Fuentes del Requerimiento Conversaciones con el cliente/usuario Dominio del problema Literatura relevante del dominio Entrevistas con expertos Conocimiento personal del dominio Sistemas legados Experiencia de sistemas anteriores
Tcnicas de levantamiento de Requerimiento Entrevistas Prototipos Sesiones JAD Caso Prctico Identificar Requerimientos Funcionales y No Funcionales (Ejercicio- Documento Word)
Aplicacin principal del los casos de uso La aplicacin principal de los casos de uso es en el proceso de anlisis y diseo pero de manera particular en la definicin de requerimientos del usuario. Es una excelente herramienta de comunicacin debido a la sencillez de su elaboracin as como su comprensin. Diferencia [casos de uso] y [Diagrama de casos de uso] Es importante diferenciar casos de uso con diagrama de casos de uso. Casos de Uso: El caso de uso es una serie de cosas, es una tcnica de anlisis de sistemas, es una tcnica para recopilar requerimientos, puede ser usada como estrategia de desarrollo o conduccin de proyectos de sistemas. Diagrama de caso de uso: El diagrama de casos de uso forma parte del conjunto de herramientas del UML y es muy simple elaborar un diagrama de este tipo. Bsicamente se conforma de dos figuras elementales el actor y el caso de uso.
Casos de Uso Describen el comportamiento del sistema tal y como es percibido por los usuarios finales, analistas, y encargados de las pruebas. es una tcnica para captura y especificacin de requisitos. Retirar dinero Consultar Extracto Cliente Realizar transferencia Elementos Actor o Un actor que puede ser una persona, pero en particular el rol que desempea dentro del sistema o entorno que estemos analizando, se representa con un muequito. o Rol que juega un usuario con respecto al sistema. o Un Actor no necesariamente representa a una persona en particular, sino ms bien la labor que realiza frente al sistema.
Elementos: Actor Actores: o Principales: personas que usan el sistema. o Secundarios: personas que mantienen o administran el sistema. o Material externo: dispositivos materiales imprescindibles que forman parte del mbito de la aplicacin y deben ser utilizados. o Otros sistemas: sistemas con los que el sistema interacta
Administrador de Sistemas Elementos: Casos de Uso Casos de Uso o Un caso de uso, que es una meta, accin, funcin, o tarea que desarrolla uno o varios actores y se representa con un elipse. o Operacin o tarea especfica que se realiza tras una orden de un agente externo originada por una peticin de un actor o bien desde la invocacin de otro caso de uso. o Un caso de uso es anlogo a una funcin del sistema. Elementos: Relaciones Relaciones o Asociacin: Es el tipo de relacin ms bsica que indica la invocacin desde un actor o caso de uso a otra operacin (caso de uso). o Dependencia o Instanciacin: Es una forma muy particular de la relacin entre clases en la cual una clase depende de otra, es decir, se instancia (se crea). Identificando Casos de Uso Secuencia de eventos iniciada por un actor donde se especifica la interaccin entre ste y el sistema. No se busca la descomposicin funcional del sistema sino secuencias de eventos que proporcionan un resultado a algn actor.
Casos de Uso Casos de Uso: o Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interaccin, los escenarios, desde el punto de vista del usuario.
o Un escenario es una instancia de un caso de uso.
o Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estar dirigido por los casos de uso.
Actor A Caso de Uso A Actor B Caso de Uso B Identificando Casos de Uso Cmo identificar los casos de uso de nuestro problema? -Un enfoque es revisar la manera en que cada actor usa el sistema. Qu le pide el sistema al actor que haga? Qu consultas al sistema hace el actor? De que acciones internas el sistema informa al actor?
Identificando los Casos de Uso Resumen para identificar los requerimientos funcionales adecuados del sistema mediante casos de uso. 1. Especificar la misin del sistema 2. Identificar quienes utilizaran el sistema 3. Averiguar cuales objetivos desean cumplir los actores al usar el sistema (Casos de Uso) 4. Identificar los pasos o eventos de cada caso de uso (Especificacin del Caso de Uso) Identificando Casos de Uso ATM Se describe la secuencia principal del caso de uso. Las alternativas tambin se incluyen en el caso de uso. Caso Prctico [Cajero Automtico ATM] Nombre del caso de uso: Sacar dinero Resumen: El cliente retira una cantidad especfica de dinero del cajero de su cuenta bancaria. Dependencias: Ninguna Actores: Cliente ATM Precondiciones: El ATM est listo con el mensaje de bienvenida.
Caso Prctico [Cajero Automtico] Descripcin: 1. El cliente inserta la tarjeta en el lector del ATM. 2. Si la tarjeta es reconocida se lee el nmero de la misma. 3. El sistema pide la clave al cliente. 4. El cliente introduce la clave (PIN). 5. El sistema verifica la fecha de caducidad y si es robada o extraviada. 6. Si es vlida el sistema comprueba la clave introducida con la que lleva la tarjeta escrita. 7. Si el PIN es vlido el sistema ve qu cuentas estn disponibles para dicha tarjeta. 8. El sistema muestra las cuentas disponibles y le solicita al cliente elija entre sacar dinero, consultar saldo y transferencia.
Caso Prctico [Cajero Automtico] Descripcin: 9. El cliente selecciona sacar dinero, introduce la cantidad y selecciona el nmero de la cuenta. 10. El sistema comprueba si el cliente tiene suficiente dinero en dicha cuenta y si ha sobrepasado el lmite diario. 11. Si todo es correcto el sistema autoriza dispensar el dinero. 12. El sistema entrega el dinero. 13. El sistema muestra un recibo incluyendo el nmero de operacin, el tipo, la cantidad y el nmero de la cuenta. 14. El sistema devuelve la tarjeta. 15. El sistema muestra su mensaje de bienvenida.
Caso Prctico [Cajero Automtico] Alternativas: o Si el sistema no reconoce la tarjeta entonces es devuelta. o Si la tarjeta ha caducado es confiscada. o Si la tarjeta est extraviada o robada es confiscada. o Si el PIN no es correcto se vuelve a pedir. o Si se introduce el PIN tres veces mal la tarjeta es confiscada. o Si el sistema determina que no hay suficiente dinero entonces muestra un mensaje y devuelve la tarjeta. o Si el cajero no tiene dinero se muestra un mensaje, se devuelve la tarjeta y se apaga el cajero. o Si el cliente introduce cancelar se cancela la transaccin y se devuelve la tarjeta.
Caso de uso sacar dinero Inserta tarjeta Lee Tarjeta Ingresa PIN Selecciona tipo de transaccin Selecciona tipo de retiro Ingresa monto a retirar Revisa efectivo en ATM Pregunta al banco por autorizacin Da dinero y recibo Toma el dinero, recibo y tarjeta
Escenarios adicionales? Condiciones alternas o Manejo de errores? Escenario feliz o de da normal Happy Path Diagrama de Caso de Uso sacar dinero Relaciones entre Casos de Uso Cuando los casos de uso se hacen complejos pueden definirse dependencias entre ellos. Se distinguen en UML tres relaciones de dependencia: o Incluye. o Extiende. o Generaliza.
Casos de Uso: Relaciones Diagramas de Casos de Uso: Actor Caso de Uso Casos de Uso: Relaciones Inclusin: una instancia del Caso de Uso origen incluye tambin el comportamiento descrito por el Caso de Uso destino
<<include>> reemplaz al denominado <<uses>>
Caso de Uso Origen Caso de Uso Destino <<include>> Casos de Uso: Relaciones Ejemplo <<include>>
Casos de Uso: Relaciones Extensin: el Caso de Uso origen extiende el comportamiento del Caso de Uso destino
Caso de Uso Origen Caso de Uso Destino <<extend>> Casos de Uso: Relaciones Ejemplo: <<extend>>
Casos de Uso: Relaciones Ejemplo: <<include>> y <<extend>> Identificacin Transferencia en Internet Cliente Transferencia <<include>> <<extend>> Casos de Uso: Relaciones Herencia: el Caso de Uso origen hereda la especificacin del Caso de Uso destino y posiblemente la modifica y/o ampla
Caso de Uso Hijo Caso de Uso Padre Reuso: Evitando el Retrabajo Una de las razones por las cuales se debe de considerar el uso de este tipo de relaciones, es porque identificas que hay pasos que son iguales en dos o ms casos de uso. Casos de Uso: Construccin Un caso de uso debe ser simple, inteligible, claro y conciso Generalmente hay pocos actores asociados a cada Caso de Uso o Preguntas claves: cules son las tareas del actor? qu informacin crea, guarda, modifica, destruye o lee el actor? debe el actor notificar al sistema los cambios externos? debe el sistema informar al actor de los cambios internos?
Casos de Uso: Construccin La descripcin del caso de uso comprende: o el inicio: cundo y qu actor lo produce? o el fin: cundo se produce y qu valor devuelve? o la interaccin actor-caso de uso: qu mensajes intercambian ambos? o objetivo del caso de uso: qu lleva a cabo o intenta? o cronologa y origen de las interacciones o repeticiones de comportamiento: qu operaciones son iteradas? o situaciones opcionales: qu ejecuciones alternativas se presentan en el caso de uso?
Quien lee los Casos de Uso
Los clientes aprueban lo que el sistema debe hacer Usuarios aumentan su comprensin del sistema Desarrolladores del Sistema documentan el comportamiento del sistema Revisores examinan el flujo de eventos Analistas de Sistemas (Diseadores del Sistema) proveen la base para el anlisis y el diseo
Probador del Sistema la usa como base para los casos de prueba Lder de Proyecto proporciona informacin para planear proyectos Escritor Tcnico es la base para escribir la gua del usuario Casos de Uso: Construccin PLANTILLA PDC PARA CASOS DE USO Hacer la plantilla de acuerdo al ejemplo del cajero automtico. Redactando los casos de uso: Especificando el caso de uso Estructura de la especificacin del caso de uso: cul usar? simple o compleja Plantilla PDC Otros Redactando los casos de uso: Especificando el caso de uso Nombre: Crear mensaje foro Autor: Joaqun Gracia Fecha: 24/08/2003 Descripcin: Permite crear un mensaje en el foro de discusin. Actores: Usuario de Internet logeado. Precondiciones: El usuario debe haberse logeado en el sistema. Flujo Normal: 1. El actor pulsa sobre el botn para crear un nuevo mensaje. 2. El sistema muestra una caja de texto para introducir el ttulo del mensaje y una zona de mayor tamao para introducir el cuerpo del mensaje. 3. El actor introduce el ttulo del mensaje y el cuerpo del mismo. 4. El sistema comprueba la validez de los datos y los almacena. Flujo Alternativo: 1. El sistema comprueba la validez de los datos, si los datos no son correctos, se avisa al actor de ello permitindole que los corrija Poscondiciones: Redactando los casos de uso: Especificando el caso de uso Precondiciones y postcondiciones o Precondiciones. Son las condiciones que se deben de cumplir en el sistema antes de iniciarlo. El estado en que se debe encontrar el sistema antes de ejecutarlo. (Ej: Algn catlogo debe estar actualizado, debe estar en conexin con otro sistema, el usuario debe estar conectado con cierto perfil especfico) o Postcondiciones. Te indica como queda el sistema despus de ejecutar el caso de uso. Imagina que eres un tester y quieres comprobar si alguien acaba de ejecutar el caso de uso. Qu cosas buscaras en el sistema? Seguramente datos nuevos, modificados, eliminados o la posibilidad de elegir nuevas opciones en el sistema. Redactando los casos de uso: Especificando el caso de uso Flujos de eventos Flujo principal del caso de uso Registrar Venta o El vendedor solicita el registro de una nueva venta. o El sistema solicita los datos de cada uno de los productos de la venta. o El vendedor registra la cantidad y clave de cada uno de los productos. o El sistema muestra la lista de productos con su cantidad, clave, descripcin, subtotal, IVA y total. o El sistema solicita el tipo de pago. o El vendedor indica pago al contado o con tarjeta de crdito. o Dependiendo de la seleccin comienza el flujo alterno Pago al contado o Pago con tarjeta de crdito. o Una vez realizado el pago se registra la venta, se actualiza el inventario e imprime el ticket correspondiente. o Termina el caso de uso. Flujo Alterno: Pago al Contado o El vendedor registra el monto recibido por el cliente. o El sistema calcula y muestra el cambio a devolver. o El vendedor devuelve el cambio al cliente.
Redactando los casos de uso: Especificando el caso de uso Un Flujo Bsico (Happy Day Path) Varios Flujos Alternos o Variantes del Flujo Bsico o Casos Especiales Flujos de Excepcin (para manejar situaciones de error) Redactando los casos de uso: Especificando el caso de uso Flujos alternos y excepcionales Las excepciones pueden expresarse como sub-casos de uso (include) Flujo de eventos excepcional: (Ejemplo) El cliente valida un pedido en que no ha seleccionado ningn producto. El sistema vuelve a mostrar la lista de productos seleccionables. Comentarios Los Casos de Uso son una idea maravillosa que ha sido generalmente complicada. El verdadero truco para los Casos de Uso es mantenerlos simples. Recordad, maana van a cambiar. Robert C. Martin Bibliografa El lenguaje unificado de Modelado Addison wesley Grady Booch James Rumbaugh Ivar Jacobson
Construccin de software orientado a objetos Prentice Hall Bertrand Meyer