1_9782746036017

Page 1


La composición de objetos y patrones ENUNCIADOS DEL CAPÍTULO 4

29

Capítulo 4: La composición de objetos y patrones X Duración: 2 horas 20 X Palabras clave:

diagrama de estructura composite, colaboración, aplicación de colaboración, patrones de diseño, parámetro de template, clave.

X Objetivo: En este capítulo, usted aprenderá a: : dominar la composición avanzada de objetos, en particular para representar en algunos casos la especialización; : poner en marcha el diagrama de estructura composite, en particular en el caso de la colaboración relativa a los patrones de diseño; : realizar una composición de patrones; : utilizar los parámetros de template.

A

Requisitos previos Para comprobar los requisitos previos necesarios antes de empezar con la práctica, 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 patrón de diseño. c. Las partes de un objeto y sus conectores. d. Las partes de un caso de utilización. 3. ¿Cuál es el principal interés 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 - Reproducción prohibida


30

UML 2 - Practique la modelización PRÁCTICAS TÉCNICAS

6. ¿Cuál es la diferencia entre un conector y una asociación? a. No hay ninguna diferencia. b. Un conector es el extremo de una asociación. c. Un conector relaciona dos partes mientras una asociación relaciona dos clases. 7. ¿Qué es una colaboración en un diagrama de estructura composite? 8. ¿Describe una aplicación de una colaboración la utilización de un patrón en un caso preciso al especificar el papel de cada clase que interviene en el patrón? a. Sí. b. No. 9. ¿Qué es un parámetro de template de una clase? 10. ¿Qué significa «restringir un parámetro de template»? a. Indica que una clase concreta debe sustituir al parámetro. b. Indica que el parámetro se debe sustituir con una clase especificada en la exigencia o una de sus sobreclases. c. Indica que el parámetro debe ser sustituido por una clase especificada en la restricción o una de sus subclases. Respuestas pág. 139

B

Enunciado 4.1: Medida Duración aproximada: 30 minutos En física, una medida se expresa con la ayuda de un valor numérico, de un delta (más 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. También 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 energía eléctrica facturada (en kilovatio hora: kWh). Una potencia relacionada a cada unidad simple aparece también en la composición (-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 física por un diagrama de clases al utilizar la composición. 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 - Reproducción prohibida


La composición de objetos y patrones ENUNCIADOS DEL CAPÍTULO 4

31

Se representa cada unidad básica (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 noción de orden en las unidades de la medida, es decir, por ejemplo, sin introducir en él distinción entre m.s-1 y s-1.m. En cuanto a las potencias asociadas a las unidades, nos limitaremos a la utilización directa de la unidad (o potencia uno) y al inverso (potencia -1). Utilice dos asociaciones de agregación hacia los objetos que representan las unidades. 2. Suprima la limitación sobre las potencias al utilizar una clase-asociación. 3. Trace este diagrama de clases introduciendo en él una noción de orden en las unidades de la medida, es decir, por ejemplo, al distinguir la representación de m.s-1 y s-1.m. Respuestas pág. 140

C

Enunciado 4.2: Árbol B Duración aproximada: 20 minutos Un árbol B sirve para indexar un conjunto de objetos de datos y para poder encontrar rápidamente cada objeto de datos con la ayuda de una clave asociada de manera única a este objeto. Existe una relación de orden entre las claves: cuando se conoce dos claves es posible determinar la más pequeña de los dos. Un árbol B es una extensión de un árbol binario del cual cada nodo contiene claves e hijos. Un árbol B posee un orden. El número máximo 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 ningún 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 más grande del nodo. Por lo tanto, el número máximo de hijos es 2*n+1. La figura siguiente ilustra un ejemplo de árbol B de orden 2.

© Editions ENI - Reproducción prohibida


32

UML 2 - Practique la modelización PRÁCTICAS TÉCNICAS

La raíz posee dos claves y tres hijos. Las hojas poseen tres o cuatro claves. Los objetos de datos asociados a las claves no están representados. Trace el diagrama de las clases que describe un árbol B.

Pistas para el enunciado 4.2 Lo más sencillo consiste en asociar cada hijo (menos el hijo adicional) a cada clave. No es necesario describir las exigencias de cardinalidad sobre el número de claves y de hijos de un nodo. No se olvide que las claves están ordenadas dentro de cada nodo. Respuestas pág. 142

D

Enunciado 4.3: Mesa Duración 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 pág. 143

E

Enunciado 4.4: Dictáfono Duración aproximada: 15 minutos Un dictáfono de casetes está compuesto de dos cabezales (una de lectura y otra de grabación), de tres teclas (lectura, grabación y parada). Se puede entregar con un casco. 1. Describa el dictáfono 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 pág. 144

© Editions ENI - Reproducción prohibida


La composición de objetos y patrones ENUNCIADOS DEL CAPÍTULO 4

F

33

Enunciado 4.5: Documento XML Duración aproximada: 15 minutos Se introduce el patrón Composite en el capítulo relativo a los patrones de diseño. Retomamos el ejercicio del documento XML. Se describe el patrón Composite con la ayuda de un diagrama de estructura composite con colaboración de la manera siguiente:

Trace la aplicación de esta colaboración para un documento XML. Respuestas pág. 145

G

Enunciado 4.6: Estatus de una persona Duración 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 especialización de una clase Persona, tal como lo ilustra la figura siguiente, parece la solución más 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 específicos a cada estatus.

© Editions ENI - Reproducción prohibida


34

UML 2 - Practique la modelización PRÁCTICAS TÉCNICAS

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 jerarquía sobre las personas en relación con su estatus, pero pueden existir otros criterios de jerarquía sobre las personas (por ejemplo, con respeto a su estatus matrimonial, sus competencias profesionales o también una clasificación hombre, mujer, chico, chica, etc.). El hecho de multiplicar las jerarquías de especialización de un objeto puede convertir el diagrama de las clases en algo muy complejo. - En segundo lugar, supone una implementación 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 solución que consiste en pasar de la especialización a la composición: el estatus de una persona no está ya relacionado con su clase, sino que se convierte en un vínculo de composición hacia una instancia de la clase que describe el estatus actual de la persona. Como se ha visto anteriormente, se introduce una clase específica para cada estatus. Ilustre esta solución basada en la composición con la ayuda de un diagrama de clases. Respuestas pág. 146

© Editions ENI - Reproducción prohibida


La composición de objetos y patrones ENUNCIADOS DEL CAPÍTULO 4

H

35

Enunciado 4.7: Patrón Strategy con configuración Duración aproximada: 30 minutos El patrón Strategy tiene como objetivo adaptar el comportamiento de un objeto según una necesidad sin cambiar las interacciones con los clientes de este objeto. Se encapsula esta adaptación del comportamiento. Se introdujo el patrón Strategy en el capítulo sobre los patrones de diseño. Retomamos el ejercicio que utilizamos para aprender a personalizar la visualización de un sitio web según el país y a continuación lo haremos según el idioma: español, francés e inglés. Ahora queremos mejorar la utilización de la clase Visualización (la que visualiza el contenido del sitio web) de tal manera que esté configurada por una de las subclases de la clase EstrategiaVisualización. Esta configuración permite designar directamente el idioma elegido, durante la creación de una instancia de la clase Visualización. Entonces esta elección es definitiva para esta instancia. Además queremos que sólo exista como máximo una única instancia de cada subclase EstrategiaVisualización. 1. ¿Cuál es el patrón más adecuado para asegurar que sólo existe como máximo una única instancia de cada subclase EstrategiaVisualización? 2. Trace la parte del diagrama de las clases correspondientes a la clase EstrategiaVisualización y a sus subclases dotadas de la capacidad de tener una sola instancia como máximo. 3. Añada al diagrama de clases la clase Visualización configurada con una subclase de EstrategiaVisualización. A continuación, añada la clase VisualizaciónEs, subclase de la clase Visualización, que se muestra en español. 4. Añada la declaración del atributo estrategiaVisualización en la clase Visualización con su tipo. Este atributo describe la asociación que sirve para asociar una instancia de la clase Visualización a una instancia de una subclase de EstrategiaVisualización. 5. Añada el constructor de la clase Visualización al describir su código. Respuestas pág. 147

© Editions ENI - Reproducción prohibida


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.