INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA EN OBJETOS



Programación Orientada a Objetos vs Programación Estructurada ...

HISTORIA

Evolución de los Paradigmas de programación en relacion a la POO ...  ¿Cómo surge la POO? Este surge a partir de le hecho de que no se podía adaptar el Software a nuevos requisitos y que por supuesto no estaban previstos. Lo que permite la orientación de objetos es poder intentar o probar hacer un proyecto sin la necesidad de tener que escribirlo o hacerlo completamente de una vez. La solución que idearon unos desarrolladores Noruegos fue diseñar el programa paralelamente al objeto físico. Es decir, si el objeto físico tenía un número x de componentes, el programa también tendría x módulos, uno por cada pieza. Esto resolvió los dos problemas planteados. Primero, ofrecía una forma natural de dividir un programa muy complejo y, en segundo lugar, el mantenimiento pasaba a ser controlable. De la misma manera que los sistemas físicos se comunican enviándose señales, los módulos informáticos se comunicarían enviándose mensajes. Para llevar a la práctica estas ideas, crearon un lenguaje llamado Simula 67.

  Luego de unos años, en los 70 en EE.UU se creo un lenguaje de programación orientada puro, el SmallTalk lo que crea son clases y objetos, incluyendo las variables de tipos más simples. La primera versión se conoció como Smalltalk-72, aunque fueron surgiendo nuevas versiones (76, 80,..) que pasaron de ser desarrolladas sólo para máquinas Xerox a serlo para la mayoría de plataformas disponibles. Otros lenguajes como este que fueron apareciendo son:
-FLAVORS
-CEYX
-LOOPS
C++ - Wikipedia, la enciclopedia libreLa mayoría de las vertientes tomadas por estos lenguajes se fusionaron en CLOS (Common Lisp Object System) que fue el primer lenguaje orientado a objetos que tuvo un estándar ANSI. En 1984, Bjarne Stroustrup de ATT-Bell se planteó crear un sucesor al lenguaje C, e incorporó las principales ideas de Smalltalk y de Simula 67, creando el lenguaje C++.

  En los 90 se consolida la Orientación a Objetos como una de las mejores maneras para resolver problemas de programación. Aumenta la necesidad de generar prototipos más rápidamente (concepto RAD Rapid Aplication Development) sin esperar a que los requisitos iniciales estén totalmente precisos. En esta década se implanta con fuerza el concepto de reutilización, cuyo sentido es facilitar la adaptación de objetos ya creados a otros usos diferentes a los originales sin necesidad de modificar el código ya existente. A medio y largo plazo, el beneficio que puede obtenerse derivado de la reutilización es muy importante, y, quizás, es la razón principal por la que la industria informática se ha abocado a la orientación a objetos.
  El mundo de los lenguajes de programación orientados a objeto evoluciona día a día y, continuamente, surgen nuevos lenguajes o nuevas versiones de lenguajes ya consolidados.


EVOLUCIÓN

Programación Estructurada

A finales de los años 1970 Böhm-Jacopini propuso un nuevo teorema de programación estructurada que demostró que todo programa puede escribirse utilizando únicamente las tres instrucciones de control:

  • Secuencia.
  • Instrucción condicional.
  • Iteración (bucle de instrucciones) con condición inicial.

así como la programación estructurada apareció para solventar deficiencias de su antecesor esta tan bien presentaba algunas deficiencias como:

  • Distinta abstracción del mundo. 
  • Dificultad en modificación y actualización. 
  •  Dificultad en mantenimiento.
  •  Dificultad en reutilización. 

A la hora de afrontar la construcción de grandes aplicaciones, estos defectos pueden provocar que muchos proyectos sean inabordables. La Programación Orientada a Objetos surgió con el objetivo de erradicar los problemas expuestos.

Programación Orientada a Objetos

Supone un cambio en la concepción del mundo del desarrollo de Software, introduciendo un mayor nivel de abstracciones que mejoran las características del código final.

Los aportes de este paradigma se pueden resumir en:

  • Abstracción del mundo centrada en los seres (clase y objeto)
  • Facilitar el mantenimiento y evolución de los sistemas debido a que el acceso a los datos se produce controlada e independientemente de la representación final de los mismos.
  • Simplificación del desarrollo de sistemas mediante conceptos como la composición, la herencia y el polimorfismo.

Comentarios

Entradas populares de este blog

Repaso de "HTML"

Repaso de "Java Script"

Programación 5ºC