16/04/2009
MAESTRIA EN GESTION Y DESARROLLO DE PROYECTOS DE SOFTWARE ANALISIS Y DISEÑO ORIENTADO A OBJETOS
Relaciones entre Objetos
Actividades generales • • • • • • •
Un conjunto de objetos aislados tiene escasa capacidad para resolver un problema. En una aplicación útil, los objetos colaboran e intercambian información, mantienen distintos tipos de relaciones entre ellos
Identificación Objetos de Entidad Identificación Objetos frontera Identificación Objetos Control Modelado de iteraciones Identificación de las asociaciones Identificación Atributos Modelado de las relaciones de generalización
Relaciones • Todo sistema abarca muchas clases y objetos • Los objetos contribuyen comportamiento de un colaborando entre si
De los casos de uso hasta los objetos
en el sistema
– La colaboración se logra a través de las relaciones definidas entre las clases
Elementos de una Relación
• Nombre: Se utiliza para describir la relación. Para evitar ambigüedades, se puede indicar una dirección al nombre, es decir, la dirección en que se debe leer el nombre. Es Opcional
1
16/04/2009
Elementos de una Relación Rol: Un rol es la cara que la clase de un extremo de la asociación presenta a la clase del otro extremo. Es el rol que juega la clase en la asociación. Multiplicidad: Representa el número de objetos que pueden conectarse a través de una relación de asociación. Se puede indicar una multiplicidad de exactamente uno (1), cero o uno (0..1), muchos (0..*), o uno o más (1..*). También se puede indicar un valor exacto (por ejemplo, 3). • Navegabilidad Indica la visibilidad de la asociación, es decir que clase referencia a la otra.
Relaciones A nivel de diseño, podemos distinguir entre 3 tipos de relaciones básicas entre clases: ◦ Asociación Simple Agregación Composición ◦ Dependencia ◦ Generalización/Herencia
Asociación
Relaciones
Es la relación más importante y más común. Refleja una relación entre dos clases independientes que se mantiene durante la vida de los objetos de dichas clases o al menos durante un tiempo prolongado
• Asociación Cuenta
Cliente Titular
Persona
-dueño
Vehiculo
Agregación
Relaciones
*
• Asociación
1
es un tipo especial de asociación donde se añade el matiz semántico de que la clase de donde parte la relación representa el “todo” y las clases relacionadas “las partes”. Realmente la mayoría de lenguajes orientados a objetos no disponen de una implementación especial para este tipo de relaciones. Básicamente se tratan como las asociaciones ordinarias
2
16/04/2009
Composición
Relaciones • Agregación
Formada por Poligono
Segmento
Vehiculo
Puerta
• es un tipo de agregación que añade el matiz de que la clase “todo” controla la existencia de las clases “parte”. Es decir, normalmente la clase “todo” creará al principio las clases “parte” y al final se encargará de su destrucción.
-color +Mover()
Dependencia
Relaciones • Composición Cuenta
Movimiento 1
Registra
*
Relaciones
• Es la relación menos importante. Simplemente refleja que entre dos clases de objetos existe una posible colaboración temporal con algún propósito Una dependencia puede indicar la utilización de un objeto de una clase como argumento de una operación de otra o en su implementación
Relaciones
• Dependencia
• Dependencia
AppClase OutPutStream
3
16/04/2009
Caso de Estudio Aerolínea
Actividades generales
Practica: Relaciones Parqueadero
• • • • • • •
Identificación Objetos de Entidad Identificación Objetos frontera Identificación Objetos Control Modelado de iteraciones Identificación de las asociaciones Identificación Atributos Modelado de las relaciones de generalización
Identificación de Atributos Los atributos son propiedades de objetos individuales que son relevantes para el sistema.
Caso de Estudio Aerolínea
Es un miembro utilizado para almacenar un valor (estado) del objeto.
4
16/04/2009
Modificadores de Acceso • Los modificadores de acceso son utilizados para definir el nivel de visibilidad, externa, a los miembros de una clase (atributos y métodos). Estos modificadores se listan en la siguiente tabla.
Modificadores de Acceso
Practica: Parqueadero
5