FUNDAMENTOS DE LA METODOLOGÍA ORIENTADA A OBJETOS

Autor: Josmar A. Osorio D.
C.I: 30.411.780


Autor: Josmar A. Osorio D.
C.I: 30.411.780
La metodología orientada a objetos es un enfoque de programación que se basa en el concepto de "objetos" como elementos fundamentales. Estos objetos contienen tanto datos como comportamientos, y se utilizan para modelar entidades del mundo real de manera más eficiente y estructurada.
En la metodología orientada a objetos, los objetos son las unidades básicas de construcción del programa. Cada objeto tiene un estado (datos) y un comportamiento (métodos) asociados. Los objetos interactúan entre sí a través de mensajes, lo que les permite colaborar y realizar tareas específicas.
La metodología orientada a objetos se basa en los siguientes principios básicos:
1-Clases.
2-Objetos.
3-Herencia.
4-Encapsulación .
5- Polimorfismo.
6-Abstracción
Son estructuras que permiten definir objetos con características y comportamientos similares. Una clase actúa como una plantilla o molde para crear objetos específicos.
En una clase, se definen los atributos, que representan las características o propiedades del objeto, y los métodos, que representan los comportamientos o acciones que el objeto puede realizar.
OBJETOS:
Son instancias concretas de una clase. Una clase define la estructura y el comportamiento de un objeto, mientras que un objeto es una entidad real que puede tener atributos y realizar acciones.
En la Programación orientada a objetos (POO), los objetos son la base fundamental de la programación. Cada objeto tiene un estado, que se define por sus atributos, y un comportamiento, que se define por sus métodos.
Podemos decir que la herencia en POO es un concepto que permite crear nuevas clases basadas en clases existentes. En la herencia, una clase nueva, llamada subclase o clase derivada, hereda los atributos y métodos de una clase existente, llamada superclase o clase base. Esta permite reutilizar el código y la funcionalidad de una clase base en una clase derivada, evitando la duplicación de código.
La herencia se representa mediante una relación de "es un" entre la clase derivada y la clase base. Por ejemplo, si tenemos una clase "Animal" como superclase y una clase "Perro" como subclase, podemos decir que "Perro" es un tipo de "Animal".
La herencia también permite la creación de jerarquías de clases, donde una clase puede tener múltiples subclases y cada subclase puede tener sus propias subclases
Este hace referencia a la agrupación de datos y métodos dentro de una clase, y a la restricción del acceso directo a algunos de los componentes de un objeto.
El objetivo del encapsulamiento es ocultar los detalles de implementación y proteger los datos de un objeto, evitando que sean accedidos o modificados de manera incorrecta.
Lo anterior mencionado se logra definiendo los atributos de la clase como privados y proporcionando métodos públicos para acceder y modificar esos atributos.
Al encapsular los datos, se establece un nivel de abstracción que permite que los objetos interactúen entre sí a través de interfaces bien definidas, sin necesidad de conocer los detalles internos de cada objeto.
Se trata de aquel principio que le permite a un objeto pueda presentar diferentes formas o comportamientos dependiendo del contexto en el que se utilice. En otras palabras, un objeto puede ser tratado como si fuera de un tipo diferente al que realmente es. Esto se logra mediante la capacidad de una clase base de ser reemplazada por una clase derivada que implemente el mismo conjunto de métodos, pero con comportamientos específicos.
El polimorfismo permite escribir código más genérico y flexible, ya que se pueden utilizar objetos de diferentes clases que implementen la misma interfaz o hereden de la misma clase base. Esto facilita la reutilización de código y permite tratar a los objetos de manera uniforme, sin importar su tipo específico.
En resumen, el polimorfismo en la POO permite que un objeto pueda presentar diferentes formas o comportamientos dependiendo del contexto en el que se utilice.
Es un concepto que permite representar objetos del mundo real en forma de clases y objetos en un programa. La abstracción se basa en identificar las características esenciales y relevantes de un objeto y omitir los detalles innecesarios.
La abstracción permite simplificar la complejidad de un sistema al enfocarse en los aspectos más importantes y relevantes.
En la abstracción, se crean clases que representan entidades o conceptos del mundo real, y se definen atributos para representar las características y métodos para representar las acciones o comportamientos de esos objetos.
Por ultimo cabe resaltar que estos objetos pueden interactuar entre sí a través de mensajes y colaborar para lograr un objetivo.
A continuación detallaremos algunas ventajas y desventajas de la metodología orientada a objetos:
VENTAJAS:
1- Reutilización de código: promueve la reutilización de código a través de la herencia y la composición, lo que permite ahorrar tiempo.
2- Modularidad: permite dividir un sistema en módulos o clases independientes, lo que facilita muchos aspectos.
3-Organización y estructura: proporciona una estructura clara y organizada para el desarrollo de software, que facilita la colaboración entre los miembros del equipo y el mantenimiento del código.
4-Flexibilidad y extensibilidad: permite agregar nuevas funcionalidades al sistema de manera más sencilla.
5-Abstracción y encapsulamiento: permite representar objetos del mundo real en forma de clases y objetos, lo que facilita la comprensión y modelado de sistemas complejos. Además, el encapsulamiento protege los datos y comportamientos internos de una clase, lo que mejora la seguridad y la integridad del código.
1- Mayor complejidad inicial: puede tener una curva de aprendizaje más pronunciada, ya que requiere comprender los conceptos fundamentales de la POO.
2- Mayor consumo de recursos: es posible que requiera más memoria y recursos de procesamiento en comparación con otros enfoques de programación más simples.
3- Mayor tiempo de desarrollo: puede requerir más tiempo para el desarrollo inicial del software, ya que implica una planificación y diseño más detallados, así como la creación de clases y relaciones entre ellas.
4- Mayor complejidad de depuración: podría causar que la depuración de errores sea más compleja, ya que los problemas pueden estar relacionados con la interacción entre diferentes objetos y clases.
5- Mayor dependencia de herramientas y frameworks: La POO a menudo requiere el uso de herramientas y frameworks específicos para facilitar el desarrollo y la gestión de objetos, lo que puede limitar la flexibilidad y la portabilidad del código.
El análisis y diseño orientado a objetos (ADO) tiene diversas aplicaciones en el desarrollo de software. Algunas de las aplicaciones más comunes son:
- Desarrollo de aplicaciones empresariales: El ADO se utiliza ampliamente en el desarrollo de aplicaciones empresariales, como sistemas de gestión de recursos humanos, sistemas de gestión de inventario, entre otros. La orientación a objetos permite modelar y representar de manera eficiente los diferentes componentes y procesos de una organización.
- Desarrollo de aplicaciones web: El ADO se utiliza en el desarrollo de aplicaciones web para crear componentes reutilizables y modularizar el código. Esto facilita la construcción de sitios web escalables y mantenibles.
-Desarrollo de aplicaciones móviles: El ADO se utiliza en el desarrollo de aplicaciones móviles para crear componentes reutilizables y facilitar la gestión de la interfaz de usuario y la lógica de negocio 1. Esto permite el desarrollo rápido y eficiente de aplicaciones para dispositivos móviles.
Y a su vez alguna otras como el desarrollo de video juegos y el desarrollo de sistemas embebidos.
Algunos de los más populares son:
1- Java: Java es un lenguaje de programación orientado a objetos ampliamente utilizado. Proporciona características como clases, objetos, herencia, polimorfismo, encapsulamiento, entre otros.
2- C++: C++ es otro lenguaje de programación orientado a objetos muy utilizado. Combina características de programación orientada a objetos con características de programación de bajo nivel.
3- C#: C# es un lenguaje de programación desarrollado por Microsoft que también es orientado a objetos. Es similar a Java en términos de características y sintaxis.
4- Python: Python es un lenguaje de programación multiparadigma que también admite la programación orientada a objetos. Proporciona una sintaxis clara y concisa para definir clases y objetos.
5- Ruby: Ruby es otro lenguaje de programación orientado a objetos que se destaca por su elegancia y facilidad de uso. Proporciona una sintaxis simple y flexible para trabajar con objetos.
ORIENTADA A OBJETOS ACTUALMENTE.
-de, C. (2002, February 7). paradigma de programación. Wikipedia.org; Wikimedia Foundation, Inc.
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
-Miriam Martínez Canelo. (2020, November 2). ¿Qué es la Programación Orientada a Objetos? Profile Software Services. https://profile.es/blog/que-es-la-programacionorientada-a-objetos/
-Hunter, A. (2021, June 2). Introducción a la Programación Orientada a Objetos(OOP). Medium; Medium. https://alvisonhunter.medium.com/introducci%C3%B3n-a-laprogramaci%C3%B3n-orientada-a-objetos-en-python-73b8757ce8ca
-¿Qué es la Herencia en programación orientada a objetos? (2019, June 5). IfgeekthenNTTdata. https://ifgeekthen.nttdata.com/es/herencia-en-programacionorientada-objetos
-José Manuel Alarcón. (2021, July 26). Los conceptos fundamentales sobre Programación Orientada Objetos explicados de manera simple - campusMVP.es. CampusMVP.es.
https://www.campusmvp.es/recursos/post/los-conceptos-fundamentales-sobreprogramacion-orientada-objetos-explicados-de-manera-simple.aspx
-Marker, G. (2022, November 7). Lenguajes de programación orientada a objetos. Tecnología + Informática; Tecnología + Informática. https://www.tecnologiainformatica.com/lenguajes-de-programacion-orientada-a-objetos/
-Yeeply. (2023, May 15). Lenguajes de programación más usados en el mundo ACTUALIZADO. Yeeply. https://www.yeeply.com/blog/lenguajes-de-programacion-masusados/
-Desarrollo de aplicaciones OOP. El diseño orientado a objetos: la realización de lo posible. (2023, December 2). Computerworld.es.
https://www.computerworld.es/archive/desarrollo-de-aplicaciones-oop-el-disenoorientado-a-objetos-la-realizacion-de-lo-posible
-Robledano, A. (2019, June 11). Qué es la programación orientada a objetos. OpenWebinars.net. https://openwebinars.net/blog/que-es-la-programacion-orientadaobjetos/
-Programación Orientada a Objetos Cuarto Semestre Presenta: Marilú Rivas García Maestra del Plantel Conalep -Xalapa Tipo de Módulo Profesional. (n.d.).
https://www.conalepveracruz.edu.mx/iniciobackup/wpcontent/uploads/2021/03/Programaci%C3%B3n-orientada-a-objetos-M%C3%93DULO-