Está en la página 1de 61

s4

PUDS Y UML
DISENO DE CASOS DE USO
M.Sc. Angélica Garzón

1
Flujo de Trabajo Diseño

Arquitecto Ingeniero de Ingeniero de


casos de uso componentes

Realización caso
de uso - diseño

Modelo de Modelo de Descripción de la Clases del Interfaz Subsistema de


diseño despliegue arquitectura diseño diseño
Diseño - Artefactos
• Modelo de diseño

1 * *

Modelo de diseño Sistema de Subsistema de


diseño diseño

* *
* *
* *
Interfaz
Clases del
Realización caso
diseño
de uso - diseño
Diseño - Artefactos
• Clase de diseño
– Sintaxis del lenguaje de programación
– Visibilidad de atributos y operaciones
– Traducción de las relaciones
– Métodos por pseudocódigo
– Estereotipos que se correspondan con
construcciones del lenguaje de programación
► realiza

Interfaz
Clases del
diseño
Diseño - Artefactos
• Realización de caso de uso-diseño
– Diagramas de clase
– Diagramas de interacción (clases, subsistemas,
interfaces)
– Flujo de sucesos-diseño
– Requisitos de implementación
«trace»

Realización caso Realización caso


de uso - análisis de uso - diseño
Diseño - Artefactos
• Subsistema de diseño
– Traza con paquetes análisis
– Subsistema de servicio *

Subsistema de
diseño
► realiza

* * * *

Clases del Interfaz


Realización caso
diseño
de uso - diseño
Diseño - Artefactos
• Interfaz

► realiza *

Interfaz
Clases del *
diseño
► realiza

Subsistema de
diseño
Diseño - Artefactos
• Descripción de la arquitectura (vista modelo
de diseño)
– Descomposición en subsistemas
– Traza con clases de análisis
Descripción de
– Clases abstractas la arquitectura
– Clases generales y centrales
– Realizaciones de caso de uso

Modelo de
diseño
Diseño - Artefactos
• Modelo de despliegue
– Distribución física del sistema
– Nodos y relaciones
– Componentes por nodo Modelo de
– Correspondencia entre despliegue

arquitectura software y
arquitectura del sistema
*

Nodo
Diseño - Artefactos
• Descripción de la arquitectura
(vista modelo despliegue)
– Artefactos relevantes para la
arquitectura
Descripción de
la arquitectura

Modelo de
despliegue
Diseño - Trabajadores
• Arquitecto
– Responsable de la integridad de los modelos de
diseño y despliegue
• Ingeniero de casos de uso
– Responsable de la integridad de una o más
realizaciones de casos de uso-diseño
• Ingeniero de componentes
– Define y mantiene operaciones, atributos y
relaciones de una o más clases de diseño
Diseño - Actividades

Diseño de la
Arquitecto arquitectura

Diseñar un caso de
Ingeniero de uso
casos de uso

Diseñar una clase Diseñar un


Ingeniero de subsistema
componentes
Diseño - Actividades
• Diseño de la arquitectura

Subsistema
Modelo de Interfaz
Arquitecto
casos de uso

Clase de
diseño
Requisitos
adicionales Diseño de la
arquitectura
Modelo de
despliegue
Modelo de
análisis Descripción de la Descripción arquitectura
arquitectura (vista del (vista de modelo de
modelo de análisis) diseño y despliegue)
Diseño - Actividades
• Diseño de un caso de uso

Realización caso
Modelo de de uso - diseño
casos de uso Ingeniero de
casos de uso
Requisitos
adicionales Clase de
diseño
Diseñar un caso de
uso
Modelo de
análisis Subsistema

Modelo de Modelo de Interfaz


diseño despliegue
Diseño - Actividades
• Diseño de una clase

Realización caso
de uso - diseño Ingeniero de
componentes

Clase de
diseño
Diseñar una clase Clase de diseño
(completa)
Interfaz

Clase del análisis


(completa)
Diseño - Actividades
• Diseño de un subsistema

Ingeniero de
Descripción arquitectura
componentes
(vista modelo de diseño)
Subsistema
(terminado)

Subsistema
(esbozado) Diseñar un
subsistema
Interfaz
Interfaz (terminada)
(esbozada)
Diseño - Actividades

Diseño de la
Arquitecto arquitectura

Diseñar un caso de
Ingeniero de uso
casos de uso

Diseñar una clase Diseñar un


Ingeniero de subsistema
componentes
Diseño - Actividades
• Diseño de la arquitectura

Subsistema
Modelo de Interfaz
Arquitecto
casos de uso

Clase de
diseño
Requisitos
adicionales Diseño de la
arquitectura
Modelo de
despliegue
Modelo de
análisis Descripción de la Descripción arquitectura
arquitectura (vista del (vista de modelo de
modelo de análisis) diseño y despliegue)
Diseño - Actividades
• Diseño de un caso de uso

Realización caso
Modelo de de uso - diseño
casos de uso Ingeniero de
casos de uso
Requisitos
adicionales Clase de
diseño
Diseñar un caso de
uso
Modelo de
análisis Subsistema

Modelo de Modelo de Interfaz


diseño despliegue
Diseño - Actividades
• Diseño de una clase

Realización caso
de uso - diseño Ingeniero de
componentes

Clase de
diseño
Diseñar una clase Clase de diseño
(completa)
Interfaz

Clase del análisis


(completa)
Diseño - Actividades
• Diseño de un subsistema

Ingeniero de
Descripción arquitectura
componentes
(vista modelo de diseño)
Subsistema
(terminado)

Subsistema
(esbozado) Diseñar un
subsistema
Interfaz
Interfaz (terminada)
(esbozada)
Artefactos a obtener en el
FT de diseño
• Modelo del diseño
• Subsistema de diseño
• Clase de diseño
• Realización de caso de uso -- Diseño diseño
• Interfaz
• Descripción de la arquitectura
(vista del diseño)
• Modelo de despliegue
• Desc. de la arquitectura despliegue
(NO LO
(vista del despliegue) 22
TRATAREMOS)
JERARQUÍA DE SUBSISTEMAS
DE DISEÑO
MODELO DEL ANÁLISIS (MA) MODELO DEL DISEÑO (MDiseño)

PAQUETE DE SISTEMA DE
ANÁLISIS
DISEÑO

contiene
contiene
- Realizaciones de CU
- Realizaciones de CU
- Clases de diseño
- Clases de análisis
- Interfaces
- Otros paquetes de análisis
- Otros subsistemas de diseño

: IU-1 : Gesto : Libo elLibro NOMBRE DE L


1: ucir
NOMBRE DE L método1 (parám),
2: Aceptar encuentre método2 (parám)
3: obtenerLibro(signaturaLibro:String) atributo1,...

4: getSignatura() método1 (ám),…


elLibro
5: getCopias()
CLASES DE CLASES6: isCoda()
INTER-
REALIZACIÓN-ANÁLISIS DE CU ANÁLISIS REALIZACIÓN-DISEÑO DE CU DE DISEÑO FACES

+ MODELO de DESPLIEGUE
23
Actividades en el FT de
diseño
• 1.- Diseño de la arquitectura
• Identificar nodos y configuraciones de red
• Identificar subsistemas y sus interfaces
• Identificar clases de diseño arquitecturalmente significantes
• Identificar mecanismo de diseño genéricos
• 2.- Diseñar caso de uso
• Identificar clases de diseño participantes
• Describir interacciones de objetos de diseño
• Identificar los subsistemas participantes e interfaces
• Describir interacciones entre subsistemas
• Capturar requisitos de implementación

24
Actividades en el FT de
diseño
• 3.- Diseñar clase
• Perfilar la clase de diseño
• Identificar las operaciones
• Identificar los atributos
• Identificar asociaciones y agregaciones
• Identificar generalizaciones
• Describir los métodos
• Describir los estados
• Tratar los requisitos especiales
• 4.- Diseñar subsistema
• Mantener dependencias entre subsistemas
• Mantener los interfaces proporcionados por el subsistema
• Mantener los contenidos del subsistema
25
…UML
DIAGRAMA DE SECUENCIAS
DIAGRAMA DE MAQUINA DE ESTADO
DIAGRAMA DE TIEMPO
DIAGRAMA DE NAVEGACION
Modelo avanzado del comportamiento

26
Los Diagramas de Iteracción
• Los diagramas de interacción pueden utilizarse
para:
– Visualizar
– Especificar
– Construir
– Documentar
“LA DINAMICA DE UNA SOCIEDAD PARTICULAR
DE OBJETOS, O MODELAR UN FLUJO DE
CONTROL PARTICULAR DE UN CASO DE USO”
27
Introducción
• Los objetos interactúan para realizar
colectivamente los servicios ofrecidos por las
aplicaciones.
• Los diagramas de interacción muestran cómo
se comunican los objetos.
• Existen dos tipos de diagramas de interacción:
el Diagrama de Comunicación y el Diagrama
de Secuencia.
• Esta visión proporciona una vista integral del
comportamiento del sistema, es decir,
muestra el flujo de control a través de muchos
28
objetos
Terminología y Conceptos
• Qué es una interacción?
– Es el conjunto de mensajes intercambiados entre
un conjunto de objetos dentro de un contexto
para lograr un propósito.
• Los diagramas están formados por:
– Objetos, mensajes y enlaces
• Un enlace es una conexión semántica entre
objetos. Un enlace es una instancia de una
asociación.
• Un enlace es el camino por donde fluyen
29mensajes.
Los mensajes
• Un mensaje es la especificación de una
comunicación entre dos objetos.

• Los mensajes son las acciones entre los


objetos

• Un mensaje puede tener parámetros que


transporten valores entre objetos.
30
Tipos de acciones
• En UML se pueden modelar varios tipos de
acciones:
– Llamada: Invoca una operación sobre un objeto
– Retorno: Devuelve un valor al invocador
– Creación: Crea un objeto
– Destrucción: destruye un objeto
– Envía una señal

31
Diagramas de secuencia
• Diagrama que muestra las interacciones entre
los objetos organizadas en una secuencia
temporal.
• En particular muestra los objetos participantes
en la interacción y la secuencia de mensajes
intercambiados.
• El Diagrama de Secuencia es más adecuado
para observar la perspectiva cronológica de las
interacciones.
• Adecuado para análisis.
32
Diagramas de secuencia
• Un diagrama de secuencia puede mostrar un
escenario, es decir, una historia individual de
transacción.
• Un uso de un diagrama de secuencia es
mostrar la secuencia del comportamiento de
un caso de uso.
• Un diálogo de secuencia posee dos
dimensiones: la vertical representa el tiempo,
la horizontal representa los objetos que
33participan en la interacción.
Los objetos
• Cada objeto representa una columna distinta,
se pone un símbolo de objeto, debajo de él va
una linea punteada que se conoce como línea
de vida del objeto.
• Se pone una X grande en el punto en que deja
de existir el objeto.

34
Mensajes
• Cada mensaje se representa mediante una
flecha horizontal que va desde la línea de vida
del objeto que envió el mensaje hasta la línea
de vida del objeto que ha recibido el mensaje.
• Si un mensaje requiere un cierto tiempo para
llegar a su destino, entonces la flecha del
mensaje se dibuja diagonalmente hacia abajo

35
Mensajes
• Los mensajes pueden ser:
– Simples: Es la transferencia de control de un
objeto a otro
– Síncronico:Es el mensaje al cual el objeto esperará
respuesta para poder continuar
– Asíncronico: A este mensaje no se le esperá
respuesta para continuar su trabajo

36
Focos de control
• El foco de control es un rectangulo delgado,
que está sobre la linea de vida del objeto.
• Representa el período de tiempo durante el
cual un objeto ejecuta una ación.

37
Diagrama de secuencia

38
Diagramas de secuencia

39
Diagrama de Secuencia en UML
obj1: IU_CU_X obj2: Gestor_X obj3: Clase_X
: ACTOR
1: escribe d
y solicita 2: busca(d)
3: getAtributoY()
.... .... return v

....

Significa que la clase Gestor_X debe


proporcionar el método busca. Así se Gestor_X
DISEÑAN las clases, esto es, se
identifican sus MÉTODOS a partir de busca(a:tipoD): tipoRes
las RESPONSABILIDADES definidas
40
durante el FT del análisis
CU: Tomar en Préstamo Copia de Libro

IU-TPCL GestorLibro GestorPrestamos Libro elLibro:Libro :CopiaLibro GestorSocios Socio elSocio:Socio

1: Introducir
elSocio Signatura y numSocio()
Se repite hasta que se
2: Aceptar() encuentre un libro
con la signatura que
3: obtenerLibro(signaturaLibro:String)
estamos buscando
4: getSignatura()

elLibro()

5: obtenerCopiaLibre(elLibro:Libro) Se repite hasta que se


encuentre una copia
6: getCopias() no prestada o se acaben
las copias
7: getEstado()

laCopiaLibre()

8: [hay al menos una copia NO prestada]: obtenerSocio(numSocio:int)

9: getNumSocio()

10: haLLegadoLimite(elSocio:Socio)

11: isLímitePréstamo()

12: [no ha llegado al límite]: registrarPrestamo(elSocio:Socio, laCopiaLibre:CopiaLibro, HOY:Date)

13: new(elSocio:Socio, laCopiaLibre:CopiaLibro, HOY:Date)


prestamo
12: [alcanzado el máximo de préstamos]: new()
IUError

13: Aceptar()

8: [Todas las copias prestadas]: new(elLibro:Libro, elSocio:Socio)


IUReserva

9: añadirReserva(elSocio:Socio)
10: añadirReserva(elLibro:Libro)

Realización diseño – CU Tomar en Préstamo


41
Copia Libro (solución usando sistema OO)
Fragmentos combinados
• Mecanismos que permiten agregar lógica de
procedimiento y se ejecutan bajo circunstancias
definidas por los operadores
• Operadores:
– Alternativas “alt” modela estructuras switch….
– Opción “opt” modela estructuras if…then…
– Paralelo “par” modela procesos concurrentes
– Critico “critical” se ejecutan sin interrupcion
– Bucle “loop” serie de mensajes iterativos

42
Operador “Opt”
sd SintaxisOpt

:Objet1 :Object2 :Object3

a()

opt
[expresion1]
b()

c()

e()
[expresion2]

d()

43
Operador “loop”
s d e j e m I te r a c i o n

: u se rI n t e rf a c e : d a t a C o n t ro l : d a t a S o u rc e

so l i c i t a rV e c t o r()

n = o b t T a m V e c t o r()

lo o p
[i = 1 ..n ]
o b t E l e m e n t o (i )

e n t re g a V e c t o r()

44
Evento
• En el mundo suceden muchas cosas, esperadas y no
esperadas, incluso suceden al mismo tiempo
• Las “cosas que suceden” se llaman eventos
• En sistemas software son los “estimulos” que dispara
una transicion de estado.
• Eventos síncronos: llamadas
• Eventos asíncronos: una señal, el paso del tiempo

45
Terminología
• Evento
– La especificación de un acontecimiento significativo que tiene
ubicación en tiempo y espacio
• Estado
– Una condición o situación durante la vida de un objeto, durante el cual
se cumple una condición, realiza acciones o espera algún evento
• Transición
– El movimiento de un estado a otro en respuesta a un evento
• Acción
– Ejecución atómica interna de un objeto

46
Inicio de un Evento
• Pulsar un botón en un cajero automático
• Un robot autónomo tropieza con un objeto
• Detección de sobrecarga en los buffer de mensajes
en un dispositivo enrutador de red
• Tiempo fuera de lo establecido para una acción en
una planta química

47
Maquina de estado
• Modela el comportamiento de un objeto
individual
• Especifica la secuencia de estados por los que
atraviesa un objeto durante su vida en
respuesta a eventos

48
Para que sirven?
• Mostrar el comportamiento dinámicos de las
instancias de:
– Clases, Casos de uso, subsistemas y sistemas
• Modelar la historia del ciclo de vida de un solo objeto
reactivo como un maquina de estado finita
• La maquina realiza transiciones entre los estados de
un objeto debido a las acciones que realiza el objeto
en respuesta a eventos

Así trabaja
la maquina
49
Ejemplo
stm Termostato

Initial
Final
Inactiv o

demasiadoCaliente

demasiadoFrio
tempAlcanzada

tempAlcanzada

demasiadoCaliente

Enfriando
Calentando

demasiadoFrio

50
… otro ejemplo
stm prestamoLibro

Initial

EnPrestamo Terminado
devolverLibro

pagarMulta
[tiempo > duracionMaxima]

Retrasado TenerMulta
devolverLibro Final

51
+ ejemplo
stm prestamoBanco

Impagado

Initial

AceptarPago

AceptarPago

[pago > saldo] [pago < saldo]


[pago = saldo]

SobrePagado Totalmente Pagado Parcialmente Pagado


hacerDevolucion

Final

52
Diagrama de Tiempo
• Define el comportamiento de objetos con una escala de
tiempo
• Provee una representación visual de los objetos cambiando
de estado a lo largo del tiempo
• Muestra la interacción entre los eventos, las restricciones de
tiempos y la duración
• Línea de vida del estado:
– El eje X muestra el tiempo trascurrido en cualquier unidad que se elija
– El eje Y se nombra con una lista de estados proporcionados

53
Para que sirven?
• Para modelar sistemas en tiempo real
• Para definir componentes de software
dirigidos por hardware o embebidos
– Controladores de trafico
– Un controlador de microondas
• También puede usar diagramas de tiempo
para especificar procesos de negocio dirigidos
por tiempo

54
Ejemplo: Diag. de Tiempo

55
Diseño de Aplicaciones Web*

•Elementos del servidor (páginas del servidor): Aquellos


elementos que están del lado del servidor y se ejecutan en
éste para enviar los resultados al cliente.

•Elementos del cliente (páginas del cliente): Corren del


lado del cliente como los scripts, programas ejecutables,
etc. y tienen como propósito mostrar información que
proviene del servidor o del mismo cliente.

•Elementos de interfaz con el usuario (páginas web):


Componentes que determinan la forma de visualizar la
información desplegada por el cliente en el browser y cuyo
propósito es el de facilitar la interacción con el usuario.
56
Los elementos gráficos que conforman la extensión de
UML para aplicaciones web son:

Server Page (Página del servidor): Representa una


página web que tiene scripts que son ejecutados por
el servidor.

1. Programas y/o script que se escriben en diferentes


lenguajes de programación, como PHP, ASP, C, C++,
Perl, etc.

2. Programas escritos en Java que corren del lado del


servidor (Java Servlets).

57
Diagramas de Navegación - UML

3. Base de datos. Se usan principalmente para almacenar


información.

Página cliente: Son las páginas cuya ejecución se realiza


del lado del cliente, por lo general tienen datos tipo
multimedia, applets y scripts.

Las páginas del cliente se clasifican en:


1. Formas: Representan una colección de elementos de
entrada estándar, que aceptan entradas del usuario
para ser enviadas (submit) a una página del servidor.

58
Enlaces
Expresan la estructura relacional de las diferentes
páginas que conforman el diagrama.
Se representan así:

•<<link>>: Se usa para establecer un enlace de


navegación entre dos páginas del cliente, o de una página
del cliente hacia una página del servidor.

•<<build>>: Se usa para representar la creación de una


página del cliente desde una página del servidor, las
páginas que son creadas de esta forma se llaman páginas
de creación dinámica.

•<<redirect>>: Se usa para relacionar dos o más paginas


del servidor como por ejemplo dos scripts escritos en
PHP.
59
•<<submit>>: Se usa para representar el envío de
información de una página forma hacia una página del
servidor.
•<<target>>: Se usa para relacionar enlaces dentro de
una misma página del cliente, estos enlaces permiten
moverse dentro de una misma página.
•<<target link>>: Se usa para indicar enlaces entre
páginas de un mismo fame o indicar un enlace que crea
una nueva página dentro de una nueva ventana.

•<<object>>: Se usa para relacionar objetos que


cumplan una actividad espécifica dentro de una página.
Ejemplo un javaScript que valida los campos de una
forma.
•<<DB_access>>: Indica accesos o cualquier tipo de
consulta a una base de datos.
60
Iconos de los estereotipos

<<server page>> <<client page>>

<<build>> <<link>>
shopcart mycart dailyspecial

<<form>>
<<server page>>

updatecart cartform
<<submit>>

61

También podría gustarte