You are on page 1of 15

Ediciones ENI

Iniciacin, ejemplos y ejercicios corregidos [2 edicin]


Coleccin Recursos Informticos

UML 2

Extracto del Libro

Modelado de la dinmica

A. Introduccin
El objetivo del presente captulo es explicar de qu manera UML representa las interacciones entre objetos. En el captulo 3, vimos que los objetos de un sistema poseen su propio comportamiento e interactan entre s para dotar al sistema de una dinmica global. En el captulo 4, estudiamos la forma en que los casos de uso representan las acciones y reacciones entre un actor externo y el sistema. Desde el punto de vista del modelado, esos dos tipos de interacciones se distinguen por la diferencia interna/externa, pero no por su naturaleza. Para responder a la necesidad de representacin de las interacciones entre objetos, UML propone dos tipos de diagramas:

- El diagrama de secuencia se centra en aspectos temporales. - El diagrama de comunicacin se centra en la representacin espacial.
En el presente captulo estudiaremos ambos tipos de diagramas. Ms tarde examinaremos cmo descubrir progresivamente los objetos que componen un sistema. Dicho descubrimiento se basar en las interacciones entre objetos que intervienen en los casos de uso del sistema. Para representar las interacciones nos decantaremos por el diagrama de secuencia, ya que suele ser la opcin preferida por las personas que se encargan de modelar los proyectos. El diagrama de comunicacin se conoce con ese nombre desde UML 2. En UML 1 se denominaba diagrama de colaboracin.

Editions ENI - All rights reserved

B. Diagrama de secuencia
1. Definicin
El diagrama de secuencia describe la dinmica del sistema. A modele un sistema muy pequeo, resulta difcil representar toda la sistema en un nico diagrama. Por tanto, la dinmica completa mediante un conjunto de diagramas de secuencia, cada uno de generalmente a una subfuncin del sistema. menos que se dinmica de un se representar ellos vinculado

Iniciacin, ejemplos y ejercicios corregidos

59

Captulo 5
El diagrama de secuencia describe las interacciones entre un grupo de objetos mostrando de forma secuencial los envos de mensajes entre objetos. El diagrama puede asimismo mostrar los flujos de datos intercambiados durante el envo de mensajes. Para interactuar entre s, los objetos se envan mensajes. Durante la recepcin de un mensaje, los objetos se vuelven activos y ejecutan el mtodo del mismo nombre. Un envo de mensaje es, por tanto, una llamada a un mtodo.

2. Lnea de vida de un objeto


Dado que representa la dinmica del sistema, el diagrama de secuencia hace entrar en accin las instancias de clases que intervienen en la realizacin de la subfuncin a la que est vinculado. A cada instancia se asocia una lnea de vida que muestra las acciones y reacciones de la misma, as como los periodos durante los cuales sta est activa, es decir, durante los que ejecuta uno de sus mtodos. La representacin grfica de la lnea de vida se ilustra en la figura 5.1.

Figura 5.1 - Lneas de vida

60

UML 2

Modelado de la dinmica
La notacin "funcion: Clase" representa la funcin de una instancia seguida del nombre de su clase. Para simplificar, en esta obra consideraremos que la funcin de la instancia corresponde a su nombre, al igual que ocurra en UML 1. Si slo una instancia de la clase participa en el diagrama de secuencia, la funcin de la instancia es opcional. El nombre de la clase puede tambin omitirse en las etapas preliminares del modelado, pero debe especificarse lo antes posible. Los diagramas de secuencia contienen varias lneas de vida, ya que tratan de las interacciones entre varios objetos.

3. Envo de mensajes
Los envos de mensajes se representan mediante flechas horizontales que unen la lnea de vida del objeto emisor con la lnea de vida del objeto destinatario (ver figura 5.2).

Figura 5.2 - Envo de un mensaje


Editions ENI - All rights reserved

En la figura 5.2, el objeto de la izquierda enva un mensaje al objeto de la derecha. El mensaje da lugar a la ejecucin del mtodo mensaje del objeto de la derecha, lo que provoca su activacin. Los mensajes se numeran secuencialmente a partir de uno. Si un mensaje se enva antes de que concluya el tratamiento del precedente, es posible utilizar una numeracin compuesta (ver figura 5.3) en la que el envo del mensaje 2 se produzca durante la ejecucin del mensaje 1.

Iniciacin, ejemplos y ejercicios corregidos

61

Captulo 5

Figura 5.3 - Numeracin de los mensajes La numeracin de los mensajes no es obligatoria. No obstante, resulta prctica para mostrar las activaciones anidadas. Tambin es posible transmitir informacin; sta se representa mediante parmetros transmitidos con el mensaje (ver figura 5.4).

Figura 5.4 - Transmisin de datos durante el envo de un mensaje

62

UML 2

Modelado de la dinmica
Existen diferentes tipos de envos de mensajes. En la figura 5.5 ofrecemos una explicacin grfica.

Figura 5.5 Diferentes tipos de mensajes El mensaje sincrnico es el utilizado con mayor frecuencia. Su uso significa que el expedidor del mensaje espera que la activacin del mtodo mencionado por el destinatario finalice antes de continuar su actividad. En los mensajes asincrnicos, el expedidor no espera el trmino de la activacin 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 efectan en paralelo). Ejemplo Un jinete da una orden a su caballo, luego le da una segunda orden sin esperar a que concluya la ejecucin de la primera. La primera orden constituye un ejemplo de envo de mensaje asincrnico. En UML 1 la representacin de un mensaje asincrnico se realizaba con media flecha superior. En UML 2 se emplea una flecha completa. El mensaje de retorno a la llamada a un mtodo no es sistemtico, ya que no todos los mtodos devuelven un resultado.

Editions ENI - All rights reserved

Iniciacin, ejemplos y ejercicios corregidos

63

Captulo 5
Los objetos pueden enviarse mensajes a s mismos. La representacin de tales mensajes se ilustra en la figura 5.6.

Figura 5.6 - Envo de un mensaje a uno mismo

4. Creacin y destruccin de objetos


El diagrama de secuencia describe la dinmica de un sistema. sta a menudo contiene creaciones y destrucciones de objetos. La creacin de objetos se representa mediante un mensaje especfico que da lugar al principio de la lnea de vida del nuevo objeto. La destruccin de objetos es un mensaje enviado a un objeto existente y que da lugar a la finalizacin de su lnea de vida. Se representa mediante una cruz.

64

UML 2

Ediciones ENI

Practique la modelizacin

UML 2
Coleccin Prcticas Tcnicas

Extracto del Libro

La composicin de objetos y patrones


ENUNCIADOS DEL CAPTULO 4

29

Captulo 4: La composicin de objetos y patrones


X Duracin: 2 horas 20 X Palabras clave: X Objetivo:
En este captulo, usted aprender a: : dominar la composicin avanzada de objetos, en particular para representar en algunos casos la especializacin; : poner en marcha el diagrama de estructura composite, en particular en el caso de la colaboracin relativa a los patrones de diseo; : realizar una composicin de patrones; : utilizar los parmetros de template. diagrama de estructura composite, colaboracin, aplicacin de colaboracin, patrones de diseo, parmetro de template, clave.

Requisitos previos
Para comprobar los requisitos previos necesarios antes de empezar con la prctica, conteste las preguntas siguientes: 1. Qu es la clave de una clase? a. Una referencia de las instancias de esta clase hacia las instancias de otra clase. b. Uno o varios atributos cuyo valor o valores son nicos para cada instancia de la clase. c. Un identificador nico de la clase. 2. Qu se puede describir en un diagrama de estructura composite? a. Las actividades de las partes de un objeto. b. Las colaboraciones relacionadas a un patrn de diseo. c. Las partes de un objeto y sus conectores. d. Las partes de un caso de utilizacin. 3. Cul es el principal inters de un diagrama de estructura composite con respeto a un diagrama de clases? 4. Qu significa la cardinalidad de una parte? 5. Qu es un papel asociado a una parte?

Editions ENI - Reproduccin prohibida

30

UML 2 - Practique la modelizacin


PRCTICAS TCNICAS

6. Cul es la diferencia entre un conector y una asociacin? a. No hay ninguna diferencia. b. Un conector es el extremo de una asociacin. c. Un conector relaciona dos partes mientras una asociacin relaciona dos clases. 7. Qu es una colaboracin en un diagrama de estructura composite? 8. Describe una aplicacin de una colaboracin la utilizacin de un patrn en un caso preciso al especificar el papel de cada clase que interviene en el patrn? a. S. b. No. 9. Qu es un parmetro de template de una clase? 10. Qu significa restringir un parmetro de template? a. Indica que una clase concreta debe sustituir al parmetro. b. Indica que el parmetro se debe sustituir con una clase especificada en la exigencia o una de sus sobreclases. c. Indica que el parmetro debe ser sustituido por una clase especificada en la restriccin o una de sus subclases. Respuestas pg. 139

Enunciado 4.1: Medida


Duracin aproximada: 30 minutos
En fsica, una medida se expresa con la ayuda de un valor numrico, de un delta (ms o menos) alrededor de este valor y de una unidad. Por ejemplo, la medida de una longitud vale 10,3 m 0,1. Existen medidas basadas en una unidad simple, tales como el metro del ejemplo anterior. Tambin existen medidas cuya unidad est compuesta por varias unidades simples, como la medida de la velocidad (por ejemplo, en metro por segundo: m/s o m.s-1) o la medida de la energa elctrica facturada (en kilovatio hora: kWh). Una potencia relacionada a cada unidad simple aparece tambin en la composicin (-1 para los segundos, en el caso de la velocidad expresada en m.s-1; 2 para las superficies expresadas en m2). El objetivo consiste en describir una medida fsica por un diagrama de clases al utilizar la composicin. El valor de la medida y su delta se describen dentro de una misma clase como componente de la clase que representa la medida.
Editions ENI - Reproduccin prohibida

La composicin de objetos y patrones


ENUNCIADOS DEL CAPTULO 4

31

Se representa cada unidad bsica (metro, kilogramo, hora, etc.) por una instancia nica de la clase de las unidades. 1. Trace este diagrama de las clases sin representar en l una nocin de orden en las unidades de la medida, es decir, por ejemplo, sin introducir en l distincin entre m.s-1 y s-1.m. En cuanto a las potencias asociadas a las unidades, nos limitaremos a la utilizacin directa de la unidad (o potencia uno) y al inverso (potencia -1). Utilice dos asociaciones de agregacin hacia los objetos que representan las unidades. 2. Suprima la limitacin sobre las potencias al utilizar una clase-asociacin. 3. Trace este diagrama de clases introduciendo en l una nocin de orden en las unidades de la medida, es decir, por ejemplo, al distinguir la representacin de m.s-1 y s-1.m. Respuestas pg. 140

Enunciado 4.2: rbol B


Duracin aproximada: 20 minutos
Un rbol B sirve para indexar un conjunto de objetos de datos y para poder encontrar rpidamente cada objeto de datos con la ayuda de una clave asociada de manera nica a este objeto. Existe una relacin de orden entre las claves: cuando se conoce dos claves es posible determinar la ms pequea de los dos. Un rbol B es una extensin de un rbol binario del cual cada nodo contiene claves e hijos. Un rbol B posee un orden. El nmero mximo de claves y por lo tanto de objetos de datos referenciados por un nodo es igual a 2*n, siendo n el orden del rbol B. Un nodo es una hoja, o sea que no posee ningn hijo o posee un hijo para cada clave, as como un hijo adicional. Un hijo que corresponde a una clave C posee claves superiores a la clave anterior a la clave C (si existe) e inferiores a la clave C. El hijo adicional contiene claves superiores a la clave ms grande del nodo. Por lo tanto, el nmero mximo de hijos es 2*n+1. La figura siguiente ilustra un ejemplo de rbol B de orden 2.

Editions ENI - Reproduccin prohibida

32

UML 2 - Practique la modelizacin


PRCTICAS TCNICAS

La raz posee dos claves y tres hijos. Las hojas poseen tres o cuatro claves. Los objetos de datos asociados a las claves no estn representados. Trace el diagrama de las clases que describe un rbol B.

Pistas para el enunciado 4.2


Lo ms sencillo consiste en asociar cada hijo (menos el hijo adicional) a cada clave. No es necesario describir las exigencias de cardinalidad sobre el nmero de claves y de hijos de un nodo. No se olvide que las claves estn ordenadas dentro de cada nodo. Respuestas pg. 142

Enunciado 4.3: Mesa


Duracin aproximada: 10 minutos
Se trata de describir una mesa compuesta de un tablero, de cuatro patas y dos cajones. No se puede asociar los pies y el tablero a diferencia de los cajones. 1. Describa la tabla con la ayuda de un diagrama de clases. 2. Transforme el diagrama anterior en un diagrama de estructura composite. Respuestas pg. 143

Enunciado 4.4: Dictfono


Duracin aproximada: 15 minutos
Un dictfono de casetes est compuesto de dos cabezales (una de lectura y otra de grabacin), de tres teclas (lectura, grabacin y parada). Se puede entregar con un casco. 1. Describa el dictfono con la ayuda de un diagrama de estructura composite sin distinguir los diferentes tipos de cabezales y teclas. Trace los conectores al especificar las cardinalidades en las extremidades. 2. Ahora queremos diferenciar entre los diferentes tipos de teclas y cabezales. Adapte el diagrama debidamente para asignar las funciones a las partes. Respuestas pg. 144

Editions ENI - Reproduccin prohibida

La composicin de objetos y patrones


ENUNCIADOS DEL CAPTULO 4

33

Enunciado 4.5: Documento XML


Duracin aproximada: 15 minutos
Se introduce el patrn Composite en el captulo relativo a los patrones de diseo. Retomamos el ejercicio del documento XML. Se describe el patrn Composite con la ayuda de un diagrama de estructura composite con colaboracin de la manera siguiente:

Trace la aplicacin de esta colaboracin para un documento XML. Respuestas pg. 145

Enunciado 4.6: Estatus de una persona


Duracin aproximada: 20 minutos
Nos interesamos en personas que tienen el estatus de estudiante, empleado, parado o jubilado. Estas personas cambian de estatus a lo largo de su vida. Para describir estos diferentes estatus, el uso de la especializacin de una clase Persona, tal como lo ilustra la figura siguiente, parece la solucin ms adecuada. Se introduce la clase Persona como clase abstracta que describe los aspectos comunes de la persona sea cual sea su estatus. Las cuatro subclases introducen los atributos especficos a cada estatus.

Editions ENI - Reproduccin prohibida

34

UML 2 - Practique la modelizacin


PRCTICAS TCNICAS

Tal diagrama es sencillo: describe completamente los diferentes posibles estatus de una persona. Sin embargo, no es necesariamente sencillo de poner en marcha: - En primer lugar, introduce una jerarqua sobre las personas en relacin con su estatus, pero pueden existir otros criterios de jerarqua sobre las personas (por ejemplo, con respeto a su estatus matrimonial, sus competencias profesionales o tambin una clasificacin hombre, mujer, chico, chica, etc.). El hecho de multiplicar las jerarquas de especializacin de un objeto puede convertir el diagrama de las clases en algo muy complejo. - En segundo lugar, supone una implementacin que incluye un mecanismo de cambio de clase de una instancia: una persona en paro que encuentra un empleo debe convertirse en una instancia de clase Empleado cuando antes era una instancia de clase Parado. Tales mecanismos no son frecuentes. Existe otra solucin que consiste en pasar de la especializacin a la composicin: el estatus de una persona no est ya relacionado con su clase, sino que se convierte en un vnculo de composicin hacia una instancia de la clase que describe el estatus actual de la persona. Como se ha visto anteriormente, se introduce una clase especfica para cada estatus. Ilustre esta solucin basada en la composicin con la ayuda de un diagrama de clases. Respuestas pg. 146

Editions ENI - Reproduccin prohibida

La composicin de objetos y patrones


ENUNCIADOS DEL CAPTULO 4

35

Enunciado 4.7: Patrn Strategy con configuracin


Duracin aproximada: 30 minutos
El patrn Strategy tiene como objetivo adaptar el comportamiento de un objeto segn una necesidad sin cambiar las interacciones con los clientes de este objeto. Se encapsula esta adaptacin del comportamiento. Se introdujo el patrn Strategy en el captulo sobre los patrones de diseo. Retomamos el ejercicio que utilizamos para aprender a personalizar la visualizacin de un sitio web segn el pas y a continuacin lo haremos segn el idioma: espaol, francs e ingls. Ahora queremos mejorar la utilizacin de la clase Visualizacin (la que visualiza el contenido del sitio web) de tal manera que est configurada por una de las subclases de la clase EstrategiaVisualizacin. Esta configuracin permite designar directamente el idioma elegido, durante la creacin de una instancia de la clase Visualizacin. Entonces esta eleccin es definitiva para esta instancia. Adems queremos que slo exista como mximo una nica instancia de cada subclase EstrategiaVisualizacin. 1. Cul es el patrn ms adecuado para asegurar que slo existe como mximo una nica instancia de cada subclase EstrategiaVisualizacin? 2. Trace la parte del diagrama de las clases correspondientes a la clase EstrategiaVisualizacin y a sus subclases dotadas de la capacidad de tener una sola instancia como mximo. 3. Aada al diagrama de clases la clase Visualizacin configurada con una subclase de EstrategiaVisualizacin. A continuacin, aada la clase VisualizacinEs, subclase de la clase Visualizacin, que se muestra en espaol. 4. Aada la declaracin del atributo estrategiaVisualizacin en la clase Visualizacin con su tipo. Este atributo describe la asociacin que sirve para asociar una instancia de la clase Visualizacin a una instancia de una subclase de EstrategiaVisualizacin. 5. Aada el constructor de la clase Visualizacin al describir su cdigo. Respuestas pg. 147

Editions ENI - Reproduccin prohibida

You might also like