Sie sind auf Seite 1von 44

Unidad 4

HERENCIA, CLASES ABSTRACTAS, INTERFACES Y


POLIMORFISMO
UML
UML (Unified
Modeling Language) es CONSTRUIR

un lenguaje que
permite modelar,
construir y
ESPECIFICAR UML VISUALIZAR
documentar los
elementos que forman
un sistema software
orientado a objetos. DOCUMENTAR
UML
Diagramas de estructura enfatizan en los elementos
que deben existir en el sistema modelado:
Diagrama de clases
Diagrama de componentes
Diagrama de objetos
Diagrama de estructura compuesta (UML 2.0)
Diagrama de despliegue
Diagrama de paquetes
Diagrama de clases
Diagrama esttico que describe la estructura de un
sistema mostrando sus clases, atributos y las
relaciones entre ellos.

Son utilizados durante el proceso de anlisis y


diseo de los sistemas para crear el diseo
conceptual de la informacin que se manejar.
Representacin de clases
En UML, una clase es representada por un
rectngulo que posee tres divisiones
Ejemplo
Representacin de Atributos y
Mtodos
Los atributos y los mtodos de una clase pueden ser de
tres tipos, que definen su grado de comunicacin y
visibilidad con el entorno, estos son:
Public (+): el atributo ser visible tanto dentro como
fuera de la clase.
Private (-): el atributo slo ser accesible desde dentro
de la clase (slo sus mtodos pueden manipular los
atributos).
Protected (#): el atributo no ser accesible desde fuera
de la clase, pero si podr ser manipulado por mtodos
de la clase y de sus subclases.
Static (underlined)
Ejercicio
Crear un proyecto UML llamado Asociacion en el
que se disee un diagrama de clases que modele el
proceso de dar de alta a cada una de las personas
que se apuntan a una asociacin.
De cada persona interesa saber sus datos bsicos:
DNI, nombre completo y fecha de nacimiento.
Cuando cada nuevo socio se da de alta, se le asigna
un cdigo de asociado alfanumrico y se anota la
fecha de alta.
La clase Fecha se modela con tres campos (da, mes
y ao) de tipo entero.
Ejercicio
Se desea disear un diagrama de clases sobre la
informacin de las reservas de una empresa
dedicada al alquiler de automviles, teniendo en
cuenta que:
Es importante registrar la fecha de inicio y la fecha
final de la reserva, el precio de alquiler de cada
auto, litros de gasolina al momento de la reserva.
Todo auto siempre tiene asignado un garaje que no
puede cambiar. De cada auto se requiere la
matrcula, modelo, color y marca.
Cada reserva se realiza en una determinada agencia
Ejercicio
Representa mediante un diagrama de clases la siguiente
especificacin sobre las personas que participan en una pelcula:
De cada pelcula se almacena el ttulo, la sinopsis, el ao, el
gnero al que pertenece (drama, comedia, accin, terror,
romance, aventura, scifi) y el pas.
Sobre las personas que participan en la pelcula es necesario
conocer el nombre, los apellidos, la fecha de nacimiento y la
nacionalidad.
Una persona puede participar en una pelcula como actor,
director, productor o guionista.
Una persona se considera actor si ha actuado al menos en una
pelcula.
Una pelcula puede tener asociados varios trailers que son
editados por una o ms personas. No puede existir el trailer de
una pelcula hasta que existe la pelcula.
Interacciones entre clases
(relaciones)
Herencia (Especializacin/Generalizacin):
Composicin:
Agregacin:
Dependencia o Instanciacin (uso):
Asociacin:
Involutiva
Relaciones Involutivas
Cuando la misma clase aparece en los dos extremos
de la asociacin.
Agregacin
La agregacin es un tipo de asociacin que indica
que una clase es parte de otra clase.
Los componentes pueden ser compartidos por
varios compuestos.
La destruccin del compuesto no conlleva la
destruccin de los componentes.

Una empresa agrupa a


varios clientes
Composicin
Tipo de asociacin fuerte donde la vida de la clase
contenida debe coincidir con la vida de la clase
contenedor.
Los componentes constituyen una parte del objeto
compuesto.
Los componentes no pueden ser compartidos por
varios objetos compuestos.
Si se elimina los objetos compuestos, se eliminan
tambin sus componentes.
Composicin
Composicin
Tenemos una clase Empresa.
Un objeto Empresa est a su vez
compuesto por uno o varios objetos del
tipo empleado.
El tiempo de vida de los objetos
Empleado depende del tiempo de vida
de Empresa, ya que si no existe una
Empresa no pueden existir sus
empleados.
Diferencias entre Composicin y
Agregacin
Agregacin Composicin
Varias asociaciones
comparten los S No
componentes
Destruccin de los
componentes al destruir No S
el compuesto
Cardinalidad a nivel
Cualquiera 0..1 1
compuesto
Representacin Rombo transparente Rombo negro
Dependencia
Es una relacin de uso entre dos clases (una usa a
la otra). Esta relacin es la ms bsica entre clases y
comparada con los dems tipos de relacin, la mas
dbil.

Tenemos una clase Impresora..


Tenemos una clase Documento con un atributo texto.
La clase Impresora se encarga de imprimir los Documentos.
Dependencia
La ClaseA usa a la ClaseB.
La ClaseA depende de la ClaseB.
Dada la dependencia, todo cambio en la ClaseB podr
afectar a la ClaseA.

se interpreta como que la ClaseA hace uso de la ClaseB ya


sea instanciandola directamente, o
bien, recibindola como parmetro de entrada en uno de
sus mtodos.
Herencia
La relacin entre super clases y subclases
Adicionales
Los elementos adicionales que pueden aparecer en
una relacin de este tipo son los siguientes:
Rol: Identifica con nombres a los elementos que
aparecen en los extremos de la lnea que denota la
relacin, dicho nombre describe la semntica que
tiene la relacin en el sentido indicado.

Multiplicidad: La multiplicidad de una relacin


determina cuantos objetos de cada tipo intervienen
en la relacin. Presenta las siguientes
caractersticas:
Multiplicidad

Cada asociacin tiene dos multiplicidades (una para cada


extremo de la relacin)
Para especificar hay que indicar que la multiplicidad mnima
y mxima (mnima...mxima)
Una multiplicidad mnima mayor igual que 1 establece una
relacin obligatoria
Herencia
Tipo especial de relacin entre clases
Es uno de los aspectos que distinguen el Paradigma
de Orientacin a Objetos frente a otros paradigmas
Mecanismo que, bien utilizado, facilita la
modificabilidad y reutilizacin de los diseos y el
cdigo.
La Herencia es uno de los 4 pilares de la
programacin orientada a objetos (POO) junto con
la Abstraccin, Encapsulacin y Polimorfismo
En qu consiste?
En un principio, existen dos clases, a las que
llamaremos padre (superclase o clase base) e hija
(subclase o clase derivada).
Al igual que las herencias en la vida real, la clase
hija pasa a tener lo que tiene la clase padre:
Atributos
Mtodos
Un objeto de la clase hija es tambin un objeto de
la clase padre.
En la clase hija se definen las diferencias respecto
de la clase padre.
En qu consiste?
Si una clase B hereda de otra clase A
entonces:
B incorpora la estructura (atributos) y
comportamiento (mtodos) de la clase A.
B puede incluir adaptaciones:
B puede aadir nuevos atributos
B puede aadir nuevos mtodos
B puede redefinir mtodos
El proceso de herencia es
transitivo
B puede redefinir mtodos
B hereda de A
A es la superclase y B la subclase
C hereda de B y A
B y C son subclases de A
B es un descendiente directo de A
C es un descendiente indirecto de A
Ejemplo
Por ejemplo en un proyecto que utilice objetos Taxi
y objetos Autobus podramos encontrarnos algo
as:
Un ejemplo
Para qu se usa?
Para extender la funcionalidad de la clase padre.
Para especializar el comportamiento de la clase
padre.

Ventajas
Se ahorra cdigo Permite reutilizar cdigo extendiendo
su funcionalidad
Desventajas
Se introduce una fuerte dependencia en la clase hija
respecto a la clase padre
Un cambio en la clase padre puede tener efectos
imprevistos en las clases hijas
Un objeto de una clase hija puede tener un
comportamiento inconsistente con lo esperado de un
objeto de la clase padre
Se establece una jerarqua o clasificacin.
Si cambia el criterio de clasificacin puede acarrear
muchas modificaciones
Tipos de herencia
Herencia simple
Una clase puede heredar de una nica
clase

Herencia mltiple
Una clase puede heredar de varias
clases. Cabe decir tambin que en java
no se permite la herencia mltiple
Ejemplo
Diseo de jerarquas de herencia
Generalizacin (Factorizacin )
Se detectan clases con un comportamiento comn
Ejemplo: Libro y Revista son Publicaciones

Especializacin (Abstraccin )
Se detecta que una clase es un caso especial de
otra
Ejemplo: Rectngulo es un tipo de Polgono
Caso de estudio
Representa mediante un diagrama de clases la
siguiente especificacin sobre una empresa:
Una aplicacin necesita almacenar informacin
sobre empresas, sus empleados y sus clientes.
Ambos se caracterizan por su nombre y edad.
Los empleados tienen un sueldo bruto, los
empleados que son directivos tienen una categora,
as como un conjunto de empleados subordinados.
De los clientes adems se necesita conocer su
telfono de contacto.
La aplicacin necesita mostrar los datos de
empleados y clientes
Solucin
Caso de estudio
Representa mediante un diagrama de clases la siguiente especificacin
relacionada con una aplicacin de gestin de pedidos. Dicha aplicacin
debe guardar la informacin de los pedidos que realizan sus clientes y la
fecha en que se formalizan.
Los pedidos constan habitualmente de varios productos. El coste total
del pedido se calcula a partir de los precios individuales de cada
producto, as como de la cantidad e impuestos asociados a cada uno. Es
importante mantener informacin sobre las existencias de cada
producto con el fin de poder informar al cliente si habr retrasos en la
entrega del pedido.
El pedido podr pagarse de una vez o en varios pagos.
Las formas de pago posible son:
Tarjeta de crdito (fecha de caducidad, nmero, VISA o MASTERCARD)
Efectivo (moneda)
Cheque (nombre, entidad bancaria)
El pedido podr estar en uno de los siguientes estados:
pendiente, pagado, procesando, enviado y entregado.

Das könnte Ihnen auch gefallen