Mensajes
Sintaxis para mensajes:
predecesor / guarda secuencia: retorno := msg(args)
Diagramas de interacción
El Diagrama de Secuencia es más adecuados para observar la perspectiva cronológica de las interacciones
El Diagrama de Colaboración ofrece una mejor visión espacial mostrando los enlaces de comunicación entre objetos
El D. de Colaboración puede obtenerse automáticamente a partir del correspondiente D. de Secuencia (o viceversa)
Diagrama de Secuencia
Muestra la secuencia de mensajes entre objetos durante un escenario concreto
Cada objeto viene dado por una barra vertical
El tiempo transcurre de arriba abajo
Cuando existe demora entre el envío y la atención se puede indicar usando una línea oblicua
… Diagrama de Secuencia
Diagrama de Secuencia
mostrando foco de control,
condiciones, recursión
creación y destrucción
de objetos
… Diagrama de Secuencia
Diagrama de Colaboración
Son útiles en la fase exploratoria para identificar objetos
La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás
La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces
Mensajes
Un mensaje desencadena una acción en el objeto destinatario
Un mensaje se envía si han sido enviados los mensajes de una lista (sincronización):
A
B
A.1, B.3 / 1:Mensaje
… Mensajes
Un mensaje se envía de manera condicionada:
A
B
[x>y] 1: Mensaje
… Mensajes
Un mensaje que devuelve un resultado:
A
B
1: distancia:= mover(x,y)
Clasificación
El mundo real puede ser visto desde abstracciones diferentes (subjetividad)
Mecanismos de abstracción:
Clasificación / Instanciación
Composición / Descomposición
Agrupación / Individualización
Especialización / Generalización
La clasificación es uno de los mecanismos de abstracción más utilizados
Clases
La clase define el ámbito de definición de un conjunto de objetos
Cada objeto pertenece a una clase
Los objetos se crean por instanciación de las clases
Clases: Notación Gráfica
Cada clase se representa en un rectángulo con tres compartimientos:
nombre de la clase
atributos de la clase
operaciones de la clase
motocicleta
color
cilindrada
velocidad maxima
arrancar
acelerar
frenar
Clases: Notación Gráfica
Otros ejemplos:
lista
primero
ultimo
añadir
quitar
cardinalidad
pila
apilar
desapilar
cardinalidad
Clases: Encapsulación
La encapsulación presenta dos ventajas básicas:
Se protegen los datos de accesos indebidos
El acoplamiento entre las clases se disminuye
Favorece la modularidad y el mantenimiento
Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos
… Clases: Encapsulación
Los niveles de encapsulación están heredados de los niveles de C++:
(-) Privado : es el más fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminología C++)
(#) Los atributos/operaciones protegidos están visibles para las clases friends y para las clases derivadas de la original
(+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de encapsulación)
… Clases: Encapsulación
Ejemplo:
Relaciones entre Clases
Los enlaces entre de objetos pueden representarse entre las respectivas clases
Formas de relación entre clases:
Asociación y Agregación (vista como un caso particular de asociación)
Generalización/Especialización
Las relaciones de Agregación y Generalización forman jerarquías de clases
Asociación
La asociación expresa una conexión bidireccional entre objetos
Una asociación es una abstracción de la relación existente en los enlaces entre los objetos
Ejemplo:
… Asociación
(Gp:) Persona
(Gp:) Compañía
(Gp:) trabaja-para
(Gp:) nombre
s. s.
(Gp:) nombre
dirección
(Gp:) jefe
(Gp:) Administra
(Gp:) empleado
(Gp:) *
(Gp:) *
(Gp:) emplea-a
(Gp:) 0.. 1
(Gp:) 0.. 1
(Gp:) 0.. 1
(Gp:) *
(Gp:) marido
(Gp:) casado-con
(Gp:) mujer
Especificación de multiplicidad (mínima…máxima)
1 Uno y sólo uno
0..1 Cero o uno
M..N Desde M hasta N (enteros naturales)
* Cero o muchos
0..* Cero o muchos
1..* Uno o muchos (al menos uno)
La multiplicidad mínima >= 1 establece una restricción de existencia
… Asociación
Asociación Cualificada
Aerolínea
Viajero
nro_billete
*
0..1
Tablero
Ajedrez
fila
columna
1
1
Cuadro
Reduce la multiplicidad del rol opuesto al considerar el valor
del cualificador
La agregación representa una relación parte_de entre objetos
En UML se proporciona una escasa caracterización de la agregación
Puede ser caracterizada con precisión determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes
Agregación
Página anterior | Volver al principio del trabajo | Página siguiente |