Programacion orientada a objetos

UAA – Sistemas Electrónicos

Programación 2 / C++

Eduardo Serna-Pérez

3

Programación Orientada a Objetos

Es una metodología de diseño de software y un paradigma de programación en el que define a los programas en términos de “clases de objetos”, objetos que son entidades que combinan su estado (es decir, datos) y su comportamiento (esto es, procedimientos o funciones). Laprogramación orientada a objetos expresa un programa como un conjunto de estos objetos, y que a su vez se comunican entre ellos para realizar tareas. Esto difiere de los lenguajes procedurales tradicionales, en los que los datos y los procedimientos están separados y sin relación. Los programas diseñados con orientación a objetos están pensados para ser códigos más simples de mantener y reutilizar. Laprogramación orientada a objetos anima al programador a pensar los programas principalmente en términos de tipos de datos, y en segundo lugar en las operaciones (métodos) específicas que interactúan con esos datos. Mientras que los lenguajes procedurales animan al programador a pensar sobre todo en términos de procedimientos, y en segundo lugar en los datos que ésos procedimientos manejan. El primerlenguaje de programación orientado a objetos fue Simula I, creado en la década de 1960´s por Kristen Nygaard (Figura 1) y Ole-Johan Dahl (Figura 2), del Centro de Computación Noruego, originalmente fue desarrollado para apoyar la modelación de simulaciones de eventos discretos en procesos científicos e industriales, mediante la representación directa de objetos del mundo real.

Figura 1: KristenNygaard

Figura 2: Ole-Johan Dahl

Se sabe que Nygaard y Dahl estaban trabajando en un problema de simulación de envíos, y que debido a la explosión combinatoria del problema, llegaron a confundirse ya que los diferentes atributos de los diferentes envíos podrían afectar entre ellos. Entonces se les ocurrió la idea de agrupar los diferentes tipos de envíos en diferentes clases de objetos, asícada clase de objeto era responsable de defender sus propios datos y comportamientos. Con Simula I (1961 al 65) y Simula 67, Nygaard y Dahl introdujeron los conceptos bajo los cuales más tarde todos los lenguajes de programación orientada a objetos serian construidos: objetos, clases, herencia, cuantificador virtual y ejecución de programas multi-hilo. El termino “Orientado a Objetos” fue acuñadopor Alan Kay (Figura 3) en la década de 1970´s, así mismo, él es considerado también como uno de los creadores del modelo orientado a objetos y del diseño de interfaces gráficas de usuario (GUI en ingles). Alan Kay desarrollo mejoras sustánciales al modelo de programación, generando un lenguaje llamado Smalltalk que era un sistema completamente dinámico en el cual las clases pueden ser creadas ymodificadas dinámicamente.

1

UAA – Sistemas Electrónicos

Programación 2 / C++

Eduardo Serna-Pérez

En la primera mitad de la década de 1980’s la “Orientación a Objetos” se convirtió en una metodología de programación dominante debido principalmente a la influencia de Smalltalk. Su dominancia fue completamente cimentada por el surgimiento de los widget toolkit (herramientas GUI)desarrolladas principalmente en Smalltalk, para lo cual la orientación a objetos es decididamente la mejor opción. A partir de este punto, se desarrollaron más lenguajes de programación de éste tipo entre los que destacan Ada, C++, Oberon de Niklaus Wirth (Figura 4), Objective-C de Brad Cox, Eiffel, Perl, Python, PHP, Java y últimamente C#, VB.NET y Boo.

Figura 3: Alan Kay

Figura 4: Niklaus WirthA continuación explicaremos los puntos más importantes relacionados con este paradigma de programación, así como las bases en las que se sustenta su funcionamiento y metodología.

3.1

Conceptos de Programación Orientada a Objetos (POO)

El paradigma orientado a objetos se enfoca a las características de comportamiento y estructura de las entidades como unidades completas, lo que nos…