PARADIGMA ORIENTADO A OBJETOS
rdpalacios23 de Septiembre de 2014
4.356 Palabras (18 Páginas)179 Visitas
INTRODUCCION
Vivimos en un mundo de objetos, donde éstos existen en la naturaleza en entidades hechas por el hombre, en los negocios y en los productos que usamos. Pueden ser clasificados, descritos, organizados, combinados, manipulados y creados. Por eso, no es sorprendente que se proponga una visión orientada a objetos para la creación de software, una abstracción que modela el mundo de forma tal que nos ayuda a entenderlo y gobernarlo mejor.
La primera vez que se propuso un enfoque orientado a objetos para el desarrollo de software fue a finales de los años sesenta. Sin embargo, las tecnologías de objetos han necesitado casi veinte años para llegar a ser ampliamente usadas. Durante los años 90, la creación de software con programación orientada a objetos se convirtió en el paradigma de elección para muchos productores de software y para un creciente número de sistemas de información.
Cuando se habla de la programación orientada a objetos se está hablando de una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de soluciones de programación.
La programación orientada a objetos surge en la historia como un intento para dominar la complejidad que, de forma innata, posee el software. Tradicionalmente, la forma de enfrentarse a esta complejidad ha sido empleando lo que se llama programación estructurada, que consiste en descomponer el problema en subproblemas hasta llegar a acciones muy simples y fáciles de codificar.
Es otra forma de descomponer problemas, es una nueva forma de pensar, una manera distinta de enfocar los problemas. La definición de objetos implica la descripción de atributos, comportamientos, operaciones y mensajes. Un objeto encapsula tanto datos como los procesos que se aplican a esos datos.
El Paradigma de Orientado a Objetos es muy atractivo para muchas organizaciones de software debido a que la reutilización es un atributo importantísimo de este paradigma. Las tecnologías de objetos llevan a reutilizar, y la reutilización (de componente de software) lleva a un desarrollo de software más rápido y a programas de mejor calidad.
El software orientado a objetos es más fácil de mantener debido a que su estructura es inherentemente poco acoplada. Esto lleva a menores efectos colaterales cuando se deben hacer cambios y provoca menos frustración a los ingenieros, analistas y programadores del software, y en el cliente. Además, los sistemas orientados a objetos son más fáciles de adaptar y más fácilmente escalables (por ejemplo: pueden crearse grandes sistemas ensamblando subsistemas reutilizables).
Para que un software sea considerado como componente de este paradigma debe reunir las características de: abstracción, encapsulación, herencia y polimorfismo, además de los conceptos básicos que las forman: objetos, mensajes, clases, instancias y métodos.
En estas características y conceptos radica la dificultad de aprender un lenguaje totalmente orientado a objetos, como Java por ejemplo, sin conocer previamente los pilares de la programación orientada a objetos. Es lo que se tratará de explicar en de forma sintetizada en este trabajo.
2. CONCEPTO
Los Lenguajes de Programación proporcionan mecanismos para implementar una filosofía o paradigma de programación.
Un Paradigma es la forma de entender y representar la realidad. Es un conjunto de teorías, estándares y métodos que, juntos, representan un modo de organizar el pensamiento, es decir, el modo de ver el mundo.
La orientación a objetos puede describirse como el conjunto de disciplinas que desarrollan y modelizan software que facilitan la construcción de sistemas complejos a partir de componentes. El paradigma orientado a objetos se basa en la noción de clases y objetos.
Según Grady Booch , Paradigma Orientado a Objetos es una metodología de desarrollo de aplicaciones en la cual éstas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son miembros de jerarquías de clases unidas mediante relaciones de herencia.
Según Wikipedia, "La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos". Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Nuestro concepto: "Es el Paradigma que define objetos y clases como la base de la programación. Cada objeto está definido por sus atributos y su comportamiento está definido por las operaciones que dichos objetos puedan hacer".
La Programación Orientada a Objetos muestra a un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas, lo que permite hacer los programas y módulos más fáciles de escribir, mantener y utilizar.
3. ANTECEDENTES
A partir de la década de los 70 se originó la llamada Crisis del Software debido a una serie de problemas encontrados en el desarrollo de sistemas para computadoras. La crisis también se derivó de la contradicción entre el desarrollo del hardware y su aprovechamiento a través del software, esto es, que se dedicó poco esfuerzo al desarrollo de metodologías para la creación del software, creando un atraso de entre una y dos generaciones entre los microprocesadores y el software que los manipula. Las respuestas a estos problemas fueron entre otras:
• Programación estructurada en los lenguajes de programación.
• Modularidad y organización de bibliotecas.
Estas mejoras no fueron suficientes para resolver el problema ya que no se consideró:
• Recursos humanos para el mantenimiento consistente en adaptar el software a nuevos requerimientos imposibles de haber sido planificados inicialmente.
• Errores del software, esto es, resultados erróneos.
• Altos costos y tiempo de desarrollo muy largos.
• El análisis era deficiente, lo cual derivaba cambios y adaptaciones.
• Problemas de comunicación entre los diferentes módulos al momento de la unión.
• Sistemas poco flexibles y confiables. Esto ocurre cuando el sistema no cubre las necesidades del usuario final, es decir no proporciona la información que el usuario requiere.
• Información no confiable.
• Sistemas difíciles de manipular
Los especialistas en software llegaron a la conclusión de que en cualquier técnica que trate de resolver los problemas antes mencionados, el desarrollo de sistemas deberá contemplar las siguientes características:
• Entender el problema y dominarlo
• Comunicación entre personas
• Prever cambios continuos
• Reutilizar el código
Entonces surge como una alternativa el enfoque orientado a objetos. Es importante señalar que la programación orientada a objetos no es una revolución, sino que surge como resultado de la evolución de los lenguajes de programación de tercera generación y de la necesidad de idear nuevos métodos y metodologías para enfrentar el análisis, diseño y codificación de sistemas complejos de software.
En 1967 se desarrolló SIMULA, que es un lenguaje para aplicaciones de simulación y se le considera como el precursor en la introducción del concepto de objeto.
En los 70's el modelo de objeto se amplia y surge el primer lenguaje de Programación Orientada a Objetos (POO) llamado Smalltalk. A fines de los años 80's surge Eiffell, Actor, C++, Objetive C, que son lenguajes con potencialidad para el desarrollo de aplicaciones complejas. En 1995 surge Java para la programación del Web-Internet.
4. HISTORIA
Se puede considerar que el Paradigma de Programación Orientada a Objetos (Object Oriented Programming) surgió con el lenguaje de programación Simula desarrollado por Kristen Nygaard y Ole-Johan Dahl en 1967 en el Centro de Computación Noruego (The Norwegian Computing Center).
Simula se definió como un lenguaje de programación orientado a la simulación de procesos, con el que se podían definir distintos tipos de actividades. En este lenguaje aparecen por primera vez los conceptos de clases y objeto.
La programación orientada a objetos se fue convirtiendo en el estilo de programación dominante de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.
En 1995 apareció JAVA, el más reciente lenguaje OO, desarrollado por la empresa SUN Microsystems, que hereda conceptos de C++, pero los simplifica y evita la herencia múltiple. En su lugar se introduce el término interfaz y la herencia múltiple de interfaces. Obtiene una rápida aceptación gracias a los applets, que son programas en JAVA insertados en páginas WEB dentro del código HTML.
Estos programas pueden viajar a través del internet y brindarle al usuario mayor interactividad con las páginas WEB. JAVA introduce también, programación concurrente y distribuida.
El lenguaje es mitad compilado y mitad interpretado dando como resultado la portabilidad a distintas plataformas. JAVA aún sigue evolucionando, pero ya se convirtió
...