SlideShare una empresa de Scribd logo
1 de 44
Unidad 4
HERENCIA, CLASES ABSTRACTAS, INTERFACES Y
POLIMORFISMO
UML
• UML (Unified
Modeling Language) es
un lenguaje que
permite modelar,
construir y
documentar los
elementos que forman
un sistema software
orientado a objetos.
UML
CONSTRUIR
VISUALIZAR
DOCUMENTAR
ESPECIFICAR
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 estático que describe la estructura de un
sistema mostrando sus clases, atributos y las
relaciones entre ellos.
• Son utilizados durante el proceso de análisis y
diseño de los sistemas para crear el diseño
conceptual de la información que se manejará.
Representación de clases
• En UML, una clase es representada por un
rectángulo que posee tres divisiones
Ejemplo
Representación de Atributos y
Métodos
• Los atributos y los métodos de una clase pueden ser de
tres tipos, que definen su grado de comunicación y
visibilidad con el entorno, estos son:
• Public (+): el atributo será visible tanto dentro como
fuera de la clase.
• Private (-): el atributo sólo será accesible desde dentro
de la clase (sólo sus métodos pueden manipular los
atributos).
• Protected (#): el atributo no será accesible desde fuera
de la clase, pero si podrá ser manipulado por métodos
de la clase y de sus subclases.
• Static (underlined)
Ejercicio
• Crear un proyecto UML llamado Asociacion en el
que se diseñe un diagrama de clases que modele el
proceso de dar de alta a cada una de las personas
que se apuntan a una asociación.
• De cada persona interesa saber sus datos básicos:
DNI, nombre completo y fecha de nacimiento.
Cuando cada nuevo socio se da de alta, se le asigna
un código de asociado alfanumérico y se anota la
fecha de alta.
• La clase Fecha se modela con tres campos (día, mes
y año) de tipo entero.
Ejercicio
• Se desea diseñar un diagrama de clases sobre la
información de las reservas de una empresa
dedicada al alquiler de automóviles, 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
matrícula, modelo, color y marca.
• Cada reserva se realiza en una determinada agencia
Ejercicio
• Representa mediante un diagrama de clases la siguiente
especificación sobre las personas que participan en una película:
• De cada película se almacena el título, la sinopsis, el año, el
género al que pertenece (drama, comedia, acción, terror,
romance, aventura, scifi) y el país.
• Sobre las personas que participan en la película es necesario
conocer el nombre, los apellidos, la fecha de nacimiento y la
nacionalidad.
• Una persona puede participar en una película como actor,
director, productor o guionista.
• Una persona se considera actor si ha actuado al menos en una
película.
• Una película puede tener asociados varios trailers que son
editados por una o más personas. No puede existir el trailer de
una película hasta que existe la película.
Interacciones entre clases
(relaciones)
• Herencia (Especialización/Generalización):
• Composición:
• Agregación:
• Dependencia o Instanciación (uso):
• Asociación:
• Involutiva
Relaciones Involutivas
• Cuando la misma clase aparece en los dos extremos
de la asociación.
Agregación
• La agregación es un tipo de asociación que indica
que una clase es parte de otra clase.
• Los componentes pueden ser compartidos por
varios compuestos.
• La destrucción del compuesto no conlleva la
destrucción de los componentes.
Una empresa agrupa a
varios clientes
Composición
• Tipo de asociación 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
también sus componentes.
Composición
Composición
• 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 Composición y
Agregación
Agregación Composición
Varias asociaciones
comparten los
componentes
Sí No
Destrucción de los
componentes al destruir
el compuesto
No Sí
Cardinalidad a nivel
compuesto
Cualquiera 0..1 ó 1
Representación Rombo transparente Rombo negro
Dependencia
• Es una relación de uso entre dos clases (una usa a
la otra). Esta relación es la más básica entre clases y
comparada con los demás tipos de relación, la mas
débil.
• 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, recibiéndola como parámetro de entrada en uno de
sus métodos.
Herencia
• La relación entre super clases y subclases
Adicionales
• Los elementos adicionales que pueden aparecer en
una relación de este tipo son los siguientes:
• Rol: Identifica con nombres a los elementos que
aparecen en los extremos de la línea que denota la
relación, dicho nombre describe la semántica que
tiene la relación en el sentido indicado.
• Multiplicidad: La multiplicidad de una relación
determina cuantos objetos de cada tipo intervienen
en la relación. Presenta las siguientes
características:
Multiplicidad
• Cada asociación tiene dos multiplicidades (una para cada
extremo de la relación)
• Para especificar hay que indicar que la multiplicidad mínima
y máxima (mínima...máxima)
• Una multiplicidad mínima mayor igual que 1 establece una
relación obligatoria
Herencia
• Tipo especial de relación entre clases
• Es uno de los aspectos que distinguen el Paradigma
de Orientación a Objetos frente a otros paradigmas
• Mecanismo que, bien utilizado, facilita la
modificabilidad y reutilización de los diseños y el
código.
• La Herencia es uno de los 4 pilares de la
programación orientada a objetos (POO) junto con
la Abstracción, Encapsulación 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
• Métodos
• Un objeto de la clase hija es también 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 (métodos) de la clase A.
• B puede incluir adaptaciones:
• B puede añadir nuevos atributos
• B puede añadir nuevos métodos
• B puede redefinir métodos
El proceso de herencia es
transitivo
• B puede redefinir métodos
• 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 podríamos 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 código Permite reutilizar código 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 jerarquía o clasificación.
• Si cambia el criterio de clasificación puede acarrear
muchas modificaciones
Tipos de herencia
• Herencia simple
• Una clase puede heredar de una única
clase
• Herencia múltiple
• Una clase puede heredar de varias
clases. Cabe decir también que en java
no se permite la herencia múltiple
Ejemplo
Diseño de jerarquías de herencia
• Generalización (Factorización )
• Se detectan clases con un comportamiento común
• Ejemplo: Libro y Revista son Publicaciones
• Especialización (Abstracción )
• Se detecta que una clase es un caso especial de
otra
• Ejemplo: Rectángulo es un tipo de Polígono
Caso de estudio
• Representa mediante un diagrama de clases la
siguiente especificación sobre una empresa:
• Una aplicación necesita almacenar información
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 categoría,
así como un conjunto de empleados subordinados.
• De los clientes además se necesita conocer su
teléfono de contacto.
• La aplicación necesita mostrar los datos de
empleados y clientes
Solución
Caso de estudio
• Representa mediante un diagrama de clases la siguiente especificación
relacionada con una aplicación de gestión de pedidos. Dicha aplicación
debe guardar la información 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 información 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 crédito (fecha de caducidad, número, 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.

Más contenido relacionado

La actualidad más candente

2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
landeta_p
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
cintiap25
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)
Miguel Miranda
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
still01
 

La actualidad más candente (20)

modelo entidad-relacion
modelo entidad-relacionmodelo entidad-relacion
modelo entidad-relacion
 
 Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automático Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automático
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Casos uso uml
Casos uso umlCasos uso uml
Casos uso uml
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.
 
UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Diagrama de contexto
Diagrama de contextoDiagrama de contexto
Diagrama de contexto
 

Destacado (7)

Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Clase8-Estadística
Clase8-EstadísticaClase8-Estadística
Clase8-Estadística
 
Clase7-Estadística
Clase7-EstadísticaClase7-Estadística
Clase7-Estadística
 
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOSUnidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
 
Clase6 Estadística
Clase6 EstadísticaClase6 Estadística
Clase6 Estadística
 

Similar a Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML

Modelado orientado a objetos de bd
Modelado orientado a objetos de bdModelado orientado a objetos de bd
Modelado orientado a objetos de bd
María Luisa Velasco
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
Marvin Zumbado
 
Patrones de programación y uml en java
Patrones de programación y uml en javaPatrones de programación y uml en java
Patrones de programación y uml en java
Guille Villaf
 

Similar a Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML (20)

3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdf
 
S03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herenciaS03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herencia
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Mod 6 1 introducción a uml
Mod 6 1 introducción a umlMod 6 1 introducción a uml
Mod 6 1 introducción a uml
 
Clase4 poo-uml
Clase4 poo-umlClase4 poo-uml
Clase4 poo-uml
 
Análisis y diseño de sistemas sesion 03 - modelado de dominio
Análisis y diseño de sistemas   sesion 03 - modelado de dominioAnálisis y diseño de sistemas   sesion 03 - modelado de dominio
Análisis y diseño de sistemas sesion 03 - modelado de dominio
 
Modelado orientado a objetos de bd
Modelado orientado a objetos de bdModelado orientado a objetos de bd
Modelado orientado a objetos de bd
 
2. lenguaje de modelado unificado uml
2. lenguaje de modelado unificado uml2. lenguaje de modelado unificado uml
2. lenguaje de modelado unificado uml
 
Diagrama de casos
Diagrama de casosDiagrama de casos
Diagrama de casos
 
Uml presentacion
Uml   presentacionUml   presentacion
Uml presentacion
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Diagramadeclase 20090223
Diagramadeclase 20090223Diagramadeclase 20090223
Diagramadeclase 20090223
 
Clase 17
Clase 17Clase 17
Clase 17
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basic
 
Patrones de programación y uml en java
Patrones de programación y uml en javaPatrones de programación y uml en java
Patrones de programación y uml en java
 
Diagrama de dominio armando
Diagrama de dominio armandoDiagrama de dominio armando
Diagrama de dominio armando
 

Más de Cindy Adriana Bohórquez Santana

265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
Cindy Adriana Bohórquez Santana
 

Más de Cindy Adriana Bohórquez Santana (20)

Proyecto parcial1t2018
Proyecto parcial1t2018Proyecto parcial1t2018
Proyecto parcial1t2018
 
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
 
20152 sfiec030121 1
20152 sfiec030121 120152 sfiec030121 1
20152 sfiec030121 1
 
4 estructuras enlazadas
4 estructuras enlazadas4 estructuras enlazadas
4 estructuras enlazadas
 
12 conjuntos mapas1t2018
12 conjuntos mapas1t201812 conjuntos mapas1t2018
12 conjuntos mapas1t2018
 
11 colas prioridad1t2018
11 colas prioridad1t201811 colas prioridad1t2018
11 colas prioridad1t2018
 
10 colas1 t2018
10 colas1 t201810 colas1 t2018
10 colas1 t2018
 
09 pilas aplicaciones1t2018
09 pilas aplicaciones1t201809 pilas aplicaciones1t2018
09 pilas aplicaciones1t2018
 
08 pilas1 t2018
08 pilas1 t201808 pilas1 t2018
08 pilas1 t2018
 
06 listas1 t2018
06 listas1 t201806 listas1 t2018
06 listas1 t2018
 
05 listas1 t2018
05 listas1 t201805 listas1 t2018
05 listas1 t2018
 
04 recursividad1 t2018
04 recursividad1 t201804 recursividad1 t2018
04 recursividad1 t2018
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
Teoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_edTeoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_ed
 
Tema3 probabilidades
Tema3 probabilidadesTema3 probabilidades
Tema3 probabilidades
 
Ejercicios calculo probabilidades
Ejercicios calculo probabilidadesEjercicios calculo probabilidades
Ejercicios calculo probabilidades
 
5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)
 
424052848.tp 02 probabilidad
424052848.tp 02 probabilidad424052848.tp 02 probabilidad
424052848.tp 02 probabilidad
 
Ppt cap2b Estadística
Ppt cap2b EstadísticaPpt cap2b Estadística
Ppt cap2b Estadística
 

Último

Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
antoniolfdez2006
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
DavidRojas870673
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
GustavoAdolfoDiaz3
 

Último (20)

Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptx
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 

Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML

  • 1. Unidad 4 HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO
  • 2. UML • UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. UML CONSTRUIR VISUALIZAR DOCUMENTAR ESPECIFICAR
  • 3. 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
  • 4. Diagrama de clases • Diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. • Son utilizados durante el proceso de análisis y diseño de los sistemas para crear el diseño conceptual de la información que se manejará.
  • 5. Representación de clases • En UML, una clase es representada por un rectángulo que posee tres divisiones
  • 7. Representación de Atributos y Métodos • Los atributos y los métodos de una clase pueden ser de tres tipos, que definen su grado de comunicación y visibilidad con el entorno, estos son: • Public (+): el atributo será visible tanto dentro como fuera de la clase. • Private (-): el atributo sólo será accesible desde dentro de la clase (sólo sus métodos pueden manipular los atributos). • Protected (#): el atributo no será accesible desde fuera de la clase, pero si podrá ser manipulado por métodos de la clase y de sus subclases. • Static (underlined)
  • 8.
  • 9. Ejercicio • Crear un proyecto UML llamado Asociacion en el que se diseñe un diagrama de clases que modele el proceso de dar de alta a cada una de las personas que se apuntan a una asociación. • De cada persona interesa saber sus datos básicos: DNI, nombre completo y fecha de nacimiento. Cuando cada nuevo socio se da de alta, se le asigna un código de asociado alfanumérico y se anota la fecha de alta. • La clase Fecha se modela con tres campos (día, mes y año) de tipo entero.
  • 10. Ejercicio • Se desea diseñar un diagrama de clases sobre la información de las reservas de una empresa dedicada al alquiler de automóviles, 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 matrícula, modelo, color y marca. • Cada reserva se realiza en una determinada agencia
  • 11. Ejercicio • Representa mediante un diagrama de clases la siguiente especificación sobre las personas que participan en una película: • De cada película se almacena el título, la sinopsis, el año, el género al que pertenece (drama, comedia, acción, terror, romance, aventura, scifi) y el país. • Sobre las personas que participan en la película es necesario conocer el nombre, los apellidos, la fecha de nacimiento y la nacionalidad. • Una persona puede participar en una película como actor, director, productor o guionista. • Una persona se considera actor si ha actuado al menos en una película. • Una película puede tener asociados varios trailers que son editados por una o más personas. No puede existir el trailer de una película hasta que existe la película.
  • 12.
  • 13.
  • 14. Interacciones entre clases (relaciones) • Herencia (Especialización/Generalización): • Composición: • Agregación: • Dependencia o Instanciación (uso): • Asociación: • Involutiva
  • 15. Relaciones Involutivas • Cuando la misma clase aparece en los dos extremos de la asociación.
  • 16. Agregación • La agregación es un tipo de asociación que indica que una clase es parte de otra clase. • Los componentes pueden ser compartidos por varios compuestos. • La destrucción del compuesto no conlleva la destrucción de los componentes. Una empresa agrupa a varios clientes
  • 17. Composición • Tipo de asociación 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 también sus componentes.
  • 19. Composición • 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.
  • 20. Diferencias entre Composición y Agregación Agregación Composición Varias asociaciones comparten los componentes Sí No Destrucción de los componentes al destruir el compuesto No Sí Cardinalidad a nivel compuesto Cualquiera 0..1 ó 1 Representación Rombo transparente Rombo negro
  • 21. Dependencia • Es una relación de uso entre dos clases (una usa a la otra). Esta relación es la más básica entre clases y comparada con los demás tipos de relación, la mas débil. • Tenemos una clase Impresora.. • Tenemos una clase Documento con un atributo texto. • La clase Impresora se encarga de imprimir los Documentos.
  • 22. 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, recibiéndola como parámetro de entrada en uno de sus métodos.
  • 23. Herencia • La relación entre super clases y subclases
  • 24.
  • 25. Adicionales • Los elementos adicionales que pueden aparecer en una relación de este tipo son los siguientes: • Rol: Identifica con nombres a los elementos que aparecen en los extremos de la línea que denota la relación, dicho nombre describe la semántica que tiene la relación en el sentido indicado. • Multiplicidad: La multiplicidad de una relación determina cuantos objetos de cada tipo intervienen en la relación. Presenta las siguientes características:
  • 26. Multiplicidad • Cada asociación tiene dos multiplicidades (una para cada extremo de la relación) • Para especificar hay que indicar que la multiplicidad mínima y máxima (mínima...máxima) • Una multiplicidad mínima mayor igual que 1 establece una relación obligatoria
  • 27.
  • 28.
  • 29. Herencia • Tipo especial de relación entre clases • Es uno de los aspectos que distinguen el Paradigma de Orientación a Objetos frente a otros paradigmas • Mecanismo que, bien utilizado, facilita la modificabilidad y reutilización de los diseños y el código. • La Herencia es uno de los 4 pilares de la programación orientada a objetos (POO) junto con la Abstracción, Encapsulación y Polimorfismo
  • 30. ¿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 • Métodos • Un objeto de la clase hija es también un objeto de la clase padre. • En la clase hija se definen las diferencias respecto de la clase padre.
  • 31. ¿En qué consiste? • Si una clase B hereda de otra clase A entonces: • B incorpora la estructura (atributos) y comportamiento (métodos) de la clase A. • B puede incluir adaptaciones: • B puede añadir nuevos atributos • B puede añadir nuevos métodos • B puede redefinir métodos
  • 32. El proceso de herencia es transitivo • B puede redefinir métodos • 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
  • 33.
  • 34. Ejemplo • Por ejemplo en un proyecto que utilice objetos Taxi y objetos Autobus podríamos encontrarnos algo así:
  • 36.
  • 37. ¿Para qué se usa? • Para extender la funcionalidad de la clase padre. • Para especializar el comportamiento de la clase padre. • Ventajas • Se ahorra código Permite reutilizar código extendiendo su funcionalidad
  • 38. 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 jerarquía o clasificación. • Si cambia el criterio de clasificación puede acarrear muchas modificaciones
  • 39. Tipos de herencia • Herencia simple • Una clase puede heredar de una única clase • Herencia múltiple • Una clase puede heredar de varias clases. Cabe decir también que en java no se permite la herencia múltiple
  • 41. Diseño de jerarquías de herencia • Generalización (Factorización ) • Se detectan clases con un comportamiento común • Ejemplo: Libro y Revista son Publicaciones • Especialización (Abstracción ) • Se detecta que una clase es un caso especial de otra • Ejemplo: Rectángulo es un tipo de Polígono
  • 42. Caso de estudio • Representa mediante un diagrama de clases la siguiente especificación sobre una empresa: • Una aplicación necesita almacenar información 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 categoría, así como un conjunto de empleados subordinados. • De los clientes además se necesita conocer su teléfono de contacto. • La aplicación necesita mostrar los datos de empleados y clientes
  • 44. Caso de estudio • Representa mediante un diagrama de clases la siguiente especificación relacionada con una aplicación de gestión de pedidos. Dicha aplicación debe guardar la información 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 información 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 crédito (fecha de caducidad, número, 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.