Programacion Orientada A Objetos
Enviado por juandiazlopez • 25 de Febrero de 2015 • 3.722 Palabras (15 Páginas) • 283 Visitas
PROGRAMACIÓN ORIENTADA A OBJETOS
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 reciente 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 a estos problemas fueron entre otras:
• Programaciones estructuradas 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 requerimiento imposibles de haber sido planificados inicialmente.
• Errores del software, esto es, resultados erróneos.
• Altos costos y tiempo de desarrollo muy largos.
1. El análisis era deficiente, lo cual derivaba cambios y adaptaciones.
2. Problemas de comunicación entre los diferentes módulos al momento de la unión.
• Sistemas poco flexibles y confiables.
1. Esto ocurre cuando el sistema no cubre las necesidades del usuario final.
2. No proporciona la información que el usuario requiere.
3. Información no confiable.
4. sistema difícil de manipular.
Ante tantos problemas, los especialistas en software llegaron a la conclusión de que en cualquier técnica que trate de resolver los problemas anteriores, 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.
Historia de la Programación Orientada a Objetos (POO).
Al mismo tiempo que se da la Crisis del Software, por otro lado la Orientación a Objetos (OO) se empezó a discutir a fines de los años 60 con el desarrollo del lenguaje SIMULA67 por Nygaard y Ole-Johan Dahl en el Centro de Cálculo Noruego, en él, introdujeron los conceptos de clase, subclases y rutinas, muy parecidos los conceptos a los lenguajes orientados a objetos de hoy en día. A mitad de la década de los 70 los científicos del Centro de Investigaciones Palo
Alto de XEROX (PARC) (XEROX Palo Alto Research Center) crearon el lenguaje SMALLTALK, el primer lenguaje orientado a objetos consistente y completo. En él cada elemento del lenguaje fue realizado un objeto. Este último lenguaje evolucionó a través de varios lanzamientos realizados por PARC.
A pesar de este movimiento temprano hacia los lenguajes orientados a objetos, sólo se lograron pequeñas incursiones en la comunidad de la programación general. El progreso reciente se ha acelerado debido principalmente a la disponibilidad de las extensiones orientadas a objetos para dos lenguajes populares:
C y PASCAL, y a las extensiones prometidas para otros lenguajes comerciales populares como BASIC y COBOL.
Paradigma de la Programación Orientada a Objetos.
Para aquel que no es un programador, Orientación a Objetos significa algo bastante familiar: considerar al mundo como un conjunto de entidades u objetos que están relacionados y se comunican entre ellos.
Esta es la forma en que la gente normal ve el mundo, así es que este pensamiento tiene intrínsecamente sentido.
La Orientación a Objetos se basa en estas ideas: un programa es un mundo que representa un subconjunto del mundo real. La estructura del programa se simplifica en gran medida si cada una de las entidades u objetos del problema que se está modelando corresponde directamente con un objeto que se puede manipular internamente en un programa.
Para el desarrollo de sistemas, la orientación a objetos es un nivel de abstracción de computadora más allá de los procedimientos y los datos. La orientación a objetos anima al desarrollador de sistemas a concentrarse en los temas importantes e ignorar el resto a la hora de la modelación.
El hecho de que el tema central sean los objetos, aunque intuitivamente, marca una desviación significativa de los anteriores paradigmas de la programación.
Una ecuación para reconocer una aproximación a la Orientación a Objetos es:
ORIENTACIÓN_OBJETOS = CLASES Y OBJETOS + HERENCIA + COMUNICACIÓN CON MENSAJES
Todos los sistemas que merecen la descripción de Orientado a Objetos contienen estos mecanismos esenciales, aunque los mecanismos pueden no estar realizados exactamente de la misma forma. Analicemos ahora los términos de la ecuación.
OBJETOS (Sinónimo de instancia). Es la abstracción de alguna cosa en el dominio del problema que refleja la capacidad de un sistema de alcanzar información alrededor de él. Los objetos, por lo tanto, son entidades que tienen atributos (datos) y formas de comportamiento (procedimientos) particulares. Las aplicaciones pueden constar de diferentes clases de objetos. Un objeto pasivo es el que actúa solamente bajo petición. Los objetos activos efectúan el seguimiento de los sucesos que ocurren en una aplicación y actúan de forma autónoma.
CLASE. Una clase es una descripción de un conjunto de objetos casi idénticos. Una clase consta de métodos y datos que resumen las características comunes de los objetos, incluyendo una descripción de cómo crear un nuevo objeto de la clase. En otras palabras, las clases contienen los anteproyectos para crear objetos.
Redefiniendo un objeto. Un objeto es un modelo o instancia de una clase.
Ejemplos de estos conceptos (utilizaremos un lenguaje más fácil de entender para definirlos):
Una clase es un molde que define los datos y procedimientos que actúan sobre esos datos y los objetos serán los elementos producidos por ese molde.
Ejemplo 1
Consideremos cómo un programador podría designar una aplicación de procesamiento de una posición en el espacio en forma orientada a objetos.
Clase Posición
Los objetos serían Punto A, Punto B donde tanto Punto A como Punto B tienen las características de posición.
Ejemplo 2:
Veamos ahora cómo sería la aplicación con el sistema de los números complejos en forma orientada
...