Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados

Post on 03-Jul-2015

340 views 0 download

Transcript of 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.

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)

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.

Ejemplo:

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.

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

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.

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

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.

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

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”

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

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

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”

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”

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

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

Diagrama de Secuencia

Diagrama de Interacción Diagrama de

colaboración

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.

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

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

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

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.

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

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.

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.

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

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

• 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.

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.

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

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

1:getOrderNbr():int

2:return 12345

• 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.

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

• 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”.

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

• 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

• 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)

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

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.

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.

DIAGRAMA DE COLABORACIÓN

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.

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 .

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

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

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.

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.

Secuenciación

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

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

DIAGRAMA DE TRANSICIÓN 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.

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

Ejemplo:

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

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

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.