escasa capacidad para resolver un problema En una aplicacin real los objetos colaboran e intercambian informacin, existiendo distintos tipos de relaciones entre ellos A nivel de diseo, podemos distinguir entre 5 tipos de relaciones bsicas entre clases de objetos: 1 Relaciones entre objetos Asociacin Agregacin Composicin Dependencia Herencia 2 Asociacin La asociacin es la relacin ms importante y comn. Refleja una relacin entre dos clases independientes que se mantiene durante la vida de los objetos de dichas clases o al menos durante un tiempo prolongado En UML suele indicarse: Nombre de la relacin Sentido de dicha relacin Multiplicidad (cardinalidad) en los dos extremos
3 Ejemplo de Asociacin 4 5 Ejemplo del proyecto Controlador Cuentas titulares Implementacin de una relacin de asociacin Una asociacin se implementa en Java introduciendo referencias a objetos de una clase como atributos en la otra Entonces, se agrega el atributo titular en la clase Cuenta, que contendr el nombre del propietario de la cuenta. Sin embargo, el titular es una persona, con sus propios atributos (nombre, nmero de dui, direccin, telfono y fecha de nacimiento) Por lo tanto, el titular de la cuenta debera ser una clase, con el nombre Cliente ya que as se conocen los titulares de las cuentas en la institucin financiera 6 Implementacin de una relacin de asociacin Si la relacin tiene una multiplicidad superior a uno entonces ser necesario utilizar un array de referencias.
Tambin es posible utilizar una estructura de datos dinmica del paquete java.util como Vector o LinkedList para almacenar las referencias.
Normalmente la conexin entre los objetos se realiza recibiendo la referencia de uno de ellos en el constructor o una operacin ordinaria del otro 7 Atributo de Referencia: titular 8 Nombres de Asociaciones Clase-FraseVerbal-Clase Persona-Trabaja-para-Compaa Tienda-Almacena-Articulo Venta-Pagada-mediante-Pago
9 Multiplicidad (Cardinalidad) 10 Define cuantas instancias de la clase B pueden asociarse con una instancia de la clase A Multiplicidad depende del contexto Multiplicidad depende del contexto 0..1, si el artculo se vende o desecha y no se almacenara ms en la Tienda 1, para asegurar que una instancia de Articulo siempre se relacionar con una instancia concreta de Tienda, de lo contrario se indica error o corrupcin en datos Sentido de la Relacin Por defecto leer (sin usar flecha de direccin): De izquierda a derecha, y De arriba hacia abajo
De lo contrario colocar flecha de direccin 13 Direccin de Lectura de la Asociacin Mltiples asociaciones entre dos clases Asociaciones posibles en un diagrama de clases Diagrama de clases con N clases, puede tener N (N-1) asociaciones posibles Provoca ruido visual, lo hace incomprensible Ejemplo: 3 clases 6 asociaciones (bidireccionales) Criterio para identificar asociaciones tiles (necesito-conocer) Relacin que es necesaria conservar durante algn tiempo (milisegundos o aos, dependiendo del contexto) Es decir, mantener en memoria una relacin entre objetos. Ejemplo: Tipos de asociaciones a incluir en el Modelo del Dominio 1. Asociaciones tiles ( necesito-conocer) Ejemplo de asociacin til y no til 2. Asociaciones derivadas de la lista de asociaciones comunes Lista de Asociaciones Comunes Categora 1. A es una parte fsica de B
2. A es una parte lgica de B 3. A est contenido fsicamente en B
4. A est contenido lgicamente en B Ejemplo 1. Cajon-Registro (o ms concretamente, Caja de Venta), Ala-Avion 2. LineaDeVenta-Venta, EtapaVuelo-RutaVuelo
3. Registro-Tienda, Articulo-Estantera, Pasajero-Avion 4. DescripcionDelArticulo -Catalago, Vuelo- PlanificacionVuelo Lista de Asociaciones Comunes Categora 5. A es una descripcin de B
6. A es una lnea de una transaccin o informe de B
7. A se conoce/registra/ recoge/informa /captura en B 8. A es miembro de B Ejemplo 5. DescripcionDelArticulo -Articulo, DescripcionDelVuelo- Vuelo 6. LineaDeVenta-Venta, TrabajoMantenimiento - RegistroDeMantenimie nto 7. Venta-Registro, Reserva-ListaPasajeros
8. Cajero-Tienda, Piloto- CompaiaAerea Lista de Asociaciones Comunes Categora 9. A es una sub-unidad organizativa de B
10. A utiliza o gestiona B
11. A se comunica con B
12. A est relacionado con una transaccin B Ejemplo 9. Departamento-Tienda, Mantenimiento- CompaaAerea 10. Cajero-Registro, Piloto- Avion 11. Cliente-Cajero, AgenteDeReservas- Pasajero
12. Cliente-Pago, Pasajero-Billete Lista de Asociaciones Comunes Categora 13. A es una transaccin relacionada con otra transaccin B 14. A est al lado de B
15. A es propiedad de B
16. A es un evento relacionado con B Ejemplo 13. Pago-Venta, Reserva- Cancelacion