SlideShare a Scribd company logo
1 of 46
Download to read offline
1
Paradigma de la programación
orientada a objetos y sus
características
René Guamán-Quinche
Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Computación
Octubre, 2022
Loja, Ecuador
3
1. Introducción al paradigma orientado a objetos
2. Principios paradigma orientado a objetos
• Abstracción
• Encapsulamiento
• Herencia
• Polimorfismo
Agenda
4
Introducción al paradigma orientado a objetos
 Desarrollo de software tienen unos costes
incontrolados
 Origen de los fallos de los SI en el software
 Las empresas gastan el 80% de su presupuesto
en mantenimiento
 El 95% de los nuevos sistemas, no satisfacen
las necesidades de los nuevos usuarios
 Los sistemas generados son demasiado
complejos e inflexibles para adaptarse a las
crecientes necesidades de las empresas
¿Por qué están fallando los sistemas de información (SI)?
5
¿Por qué están fallando los sistemas de información (SI)?
 Diversos estudios han demostrado que un proyecto de desarrollo de software
típico:
 rebasa en un 50% las fechas previstas
 por cada seis que entran en fase de producción, dos son cancelados
 Además un estudio realizado en 25 compañías norteamericanas:
 el 55% de los proyectos software cuestan más de lo previsto
 el 88% han de ser rediseñados
Introducción al paradigma orientado a objetos
6
Entre los objetivos destacan:
 Corrección: capacidad de satisfacer unas necesidades dadas, es decir, grado en el
que se satisfacen las expectativas del software
 Robustez: capacidad por la que el software puede seguir en operación aunque se
hayan producido entradas no válidas
 Reutilización: capacidad por la que un módulo puede utilizarse en múltiples
aplicaciones
Introducción al paradigma orientado a objetos
La orientación a objetos OO como solución
7
 Extensibilidad: mejora hecha al software existente para incrementar su
alcance y capacidad
 Portabilidad: grado de facilidad con que puede transferirse un software de un
sistema o entorno de ordenador a otro
 Facilidad de verificación: para determinar si los productos de una fase
determinada del ciclo de desarrollo software cumplen o no los requisitos
establecidos en la fase previa
Introducción al paradigma orientado a objetos
La orientación a objetos OO como solución
8
Paradigma de programación estructurado vs. OO
Introducción al paradigma orientado a objetos
9
Introducción al paradigma orientado a objetos
10
Introducción al paradigma orientado a objetos
¿Qué significa paradigma?
11
Introducción al paradigma orientado a objetos
¿Qué significa paradigma?
• Es una metodología que intenta unificar y simplificar la manera en que se
resuelve un cierto grupo de problemas
• En el contexto de la programación,
• un paradigma es un conjunto de principios y métodos que sirven para
resolver los problemas a los que se enfrentan los desarrolladores de software
al construir sistemas grandes y complejos.
12
Introducción al paradigma orientado a objetos
Ventajas
13
La Clase
Introducción al paradigma orientado a objetos
14
La Clase
Introducción al paradigma orientado a objetos
• Cada objeto en la POO tiene propiedades definidas por su clase de objeto
• Una clase es un tipo de dato definido por el programador específicamente
para crear objetos
• La clase define las propiedades comunes de un conjunto de objetos
15
Clases y objetos
Introducción al paradigma orientado a objetos
• Un objeto es una entidad virtual (o entidad de software), con datos y funciones
que simulan las propiedades del objeto.
• Las propiedades individuales de estos elementos y las relaciones entre sí
definen el funcionamiento general del software
Cada objeto es una instancia
particular de alguna clase de
objetos
16
Objetos
Introducción al paradigma orientado a objetos
• Los objetos son representaciones (simples/complejas)
(reales/imaginarias) de cosas: reloj, avión, coche
• No todo puede ser considerado como un objeto, algunas cosas son
simplemente características o atributos de los objetos: color,
velocidad, nombre
17
Objetos
 Objeto = Identidad + Estado + Comportamiento
 El estado está representado por los valores de los atributos
 Un atributo toma un valor en un dominio concreto
Introducción al paradigma orientado a objetos
18
 Cada objeto posee un Oid y establece la identidad del objeto y tiene las
siguientes características:
 Constituye un identificador único y global para cada objeto dentro del
sistema
 Es determinado en el momento de la creación del objeto
 Es independiente de la localización física del objeto, es decir, provee
completa independencia de localización
Introducción al paradigma orientado a objetos
Objetos – Identidad – Oid (Object Identifier)
19
Objetos - Estado
 El estado evoluciona con el tiempo
 Algunos atributos pueden ser constantes
 El comportamiento agrupa las competencias de un objeto y describe las
acciones y reacciones de ese objeto
 Las operaciones de un objeto son consecuencia de un estímulo externo
representado como mensaje enviado desde otro objeto
Introducción al paradigma orientado a objetos
20
Introducción al paradigma orientado a objetos
El estado de un objeto abarca todas las propiedades del objeto, y los valores
actuales de cada una de esas propiedades
Las propiedades de los objetos suelen ser estáticas, mientras los valores que toman
estas propiedades cambian con el tiempo
El estado de un objeto representa el efecto acumulado de su comportamiento
Estado
Desde el punto de vista computacional:
• Los atributos son los datos que pertenecen al objeto
y que representan el estado de éste, en función de los
valores que tienen
21
Comportamiento
Introducción al paradigma orientado a objetos
 Los mensajes navegan por los
enlaces, a priori en ambas
direcciones
 Estado y comportamiento están
relacionados
 Ejemplo: no es posible aterrizar un
avión si no está volando. Está
volando como consecuencia de haber
despegado del suelo
Los métodos: definen el comportamiento del objeto y
son funciones que se pueden invocar desde otros
objetos. Los métodos pueden modificar el estado del
objeto cuando cambian el valor de alguno de los
atributos
22
Introducción al paradigma orientado a objetos
En la figura se muestra el objeto cuenta bancaria, cuyos datos contenidos son el nombre del
cuentahabiente, sus apellidos, dirección, mail, saldo y el tipo de cuenta, en donde se
especifica si es una cuenta de crédito, débito, ahorro, etc. Además, el objeto cuenta bancaria
también contiene algunas operaciones que se pueden ejecutar con la cuenta, en este ejemplo
son consultar saldo, retiro, bonificación, actualizar datos y consultar datos
23
Ejemplo
Introducción al paradigma orientado a objetos
24
Ejemplo
Introducción al paradigma orientado a objetos
25
Ejemplo
Introducción al paradigma orientado a objetos
26
Ejemplo
Introducción al paradigma orientado a objetos
27
Ejemplo 2
Introducción al paradigma orientado a objetos
28
Clase vs Objeto
Una clase es una entidad abstracta
• Es un tipo de clasificación de datos
• Define el comportamiento y atributos de un grupo de estructura y comportamiento similar
Un objeto es una instancia de una clase
• Un objeto se distingue de otros miembros de la clase por sus atributos
Una clase se declara, un objeto además se crea
29
Principios paradigma orientado a objetos
30
Abstracción
Principio de ignorar aquellos
aspectos que no son
relevantes al propósito de lo
que se está realizando
Principios paradigma orientado a objetos
31
Abstracción:
• Capacidad de adquirir
conceptos
• Ideas particulares o los vemos
y comprendemos del mundo
• Construimos diagramas
mentales que relacionen los
conceptos
• Enfatizamos los detalles
importantes y olvidamos los
aspectos no relevantes
• Hace énfasis en el "¿qué
hace?" más que en el "¿cómo
lo hace?(características)
Introducción al paradigma orientado a objetos
32
Abstracción:
• La abstracción ofrecida por los lenguajes de programación se puede dividir en:
• abstracción de datos (pertenecientes a los datos) y
• abstracción de control (perteneciente a las estructuras de control)
• La abstracción se implementa mediante la identificación de clase:
Introducción al paradigma orientado a objetos
Estudiante
Profesor
Materia
Semestre, etc
33
Abstracción:
Introducción al paradigma orientado a objetos
Abstracción funcional
• Hay cosas que sabemos que
los vehículos hacen pero no
cómo lo hacen:
• Avanzar
• Parar
• girar a la derecha
• girar a la izquierda
Abstracción de datos
• Un vehículo tiene además
ciertos atributos:
• Color
• Velocidad
• Tamaño
• Etc.
34
Propiedades Fundamentales
 Encapsulación: ocultación de la información
Introducción al paradigma orientado a objetos
 Ventajas
 Modelos
 Modularidad
 Extensibilidad
 Eliminación de redundancias
 Inconvenientes
 Dificultad de aplicación de una tecnología
 Necesidad de mayor preparación del personal
Encapsulation hides the details of the
implementation of an object
35
 Encapsulación: ocultación de la información
Introducción al paradigma orientado a objetos
• Incluir en un objeto todo lo que necesita y hacer que los demás objetos
no vean su estructura interna
• Proteger los datos del uso arbitrario
• Las clases definen la interfaz de elementos
36
 Encapsulación: ocultación de la información
Introducción al paradigma orientado a objetos
Miembros públicos
• los miembros públicos describen qué
pueden hacer los objetos de esa clase
• Qué pueden hacer los objetos
(métodos)
• Qué son los objetos (su abstracción)
Miembros privado
• describen la implementación de cómo lo
hacen
• Ejemplo: el objeto contacto
interacciona con el circuito eléctrico del
vehículo, este con el motor, etc.
• En sistemas orientados a objetos puros
todo el estado es privado y sólo se
puede cambiar a través del interfaz
público
• Ej: El método público frenar puede
cambiar el valor del atributo privado
velocidad.
37
 Encapsulación: ocultación de la información
Introducción al paradigma orientado a objetos
• Formas de encapsular
• Abierto: hace que el miembro de la clase pueda ser accedido desde el
exterior de la Clase cualquier parte del programa.
• Protegido: solo es accesible desde la Clase y las clases que heredan (a
cualquier nivel).
• Cerrado: Solo es accesible desde la Clases.
38
Herencia
Introducción al paradigma orientado a objetos
Propiedades Fundamentales
• Permite crear clases nuevas a partir de
clases existentes
• Se establece niveles de jerarquía
• Permite refinar sus estructuras sin
necesidad de duplicar información
39
Herencia
Introducción al paradigma orientado a objetos
Propiedades Fundamentales
• La clase nueva es conocida subclase o clase derivada
• La clase de mayor nivel se denomina superclase o clase base
• Pueden existir herencia simple y multiple (depende del lenguaje de programación)
40
Propiedades Fundamentales
Polimorfismo: propiedad por la
cual una misma función puede
encontrarse en diferentes clases
teniendo distintos parámetros y
realizando distintas acciones
Introducción al paradigma orientado a objetos
41
Polimorfismo:
Introducción al paradigma orientado a objetos
42
Polimorfismo:
Introducción al paradigma orientado a objetos
Los comportamientos pueden ser identificados bajo el
mismo nombre pero procesan información de manera
diferente de acuerdo al objeto que lo contenga
43
Persistencia: característica
que se refiere a la
permanencia del objeto en
memoria
Introducción al paradigma orientado a objetos
Propiedades
Fundamentales
Persistence saves the state and class of an object
across time or space
44
Persistencia
 La persistencia de los objetos designa la capacidad de un objeto
trascender en el espacio/tiempo
 Podremos después reconstruirlo, es decir, cogerlo de memoria
secundaria para utilizarlo en la ejecución (materialización del objeto)
 Los lenguajes OO no proponen soporte adecuado para la persistencia, la
cual debería ser transparente, un objeto existe desde su creación hasta
que se destruya
Introducción al paradigma orientado a objetos
45
Cŕeditos
• Transparencias basadas por:
• Christopher Exposito Izquierdo & AiRam Exposito Marquez & otros
• Maria-Isabel, Sanchez Segura & Arturo, Mora-Soto
Networking académico:
Correo electrónico: rguaman@unl.edu.ec
Twitter: @rene5254
SlideShare: https://es.slideshare.net/rene5254
46
Gracias

More Related Content

What's hot

Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)
William Lozano
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
Guillermo Díaz
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
innovalabcun
 

What's hot (20)

Fundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfFundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdf
 
7.modelado de los requerimientos escenarios y clases
7.modelado de los requerimientos  escenarios y clases7.modelado de los requerimientos  escenarios y clases
7.modelado de los requerimientos escenarios y clases
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)
 
Caso de Uso
Caso de UsoCaso de Uso
Caso de Uso
 
Diagramas de estado
Diagramas de estadoDiagramas de estado
Diagramas de estado
 
Uml (presentación 6)
Uml (presentación 6)Uml (presentación 6)
Uml (presentación 6)
 
Uml
UmlUml
Uml
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
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
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Grasp
GraspGrasp
Grasp
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecys
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Requisitos no Funcionales
Requisitos no FuncionalesRequisitos no Funcionales
Requisitos no Funcionales
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
UML Class Diagram Notation
UML Class Diagram NotationUML Class Diagram Notation
UML Class Diagram Notation
 
Presentación diseño sistemas sm
Presentación diseño sistemas smPresentación diseño sistemas sm
Presentación diseño sistemas sm
 

Similar to Paradigma Programación Orientada a Objetos

Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la pooLenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Jacki Wan
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
yoiner santiago
 
estadina
estadinaestadina
estadina
ita
 

Similar to Paradigma Programación Orientada a Objetos (20)

PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
Diseño de Objetos
Diseño de ObjetosDiseño de Objetos
Diseño de Objetos
 
Analisis y Diseño de Sistemas II-1
Analisis y Diseño de Sistemas II-1Analisis y Diseño de Sistemas II-1
Analisis y Diseño de Sistemas II-1
 
3_Orientación a objeto
3_Orientación a objeto3_Orientación a objeto
3_Orientación a objeto
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
Poocpp2
Poocpp2Poocpp2
Poocpp2
 
Analisis y diseno_oo
Analisis y diseno_ooAnalisis y diseno_oo
Analisis y diseno_oo
 
Principios poo
Principios pooPrincipios poo
Principios poo
 
Trabajo sistemas digitales
Trabajo sistemas digitalesTrabajo sistemas digitales
Trabajo sistemas digitales
 
Prog oo con_java
Prog oo con_javaProg oo con_java
Prog oo con_java
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion poo
 
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la pooLenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
 
ProgramacionOrientadaAObjetos.pdf
ProgramacionOrientadaAObjetos.pdfProgramacionOrientadaAObjetos.pdf
ProgramacionOrientadaAObjetos.pdf
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
20% del segundo corte
20% del segundo corte20% del segundo corte
20% del segundo corte
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Diseño oo
Diseño ooDiseño oo
Diseño oo
 
estadina
estadinaestadina
estadina
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 

More from Rene Guaman-Quinche

More from Rene Guaman-Quinche (19)

interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
 
replicacion heterogenea.pdf
replicacion heterogenea.pdfreplicacion heterogenea.pdf
replicacion heterogenea.pdf
 
Elicitación de requerimientos
Elicitación de requerimientosElicitación de requerimientos
Elicitación de requerimientos
 
Arquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfArquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdf
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Introducción a los sistemas distribuidos
Introducción a los sistemas distribuidosIntroducción a los sistemas distribuidos
Introducción a los sistemas distribuidos
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos Distribuidos
 
RPC
RPCRPC
RPC
 
Unidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosUnidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetos
 
Tiempo, causalidad y estado global
Tiempo, causalidad y estado globalTiempo, causalidad y estado global
Tiempo, causalidad y estado global
 
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
 
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasTiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
 
Ciclo de vida software
Ciclo de vida softwareCiclo de vida software
Ciclo de vida software
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Modelo paso de mensajes
Modelo paso de mensajesModelo paso de mensajes
Modelo paso de mensajes
 
RMI
RMIRMI
RMI
 
Caracterizacion del paralelismo
Caracterizacion del paralelismoCaracterizacion del paralelismo
Caracterizacion del paralelismo
 
Introduccion a la computación paralela
Introduccion a la computación paralelaIntroduccion a la computación paralela
Introduccion a la computación paralela
 

Recently uploaded (6)

Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)
 
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
 
LA CALIDAD DE LA INFORMACION EN LA NUEVA ERA DEL INTERNET
LA CALIDAD DE LA INFORMACION  EN LA NUEVA ERA DEL INTERNETLA CALIDAD DE LA INFORMACION  EN LA NUEVA ERA DEL INTERNET
LA CALIDAD DE LA INFORMACION EN LA NUEVA ERA DEL INTERNET
 
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxCiberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
 
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptxCIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
 
Tkinter para python (curso de interfaces gráficas)
Tkinter para python (curso de interfaces gráficas)Tkinter para python (curso de interfaces gráficas)
Tkinter para python (curso de interfaces gráficas)
 

Paradigma Programación Orientada a Objetos

  • 1. 1
  • 2. Paradigma de la programación orientada a objetos y sus características René Guamán-Quinche Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables Carrera de Ingeniería en Computación Octubre, 2022 Loja, Ecuador
  • 3. 3 1. Introducción al paradigma orientado a objetos 2. Principios paradigma orientado a objetos • Abstracción • Encapsulamiento • Herencia • Polimorfismo Agenda
  • 4. 4 Introducción al paradigma orientado a objetos  Desarrollo de software tienen unos costes incontrolados  Origen de los fallos de los SI en el software  Las empresas gastan el 80% de su presupuesto en mantenimiento  El 95% de los nuevos sistemas, no satisfacen las necesidades de los nuevos usuarios  Los sistemas generados son demasiado complejos e inflexibles para adaptarse a las crecientes necesidades de las empresas ¿Por qué están fallando los sistemas de información (SI)?
  • 5. 5 ¿Por qué están fallando los sistemas de información (SI)?  Diversos estudios han demostrado que un proyecto de desarrollo de software típico:  rebasa en un 50% las fechas previstas  por cada seis que entran en fase de producción, dos son cancelados  Además un estudio realizado en 25 compañías norteamericanas:  el 55% de los proyectos software cuestan más de lo previsto  el 88% han de ser rediseñados Introducción al paradigma orientado a objetos
  • 6. 6 Entre los objetivos destacan:  Corrección: capacidad de satisfacer unas necesidades dadas, es decir, grado en el que se satisfacen las expectativas del software  Robustez: capacidad por la que el software puede seguir en operación aunque se hayan producido entradas no válidas  Reutilización: capacidad por la que un módulo puede utilizarse en múltiples aplicaciones Introducción al paradigma orientado a objetos La orientación a objetos OO como solución
  • 7. 7  Extensibilidad: mejora hecha al software existente para incrementar su alcance y capacidad  Portabilidad: grado de facilidad con que puede transferirse un software de un sistema o entorno de ordenador a otro  Facilidad de verificación: para determinar si los productos de una fase determinada del ciclo de desarrollo software cumplen o no los requisitos establecidos en la fase previa Introducción al paradigma orientado a objetos La orientación a objetos OO como solución
  • 8. 8 Paradigma de programación estructurado vs. OO Introducción al paradigma orientado a objetos
  • 9. 9 Introducción al paradigma orientado a objetos
  • 10. 10 Introducción al paradigma orientado a objetos ¿Qué significa paradigma?
  • 11. 11 Introducción al paradigma orientado a objetos ¿Qué significa paradigma? • Es una metodología que intenta unificar y simplificar la manera en que se resuelve un cierto grupo de problemas • En el contexto de la programación, • un paradigma es un conjunto de principios y métodos que sirven para resolver los problemas a los que se enfrentan los desarrolladores de software al construir sistemas grandes y complejos.
  • 12. 12 Introducción al paradigma orientado a objetos Ventajas
  • 13. 13 La Clase Introducción al paradigma orientado a objetos
  • 14. 14 La Clase Introducción al paradigma orientado a objetos • Cada objeto en la POO tiene propiedades definidas por su clase de objeto • Una clase es un tipo de dato definido por el programador específicamente para crear objetos • La clase define las propiedades comunes de un conjunto de objetos
  • 15. 15 Clases y objetos Introducción al paradigma orientado a objetos • Un objeto es una entidad virtual (o entidad de software), con datos y funciones que simulan las propiedades del objeto. • Las propiedades individuales de estos elementos y las relaciones entre sí definen el funcionamiento general del software Cada objeto es una instancia particular de alguna clase de objetos
  • 16. 16 Objetos Introducción al paradigma orientado a objetos • Los objetos son representaciones (simples/complejas) (reales/imaginarias) de cosas: reloj, avión, coche • No todo puede ser considerado como un objeto, algunas cosas son simplemente características o atributos de los objetos: color, velocidad, nombre
  • 17. 17 Objetos  Objeto = Identidad + Estado + Comportamiento  El estado está representado por los valores de los atributos  Un atributo toma un valor en un dominio concreto Introducción al paradigma orientado a objetos
  • 18. 18  Cada objeto posee un Oid y establece la identidad del objeto y tiene las siguientes características:  Constituye un identificador único y global para cada objeto dentro del sistema  Es determinado en el momento de la creación del objeto  Es independiente de la localización física del objeto, es decir, provee completa independencia de localización Introducción al paradigma orientado a objetos Objetos – Identidad – Oid (Object Identifier)
  • 19. 19 Objetos - Estado  El estado evoluciona con el tiempo  Algunos atributos pueden ser constantes  El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto  Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto Introducción al paradigma orientado a objetos
  • 20. 20 Introducción al paradigma orientado a objetos El estado de un objeto abarca todas las propiedades del objeto, y los valores actuales de cada una de esas propiedades Las propiedades de los objetos suelen ser estáticas, mientras los valores que toman estas propiedades cambian con el tiempo El estado de un objeto representa el efecto acumulado de su comportamiento Estado Desde el punto de vista computacional: • Los atributos son los datos que pertenecen al objeto y que representan el estado de éste, en función de los valores que tienen
  • 21. 21 Comportamiento Introducción al paradigma orientado a objetos  Los mensajes navegan por los enlaces, a priori en ambas direcciones  Estado y comportamiento están relacionados  Ejemplo: no es posible aterrizar un avión si no está volando. Está volando como consecuencia de haber despegado del suelo Los métodos: definen el comportamiento del objeto y son funciones que se pueden invocar desde otros objetos. Los métodos pueden modificar el estado del objeto cuando cambian el valor de alguno de los atributos
  • 22. 22 Introducción al paradigma orientado a objetos En la figura se muestra el objeto cuenta bancaria, cuyos datos contenidos son el nombre del cuentahabiente, sus apellidos, dirección, mail, saldo y el tipo de cuenta, en donde se especifica si es una cuenta de crédito, débito, ahorro, etc. Además, el objeto cuenta bancaria también contiene algunas operaciones que se pueden ejecutar con la cuenta, en este ejemplo son consultar saldo, retiro, bonificación, actualizar datos y consultar datos
  • 27. 27 Ejemplo 2 Introducción al paradigma orientado a objetos
  • 28. 28 Clase vs Objeto Una clase es una entidad abstracta • Es un tipo de clasificación de datos • Define el comportamiento y atributos de un grupo de estructura y comportamiento similar Un objeto es una instancia de una clase • Un objeto se distingue de otros miembros de la clase por sus atributos Una clase se declara, un objeto además se crea
  • 30. 30 Abstracción Principio de ignorar aquellos aspectos que no son relevantes al propósito de lo que se está realizando Principios paradigma orientado a objetos
  • 31. 31 Abstracción: • Capacidad de adquirir conceptos • Ideas particulares o los vemos y comprendemos del mundo • Construimos diagramas mentales que relacionen los conceptos • Enfatizamos los detalles importantes y olvidamos los aspectos no relevantes • Hace énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?(características) Introducción al paradigma orientado a objetos
  • 32. 32 Abstracción: • La abstracción ofrecida por los lenguajes de programación se puede dividir en: • abstracción de datos (pertenecientes a los datos) y • abstracción de control (perteneciente a las estructuras de control) • La abstracción se implementa mediante la identificación de clase: Introducción al paradigma orientado a objetos Estudiante Profesor Materia Semestre, etc
  • 33. 33 Abstracción: Introducción al paradigma orientado a objetos Abstracción funcional • Hay cosas que sabemos que los vehículos hacen pero no cómo lo hacen: • Avanzar • Parar • girar a la derecha • girar a la izquierda Abstracción de datos • Un vehículo tiene además ciertos atributos: • Color • Velocidad • Tamaño • Etc.
  • 34. 34 Propiedades Fundamentales  Encapsulación: ocultación de la información Introducción al paradigma orientado a objetos  Ventajas  Modelos  Modularidad  Extensibilidad  Eliminación de redundancias  Inconvenientes  Dificultad de aplicación de una tecnología  Necesidad de mayor preparación del personal Encapsulation hides the details of the implementation of an object
  • 35. 35  Encapsulación: ocultación de la información Introducción al paradigma orientado a objetos • Incluir en un objeto todo lo que necesita y hacer que los demás objetos no vean su estructura interna • Proteger los datos del uso arbitrario • Las clases definen la interfaz de elementos
  • 36. 36  Encapsulación: ocultación de la información Introducción al paradigma orientado a objetos Miembros públicos • los miembros públicos describen qué pueden hacer los objetos de esa clase • Qué pueden hacer los objetos (métodos) • Qué son los objetos (su abstracción) Miembros privado • describen la implementación de cómo lo hacen • Ejemplo: el objeto contacto interacciona con el circuito eléctrico del vehículo, este con el motor, etc. • En sistemas orientados a objetos puros todo el estado es privado y sólo se puede cambiar a través del interfaz público • Ej: El método público frenar puede cambiar el valor del atributo privado velocidad.
  • 37. 37  Encapsulación: ocultación de la información Introducción al paradigma orientado a objetos • Formas de encapsular • Abierto: hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase cualquier parte del programa. • Protegido: solo es accesible desde la Clase y las clases que heredan (a cualquier nivel). • Cerrado: Solo es accesible desde la Clases.
  • 38. 38 Herencia Introducción al paradigma orientado a objetos Propiedades Fundamentales • Permite crear clases nuevas a partir de clases existentes • Se establece niveles de jerarquía • Permite refinar sus estructuras sin necesidad de duplicar información
  • 39. 39 Herencia Introducción al paradigma orientado a objetos Propiedades Fundamentales • La clase nueva es conocida subclase o clase derivada • La clase de mayor nivel se denomina superclase o clase base • Pueden existir herencia simple y multiple (depende del lenguaje de programación)
  • 40. 40 Propiedades Fundamentales Polimorfismo: propiedad por la cual una misma función puede encontrarse en diferentes clases teniendo distintos parámetros y realizando distintas acciones Introducción al paradigma orientado a objetos
  • 42. 42 Polimorfismo: Introducción al paradigma orientado a objetos Los comportamientos pueden ser identificados bajo el mismo nombre pero procesan información de manera diferente de acuerdo al objeto que lo contenga
  • 43. 43 Persistencia: característica que se refiere a la permanencia del objeto en memoria Introducción al paradigma orientado a objetos Propiedades Fundamentales Persistence saves the state and class of an object across time or space
  • 44. 44 Persistencia  La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo  Podremos después reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la ejecución (materialización del objeto)  Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debería ser transparente, un objeto existe desde su creación hasta que se destruya Introducción al paradigma orientado a objetos
  • 45. 45 Cŕeditos • Transparencias basadas por: • Christopher Exposito Izquierdo & AiRam Exposito Marquez & otros • Maria-Isabel, Sanchez Segura & Arturo, Mora-Soto
  • 46. Networking académico: Correo electrónico: rguaman@unl.edu.ec Twitter: @rene5254 SlideShare: https://es.slideshare.net/rene5254 46 Gracias