Informática
Diagramas de Secuencia
Diagramas de Colaboración
Diagramas de UML
Diagramas de Secuencia y Diagramas de Colaboración
• Este tipo de diagramas explican y representan gráficamente las
interacciones (comunicaciones) existentes entre las instancias (y
las clases) del modelo propuesto.
• El UML define dos tipos de estos diagramas, ambos sirven para
expresar interacciones semejantes o idénticas de mensaje
DIAGRAMAS DE SECUENCIA Y DIAGRAMAS DE COLABORACION
DIAGRAMAS DE SECUENCIA
¿Qué es un Diagrama de Secuencia?
El diagrama de secuencias en UML muestra la
forma en que los objetos se comunican entre Sistema
Personal
sí al transcurrir el tiempo. Cliente De Venta
Elige prod. Y comunica datos
El diagrama muestra: Verifica prod. Ingresa datos (cliente)
• Los objetos participando en la interacción Muestra en pantalla datos y montos
• La secuencia de mensajes intercambiados Comunica precio total de los
productos que requiere
de la compra del producto
. Procede a pagar el precio indicado
por el PV y continua en espera
Un diagrama de secuencia contiene: Recepciona y registra pago realizado
• Objetos con sus “líneas de vida”
Imprime factura
• Mensajes intercambiados entre objetos Entrega factura y producto
en una secuencia ordenada
• Línea de Vida Activa (opcional)
Objetos
• El diagrama de secuencias consta de objetos que se
representan del modo usual: rectángulos con nombre
(subrayado), mensajes entre los objetos representados
por líneas continuas con una punta de flecha y el
tiempo representado como una progresión vertical.
• Los objetos se colocan cerca de la parte superior del
diagrama de izquierda a derecha y se acomodan de
manera que simplifiquen el diagrama.
• La extensión que está debajo (y en forma descendente)
de cada objeto será una línea discontinua conocida
como la línea de vida de un objeto.
• Junto con la línea de vida de un objeto se encuentra un
pequeño rectángulo conocido como activación, el cual
representa la ejecución de una operación que realiza el
objeto. La longitud del rectángulo se interpreta como
la duración de la activación.
Mensajes
Un mensaje que va de un objeto a otro pasa de la línea
de vida de un objeto a la de otro. Un objeto puede
enviarse un objeto a sí mismo (es decir, de su línea de
vida a su propia línea de vida).
Un mensaje puede ser simple, síncrono o asíncrono.
Un mensaje simple es la transferencia del control de un
objeto a otro.
Un mensaje síncrono es aquel en el que el objeto espera
la respuesta a ese mensaje antes de continuar con su
trabajo.
Un mensaje asíncrono es aquel en el que el objeto no
espera la respuesta a ese mensaje antes de continuar.
En el diagrama de secuencias, los símbolos del mensaje
varían. Por ejemplo, la punta de la flecha de un mensaje
simple está compuesta por dos líneas, la punta de flecha
de un mensaje síncrono es un triángulo relleno, y la de
uno asíncrono solo tiene una sola línea.
Tiempo
• El diagrama representa al tiempo en dirección vertical. El tiempo
se inicia en la parte superior y avanza hacia la parte inferior. Un
mensaje que esté más cerca de la parte superior ocurrirá antes
que uno que esté cerca la parte inferior.
• Con ello el diagrama de secuencias tiene dos dimensiones. La
dimensión horizontal es la disposición de los objetos, y la
dimensión vertical muestra el paso del tiempo.
Ejemplo
La siguiente figura muestra el
conjunto básico de símbolos del
diagrama de secuencias, junto con
los símbolos de su funcionamiento.
Se muestra un actor que inicia la
secuencia, aunque este símbolo, en
sentido estricto, no forma parte del
conjunto de símbolos de un
diagrama de secuencia.
Instancias y Genéricos
Recursividad
• En ocasiones un objeto posee una operación que se invoca a sí
misma. A esto se le conoce como recursividad, y es una característica
fundamental de varios lenguajes de programación. Por ejemplo,
supongamos que una calculadora forma parte de los objetos de
nuestro sistema y que una de sus operaciones sea el cálculo de
intereses. Para calcular el interés compuesto para un periodo que
incluya otros periodos, la operación cálculo de intereses del objeto
tendrá que invocarse a si misma varias veces. Para representar esto
en UML, dibujaremos una flecha de mensaje fuera de la activación, y
un pequeño rectángulo encima de la activación.
RECURSIVIDAD
Ejemplo
• A continuación vamos a ver con un ejemplo la forma de
representar un diagrama de secuencias; tomemos la pulsación en
un teclado de un carácter alfanumérico en una aplicación de
proceso de textos. El carácter debería aparecer inmediatamente
en la pantalla. Veamos en detalle que es lo que ocurre.–La GUI
notifica al sistema operativo que se oprimió una tecla.–El sistema
operativo notifica a la CPU.–El sistema operativo actualiza la
GUI.–La CPU notifica a la tarjeta de vídeo.–La tarjeta de vídeo
envía un mensaje al monitor.–El monitor presenta el carácter
alfanumérico en la pantalla, con lo que se hará visible al usuario.
DIAGRAMAS DE COLABORACIÓN
Diagramas de Colaboración
• Es una forma de representar:
• Interacción entre objetos.
• Asociaciones básicas (relaciones) entre las clases.
• Determinar responsabilidades (una o varias) que el software debe
cumplir expresadas en los contratos
• Se utilizan para diseñar un sistema de objetos interactivos que
realicen las tareas, usando como punto de partida las
responsabilidades del contrato de operación y las poscondiciones.
Diagramas de Colaboración
• Un diagrama de colaboración representa el comportamiento de
los objetos en tiempo de ejecución, por medio de paso de
mensajes, para así cumplir con un contrato específico.
• Sirven para ir depurando el diagrama de clases, porque irán
surgiendo métodos nuevos y tal vez atributos necesarios.
Ejemplo
1: Obtener_nomb(): nombre_seminario
2: Descripción()
1.1: Leer_nombre(): String
3: Ambiente()
1.2: Leer_numero(): String
4: Asiento()
2.1: Leer_Descrip(): String
5: Lista_Estudiantes()
:detalle :seminario :curso
seminario
*5.1: Inf estudiante()
Actualizar
Matricular
serie
:matricular de matriculas
5.1.1: Tomar_Info()
Estudiante
:estudiante
5.1.1: Ob_nomb_completo()
Ejemplo
Colaboración vs Secuencia
Bibliografía
• Gutirez, C. C. (2011). Casos prácticos de UML. Madrid: Editorial
Complutense. Está en biblioteca virtual e-libro.
http://site.ebrary.com/lib/inacapsp/detail.action?docID=10536104
&p00=casos+pr%C3%A1cticos+uml
• Schmuller, J. (s.f.). Aprendiendo UML en 24 horas. Prentice-Hall.
Actividad con Nota
• Formar grupos de dos a tres alumnos.
• Responder las siguientes preguntas, fundamentando su respuesta.
• Entregar durante la clase de hoy.
Diagramas de secuencia y colaboración
1. ¿Es posible utilizar diagramas de secuencias en otras etapas además de la etapa de análisis
del sistema?
2. ¿Cuál es la utilidad de los mensajes entre objetos, y que es lo que generan?
3. ¿Cómo se representa un mensaje con una condición asociada? Ejemplificar
4. ¿Cómo se representa un mensaje que se repite y se envía recursivamente al objeto?
5. ¿Es obligatorio construir los diagramas de secuencia y colaboración para representar un
sistema?
6. ¿Cómo se representan los mensajes en los diagramas de colaboración?
7. ¿Cómo se representa la secuencia de mensajes en un diagrama de colaboración?