Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Creado por Ing. Alvaro Enrique Ruano
3. Asociaciones
● Al modelar un sistema basado en POO pueden
existir relaciones entre clases, las cuales
pueden ser distintas a la herencia.
● Esas relaciones son llamadas asociaciones.
● Las asociaciones deben ser modeladas para
eliminar la ambigüedad del modelo.
● Existen cinco tipos que podemos especificar
utilizando UML.
4. Asociaciones Bidireccionales
● Las dos clases están enteradas de la existencia
de la relación.
● Es el tipo de asociación por defecto.
● Se utiliza una línea sólida sin indicadores en
los extremos.
● Se puede especificar palabras para describir
los roles dentro de la relación.
● Se puede especificar multiplicidad de la
relación.
7. Asociaciones Unidireccionales
● Dos clases están relacionadas, pero solamente
una sabe de la existencia de la relación.
● Estas relaciones permiten desacoplamiento de
clases para ofrecer un diseño más flexible a
futuros cambios.
● También se incluye el rol e indicador de
multiplicidad, pero solo del lado conocido.
● Se utiliza una fecha con punta abierta para
diferenciarla de las relaciones de herencia e
implementación.
9. Agregación
● Utilizada para modelar la relación entre un
todo y sus partes.
● Indica que una clase pertenece a otra.
● En este caso se asume una independencia
entre el ciclo de vida de las clases relacionadas
(una no depende de la otra).
● Se utiliza una línea sólida con una flecha
abierta en un extremo (clase contenida) y un
rombo vacío en el otro (clase que contiene).
11. Composición
● Es un tipo especial de agregación.
● La diferencia radica en la dependencia en los
ciclos de vida de las clases. El hijo no podría
existir sin el padre.
● Se utiliza una línea sólida con una flecha
abierta en un extremo (clase contenida) y un
rombo lleno en el otro (clase que contiene).
13. Clases de Asociación
● Son clases que se incluyen en relaciones más
complejas para incluir información valiosa
sobre la relación.
● La nueva clase es una clase normal.
● Se ejemplifica por medio de una mezcla de
línea sólida (clases a relacionar) unida a una
línea punteada (nueva clase).
15. Ejercicio
1. Responda y explique las cuestiones que se le
plantean a continuación.
● Mencione y explique 4 modificadores de
acceso en objetos.
● ¿Qué es Herencia y qué tipos existen?.
Explique.
● Menciones y explique 2 modificadores de
Herencia.
● ¿Qué es Polimorfismo?. Explique con un
ejemplo.
16. Ejercicio
2. Indique cuál es el nombre del concepto que
se le presenta a continuación.
● ¿Si un determinado atributo o método
puede ser invalidado en una clase derivada
se dice que es?
● Modificador de acceso en el cuál el atributo
puede ser accedido por cualquier código
que se encuentre dentro del mismo
componente de software.
17. Ejercicio
3. Encuentre el o los errores en el siguiente
bloque de código.
C#
private class Contenedor
{
public double Volumen { get; private set; }
public Contenedor()
{
Volumen = 0;
}
}
public class Caja : Contenedor
{
public Caja(double ancho, double alto, double profundidad)
: base()
{
Volumen = ancho * alto * profundidad;
}
}
18. Ejercicio
4. Encuentre el o los errores en el siguiente
bloque de código.
C#
public sealed class Contenedor
{
public double Volumen { get; protected set; }
public string Nombre { get; protected set; }
public Contenedor(double volumen)
{
Volumen = volumen;
Nombre = "Contenedor";
}
}
public class Caja : Contenedor
{
public Caja(double ancho, double alto, double profundidad)
: this(ancho * alto * profundidad)
{
Nombre = "Caja";
}
}
22. Ejercicio
6. Indique el tipo de relación que existe entre las
entidades (herencia, agregación,
composición, clase de asociación, etc.) y
dibuje la representación gráfica respectiva
● Alumno, curso universitario
● Tarjeta de crédito, compra, voucher
● País, himno nacional, diputado
● Persona, Hombre, Mujer, Matrimonio
23. Ejercicio Práctico
1. Utilizando el lenguaje C#, en grupos de 4
personas, resuelva los problemas de archivo
“Sesión 08 – Ejercicio Práctico.pdf”.
o Deberá entregar una única solución de VSS
incluyendo su respuesta a todos los ejercicios.
o Se calificará que las clases estén realizadas
conforme a las especificaciones.
o La interfaz de usuario para probar las clases queda
a su discreción (consola o Windows Forms) y no
será calificada, es solamente una ayuda para que
usted pueda probar las clases.