Title: El modelo de casos de uso
1El modelo de casos de uso
IngenierÃa de la Programación CapÃtulo 4
2Contenidos
- 3.1 Introducción
- 3.2 Actores y Casos de Uso
- 3.3 Modelo de casos de uso
- 3.3.1 Diagrama de contexto y modelo inicial.
- 3.3.2 Plantillas de especificación.
- 3.3.3 Modelo estructurado.
- 3.4 Relaciones entre actores y casos de uso
- 3.5 Proceso de construcción del modelo de casos
de uso - 3.6 Propuesta de ciclo de desarrollo
33.1 Introducción
- Introducidos por I. Jacobson en Objectory.
- Los casos de uso describen bajo la forma de
acciones y reacciones el comportamiento de un
sistema desde el punto de vista de los usuarios. - Son descripciones de la funcionalidad del futuro
sistema independientes de la implementación. - Sirven para captar los requisitos funcionales de
un sistema software.
4Introducción
- Por qué casos de uso?
- Fácilmente compresibles por clientes-usuarios.
- Representan los requisitos funcionales.
- Se utilizan como base para un desarrollo
iterativo e incremental. - Incorporados en la mayor parte de los métodos de
desarrollo OO de segunda generación.
53.2 Actores y Casos de Uso
- Los actores definen qué existe fuera del sistema
- Un actor puede ser una persona, un conjunto de
personas, un sistema hardware, un sistema
software o un reloj.
6Actores
- Un actor representan un rol que puede desempeñar
alguien o algo que necesita intercambiar
información con el sistema.
7Casos de uso
- Un caso de uso describe una forma concreta de
utilizar parte de la funcionalidad del sistema. - La colección de todos los casos de uso describe
toda la funcionalidad del sistema.
8Caso de uso (definición)
- I. Jacobson propone dos definiciones
- Documento que describe una secuencia de eventos
que realiza un actor (agente externo) que usa el
sistema para llevar a cabo un proceso que tiene
algún valor para el. - Cada caso de uso está formado por una secuencia
de eventos, iniciada por un actor, que describe
la interacción que tiene lugar entre el actor y
el sistema.
9Caso de uso
- CaracterÃsticas
- Son iniciados por un actor (actor primario o
principal). - Pueden participar otros actores (secundarios)
- Poseen un nombre.
- Pueden contener condiciones de inicio
(precondiciones) y condiciones de terminación
(postcondiciones) - La descripción del caso de uso contiene la
secuencia de eventos.
10Caso de uso (notación)
- La comunicación entre actores y casos de uso se
muestra de la forma
113.3 Modelo de casos de uso
- Notación gráfica con actores y casos de uso.
- Relaciones
- Entre actores herencia.
- Entre actores y casos comunicación.
- Entre casos de uso
- Usa, extiende (UML 1.3)
- Incluye, extiende, hereda de (UML 1.5)
- Descripción plantillas textuales para cada caso
de uso.
12Notación gráfica
- El modelo de casos de uso muestra gráficamente
toda la funcionalidad del sistema.
13Organización del modelo
- Estructurado en tres capas
- Diagrama de contexto y modelo inicial.
- Plantillas de descripción.
- Modelo estructurado.
143.3.1 Diagrama de contexto.
- El diagrama de contexto muestra los lÃmites del
sistema y los actores (agentes externos) que
interactuarán con el mismo.
15Modelo inicial
- Contiene la agrupación jerárquica de los
distintos casos de uso - Mediante paquetes UML (subsistemas).
16Modelo inicial (2)
17Modelo inicial (2)
- Utilizando un árbol de descomposición funcional.
Nuevo Cliente
Buscar Cliente
183.3.2 Plantillas de descripción
- Los casos de uso se describen utilizando
plantillas en lenguaje natural. - Habitualmente
- Nombre del CU.
- Descripción.
- Actores (primario y secundarios)
- Precondiciones, Postcondiciones.
- Flujo de eventos.
19Ejemplo TPV
- Para un terminal punto de venta
Un terminal punto de venta (TPV) es un sistema
computerizado usado para registrar las ventas y
gestionar pagos. Se usa en supermercados y en
grandes almacenes. Incluye componentes hardware
(como el ordenador y el escáner del código de
barras) y software para ejecutar el sistema.
20Ejemplo TPV (2)
- Diagrama de contexto y modelo inicial
21Ejemplo TPV (3)
- Variaciones sobre el ejercicio
22Plantillas TPV
- Si únicamente se desea mostrar la interacción de
los actores con el sistema informático.
23Plantilla TPV
24Plantilla TPV
25Plantilla TPV
- Si únicamente se desea mostrar la interacción con
el sistema informático, debe eliminarse la
referencia al cliente dentro de la descripción
anterior.
26Plantilla TPV (caso de uso sistema)
27Plantilla TPV (caso de uso sistema)
28Estilos de descripción casos esenciales y reales
- Los casos de uso esenciales son independientes de
la interfaz y de la tecnologÃa.
Caso de uso esencial (descripción muy abstracta)
Caso de uso real/concreto (descripción muy
detallada)
29Casos esenciales y concretos
30Escenarios y Casos de Uso
- Un escenario es una descripción textual de una
interacción particular entre los actores y el
sistema. - A un caso de uso le corresponden varios
escenarios. - Los escenarios básicos o principales no contienen
situaciones de error. - Los secundarios describen situaciones de error o
alternativas de ejecución.
313.3.3 Modelo estructurado
- Contiene los actores y las relaciones entre los
casos de uso (explicado después)
Ejemplo tomado de Telelogic Tau 2.2
32Modelo estructurado (2)
333.4 Relaciones entre actores y casos de uso.
- Herencia entre actores La relación de herencia
entre actores indica que el actor descendiente
puede jugar todos los roles del actor antecesor.
34Herencia entre actores
- Actor abstracto Participa en el modelo pero no
interactúa directamente con el sistema.
35Relaciones entre casos de uso incluye
- Inclusión Un caso de uso A incluye a un caso de
uso B, si una instancia de A puede realizar todos
los eventos que aparecen descritos en B.
La instanciación de Baja Socio utiliza siempre el
flujo de eventos de Buscar Socio
36Inclusión de casos de uso
- En la descripción de A se incluye una referencia
a B.
37Relación de extensión
- Un caso de uso B extiende a un caso de uso A, si
en la descripción de A figura una condición cuyo
cumplimiento origina la ejecución del flujo de
eventos de B.
38Relación de extensión (2)
- Una extensión equivale a una inclusión una
condición.
Descripción del caso de uso A
Condición
Descripción del caso de uso B
39Relación de extensión (3)
- Útil para
- Partes opcionales de un caso de uso.
- Representar sub-cursos de eventos que se ejecutan
bajo ciertas condiciones. - Para representar un menú con opciones.
40Extensión (4)
- Se pueden tener varios puntos de extensión.
Caso base Reservar un vuelo
Seleccionar asiento
Imprimir asignación
Extensión realizar asignación de asiento
41Relación de herencia
- Un caso de uso B se dice que especializa a un
caso de uso A si el flujo de eventos asociado a B
es un refinamiento del flujo de eventos asociado
a A. - Relación similar a la herencia OO.
- Permite separar un patrón de interacción genérico
(caso padre) de un patrón de interacción más
especÃfico (caso descendiente).
42Herencia (2)
43Relaciones entre casos de uso (1)
- Dado un conjunto de casos de uso no existe una
única forma de representar las relaciones entre
ellos. - Diferencias entre inclusión y extensión
- Una inclusión es equivalente a una extensión sin
condiciones. - El caso incluido siempre forma parte del caso que
incluye. - El caso que incluye no tiene sentido sin el
incluido.
44Relaciones entre casos de uso (2)
- Diferencias extensión y especialización
- La extensión se utiliza para representar
alternativas de ejecución que se llevan a cabo en
algunas ocasiones. - La especialización se utiliza para representar
patrones genéricos de interacción que pueden
especializarse en patrones más especÃficos o
concretos.
453.5 Proceso de construcción del modelo de casos
de uso
- Para construir el modelo de casos de uso
- Técnica descendente.
- Técnica ascendente.
Descendente
Ascendente
Detectar actores
Organizar modelo de Casos de uso
Encontrar Casos de uso
Generalizar escenarios
Detallar Casos de uso
Crear escenarios
46Reglas para identificar actores
- Los usuarios pueden jugar varios roles cuando
interactúan con el sistema. - Un usuario se puede corresponder con varios
actores.
47Reglas para detectar actores
- Cualquier grupo o individuo que caiga en alguna
de las siguientes categorÃas - Quién usará el sistema?
- Quién instalará el mismo?
- Quién hará labores de mantenimiento?
- Quién lo apagará?
- Qué otros sistemas se comunicarán con éste?
- Quién obtiene información?
- Quién proporciona información?
48Reglas para identificar casos de uso
- Prestando atención a los actores
- Cuáles son las tareas que los actores quieren
que el sistema realice para ellos?. - Podrá un actor crear, almacenar, cambiar o
borrar datos del sistema?. - Será necesario que un actor informe al sistema
sobre cambios que han ocurrido en el exterior del
mismo?. - Será necesario que el actor sea informado sobre
ciertas ocurrencias o cambios dentro del
sistema?.
49Reglas...
- Las respuestas a cada una de las preguntas
anteriores representan flujos de eventos que
identifican casos de uso candidatos.
503.6 Propuesta de ciclo de desarrollo
- El ciclo de desarrollo en espiral se puede
estructurar tomando como base los casos de uso
del sistema.
51Ciclo de desarrollo...
- Cada ciclo de desarrollo conlleva análisis,
diseño, implementación y pruebas.
52Ejemplo
- Desarrollo de un software para procesar ordenes
de pedido para una compañÃa de ventas por correo.
Ésta se encarga de vender productos comprados a
diversos proveedores. - Dos veces por año, la compañÃa publica un
catalogo con sus productos, el cual es enviado a
sus clientes y a otras personas interesadas. - Los clientes compran productos enviando una lista
de los mismos con la forma de pago. La empresa
completa la orden y envÃa el pedido a la
dirección correspondiente del cliente. - El software de procesamiento de pedidos debe ser
capaz de efectuar un seguimiento completo de una
orden desde que ésta es recibida hasta que ésta
es enviada. - Los clientes pueden devolver artÃculos.
- Una interfaz electrónica, como la Web, puede ser
apropiada para algunos clientes. - La compañÃa utilizará diversas compañÃas de
envÃo para atender los pedidos. - ! NO se incluyen todos los requisitos!