Diagrama de Clases, Objetos, Secuencia Colaboracion Transicion de Estados
-
Upload
zamudio-julio -
Category
Documents
-
view
340 -
download
0
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.