Diagramas de Interacción

Slides:



Advertisements
Presentaciones similares
U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Advertisements

UML DCU -DS Alvaro Garrido V..
Diagrama de estado Alumnos: Hernández Darwin ( )
Lenguaje Unificado de Modelado
DIAGRAMAS DE COMUNICACIÓN
Programación Orientada a Objetos y Lenguaje de Modelado Unificado
Introduccion a UML Wilson Peláez Hernández
Ingeniería de Software I
Diagrama de Colaboración
Tomado de:
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Fundamentos de Ingeniería de Software
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
LENGUAJE UNIFICADO DE MODELADO UML
DIAGRAMAS DE SECUENCIA
UNIDAD 1: “ Introducción al Lenguaje Unificado de Modelado ”
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Análisis y Diseño orientado a objetos con UML.
Profesor: Miguel Angel Vidal
UML Diagramas. Diagramas de Interacción Muestran como los objetos de la aplicación cooperan e interactúan para cumplir con los requisitos. Suele construirse.
Facultad de Informática Departamento de Lenguajes y Sistemas Informáticos e Ingeniería de Software Universidad Pontificia de Salamanca en Madrid 1 Curso.
UML – Lenguaje de Modelado Unificado
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
Ingeniería de Software Orientado a Objetos
UNIDAD 3: “Desarrollo Orientado a Objetos con UML”
Fundamentos de programación
CASOS DE USO Peña Freddy Vargas Gerardolenin.
Análisis y Diseño Orientado a Objetos utilizando UML
Dirección General de Servicios de Cómputo Académico (DGSCA) ‏ Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.
DSOO - Maria Eugenia Valencia Comportamiento del Sistema Diagramas de Secuencia del sistema Los diagramas de secuencia están incluidos en la notación UML.
Modelo Dinámico (II) Prof. Leonid Tineo Departamento de Computación
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
DIAGRAMA DE ACTIVIDADES. NOTA: NOTA: Un diagrama de actividades es básicamente una proyección de los elementos de un grafo de actividades, un caso especial.
Vista de interacción  Una vista de interacción muestra el flujo de control requerido que se establece entre los objetos.
Ingeniería de software
Andrés Esteban Martínez Huta 10º2 Ciclo de Vida del Software Gloria Cecilia Ríos.
LES CUENTO QUE Los diagramas UML de secuencia y de colaboración (llamados diagramas de interacción) se utilizan para modelar los aspectos dinámicos.
DIAGRAMA DE FUJO EQUIPO: Maribel Arellano Domínguez Abilene Ríos Rosas
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
UML - Diagramas de interacción
I NGENIERÍA DE S OFTWARE L ABORATORIO VII Diseño - Diagramas: Actividades, Secuencia y Clases Eduardo Saavedra A. 13/10/2009.
Ingeniería de software
Diagramas de Interacción.
UML 2.0 Diagramas de Comportamiento
Clasificación de Diagramas
Conceptos Fundamentales
DIAGRAMA DE SECUENCIA Y ACTIVIDADES.
ANALISIS E INVESTIGACION DE DATOS
UML.
Relación con otras asignaturas del plan de estudio
INTRODUCCION AL ANALISIS Y DESARROLLO DE SISTEMAS DE SOFTWARE EQUIPO NUMERO CUATRO INTEGRADO POR: XAVIER REFUGIO GARY NERY HERNANDEZ OSCAR JUAREZ.
Fundamentos del Análisis Orientado a Objetos
Ing. José Manuel Poveda.  Es el diagrama que destaca el contexto y organización general de los objetos que interactúan.  Se diferencia del diagrama.
¿QUE ES EL DIAGRAMA DE ESTADO ?
DIAGRAMA DE ESTADO.
Sandra Muñoz Blanca González Patricia Lázaro
Casos de Uso - Programación II Analista Programador
Unified Modeling Language (Lenguaje de Modelamiento unificado)
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.
MODELAMIENTO VISUAL Y UML
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
Fundamentos de Ingeniería de Software
DIAGRAMAS DE SECUENCIA. UML está compuesto por los siguientes diagramas:
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
1 Qué es UML Es un Lenguaje de Modelado Unificado basado en una notación gráfica que permite especificar,construir, visualizar y documentar los objetos.
Lenguaje Unificado de Modelado (UML) Julio … Casos de Uso  Ejemplo:
CURSO:PRACTICA INTEGRAL III ALUMNO: RARÁZ TINOCO, JORGE LUIS PROFESOR:DAVILA, JUAN CICLO:II CICLO.
Diseño Orientación a Objetos Lenin Herrera Sesión 3.
Transcripción de la presentación:

Diagramas de Interacción

Interacción Es un comportamiento que compromete un conjunto de mensajes intercambiados entre un conjunto de objetos dentro de un contexto para lograr un propósito Un mensaje es la especificación de una comunicación entre objetos en la que se transmite información con la expectativa de que la actividad se lleve a cabo

Aspectos comunes en interacción Objetos: Participantes en la interacción Roles: Jugados por los objetos Enlaces: Conexión semántica entre objetos Mensajes: Comunicación entre objetos Secuenciación: Orden de los mensajes

Diagramas de Interacción Muestra la interacción entre los objetos con sus relaciones y los mensajes que pueden enviar entre ellos Diagramas de Secuencia Diagramas de Colaboración Un mensaje es la invocación de un método

Diagramas de Interacción Modelan los aspectos dinámicos del sistema Sirven para visualizar, especificar, construir y documentar la dinámica de una sociedad particular de objetos  Modelan un flujo de control particular de un caso de uso

Diagramas de Interacción Muestra una interacción, que consiste en un conjunto de objetos y las relaciones entre ellos, incluyendo los mensajes que deben ser enviados. Es un macro-algoritmo descrito gráficamente Son modelos dinámicos que describen cómo los objetos colaboran entre sí.

Tipos de Diagramas de Interacción Diagramas de Secuencia Enfatiza el tiempo que indica el orden de los mensajes Es útil para describir escenarios donde existe interacción con el usuario Es utilizado para mostrar el diseño detallado de un procedimiento (método) Diagrama de colaboración Enfatiza la organización estructural de los objetos que envían y reciben información

Tipos de Diagramas de Interacción Diagramas de Estado Muestra los posibles estados de un objeto y las transiciones que causa un cambio en el estado Diagramas de Actividad Muestra un flujo de actividades involucradas en un simple proceso

Propiedades Comunes Roles u objetos Comunicaciones o Enlaces Mensajes Pueden contener notas o restricciones

Diagrama de Secuencia Diagrama de interacción que destaca la ordenación temporal de los mensajes Se caracterizan por: Línea de vida Línea discontinua vertical Representa la existencia de un objeto a lo largo de un periodo de tiempo

Diagrama de Secuencia Se caracterizan por: El foco de control es un rectángulo delgado y estrecho que representa el periodo durante el cual el objeto desarrolla una acción Mensajes: Se representa con una flecha entre líneas de vida. La punta se dirige al receptor que es el que posee el método.

Diagrama de Secuencia Detalla cómo las operaciones son llevadas a cabo, qué mensajes son enviados y cuándo. Es una representación que muestra, en determinado escenario de un caso de uso, los eventos generados por actores externos, su orden y los eventos internos del sistema.

Diagrama de Secuencia Muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo. La creación de los diagramas de secuencia depende de la formulación de los casos de uso Un diagrama de secuencia se modela para cada caso de uso, esto es, el diagrama de secuencia captura el comportamiento del caso de uso.

Diagramas de Secuencia Tomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagrama de Secuencia Están organizados de acuerdo al tiempo, que avanza hacia la parte de inferior en el diagrama. Los objetos involucrados en la operación son listados de izquierda a derecha de acuerdo a cuando toman parte en la secuencia. La dimensión vertical representa el tiempo y la dimensión horizontal representa la interacción de objetos.

Diagrama de Secuencia Muestran, para un escenario específico de un caso de uso: los eventos que generan los actores externos el orden de los eventos eventos entre los sistemas Los sistemas se tratan como cajas negras Debe realizarse un DS para el escenario principal de éxito del caso de uso, y los escenarios alternativos complejos o frecuentes No es necesario crear un DS para todos

Diagrama de Secuencia

Mensaje Representado como una línea sólida dirigida desde el objeto que emite el mensaje hacia el objeto que lo ejecuta. Consta de: Operación Número de secuencia (opcional) Argumentos de la operación Valor de retorno de la operación Flecha de retorno de mensaje (opcional)

Mensaje Especificación del tipo de mensaje : sincrónico, asincrónico. Especificación de creación ó destrucción (la creación se muestra como un corrimiento del objeto hacia abajo) Condición Iteración

Mensaje a “Self” o “this” :Registro Msj1() Limpiar()

Creación de Objetos :Registro :Venta :Pago Realizarpago(dineroEntregado) :Pago Create(dineroEntregado) Autorizar() La línea de vida muestra la Duración de la vida de un Objeto en el diagrama Los objetos creados recientemente se sitúan a su altura de creación

Destrucción de objetos :Venta :Pago Create(dineroEntregado) Autorizar() … “Destroy()” El mensaje estereotipado con “destroy” y la X indica la destrrucción explícita del objeto

Mensajes condicionales :Foo :Bar [color = rojo] calcular() Mensaje1()

Mensajes Condicionales Mutuamente Exclusivos :B Mensaje1() :C [x>15] calcular() [x<10] calcular()

Iteración para un Único Mensaje :Simulador :Aleatorio * [i=1..N]: Num:=SiguienteEnt() EjecutarSimulación()

Iteración Sobre una Serie de Mensajes :Simulador :Aleatorio Horas:=SiguienteEnt() EjecutarSimulación() :Programador Trabajar(horas) *[i:=1..N] Comer()

Iteración sobre un Multiobjeto :LíneaDeVenta :Venta *:st:=getSubTotal() … T=getTotal()

Invocación Estática :Foo :java.util.collections Lista:=sincronizedList(UnaLista) Mensaje1() Mensaje a una clase o una Invocación a un método estático No subrayada → es una clase

Diagrama de Secuencia - Ejercicio Desde una GUI se envía solicita una reservación a una cadena de hoteles, la cadena de hoteles a su vez envía la solicitud al hotel que el usuario desea, si el hotel tiene habitaciones, hace una reservación y una confirmación.

Diagrama de Secuencia – Tipos de mensaje Los mensajes pueden ser: Sincrónicos: se envía el mensaje y se espera hasta que haya una respuesta. (wait) Asincrónicos: permite enviar mensajes adicionales mientras el original está siendo procesado. (nowait)

Diagrama de Secuencia – Mensajes Símbolo Significado Mensaje simple, sincrónico ó asincrónico Mensaje simple de retorno (opcional) Mensaje sincrónico (call)

Diagrama de Secuecia –mensaje asíncrono-Ejercicio Una enfermera solicita un examen diagnóstico a un laboratorio médico. Hay dos mensajes asíncronos desde la enfermera, preguntar a MedicalLab para reservar una fecha para el examen y preguntar a InsuranceCompany para que apruebe el examen. El orden en el cual los mensajes son enviados o completados es irrelevante (el uno no espera hasta que el otro regrese). Si el examen es aprobado por InsuranceCompany, la enfermera programará el examen en la fecha suministrada por MedicalLab.

Diagrama de Secuencia – Visibilidad El objeto al que se le envía el mensaje (A) debe ser visible por el objeto que envía el mensaje (B) y el mensaje debe corresponder a un método de A.

Diagrama de Clase Curso -nombre:int Descuento +BuscarEstudiante:String +TieneDescuento:Boolean +AgregarEstudiante:void Descuento -nombre: String -porcentaje: int +TieneDescuento:Boolean 1 0..* 1 0..* Nota -puntuación:int Estudiante -código:int -promedio:int +Estudiante +DeEstudiante:Estudiante +DeDatos:String +DePromedio:int +Agregar:void Corresponde ← 0..*

Diagrama de Secuencia – Visibilidad A crea a B. En el ejemplo objCurso crea el objEst, ya que lo conoce y lo agrega a la colección de estudiantes :ObjCurso Curso :ObjEst Estudiante 1:AgregarEstudiante(CodEst,Promest) :CollEstudiantes 1.1 :constructor 1.2 :AgregarObjEst):void GUI A B

Diagrama de Secuencia – Visibilidad Existe una relación de asociación entre la clase A y la clase B, A puede invocar métodos de B. En el ejemplo se puede apreciar que los objetos sólo envían mensajes a los objetos que conocen de acuerdo al diagrama de clases

Diagrama de Secuencia – Relación con el Diagrama de Clases Un diagrama de secuencia sirve para Reconocer qué objetos pueden interactuar en el diagrama de secuencia Reconocer los métodos posibles Completar el diagrama de clases Reconocer más métodos de una clase Crear asociaciones entre clases

Diagramas de Secuencia Se pueden representar condicionales y bucles Existen operadores de control Obj1: Clase1 Obj2: Clase2 con [cond] Mensaje1() Mensaje2()

Diagramas de secuencia Operadores de control Ejecución opcional: Opt El cuerpo del operador de control se ejecuta si una condición de guarda es cierta cuando se entra en el operador Ejecución condicional alt El cuerpo del operador se divide en varias subregiones con líneas discontínuas horizontales Cada subregión se considera como una rama de la condición Cada subregión tiene una condición de guarda Sólo se ejecuta una subregión Existe también la etiqueta [else]

Diagramas de Secuencia Operadores de control Ejecución paralela: par El cuerpo del operador se divide en varias subregiones con líneas discontinuas horizontales Cada subregión representa una ejecución en paralelo de manera concurrente La concurrencia no implica ejecución físicamente simultánea. Significa que las acciones no están coordinadas y pueden ejecutarse en cualquier orden

Diagramas de Secuencia Operadores de control Ejecución en bucle (iterativa): loop loop (min,max) Una condición de guarda aparece sobre una línea de vida dentro del cuerpo Se ejecuta el cuerpo del bucle mientras la guarda sea verdadera

Diagramas de Secuencia Tomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagrama de Secuencia Tomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagrama de Secuencia – Caso de uso: Hacer pedido cliente en Restaurante

Diagrama de Secuencia – Caso de uso: Hacer pedido cliente en Restaurante

Diagrama de colaboración/ comunicación Diagrama de interacción que destaca la organización estructural de los objetos que envían y reciben mensajes. No se muestran las líneas de vida Se pueden representar los mensajes create y destroy Existen números de secuencia y se puede indicar el anidamiento

Diagramas de Colaboración Explican gráficamente las interacciones entre las instancias (objetos) Transmiten la misma información que un diagrama de secuencia pero se focalizan en roles de objetos en lugar de los tiempos en que los mensajes son enviados

Diagrama de Colaboración Tomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagramas de colaboración Se caracterizan por: El camino Número de secuencia Se puede representar la iteración y los ciclos Iteración: * [i: 1..n] // La clave es el * Condición: [cond]

Diagrama de Colaboración Tomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagramas de Colaboración - Ejemplo Window:GUI Achain:Cadenadehoteles Ahotel:Hotel AReservation:Reservación ANotice:Confirmación 1.1:HacerReservación():Void 1.1.1:HacerReservación():Void 1.1.1.1:*[Por cada dia]HayHabitaciónDisponible():Boolean 1.1.1.2:[HayHabitación] 1.1.1.2.1

Elementos Objetos: se representan como un rectángulo con la notación objeto:Clase subrayados. Los enlaces conectan dos objetos, representan instancias de una asociación entre los objetos. Cada enlace tiene un mensaje. El mensaje tiene un dirección indicando visibilidad (navegabilidad).

Elementos El mensaje tiene un número de secuencia, el mensaje de nivel más alto es etiquetado como 1 Los mensajes enviados durante la misma llamada (mismo nivel) tienen el mismo prefijo decimal, pero sufijos 1,2, etc.., de acuerdo a cuando ellos ocurren Se pueden mostrar iteraciones, condiciones y auto llamados

Elementos Al igual que en el diagrama de secuencia cada mensaje tiene asociado: Operación Etiqueta Número de secuencia Si el mensaje es de creación ó destrucción Argumentos Valor de retorno Expresiones de condición e iteración

Ejercicio En el siguiente ejemplo identificar: Dirección de los mensajes Primer mensaje Primer mensaje interno Parámetros Creación Instancias

Ejemplo :Registro :Venta :Pago RealizarPago(dineroEntregado) 1.1.Create(dineroEntregado)

Enlaces A lo largo del mismo enlace pueden fluir múltiples mensajes y mensajes en ambas direcciones :Registro :Venta 1.RealizarPago(dineroEntregado) 2.Foo() 2.1.Bar()

Mensajes Todos los mensajes fluyen en el mismo enlace :Registro :Venta 1:Msj2() 2:Msj3() 3.1:Msj5() Msj1() 3:Msj4()

Mensajes a “self” o “this” :Registro Msj1() 1:Limpiar() Mensaje a “This”

Creación de Instancias

Secuencia de Numeración

Secuencia de Numeración (cont.)

Mensajes Condicionales

Mensajes Mutuamente Exclusivos

Iteración o Bucle

Iteración Sobre Multiobjeto

Mensajes a Métodos Estáticos

Colaboración vs Secuencia Tipo Pros Contras Secuencia Muestra claramente la secuencia ordenada de mensajes en el tiempo Notación simple Tiene bloques de Sentencias Consume mucho espacio horizontal Colaboración Económico en espacio, flexible para añadir nuevos objetos en dos dimensiones Mejor para ilustrar ramificaciones complejas, iteraciones y concurrencia Difícil de ver la secuencia de mensajes Notación más compleja

<<actor>> Mensaje de Creación 1.2.Agregar(ObjEst):Void → 1.AgregarEstudiante(codEst,promEst):Void → ObjCurso:Curso colEstudiantes:Estudiante <<actor>> GUI 1.1.<constructor>(int,int) → ObjEst:Estudiante

<<actor>> Mensaje de Creación <<actor>> GUI 1.AgregarEstudiante(codEst,promEst):Void → ObjCurso:Curso 1.2.Agregar(ObjEst):Void colEstudiantes:Estudiante ObjEst:Estudiante 1.1.<constructor>(int,int) ↓

Multiobjeto, iteración <<actor>> GUI 1:máximaNotaEst(codEst):int → ObjCurso:Curso ↑ 1.1:.objEst=GetEstudiante(codEst):Estudiante colEstudiantes:Estudiante ObjEst:Estudiante ↓1.2:datosEst=máximaNotaEst():int ObjNota:Nota 1.2.1:*[para cada nota] máximaNota=GetNota():int →