Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

58
TIPOS DE DIAGRAMAS Diagramas de estructura: mostrar la estructura estática del sistema que se está modelando Incluye: diagramas de clase, componentes y/o objetos. Diagramas de comportamiento: muestra el comportamiento dinámico entre los objetos y el sistema. Incluye: diagramas de actividades, casos de uso, de interacción (secuencia y colaboración) y transición de estados.

Transcript of Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Page 1: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

TIPOS DE DIAGRAMAS

• Diagramas de estructura: mostrar la estructura estática del sistema que se está modelandoIncluye: diagramas de clase, componentes y/o objetos.

• Diagramas de comportamiento: muestra el comportamiento dinámico entre los objetos y el sistema.Incluye: diagramas de actividades, casos de uso, de interacción (secuencia y colaboración) y transición de estados.

Page 2: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Diagrama de Clases

• Clase: Es la representación de la estructura y comportamiento de un objeto. Es un patrón para la definición de atributos y métodos para un tipo particular de objetos. Todos los objetos de una clase dada son idénticos en estructura y comportamiento pero son únicos (aunque tengan los mismos valores en sus atributos)

Page 3: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Diagrama de ClaseMuestra las diferentes clases que componen un sistema y como se relacionan unas con otras. Los diagramas de clases son estáticos porque muestran las clases, métodos y atributos, así como las relaciones estáticas entre ellos.

Page 4: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Ejemplo:

Page 5: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Diagrama de Objetos

• Se considera un caso especial del diagrama de clases.• La clase define que puede ser; el objeto describe que

es.• Describe una instancia de un diagrama de clase en un

momento en particular.• Este diagrama contiene objetos y ligas.

Page 6: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Notación Diagrama de Objetos

• Consiste de dos elementos: objetos y uniones (links). Un objeto es una entidad real creada a partir de una clase. Ejemplo

J.Perez: Cliente

clientID = 24629Nombre = Javier PerezDireccion = Pino 45875

Nombre de la clase

Objeto J.Pérez del tipo Cliente

Page 7: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Notación: objeto anónimo• La forma abreviada utiliza: nombre de la clase

sin el nombre del objeto.• Se usa cuando queremos dibujar un ejemplo

donde no importe el objeto específico que participa.

: Cliente

clientID = 24629Nombre = Javier PerezDireccion = Pino 45875

Contiene hechos acerca delos atributos. Cada atributoes nombrado y se le asigna unvalor. Por eso se dice que la Clase son reglas a diferencia delObjeto que son hechos.

Page 8: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Comparando el diagrama de Clases y el de Objetos

Embarque

-fecha:Date = hoy-destino:Dierccion = null…

Producto-desc:String = null-numSerie:String =asignado… entrega

0…1 1…*

-fecha = 12-12-08-destino = Toluca

4321:Embarque

-desc = frijol bayo-numSerie = 582364…

-desc = harina -numSerie = 563284…

21:Producto

96:Producto

Page 9: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Continuación…

• El diagrama de objeto muestra que el objeto 4321 de tipo Embarque tiene dos Productos. Cada atributo de los 3 objetos tiene asignado un valor.

• Las operaciones de las clases no se incluyen en el diagrama de objetos, ya que éstas no tienen múltiples interpretaciones o valores como los atributos. Cada objeto de la misma clase posee las mismas operaciones.

Page 10: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Diagrama de clase Diagrama de objetos

Tiene tres compartimentos: nombre, atributos y operaciones

Tiene dos compartimentos: nombre y atributos

Solo se pone el nombre de la clase Se puede poner el nombre del objeto : y el de la clase subrayados, o solamente : y el nombre de la clase

En los atributos se definen las propiedades de los mismos

Solo se definen los valores de cada atributo para la prueba que se esté modelando

Se listan las operaciones Las operaciones no están incluidas en el objeto ya que son idénticas para cada objeto de la misma clase

Page 11: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Ejemplo:Supongamos el siguiente proceso:

- Un agente de reservaciones de los hoteles Posada está esperando llamadas de clientes que quieran reservar un cuarto de hotel. Suena el teléfono y es un cliente que quiere reservar para ir al hotel de Cancún en Semana Santa, el agente selecciona “Crear una Reservación” en su pantalla principal y aparece una reservación en blanco. Hasta este momento lo único que sabemos es la ubicación del hotel (Cancún).

:Ubicación

Nombre=“Cancún”

Page 12: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Continuación ejemplo…

• En un sistema de reservaciones, el diagrama de clases es:

Reservación Cliente

Cuarto Ubicación

1…* hecha para 1

1…*

11…* ubicada en 1

Page 13: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Continuación ejemplo…– El agente pregunta de que fecha a que fecha

quiere ir e introduce las fechas en la forma. – Se despliegan los cuartos disponibles en esa fecha

y en esa ubicación y el cliente selecciona el 7120.

Reservación

NumReserv = nullStatus = verifD_llegada = 8/04/09D_salida=15/04/09

1352:Cuarto

326:Cuarto

7120:Cuarto

:Ubicación

Nombre:Cancún

Page 14: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Continuación ejemplo…– El agente introduce los datos del cliente en el

sistema y el objeto Cliente se relaciona con la reservación

Reservación

NumReserv = nullStatus = verifD_llegada = 8/04/09D_salida=15/04/09

1352:Cuarto

326:Cuarto

7120:Cuarto

:Ubicación

Nombre:Cancún

:Cliente

Nombre: “Jaime”Apellido = “López”Dirección = “xxxx”Tel = “5874587587”

Page 15: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Continuación ejemplo…– El agente pregunta si quiere confirmar la

reservación….. En caso afirmativo el sistema cambia el status a “Confirmada” y le asigna un número de reservación:

Reservación

NumReserv = 4582Status = confirmadaD_llegada = 8/04/09D_salida=15/04/09

1352:Cuarto

326:Cuarto

7120:Cuarto

:Ubicación

Nombre:Cancún

:Cliente

Nombre: “Jaime”Apellido = “López”Dirección = “xxxx”Tel = “5874587587”

Page 16: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Un cliente quiere reservar más de una habitación, de acuerdo con el diagrama de clases sólo se puede reservar un cuarto por Reservación. Esto nos indica que la multiplicidad en Cuarto debe cambiarse a 1…*. (Este es otro escenario).

Reservación Cliente

Cuarto Ubicación

1…* hecha para 1

1…*

1…*1…* ubicada en 1

Page 17: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Con los cambios en la multiplicidad– El diagrama de clases cambia en “Cuarto”

Reservación

NumReservStatus D_llegadaD_salida

Cuarto Ubicación

NombreDirección

Cliente

NombreApellidoDirección Tel

NombreCapacidad

ReservarCto( )

1…* 1

1…*

1…*

1…* 1

Page 18: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Diagrama de Secuencia

Diagrama de Interacción Diagrama de

colaboración

Page 19: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Vista Dinámica• La vista dinámica representa las interacciones de los objetos

en un sistema.

• Puede representar, cómo el sistema responderá a las acciones de los usuarios, como los datos son movidos del almacenamiento a la vista del usuario y como los objetos son creados y manipulados.

Page 20: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Diagrama de Secuencia

• Los diagramas de secuencia ilustran la interacción entre objetos y el orden secuencial en el que ocurren dichas interacciones, es decir como se comunican los objetos entre sí.

• El diagrama de secuencias proporciona un camino a partir de los escenarios para describir las operaciones en una forma más detallada

Page 21: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

• Los diagramas de secuencias se modelan a nivel de objetos y utilizan tres elementos fundamentales:

ObjetosMensajes/estímulosLíneas de vida de los objetos.

Page 22: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

MENSAJES

• El primer mensaje de un diagrama de secuencia siempre inicia en la parte superior del lado izquierdo del diagrama. Los demás se van aumentando ligeramente más abajo.

• Para mostrar un objeto (línea de vida) que manda un mensaje a otro objeto, se usa una línea con una punta de flecha sólida. El mensaje (nombre del método) se coloca arriba de la flecha. El mensaje que se envía representa una operación/método que la clase objeto receptora va a implementar.

Page 23: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

3: [para c/alumno]:add(calif)

4: alumnoExiste(expediente)

5: return yes

8. return

Usuario:Profesor Sistema :Registro

1:Pide NRC registro( ):int

2: return NRC

7:return true

6: [alumnoExiste=si]:addAlumno(calificacion):boleean

Page 24: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Notación figura anterior1. Línea de vida del objeto: línea vertical punteada

debajo de cada objeto

2. Mensaje: es una llamada, una señal o una respuesta. Un mensaje se representa por una flecha, una línea y la punta de flecha sólidas representan un mensaje que requiere de una respuesta. Las líneas punteadas son las respuestas. Se colocan horizontales entre las líneas de vida, en una posición relativa vertical con las otras para representar el orden en el que suceden.

Page 25: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

3. Los números de secuencia son útiles para aclaraciones y cambios.

Cada mensaje (flecha) describe una interfase/operación con el objeto al que está apuntando, por lo que el mensaje contiene el nombre, argumentos y en su caso el valor de retorno, por ejemplo: addItem(product):bolean.

Las flechas de regreso (2 y 5) solo contienen la respuesta a un mensaje.

Page 26: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Ejemplo: Diagrama de secuencia: objetos y líneas de

tiempo:Dependiente :System :OrdersDB 23456:Order :Inventario12345:Order

Page 27: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

• El primer diagrama de Secuencia modela el escenario 1. Este escenario es el camino exitoso, el más comprensible.

• Cada paso del diagrama de flujo se convierte en un mensaje o en un return en el diagrama de Secuencia.

• El formato de un mensaje es: Un número de secuencia (opcional) Dos puntos Condición (opcional), entre corchetes cuadrados [ ]. Identificación de la operación: Visibilidad (+pública, -privada,

#protegida). Nombre de la operación. Argumentos, se ponen entre paréntesis (). Dos puntos. Tipo de dato de retorno.

Page 28: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Escenario 1:

El primer paso es:

El sistema pide número de orden, en el diagrama de secuencia aparece como un procedimiento llamado paso 1 y la respuesta dependiente del número de orden es el paso 2.

Page 29: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Pasos 1 y 2; obtener el número de orden

:Dependiente :System :OrdersDB 23456:Order :Inventario12345:Order

1:getOrderNbr():int

2:return 12345

Page 30: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

• El siguiente paso es la consulta a la base de datos, en el diagrama de secuencias se detalla el mensaje y la respuesta, que en la siguiente figura corresponden a los pasos 3 y 4.

• El valor de regreso es simplemente él número de orden. El diagrama de secuencias modela un caso de prueba, por lo que el return debe ser un valor.

Page 31: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Pasos 3 y 4; obtener la orden usando el número de orden

:Dependiente :System :OrdersDB 23456:Order :Inventario12345:Order

1:getOrderNbr():int

2:return 12345

3:getOrder(ordernbr:int):Order

4:return Order 12345

Page 32: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

• El siguiente paso es “Desplegar Orden”, (mostrar la orden correspondiente). Ya que este mensaje no requiere respuesta, la figura muestra el uso de una comunicación asíncrona usando una flecha con punta tipo

• En este caso no hay flecha de retorno correspondiente. No hay valor de retorno y por lo tanto el tipo de retorno es “void”.

Page 33: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Poner un mensaje asíncrono

:Dependiente :System :OrdersDB 23456:Order :Inventario12345:Order

1:getOrderNbr():int

2:return 12345

3:getOrder(ordernbr:int):Order

4:return Order 12345

5:displayOrder(Order):void

Page 34: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

• Una vez que se desplegó la orden en el paso 5, el sistema le pide al usuario que seleccione el primer ítem para buscarlo, es el paso 6: getItem( ):int.

• El sistema espera obtener un entero que represente el número de ítem en la Orden para buscarlo, obtiene la respuesta en el paso 7: item #1.

• El sistema en el paso 8 busca el item en el inventario:– 8:[item found] getProduct(itemnbr:int):boolean

Page 35: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

• En el paso 9 responde true, significa que sí lo encontró, recordemos que estamos en el camino más sencillo.

• En el paso 10 el sistema pide la cantidad de producto y el dependiente se la da en el paso 11.

• En los pasos 12 y 13 se actualiza el inventario y responde que se llevó a cabo la operación, (return verdadero)

Page 36: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Continuación…:Dependiente :System :OrdersDB 23456:Order :Inventario12345:Order

[para c/ítem]:Finalizar()

7:return item#1

8:[item found] getProduct(itemnbr:int):boolean

6:getItem():int

12:reduceinv(prod:Product):boolean

13:return true

9:return true

10:getQty( 9:int

11: return 25kg

Page 37: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Objetivo Diagrama de Secuencias

• Descubrir las interfases requeridas para cada objeto y validar que cada interfase se usa realmente.

• El diagrama de Secuencias modela interacciones entre objetos. Ya que estas interacciones pueden ser muy complejas, se modelan un pequeño juego de interacciones como un solo escenario.

Page 38: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Resumen: para construir el diagrama

• Identificar a los objetos participantes• Dibujar una línea vertical bajo cada objeto, que

representa la línea de tiempo• Cada mensaje se convierte en una línea horizontal

del objeto que manda al que recibe.• Para un mensaje síncrono o procedimiento de

llamada se requiere una respuesta.• Los asíncronos no necesitan respuesta.

Page 39: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

DIAGRAMA DE COLABORACIÓN

Page 40: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Un Diagrama de Colaboración muestra a una serie de objetos con los enlaces entre los mismos, y con los mensajes que se intercambian dichos objetos.

Los mensajes son flechas que van junto al enlace por el que “circulan”, y con el nombre del mensaje y los parámetros (si los tiene) entre paréntesis.

Cada mensaje lleva un número de secuencia que denota cuál es el mensaje que le precede, excepto el mensaje que inicia el diagrama, que no lleva número de secuencia.

Page 41: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Se pueden indicar alternativas con condiciones entre corchetes (por ejemplo: [condición_de_test] : nombre_de_método() ), tal y como aparece en el ejemplo.

También se puede mostrar el anidamiento de mensajes con números de secuencia como 2.1, que significa que el mensaje con número de secuencia 2 no acaba de ejecutarse hasta que no se han ejecutado todos los 2. x .

Page 42: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Elementos básicos para el diagrama de Colaboración

ObjetoUn objeto se representa con un rectángulo, que contiene el nombre del objeto

EnlacesUn enlace es una instancia de una asociación en un diagrama de clases. Se representa como una línea continua que une a dos objetos. Esta acompañada por un número que indica el orden dentro de la interacción

Page 43: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Flujo de mensajesExpresa el envío de un mensaje. Se representa mediante una flecha dirigida cercana a un enlace.

Marcadores de creación y destrucción de objetosPuede mostrarse en la gráfica cuáles objetos son creados y destruidos, agregando una restricción con la palabra new o delete, respectivamente, cercana al rectángulo del objeto

Page 44: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Las Interacciones modelan aspectos dinámicos del sistema

Llamada.-Invoca una operación sobre un objeto. Puede ser a sí mismo.

Retorno.-El receptor de una llamada devuelve un valor al emisor, si es necesario.

Envío.- Envía una señal a un objeto.

Page 45: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Destrucción.- Para destruir un objeto. Puede destruirse a sí mismo.

Secuenciación• El flujo de mensajes forma una secuencia.• La secuencia es indicada por un número antes del mensaje y

una flecha dirigida.• Para modelar caminos alternativos, se coloca el mismo

número de secuencia seguido de un número de subsecuencia.

Page 46: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Secuenciación

Page 47: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Ejemplo: Un lector solicita un libro al bibliotecario, y le brinda su título. El bibliotecario busca el libro en un índice y solicita al

asistente que le proporcione el libro.Diagrama de secuencia

Solicita un libro brindándole el titulo busca el libro devuelve información solicita que le proporcione el libro el libro es entregado entrega el libro

LECTOR BIBLIOTECARIO ASISTENTEINDICE

Page 48: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Diagrama de colaboración

5:El libro es entregado()

4:Solicita que le alcance el libro ()

2:Busca el libro () 3:devuelve información ()

6:Entrega libro ()

1:Solicita libro ()

dándole el titulo ()

LECTOR

BIBLIOTECARIO

ASISTENTE

INDICE

Page 49: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

DIAGRAMA DE TRANSICIÓN DE ESTADOS

Page 50: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

• Describen gráficamente los eventos y los estados de los objetos, modelando el comportamiento individual de cada objeto durante su ciclo de vida.

• Un evento es un acontecimiento importante a tomar en cuenta para el sistema. Un estado es la condición de un objeto en un momento determinado: el tiempo que transcurre entre eventos. Una transición es una relación entre dos estados, e indica que, cuando ocurre un evento, el objeto pasa del estado anterior al siguiente.

• El comportamiento de un objeto es modelado en términos del estado en el cual se encuentra, qué acciones se ejecutan en cada estado y cuál es el estado al que transita después de un determinado evento.

Page 51: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

ELEMENTOS DE UN DIAGRAMA DE TRANSICIÓN DE ESTADOS

Transición

Representación de un estado en notación UML

Esquema General del Diagrama de Transición de Estados UML

Estado A

Atributo1 = falso…

Entry: acción para entrar al estadoExit: acción para salir del estadoDo: acción mientras se está en el estado

Page 52: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Ejemplo:

Diagrama de Transición de Estados para los objetos de la clase PERSONA

Page 53: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados
Page 54: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Subestados: Un estado puede descomponerse en subestados, con transiciones entre ellos y conexiones al nivel superior (superestado)

Page 55: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados
Page 56: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados
Page 57: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

EjercicioRealizar un diagrama de transición de estados de un sistema que se encargue de actualizar el sitio web de un usuario de acuerdo a sus preferencias y gustos particulares almacenados en una base de datos en el momento que el usuario se registra.

Tras pasar del estado Inactivo y superar el Login, se procede a la Carga de los datos de Usuario; si el usuario es nuevo, se realizan operaciones de inicialización.

Una vez efectuada la carga, el usuario puede decidir si actualizar su sitio web, o simplemente salir, con lo que se volvería al estado Inactivo; si opta por Actualizar, entonces se efectúan las operaciones necesarias para la actualización. Una vez finalizada, es necesario mostrar un Informe de las operaciones realizadas, tras lo cual se guardará el nuevo estado del sitio web y de los datos del usuario.

Después de guardar los datos, el usuario puede salir del programa (vuelta a estado Inactivo) o bien puede efectuar alguna otra Actualización.

Page 58: Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados