Casos de uso Un caso de uso es una tarea que debe poder llevarse a cabo con el apoyo del sistema que se está desarrollando, se representa mediante un óvalo. Consultar información Registrarse
Relaciones La relación es una conexión entre los elementos del modelo, por ejemplo actores y casos de uso.
Asociación Hay una asociación entre un actor y un caso de uso si el actor interactúa con el sistema para llevar a cabo el caso de uso. Asociación Consultar información Pedrito
Include (Incluir) Se puede incluir una relación entre 2 casos de uso de tipo include si se desea especificar comportamiento común en dos o más casos de uso. Reservar Libro <<include>> Comprobar reserva Socio Biblioteca <<include>> Renovar préstamo Se indica que tanto Reservar libro como Renovar préstamo hacen algo en común Comprobar Reserva
Extend (Extiende) Se puede incluir una relación entre dos casos de uso de tipo Extend si se desea especificar diferentes variantes del mismo caso de uso. Es decir, la relacion extend implica que el comportamiento de un caso de uso es diferente dependiendo de ciertas circunstancias. Reservar Libro <<extend>> Denegar reserva Socio Biblioteca
Generalization (Generalización) En un diagrama de casos de uso también pueden mostrarse generalizaciones (relaciones de herencia) para mostrar que diferentes elementos están relacionados como tipos de otros. Son aplicables a actores o casos de uso. Socio Biblioteca Socio Investigador
Casos de Uso: Relaciones UML define cuatro tipos de relación en los Diagramas de Casos de Uso: Comunicación Actor Caso de Uso
Casos de Uso: Relaciones Inclusión : una instancia del Caso de Uso origen incluye también el comportamiento descrito por el Caso de Uso destino <<include>> Caso de Uso Origen Caso de Uso Destino <<include>> reemplazó al denominado <<uses>>
Casos de Uso: Relaciones Ejemplo <<include>>: Reintegro Cuenta Corriente <<include>> Cliente Verificar Operación <<include>> Reintegro Cuenta de Crédito
Casos de Uso: Relaciones Extensión : el Caso de Uso origen extiende el comportamiento del Caso de Uso destino <<extend>> Caso de Uso Origen Caso de Uso Destino
Casos de Uso: Relaciones Ejemplo <<extend>>: Cliente Solicitar Préstamo [Tarjeta Caducada] <<extend>> Solicitar Nueva Tarjeta
Casos de Uso: Relaciones Ejemplo <<include>> y <<extend>>: <<include>> Identificación Cliente Transferencia <<extend>> Transferencia en Internet
Casos de Uso: Relaciones Otro ejemplo <<include>> y <<extend>>: Supply Customer Data Order Product Arrange Payment <<include>> <<include>> <<include>> Salesperson 1 * Place Order the salesperson asks for the catalog <<extend>> Request Catalog
Casos de Uso: Relaciones Herencia : el Caso de Uso origen hereda la especificación del Caso de Uso destino y posiblemente la modifica y/o amplía Caso de Uso Hijo Caso de Uso Padre
Casos de Uso: Construcción Un caso de uso debe ser simple, inteligible, claro y conciso Generalmente hay pocos actores asociados a cada Caso de Uso Preguntas clave: cuáles son las tareas del actor? qué información 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: Construcción La descripción del Caso de Uso comprende: el inicio: cuándo y qué actor lo produce? el fin: cuándo se produce y qué valor devuelve? la interacción actor-caso de uso: qué mensajes intercambian ambos? objetivo del caso de uso: qué lleva a cabo o intenta? cronología y origen de las interacciones repeticiones de comportamiento: qué operaciones son iteradas? situaciones opcionales: qué ejecuciones alternativas se presentan en el caso de uso?
Identificador Nombre Descripción CU-<id-requisito> <nombre del requisito funcional> El sistema deberá comportarse tal como se describe en el siguiente caso de uso { concreto cuando <evento de activación>, abstracto durante la realización de los casos de uso <lista de casos de uso>} Precondición Secuencia Normal Postcondición <precondición del caso de uso> Paso Acción 1 {El <actor>, El sistema} <acción realizada por el actor o sistema>, se realiza el caso de uso < caso de uso CU-x> 2 Si <condición>, {el <actor>, el sistema} <acción realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso CU-x> <postcondición del caso de uso> Excepciones Paso Acción Rendimiento Paso Cota de tiempo Frecuencia esperada Importancia Urgencia Comentarios 1 Si <condición de excepción>,{el <actor>, el sistema} }<acción realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso CU-x>, a continuación este caso de uso {continua, aborta} 1 n segundos <nº de veces> veces / <unidad de tiempo> {sin importancia, importante, vital} {puede esperar, hay presión, inmediatamente} <comentarios adicionales>
Comentarios En métodos OO que carecen de una técnica de captura de requisitos se comienza inmediatamente con la construcción del modelo de análisis/diseño 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, mañana van a cambiar. Rober C. Martin Los requisitos NO funcionales también son importantes. Desempeño, cumplimiento de estándares o leyes, atributos de calidad (confiabilidad, disponibilidad, seguridad, mantenibilidad, portabilidad), etc.