Unidad 2-Terminologia Basica Parte 3

26
1 Unidad II Terminología Básica (Parte 3) -Asociaciones -Agregación -Composición

description

UML

Transcript of Unidad 2-Terminologia Basica Parte 3

Page 1: Unidad 2-Terminologia Basica Parte 3

1

Unidad IITerminología Básica

(Parte 3)-Asociaciones-Agregación

-Composición

Page 2: Unidad 2-Terminologia Basica Parte 3

2

Terminología Básica

Contenido:• Asociaciones (continuación)– Asociaciones Reflexivas– Clase de Asociación

• Agregación• Composición

Page 3: Unidad 2-Terminologia Basica Parte 3

3

Terminología Básica: Asociaciones ReflexivasAsociaciones reflexivas:• A veces, una clase tiene una asociación consigo misma.• En este caso la asociación se denomina asociación reflexiva.• Esta situación se puede presentar cuando una clase tiene objetos

de la misma clase pero que juegan diferentes roles.• Por ejemplo, un ocupante de un avión de pasajeros puede ser: un

pasajero, un miembro de la tripulación o un piloto.

• Este tipo de asociación se representa gráficamente dibujando la línea de asociación con origen y final en la propia clase y con la indicación de los roles y multiplicidades correspondientes.

Page 4: Unidad 2-Terminologia Basica Parte 3

4

Terminología Básica: Asociaciones ReflexivasEjercicios: Cree los diagramas de clases de los siguientes enunciados.

1.Los doctores que laboran en un hospital, pueden dar consulta a pacientes y/o a otros doctores del mismo hospital.

2.Un país está formado por al menos dos ciudades y; además, los países están limitados en su frontera por varios países o ninguno.

3.Un libro tiene un nombre, un número identificador (ISBN) y uno o varios autores. Un autor tiene nombre, número de pasaporte, y correo electrónico. Además, un libro puede tener como fuente bibliográfica otros libros o ninguno.

Page 5: Unidad 2-Terminologia Basica Parte 3

5

Terminología Básica: Asociaciones

•Los nombres de las asociaciones deben ser una frase verbal.

•Clase-FraseVerbal-ClasePersona-Trabaja-para-CompañíaTienda-Almacena-ArticuloVenta-Pagada-mediante-Pago

•Formatos:Pagada-mediantePagada_mediantePagadaMediante

Page 6: Unidad 2-Terminologia Basica Parte 3

6

Terminología Básica: Asociaciones

•El sentido de la asociación depende de la dirección de la flecha.

•Por defecto leer (sin usar flecha de dirección):De izquierda a derecha, yDe arriba hacia abajo

•De lo contrario colocar flecha de dirección

•Ejercicio: Leer los siguientes diagramas de clases

Page 7: Unidad 2-Terminologia Basica Parte 3

7

Terminología Básica: Asociaciones

Page 8: Unidad 2-Terminologia Basica Parte 3

8

Terminología Básica: Asociaciones

•La multiplicidad depende del contexto.

Page 9: Unidad 2-Terminologia Basica Parte 3

9

Terminología Básica: Clases de Asociación

Clases de asociación:•Una clase conectada a una asociación se denomina clase asociación.•Una asociación puede tener atributos y operaciones tal como una clase, éste es el caso de la clase asociación.•Ejemplo:

Page 10: Unidad 2-Terminologia Basica Parte 3

10

Terminología Básica: Clases de Asociación

Page 11: Unidad 2-Terminologia Basica Parte 3

11

Terminología Básica: Clases de Asociación

Criterios de Diseño:• Cuando se traducen a código las relaciones con clases asociación

se obtienen, normalmente, tres clases: una por cada extremo de la asociación y una por la propia clase asociación.

• Ejercicios: Diseñar el diagrama de clases de los siguientes enunciados.

1. Los pacientes de una clínica hacen citas para consultar a los médicos. De la cita se registra la fecha, la hora y el número de clínica en que se realizara.

2. Los vendedores de un negocio venden uno o más productos en cada venta que realizan. De la venta se registra el nombre del cliente, su teléfono y su dirección; además, la fecha de la venta, el total y el número de factura.

Page 12: Unidad 2-Terminologia Basica Parte 3

12

Terminología Básica: Clases de Asociación

• Ejercicio 3: Diseñar el control de 5 ascensores (elevadores) de un edificio comercial que tenga presente las peticiones de viaje de los diferentes clientes, en función del orden y momento de llamada.

• Análisis: El control de ascensores tiene un enlace con cada uno de los 5 ascensores y otro enlace con el botón (pulsador) de llamada de “subir/bajar”.

• Para administrar el control de llamadas de modo que responda el ascensor, que cumpla con los requisitos estipulados (situado en el piso más cercano, parado, en movimiento, etc.), se requiere una clase Cola que almacene las peticiones tanto del ControlAscensor como del propio ascensor (los motores interiores del ascensor).

Page 13: Unidad 2-Terminologia Basica Parte 3

13

Terminología Básica: Clases de Asociación

• Cuando el control del ascensor elige un ascensor para realizar la petición de un pasajero externo al ascensor, un pasajero situado en un determinado piso o nivel, el control del ascensor lee la cola y elige el ascensor que está situado, disponible y más próximo en la Cola.

• Esta elección normalmente se realizará por algún algoritmo inteligente.

• Por lo tanto, se requieren cuatro clases: ControlAscensor, Ascensor (elevador), Botón (pulsador) y Cola.

• La clase Cola será una clase asociación ya que puede ser requerida tanto por el control de ascensores como por cualquier ascensor.

Page 14: Unidad 2-Terminologia Basica Parte 3

14

Terminología Básica: Clases de Asociación

• En una estructura de datos cola, cada elemento que se introduce en la cola es el primer elemento que sale de la cola (al igual que sucede con la cola para sacar una entrada de cine, comprar el pan o una cola de impresoras conectadas a una computadora central).

• En cada enlace entre los ascensores y el control de ascensores hay una cola (5 colas).

• Cada cola almacena las peticiones del control del ascensor y el propio ascensor (los botones internos del ascensor).

Page 15: Unidad 2-Terminologia Basica Parte 3

15

Terminología Básica: Clases de Asociación

•Existen 5 objetos de la clase Cola, uno por cada objeto Ascensor (5) asociado al objeto de ControladorAscensores.

Page 16: Unidad 2-Terminologia Basica Parte 3

16

Terminología Básica: Agregación

Agregación:•Una agregación es un tipo especial de asociación que expresa un acoplamiento más fuerte entre clases. •La agregación permite la representación de relaciones tales como “maestro y esclavo”, “todo y parte de” o “compuesto y componentes”.

•La agregación implica normalmente propiedad o pertenencia.

Page 17: Unidad 2-Terminologia Basica Parte 3

17

Terminología Básica: Agregación

• La agregación se lee normalmente como relación “… posee un …” o relación “todo-parte”, en la cual una clase (“El todo”) representa un gran elemento que consta de elementos más pequeños (“las partes”).

Page 18: Unidad 2-Terminologia Basica Parte 3

18

Terminología Básica: Agregación

• En la agregación, una clase realmente posee, pero puede compartir objetos de otra clase.

• Ejemplo 3: Agregación de un automóvil que consta de cuatro ruedas, un motor y una caja de cambios.

Page 19: Unidad 2-Terminologia Basica Parte 3

19

Terminología Básica: Agregación

• Ejemplo 4: Un árbol binario que consta de cero, uno o dos nuevos árboles.

• Una agregación se representa como una jerarquía con la clase “todo” (por ejemplo, un sistema de computadora) en la parte superior y sus componentes en las partes inferiores (por ejemplo CPU, discos, webcam, …).

Page 20: Unidad 2-Terminologia Basica Parte 3

20

Terminología Básica: Agregación

• Ejemplo 5: Una computadora es un conjunto de elementos que consta de una unidad central, monitor, unidad de CD-ROM, altavoces, escáner, etc.

Page 21: Unidad 2-Terminologia Basica Parte 3

21

Terminología Básica: Composición

Composición:• Una composición es un tipo especial de agregación que impone

algunas restricciones:– si el objeto completo se copia o se borra (elimina), sus partes si el objeto completo se copia o se borra (elimina), sus partes

también se copia o se suprimen con él.también se copia o se suprimen con él.• La composición es una relación fuerte entre clases y se utiliza para

representar una relación todo-parte.• Cada componente dentro de una composición puede pertenecer

tan sólo a un todo.• Ejemplo 1: Un tablero de ajedrez se compone de 64 casillas.

Page 22: Unidad 2-Terminologia Basica Parte 3

22

Terminología Básica: Composición

• Una relación de composición se lee normalmente como “… es parte de …”, que significa que se necesita leer la composición de la parte al todo.

• Ejemplo 2: si una ventana de una página web tiene una barra de títulos, se puede representar que la clase BarraTitulo es parte de una clase denominada Ventana. Pero, las barras horizontal y vertical podrían o no ser parte de la ventana.

Page 23: Unidad 2-Terminologia Basica Parte 3

23

Terminología Básica: Composición

• Ejemplo 3: Una mesa para jugar al póker es una composición que consta de una superficie de la mesa y cuatro o más patas.

Page 24: Unidad 2-Terminologia Basica Parte 3

24

Terminología Básica: Composición

• Ejemplo 4: Un auto tienen un chasis que no puede ser parte de otro auto. La eliminación completa del auto supone la eliminación de su chasis, no así de las partes que están asociadas por medio de la agregación.

Page 25: Unidad 2-Terminologia Basica Parte 3

25

Terminología Básica: Asociaciones, Agregación y Composición

•Ejercicios: Elabore los diagramas de clase de los siguientes enunciados. Identifique asociaciones, agregaciones y composiciones

1.El catálogo de productos está formado por las descripciones de los productos, la descripción de un producto puede aparecer en el catálogo o no. Cada producto es descrito por una descripción del producto.

2.Cada compra es surtida por un proveedor. El proveedor se elige del catálogo de proveedores. La compra se compone de al menos una línea de compra. En cada línea de compra se incluye la cantidad, la descripción del producto, el precio unitario y el subtotal de un mismo producto.

Page 26: Unidad 2-Terminologia Basica Parte 3

26

Terminología Básica: Asociaciones, Agregación y Composición

3. Una empresa con varios empleados, se dedica a realizar proyectos, estos proyectos están formados por una o más actividades y a su vez cada actividad tiene 1 ó más tareas específicas. Cada tarea es asignada a uno o dos empleados y los empleados pueden o no tener asignadas tareas.