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
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.
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
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