Story Transcript
Agenda
Curso de Arquitecturas de Software
Programación Orientada a Objetos Casos de Uso
Qué son y para qué sirven?
Definición : Caso de Uso
Los Casos de Uso son una forma de capturar (especialmente) requerimientos funcionales.
Son historias de como usar un sistema. También sirven para modelar Procesos de Negocios
Informalmente, un caso de uso es una historia de uso de un sistema para lograr una meta.
Podremos:
Identificar diferentes niveles en los casos de uso Contrastar casos de uso concretos y abstractos Aplicar la metodología Leer y escribir casos de uso
Caso de uso en formato breve:
Rentar Videos: Un Cliente llega con videos para rentar. El Cajero ingresa el ID del Cliente, y el ID de cada video. El sistema despliega la información de cada video (titulo, genero, tipo de medio, etc.). El Cajero solicita un reporte de alquiler, el sistema lo despliega, y es entregado al cliente junto con los videos.
Por ejemplo: tendero Agentes externos Sistemas, personas con algún comportamiento
Usa actores secundarios.
Ejemplo : Caso de Uso Definición : Breve
Rentar Videos
Es usado por actores primarios
Qué son y para qué sirven ? Elementos de un caso de uso Formato de documentación Relaciones Documentación de las relaciones Fases para la determinación de los casos de uso Recomendaciones
Sistema de autorización de crédito
Definición : Escenario
Informalmente, un escenario es una secuencia especifica de acciones e interacciones en un caso de uso.
Un camino a lo largo del caso de uso. P.ej. El escenario de rentar videos pero antes pagar multas.
Formalmente un Caso de Uso es una colección de escenarios de éxito y de fallo describiendo como un actor primario usa el sistema para lograr un objetivo.
1
Niveles de los Casos de Uso Un reto común es identificar los casos de uso a un nivel útil. Por ejemplo como sabemos cual de estos esta aun nivel útil?
Negociar contrato de Proveedor Rentar Videos Ingresar al sistema Prender el sistema
Una respuesta es: todos son casos de uso. No es útil Podemos terminar con muchos casos de uso de grano fino
Elementary Business Process (EBP) (Cockburn)
Administrativos y de complejidad.
O “gordos“ que implican a toda una organización.
Tamaño e los EBPs Un caso de uso a nivel EBP esta compuesto usualmente por varios pasos no solo uno o dos.
Puede aplicarle el “test del Jefe” a sus EBPs?
Jefe: “Qué hace todo el día?”
Yo: “Hice log in!”
Esta feliz mi Jefe?
Definición caso de uso
Enfocar casos de Uso al nivel de los EBPs dado, en respuesta a un evento del negocio, que le da valor agregado al negocio y deja la información en un estado consistente.”
Es una descripción de un conjunto de secuencias de acciones, incluyendo variantes, que ejecuta un sistema para producir un resultado observable de valor para un actor ACCION 1
ACCION 2 ACCION 3
ACTOR
Definición Caso de Uso
SISTEMA
Diagrama de Casos de Uso
Objetivo : describir qué hace el sistema que da valor a los usuarios
ACCION 1
Pasajero
ACCION 2
ACCION 3
ACTOR
SISTEMA
El objetivo no es describir como lo hace sino qué hace el sistema
Actor representa roles, i.e. tipos de usuarios del sistema Casos de Uso representa una secuencia de interacción para un tipo de funcionalidad El Modelo de casos de uso es el conjunto de todos los casos de uso. Describe totalmente la funcionalidad y entorno del sistema
ComprarTiquete
2
Actores
Un actor modela una entidad externa que se comunica con el sistema:
Pasajero
Caso de Uso
Usuario Sistema Externo Entorno físico
Un actor tiene un nombre y una descripción opcional. Ejemplos:
Nombre: Comprar Tiquete Actor Participante:
1. Pasajero selecciona la zona a la que desea viajar 2. Distribuidor presenta la cantidad a pagar 3. Pasajero inserta el dinero 4. Distribuidor retorna el cambio 5. Distribuidor genera el tiquete
Pasajero
Pasajero aparece frente
al distribuidor de tiquetes Pasajero tiene suficiente dinero para comprar el tiquete
Condición de Salida:
Pasajero tiene el
Pasajero
ComprarTiquete
Falta algo?
FueraServicio
SinCambio
tiquete
Nombre único Actores participantes Condiciones de entrada Flujo de eventos Condiciones de salida Requerimientos especiales
Relación
Flujo de Eventos:
Condición de Entrada:
ComprarTiquete
Pasajero: Una persona en un tren Satélite GPS: Provee al sistema con coordenadas de GPS
Ejemplo Caso de Uso
Un caso de uso representa una clase de funcionalidad proveída por el sistema como un flujo de eventos Un caso de Uso consiste de:
Cancelar
La relación representa casos de uso excepcionales o raramente invocados. El evento excepcional es sacado de el flujo del evento principal por claridad. Casos de Uso representando flujos excepcionales pueden extender mas de un caso de uso. La dirección de la relación es hacia el caso de uso extendido. Nota: en una relación de extensión, el caso de uso base puede ser ejecutado sin usar la extensión.
Casos Excepcionales!
Relación
Passenger PurchaseMultiCard
PurchaseSingleTicket
NoChange
Una relación representa comportamiento que es factorizado de un caso de uso.
CollectMoney
para reutilización no porque sea una excepción Descomposición funcional
La dirección de una relación es hacia el caso de uso que es incluido (a diferencia de la relación ).
Documentación de casos de uso USE CASE #
< the name is the goal as a short active verb phrase>
Goal in Context
Scope & Level
Preconditions
Success End Condition
Failed End Condition
Primary, Secondary Actors
.
Trigger
Cancel
3
Documentación de casos de uso (cont.) DESCRIPTION
EXTENSIONS
Ste p
Action
1
2
3
Ste p
Branching Action
1a
:
SUBVARIATIONS Trigger
Cualquier entidad que necesite interactuar físicamente (directamente) con el sistema. Quién usa el sistema? Quien administra el sistema? Hardware externo que el sistema usa? Otros sistemas con los que interactúa? Usuarios anónimos?
Actores (herencias) Casos de Uso abstractos Relaciones (extensión, inclusión y herencia)
Detallar flujo de los casos de uso
Identificar Casos de Uso
Identificar Actores
Definir actores Hallar casos de uso concretos (CRUD – Create, Retrieve, Update, Delete) Definir escenario feliz para los casos de uso concretos Estructurar:
Herencia : Relación entre actores en la cual los roles hijos heredan todos los casos de uso en los cuales interviene el padre.
Branching Action 1
Fases para la Determinación de los Casos de Uso
Relaciones de los casos de uso
Considere lo que cada actor necesita del sistema. ¿ Creará, almacenará, cambiará, removerá, leerá datos en el sistema? ¿ Necesitará informar al sistema sobre cambios externos repentinos? ¿ Necesitará estar informado sobre ocurrencias del sistema? ¿ Inicializará o bajará el sistema?
Identificar Casos de Uso
REGLAS: No describa interfaces de usuario: sólo intercambio lógico Revise y verifique con el usuario los casos de uso Enfoque en el QUE, y no en el COMO
4
Estructuración de Casos de Uso
Extraer descripciones generales y compartidas que pueden ser usadas por otros (inclusiones) Extraer descripciones adicionales u opcionales que pueden ser extendidas en otros casos de uso más específicos (extensiones)
Casos de Uso –Malas Prácticas de Documentación
Por ejemplo si escribió: El sistema despliega la información ...
saben cuales son los datos que se deben desplegar o contemplar en este caso de uso.
Casos de Uso – Qué Documentar en Flujo Alterno
Casos de Uso –Malas Prácticas de Documentación
Por ejemplo si escribió: El sistema solicita le sea ingresado el dato...
El diseñador y el programador NO saben cual es el dato. Hay que decir específicamente que datos son ingresados en cada paso de un caso de uso
Casos de Uso –Malas Prácticas de Documentación
Si en la narración quedan descritas características de la interfaz, luego el programador no podrá tomar alternativas con relación a estas opciones sobre el diseño de las interfaces.
Casos de Uso – Qué Documentar en Flujo Alterno- Ejemplos 1.
Validaciones Sintácticas : inherentes a la naturaleza del dato : Obligatoriedad, tipo de dato, rango y formato Validaciones Semánticas : a partir del significado del dato o conjunto de datos (Reglas del Negocio)
Por ejemplo si escribió: El actor digita el código y presiona un botón de “buscar”
2.
3.
Si en el paso 3, no se ingresa ningún código, el sistema informa del error y retorna al paso 1 (Obligatoriedad) Si en el paso 3, no se ingresa un número positivo en el cual todos los caracteres son dígitos, el sistema informa del error y retorna al paso 1 (rango y tipo de dato) Si en el paso 3, se ingresa un código que no existe registrado en el sistema, el sistema informa del error y retorna al paso 1 (validación semántica)
5
Resumen
Referencias
Casos de Uso son base para diferentes disciplinas Modelado de casos de uso apoya arquitectura preliminar Casos de uso se organizan estructurando las funcionalidades: extensión, inclusión
Larman C., “UML y Patrones”, Prentice Hall, Segunda Edición, 2003 Bruegge B., “Ingenieria de Software Orientada a Objetos,” Ed. Prentice Hall, Mexico 2002 www.omg.org (Object Modeling Group) http://alistair.cockburn.us/ (Página Oficial Alistair Cockburn)
6