viernes, 9 de octubre de 2015

INTRODUCCIÓN A LA PROGRAMACION ORIENTADO A OBJETOS



La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos. Actualmente una de las áreas más candentes en la industria y en el ámbito académico es la orientación a objetos. La orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del código y reusabilidad, código que es difícil de modificar, ciclos de desarrollo largos y técnicas de codificación no intuitivas.

Objetos:

  •   Herencia múltiple: suele ser común a la mayoría de los lenguajes OOP, aunque introduce un problema al existir la posibilidad de que el objeto sucesor herede el mismo atributo, aunque con distinto tipo y valor, de más de un predecesor.
  •   Eficiencia: Los lenguajes de POO arrastraron en un principio la reputación de ser ineficaces. Esto se debía en gran medida a que los primeros lenguajes (como Smalltalk) eran interpretados y no compilados. La existencia de compiladores permite a los desarrolladores ganar rapidez.
  •   Asignación de tipos: Los lenguajes orientados a objetos varían de forma sustancial la forma por la que se aproximan a la asignación de tipos. • Por asignación de tipos entendemos que cada variable sea identificada como perteneciente a una clase (asignación fuerte) o sea simplemente un objeto indeterminado (asignación débil).
  •   Manejo de memoria: La POO son lenguajes que utilizan de manera intensiva la memoria de la computadora. Hay dos tipos de aproximación a la gestión de memoria. El sistema en tiempo de ejecución libera la memoria automáticamente a medida que los objetos dejan de utilizarse.
  •   Encapsulamiento: consiste en separar aquellos atributos del objeto que deben ser conocidos por el resto, de aquellos necesarios para su funcionamiento propio.
  •   Polimorfismo: Comportamientos diferentes, asociados a objetos de distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.


Ventajas y desventajas de programación orientada a objetos


Ventajas:

  •   Uniformidad: ya que la representación de los objetos lleva a implicar tanto el análisis como el diseño y la codificación de los mismos.
  •   Comprensión: tanto los datos que componen los objetos, como los procedimientos que los manipulan, están agrupados en clases, que corresponden con las estructuras de información que el programa trata.
  •   Flexibilidad: al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedara reflejado automáticamente en cualquier lugar donde estos datos aparezcan.
  •   Estabilidad: dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo.

Desventajas:

A pesar de que las ventajas de la programación orientada a objetos superan a las limitaciones de la misma, podemos encontrar algunas características no deseables en ésta. Limitaciones para el programador. No obstante que la tecnología orientada a objetos no es nueva, un gran porcentaje de programadores no están familiarizados con los conceptos de dicha tecnología. En otras palabras, la lógica de la programación estructurada sigue siendo predominante en la mayoría de los desarrolladores de software, después de haber revisado de forma breve los principios de la programación orientada a objetos, nos es claro que en ésta se requiere una lógica de pensamiento totalmente diferente a la lógica comúnmente utilizada para la programación estructurada. Tamaño excesivo en las aplicaciones resultantes. La gran mayoría de los equipos de cómputo cuentan con capacidades tanto de almacenamiento como de memoria lo suficientemente buena como para ejecutar la mayoría de las aplicaciones que puedan desarrollarse con la tecnología orientada a objetos, sin embargo existen casos en los que lo anterior no se cumple.

No hay comentarios:

Publicar un comentario