Story Transcript
TEMA 9: DIAGRAMA DE OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
Diagramas en UML El bloque de construcción básico de UML es un “Diagrama”
Introducción a UML
2
1
Diagrama de Objetos en UML
Se utilizan para visualizar, especificar, construir y documentar la existencia de ciertas instancias de elementos contenidos en los diagramas de clases. En general los diagramas de objetos se utilizan para modelar estructuras de objetos, lo que implica tomar una instantánea de los objetos de un sistema en un cierto momento. Los diagramas de objetos se emplean para modelar la vista de diseño estática o la vista de procesos estática de un sistema al igual que se hace con los diagramas de clases, pero desde la perspectiva de instancias reales o prototípicas. En un diseño podemos encontrar varios diagramas de objetos, cada uno de ellos representando diferentes estados del sistema.
Introducción a UML
3
Diagrama de Objetos: Sistema de Alquiler de Vehículos Vehiculo motor : String = 1239M marca : String = HYUNDAI modelo : String = CMD precio : Double = 3500
Empleado nombre_emp : String = Luis López edad : Integer = 33 direccion : String = León telefono : String = 2315-6789 num_cedula : String = 281-1404877-0009U
IngresarDatos()
RegistrarEmpleado() 1..*
1..*
Registra
Tiene
1..1 Reserva fecha_inicio : Date = 18/10/2010 fecha_fin : Date = 25/10/2010 ciudad_devolucion : String = León ciudad_entrega : String = Granada 1..1 Cli : Cliente Veh : Vehiculo RegistrarReserva()
Cliente (from Use Case View)
Realiza 1..*
nombre : String = Luis Rojas edad : Integer = 25 direccion : String = Banpro Subtiava 1..* num_cedula : String = 281-160283-0009D
Efectua 1..1
1..1 Contrato id_contrato : String = C001 tipo_contrato : String = Definitivo Em : Empleado Clie : Cliente RegistrarContrato() BuscarReserva()
IngresarCliente()
0..*
1..1
Puede Tener
Introducción a UML
4
2
Diagrama de Secuencia en UML
Muestra los objetos que se encuentran en el escenario y la secuencia de mensajes (es decir la forma en que se invocan) intercambiados entre los objetos para llevar a cabo la funcionalidad descrita por el escenario. El diagrama de secuencia describe la dinámica del sistema. A menos que se modele un sistema muy pequeño, resulta difícil representar toda la dinámica de un sistema en un único diagrama. Por tanto, la dinámica completa se representará mediante un conjunto de diagramas de secuencia, cada uno de ellos vinculado generalmente a una subfunción del sistema. Los diagramas de secuencia ponen especial énfasis en el orden y el momento en que se envían los mensajes a los objetos. El diagrama de secuencia forma parte del modelado dinámico del sistema. Se modelan las llamadas entre clases desde un punto concreto del sistema. Es útil para observar la vida de los objetos en sistema, identificar llamadas a realizar o posibles errores del modelado estático, que imposibiliten el flujo de información o de llamadas entre los componentes del sistema. Introducción a UML
5
Diagrama de Secuencia en UML
En el diagrama de secuencia se muestra el orden de las llamadas en el sistema. Se utiliza un diagrama para cada llamada a representar. Es imposible representar en un solo diagrama de secuencia todas las secuencias posibles del sistema, por ello se escoge un punto de partida. En los diagramas de secuencia, los objetos están representados por líneas intermitentes verticales, con el nombre del objeto en la parte superior. El eje de tiempo también es vertical, incrementándose hacia abajo, de forma que los mensajes son enviados de un objeto a otro en forma de flechas con los nombres de la operación y los parámetros. Los diagramas de secuencia, formalmente diagramas de traza de eventos o de interacción de objetos, se utilizan con frecuencia para validar los casos de uso; es decir, documentan el diseño desde el punto de vista de los casos de uso. Observando qué mensajes se envían a los objetos, componentes o casos de uso y viendo a grosso modo cuanto tiempo consume el método invocado, los diagramas de secuencia nos ayudan a comprender los cuellos de botella potenciales, para así poder eliminarlos. Introducción a UML
6
3
Diagrama de Secuencia en UML
Los conceptos más importantes relacionados con los diagramas de secuencia son: Línea de vida de un objeto (lifeline): Representa la vida del objeto durante la interacción. En un diagrama de secuencia un objeto se representa como una línea vertical punteada con un rectángulo de encabezado y con rectángulos a través de la línea principal que denotan la ejecución de métodos (activación). El rectángulo de encabezado contiene el nombre del objeto y el de su clase, en un formato nombreObjeto : nombreClase). Activación: Muestra el período de tiempo en el cual el objeto se encuentra desarrollando alguna operación, bien sea por sí mismo o por medio de delegación a alguno de sus atributos. Se denota como un rectángulo delgado sobre la línea de vida del objeto. Caminos alternativos de ejecución y concurrencia: En algunos casos sencillos los caminos alternativos pueden expresarse en un diagrama de secuencias alternativas de ejecución. Estas alternativas pueden representar condiciones en la ejecución o diferentes hilos de ejecución (threads). Destrucción de un objeto Se representa como una X al final de la línea de ejecución del objeto. Métodos recursivos: Es un rectángulo adyacente a la activación principal y con líneas de llamada de mensajes, que indican la entrada y salida de la recursión. Introducción a UML
7
Diagrama de Secuencia en UML
Mensaje: El envío de mensajes entre objetos se denota mediante una línea sólida dirigida, desde el objeto que emite el mensaje hacia el objeto que lo ejecuta. Existen diferentes tipos de envíos de mensajes. El mensaje sincrónico es el utilizado con mayor frecuencia. Su uso significa que el expedidor del mensaje espera que la activación del método mencionado por el destinatario finalice antes de continuar su actividad. En los mensajes asincrónicos, el expedidor no espera el término de la activación invocada por el destinatario. Esto se produce al modelar sistemas en los que los objetos pueden funcionar en paralelo (es el caso de los sistemas multi-thread, donde los tratamientos se efectúan en paralelo).
Introducción a UML
8
4
Ejemplo: Diagrama de Secuencia: Realizar Registro
Introducción a UML
9
Ejemplo: Diagrama de Secuencia: Realizar Reserva
Introducción a UML
10
5
Diagrama de Despliegue en UML
Un diagrama de despliegue es un diagrama que muestra la configuración de los nodos que participan en la ejecución y de los componentes que residen en ellos. Los diagramas de despliegue se utilizan para modelar la vista de despliegue estática de un sistema. Esto implica modelar la topología del hardware sobre el que se ejecuta el sistema. Un diagrama de despliegue muestra las relaciones físicas entre los componentes hardware y software en el sistema final, es decir, la configuración de los elementos de procesamiento en tiempo de ejecución y los componentes software (procesos y objetos que se ejecutan en ellos). Estarán formados por instancias de los componentes software que representan manifestaciones del código en tiempo de ejecución (los componentes que sólo sean utilizados en tiempo de compilación deben mostrarse en el diagrama de componentes). Un diagrama de despliegue es un grafo de nodos unidos por conexiones de comunicación. Un nodo puede contener instancias de componentes software, objetos, procesos (caso particular de un objeto). Introducción a UML
11
Diagrama de Despliegue en UML
Algunos de los usos que se les da a los diagramas de despliegue son para modelar: Sistemas empotrados: Un sistema empotrado es una colección de hardware con una gran cantidad de software que interactúa con el mundo físico. Sistemas cliente-servidor: Los sistemas cliente-servidor son un extremo del espectro de los sistemas distribuidos y requieren tomar decisiones sobre la conectividad de red de los clientes a los servidores y sobre la distribución física de los componentes software del sistema a través de nodos. Sistemas completamente distribuidos: En el otro extremo encontramos aquellos sistemas que son ampliamente o totalmente distribuidos y que normalmente incluyen varios niveles de servidores. Tales sistemas contienen a menudo varias versiones de componentes software, alguno de los cuales pueden incluso migrar de un nodo a otro. El diseño de tales sistemas requiere tomar decisiones que permitan un cambio continuo de la topología del sistema.
Introducción a UML
12
6
Ejemplo: Diagrama de Despliegue del Sistema de Alquiler de Vehículos
Introducción a UML
13
7