Programación Orientada a Objetos (POO)
- OOP trata los datos como un elemento crítico en el desarrollo del programa y no permite que fluyan libremente por el sistema.
- En OOP, el mayor énfasis está en los datos más que en el procedimiento (función).
- Vincula los datos más estrechamente a la función que opera en ellos y los protege de modificaciones accidentales desde una función externa.
- OOP permite la descomposición de un problema en una serie de entidades llamadas objetos y luego construye datos y funciones alrededor de estos objetos.
- Los datos de un objeto solo pueden ser accedidos por la función asociada con ese objeto. Sin embargo, la función de un objeto puede acceder a la función de otros objetos.
- C++, Java, Dot Net, Python, etc. son el ejemplo del lenguaje de programación orientada a objetos (OOP).
Algunas características de la programación orientada a objetos: –
- El énfasis está en los datos más que en el procedimiento (función).
- Los programas se dividen en objetos.
- Las funciones que operan sobre los datos de un objeto están unidas en la estructura de datos.
- Los datos están ocultos y no se puede acceder a ellos mediante una función externa.
- Los objetos pueden comunicarse entre sí a través de la función.
- Se pueden agregar fácilmente nuevos datos y funciones cuando sea necesario.
- Sigue un enfoque de abajo hacia arriba en el diseño del programa.
Características de OOP (Programación Orientada a Objetos): –
- Clase
- Objeto
- Encapsulación
- Abstracción de datos
- Herencia
- Polimorfismo
- El enlace de datos
- Paso de mensajes
Aplicación de Programación Orientada a Objetos:-
- Diseño de interfaz de usuario como ventanas, menú
- Sistemas en tiempo real, como el sistema de control para automóviles, aviones, vehículos espaciales, etc.
- Sistema de automatización de oficinas, como el sistema de gestión de documentos, es decir, el sistema de procesamiento de textos, el software de hojas de cálculo, etc.
- IA y Sistema Experto
- Sistema de Redes Neuronales y programación paralela
- Sistema de apoyo a la decisión, etc.
Ventajas de la programación orientada a objetos: –
1. Productividad de desarrollo de software mejorada:
La programación orientada a objetos es modular, ya que proporciona separación de tareas en el desarrollo de programas basados en objetos. También es extensible, ya que los objetos se pueden ampliar para incluir nuevos atributos y comportamientos. Los objetos también se pueden reutilizar dentro y entre aplicaciones. Debido a estos tres factores (modularidad, extensibilidad y reutilización), la programación orientada a objetos proporciona una productividad de desarrollo de software mejorada en comparación con las técnicas tradicionales de programación basadas en procedimientos.
2. Mantenibilidad de software mejorada:
Dado que el diseño es modular, parte del sistema se puede actualizar en caso de problemas sin necesidad de realizar cambios a gran escala.
3. Desarrollo más rápido:
La reutilización permite un desarrollo más rápido. Los lenguajes de programación orientados a objetos vienen con ricas bibliotecas de objetos, y el código desarrollado durante los proyectos también se puede reutilizar en proyectos futuros.
4. Menor costo de desarrollo:
La reutilización de software también reduce el costo de desarrollo. Por lo general, se pone más esfuerzo en el análisis y diseño orientado a objetos, lo que reduce el costo total de desarrollo.
5. Software de mayor calidad:
Un desarrollo de software más rápido y un costo de desarrollo más bajo permiten que se utilicen más tiempo y recursos en la verificación del software. Aunque la calidad depende de la experiencia de los equipos, la programación orientada a objetos tiende a generar software de mayor calidad.
Desventajas de la programación orientada a objetos: –
1. Tamaño de programa más grande:
Los programas orientados a objetos son mucho más grandes que otros programas. En los primeros días de la informática, el espacio en los discos duros, en las unidades de disquete y en la memoria era escaso. Hoy no tenemos estas restricciones.
2. Esfuerzo:
Los programas orientados a objetos requieren mucho trabajo para crear. Específicamente, una gran parte de la planificación entra en un programa orientado a objetos mucho antes de que se escriba una sola pieza de código. Inicialmente, muchos sintieron que este esfuerzo inicial era una pérdida de tiempo. Además, debido a que los programas eran más grandes, los programadores pasaban más tiempo escribiendo el programa.
3. Velocidad:
Los programas orientados a objetos son más lentos que otros programas, en parte debido a su tamaño. Otros aspectos de los programas orientados a objetos también exigen más recursos del sistema, lo que ralentiza el programa.
Programación orientada a procedimientos (POP)
- En el enfoque orientado a procedimientos, los programas grandes se dividen en programas más pequeños conocidos como funciones.
- En POP, un programa se escribe como una secuencia de procedimientos o funciones.
- En POP, cada procedimiento (función) contiene una serie de instrucciones para realizar una tarea específica.
- Durante la ejecución del programa, cada procedimiento (función) puede ser llamado por los otros procedimientos.
- Para llamar a un procedimiento (función), tenemos que escribir solo el nombre de la función.
- Si bien nos concentramos en el desarrollo de funciones, prestamos muy poca atención a los datos que utilizan varias funciones.
- En POP, el mayor énfasis está en el procedimiento (función) y no en los datos.
- En un programa multifunción, muchos elementos de datos importantes se colocan como globales para que todas las funciones puedan acceder a ellos. Cada función puede tener sus propios datos locales.
- Los datos globales son más vulnerables a un cambio accidental de una función. En un programa grande es muy difícil identificar qué datos utiliza qué función.
- Ejemplos de lenguaje de programación orientado a procedimientos son COBOL, FORTRAN, PASCAL, lenguaje de programación C, etc.
Características de la programación orientada a procedimientos: –
- Los programas grandes se dividen en programas más pequeños conocidos como funciones.
- La mayoría de las funciones comparten datos globales.
- Los datos se mueven abiertamente por el sistema de una función a otra.
- Las funciones cambian el valor de los datos en cualquier momento desde cualquier lugar. (Las funciones transforman los datos de un formulario a otro).
- Utiliza un enfoque de arriba hacia abajo en el diseño del programa.
Retirarse:-
- En POP, se puede acceder a los datos globales y modificarlos mediante cualquier procedimiento (función), por lo que no hay seguridad de datos. En caso de que queramos cambiar el tipo de datos de los datos globales, también debemos resolver todas las funciones que acceden a los datos. Debido a esto, puede ocurrir que se produzcan algunos errores.
- POP no modela problemas del mundo real porque las funciones están orientadas a la acción.
Diferencia entre OOP y POP:
Programación orientada a objetos | ESTALLIDO |
---|---|
Orientado a objetos. | Orientado a la estructura. |
El programa se divide en objetos. | El programa se divide en funciones. |
Enfoque de abajo hacia arriba. | Enfoque de arriba hacia abajo. |
Se utiliza la propiedad de herencia. | No se permite la herencia. |
Utiliza el especificador de acceso. | No utiliza el especificador de acceso. |
La encapsulación se utiliza para ocultar los datos. | Sin ocultación de datos. |
Concepto de función virtual. | Sin función virtual. |
Las funciones de objeto están vinculadas a través del paso de mensajes. | Las partes del programa están vinculadas a través del paso de parámetros. |
Agregar nuevos datos y funciones es fácil | Expandir nuevos datos y funciones no es fácil. |
El código existente se puede reutilizar. | Sin reutilización de código. |
utilizar para resolver grandes problemas. | No es adecuado para resolver grandes problemas. |
C++, Java. | C, Pascual. |