1. Modelo de diseño
a. modelo estático
Modelo de diseño b. modelo dinámico
Modelo de casos de Modelo de Modelo del comporta- Modelo de Modelo de estado
uso para el diseño b arquitectura a miento de objetos b clases a para el diseño b
Casos de uso Diagramas Diagramas Diagramas de Diagramas de
- reales de paquetes de interacción clases de diseño estado para
(diagramas de clases
Contratos para estructura
Diagramas de Diagramas estáticos)
métodos y
casos de uso de despliegue
operaciones
2. Casos reales de uso
Un caso real de uso describe el diseño concreto del
caso de uso a partir de una tecnología particular de
entrada y salida, así como de su implementación
global. Por ejemplo, si interviene una interfaz gráfica
para el usuario, el caso de uso real incluirá diagramas
de las ventanas en cuestión y una explicación de la
interacción de bajo nivel con los artefactos de la
interfaz.
3. Ejemplo: Comprar productos
Casos de uso: Comprar productos:versión 1 (efectivo exclusivamente)
Actores: Cliente (iniciador), Cajero.
Propósito: Capturar una venta y su pago en efectivo.
Resumen: Un Cliente llega a la caja con productos que desea comprar.
El cajero registra los productos de la compra y recibe el
pago en efectivo. Al terminar la transacción, el Cliente se
marcha con los productos comprados.
Tipo: Primario y real.
Referencias Funciones: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1.
cruzadas:
4. Ejemplo: Comprar productos
Curso normal de los eventos
Acción de los actores Respuesta del sistema
1. Este caso de uso comienza cuando 3. Agrega la información sobre el
un Cliente llega a la caja TPDV con producto a la actual transacción de
objetos que desea comprar. ventas.
La descripción y el precio del
2. Con cada producto, el Cajero teclea producto actual se muestran en B
el código universal de producto (CUP) y en F de la ventana-1.
en A de la Ventana-1. Si hay más de
un producto, es opcional capturar la 5. Calcula y presenta en C el total
cantidad en E. Se oprime H después de la venta.
de capturar cada producto.
4. Al terminar de capturar los 6. ...
productos el Cajero oprime el botón
I para indicarle a la TPDV que
terminó de capturar los productos
5. Diagramas de interacción
Se realizan en la fase de diseño de un ciclo de
desarrollo.
Artefactos requeridos para preparar un diagrama de
interacción:
Un modelo conceptual: a partir de este modelo el
diseñador podrá definir las clases de software
correspondientes a los conceptos. Los objetos de las
clases participan en las interacciones que se
describen gráficamente en los diagramas.
6. Diagramas de interacción
Contratos de la operación del sistema: a partir de
ellos el diseñador identifica las responsabilidades
y las poscondiciones que han de llenar los
diagramas de interacción.
Casos de uso reales (o esenciales): a partir de
ellos
el diseñador recaba información sobre las tareas
que realizan los diagramas de interacción, además
de lo estipulado en los contratos.
7. Diagramas de interacción
El UML define dos tipos de estos diagramas; ambos
sirven para expresar interacciones semejantes o
idénticas de mensaje:
1. Diagramas de colaboración.
2. Diagramas de secuencia.
8. Diagramas de interacción
Los diagramas de colaboración describen las
interacciones entre los objetos en un formato de
grafo o red, como en la siguiente figura:
1:mensaje2( )
mensaje1( ) 2:mensaje3( )
:ClaseAInstancia :ClaseBInstancia
9. Diagramas de interacción
Los diagramas de secuencia describen las
interacciones en una especie de formato de cerca o
muro, como en la siguiente figura:
:ClaseAInstancia :ClaseBInstancia
mensaje1( )
mensaje2( )
mensaje3( )
10. Ejemplo de un diagrama de colaboración:
efectuarPago
Dirección del mensaje Primer mensaje interno
efectuarPago(efectivoOfrecido) 1:efectuarPago(efectivoOfrecido)
:TPDV :Venta
Línea de enlace
Instancia 1.1:crear(efectivoOfrecido)
Primer mensaje
Parámetro :Pago
11. Ejemplo de un diagrama de colaboración:
efectuarPago
El diagrama de colaboración anterior se lee así:
1. El mensaje efectuarPago se envía a una instancia
de
TPDV. La instancia corresponde al mensaje
efectuarPago de la operación del sistema.
2. El objeto TPDV envía el mensaje efectuarPago a la
instancia Venta.
3. El objeto Venta crea una instancia de un Pago
12. Cómo preparar diagramas de colaboración
1. Elabore un diagrama por cada operación del
sistema durante el ciclo actual de desarrollo.
Ì En cada mensaje del sistema, dibuje un
diagrama incluyéndolo como mensaje inicial.
2. Si el diagrama se torna complejo (por ejemplo, si
no
cabe holgadamente en una hoja de papel 8.5x11),
dividalo en diagramas más pequeños.
13. Cómo preparar diagramas de colaboración
3. Diseñe un sistema de objetos interactivos que
realicen las tareas, usando como punto de partida
las responsabilidades del contrato de operación,
las poscondiciones y la descripción de casos de
uso. Aplique el GRASP y otros patrones para
desarrollar un buen diseño.
14. Los diagramas de colaboración y otros
artefactos
Cajero Sistema
Operación:
introducirProducto (cup, cantidad)
introducirProducto
introducirProducto
(cup, Poscondiciones: :TPDV
cantidad) 1. Si se trata de una
nueva venta, fue creada
una nueva Venta...
terminarVenta()
Operación:
efectuarPago terminarVenta
(monto)
Poscondiciones: efectuarPago (monto)
1. ...
:TPDV
Diagrama de Contratos Diagrama de
la secuencia Colaboración
del sistema
15. Notación básica de los diagramas de
colaboración
• Representación gráfica de las clases y de las
instancias.
Venta :Venta s1:Venta
Clase Instancia Instancia con
nombre
16. Notación básica de los diagramas de
colaboración
• Representación gráfica de los vínculos.
mens1( )
1:agregarPago(efectivoOfrecido)
:TPDV :Venta
Línea de vínculo
17. Notación básica de los diagramas de
colaboración
• Representación gráfica de los mensajes.
mens1( ) 1: mensaje1( )
2: mensaje2( )
3: mensaje3( )
:TPDV :Venta
Todos los mensajes
fluyen sobre un mismo
vínculo
18. Notación básica de los diagramas de
colaboración
• Representación gráfica de los parámetros.
Parámetros
mens1( )
1:agregarPago(monto: Dinero)
:TPDV :Venta
19. Notación básica de los diagramas de
colaboración
• Representación gráfica del mensaje de devolver
valor.
Tipo del valor
de retorno.
mens1( )
1: tot := total ( ): Entero
:TPDV :Venta
Nombre del
valor de retorno
20. Notación básica de los diagramas de
colaboración
• Sintaxis de los mensajes.
El lenguaje UML cuenta con una sintaxis estándar para los
mensajes:
retorno:=mensaje(parametro:tipoParametro):tipoRetorno
mens1( )
1:agregarPago(efectivoOfrecido)
:TPDV :Venta
Sintaxis
estándar de mensajes
en UML
21. Notación básica de los diagramas de
colaboración
• Representación gráfica de los mensajes al
“emisor” o a “esto”.
mens1( )
:TPDV
1:limpiar( )
22. Notación básica de los diagramas de
colaboración
• Representación gráfica de la iteración.
La iteración se indica posponiendo un asterisco (*) al
número de secuencia.
Iteración
omitidos los valores
de recurrencia
mens1( )
1*: li := siguienteLineadeProducto ( ):
VentasLineadeProducto
:TPDV :Venta
23. Notación básica de los diagramas de
colaboración
• Representación gráfica de la iteración.
También es posible incluir una cláusula de iteración que
indique los valores de recurrencia.
Clausula de iteración
mens1( )
1*: [i :=1..10] li:=siguienteLineadeProducto ( ):
VentasLineadeProducto
:TPDV :Venta
24. Notación básica de los diagramas de
colaboración
• Representación gráfica de la iteración.
Si se expresa más de un mensaje que ocurre dentro de la
misma cláusula de iteración (por ejemplo, una serie de
mensajes en un ciclo for), se repetirá la cláusula con cada
mensaje.
mens1( )
1*: [i :=1..10] mens2( )
:A miB:B
2*: [i :=1..10] mens3( )
miC:C
Las clausulas de la
iteración son iguales
25. Notación básica de los diagramas de
colaboración
• Representación gráfica de la creación de
instancias
Crear mensaje, con
parámetros opcionales
de inicialización
mens1( )
1:crear(cajero)
:TPDV :Venta
26. Notación básica de los diagramas de
colaboración
En varios lenguajes, el mensaje crear se traduce así:
Lenguaje Significado de crear ()
C++ Asignación automática u operador new
seguido de una llamada a un constructor.
Java Operador new
seguido de una llamada a un contructor.
Smalltalk Mensaje new o una variación de new:
seguido de mensaje initialize
27. Notación básica de los diagramas de
colaboración
• Representación gráfica de la secuencia de número
de los mensajes.
El orden de los mensajes se indica con un número de
secuencia. El esquema de la numeración es:
1. El primer mensaje no se numera.
2. El orden y el anidamiento de los mensajes siguientes se
indican con un esquema legal de numeración, donde a los
mensajes anidados se les ha antepuesto un número. La
anidación se denota anteponiendo el número del mensaje
de entrada al del mensaje de salida.
28. Notación básica de los diagramas de
colaboración
• Numeración de secuencias.
No numerada
mens1( ) 1:mens2( )
:ClaseA :ClaseB
1.1:mens3( )
Numeración legal
:ClaseC
29. Notación básica de los diagramas de
colaboración
• Numeración compleja de secuencias.
Primera Segunda Tercera
mens1( ) 1:mens2( )
:ClaseA :ClaseB
1.1:mens3( )
2.1:mens5( )
2:mens4( )
:ClaseC
Cuarta
2.2:mens6( )
Quinta
:ClaseD
Sexta
30. Notación básica de los diagramas de
colaboración
• Representación gráfica de los mensajes
condicionales.
mens1( ) 1:[nueva venta]crear( )
:TPDV :Venta
Mensaje condicional, 1.1:crear( )
con prueba
:VentasLinea
deProducto
31. Notación básica de los diagramas de
colaboración
• Representación gráfica de trayectorias
condicionales mutuamente excluyentes.
1a y 2b son trayectorias
Incondicional tras condicionales mutuamente
mens2 o mens4 excluyentes
:ClaseE
2:mens6( )
mens1( ) 1a:[prueb1]mens2( )
:ClaseA :ClaseB
1a.1:mens3( )
1b:[no prueb1]mens4( )
1b.1:mens5( )
:ClaseD :ClaseC
32. Notación básica de los diagramas de
colaboración
• Representación gráfica de las colecciones.
Un multiobjeto, o conjunto de instancias, puede dibujarse
como un incono de pila.
multiobjeto
ventas:Venta
33. Notación básica de los diagramas de
colaboración
• Representación gráfica de los mensajes dirigidos a
multiobjetos
Mensaje enviado
al objeto colección
Mens1( )
1: s:= tamaño( ):ent :VentasLinea
:Venta deProducto
34. Notación básica de los diagramas de
colaboración
• Representación gráfica de los mensajes dirigidos a
un objeto clase.
Mensaje de clase
mens1( )
1: d1:= hoy( ):Fecha
:Venta Fecha
No subrayada;
por tanto una clase
35. Modelo de diseño
a. modelo estático
Modelo de diseño b. modelo dinámico
Modelo de casos de Modelo de Modelo del comporta- Modelo de Modelo de estado
uso para el diseño b arquitectura a miento de objetos b clases a para el diseño b
Casos de uso Diagramas Diagramas Diagramas de Diagramas de
- reales de paquetes de interacción clases de diseño estado para
(diagramas de clases
Contratos para estructura
Diagramas de Diagramas estáticos)
métodos y
casos de uso de despliegue
operaciones