Está en la página 1de 6

Programacin

Orientada a Objetos




Licenciatura en Informtica Administrativa


Programacin Orientada a Objetos (POO)
La programacin es una tcnica desarrollada desde la segunda mitad del
siglo XX, y a travs del paso del tiempo ha tenido diversos cambios, los
primeros avances hablando metodolgicamente fueron impulsados por
Wirth Dijstra, pero los cambios ms impactantes fuero los del cambio a la
programacin estructurada por Kernighan y Ritchie.
Con el tiempo fue evolucionando la manera en que las computadoras se
volvan ms sofisticada se tuvo la necesidad de crear lenguajes ms
completos que permitiera a los usuarios aprender de manera ms sencilla y
que no dependiera directamente de la computadora; es as como surge la
programacin orientada a objetos , es gracias a Smalltalk que es la primer
cientfico que experimenta ideas diferentes a la programacin
estructurada, comienza con la divisin de subclases que heredan
propiedades de la clase de la que provienen, pero conteniendo variables
y funciones nuevas. De la misma forma surge la idea del difcil manejo de
la memoria dinmica: los constructores y destructores de objetos.
A principios de los aos 90 se populariza un lenguaje orientado a objetos
llamado C++, creado por Bjarne Stroustrup; La idea de Bjarne Stroustrup fue
crear un lenguaje orientado a objetos que heredara prcticamente la
sintaxis y posibilidades del lenguaje que eran ms popular entre los
programadores de ese entonces en este caso , el lenguaje C. Este truco
ayud a popularizar la programacin orientada a objetos y prepar el
camino para la aparicin del Java.
Java fue creado a base de lo que haba proporcionado Bjarne Stroustrup,
pero este lenguaje ya era ms puro a la programacin orientada a objetos
; vindose desde otro punto se considera al lenguaje C como la transicin
de la programacin estructurada a la programacin orientada a objetos.
En los ltimos aos esta metodologa ha experimentado un gran proceso
no solo para el desarrollo de programas si no tambin en la forma de
pensar de las personas; la Programacin Orientada a Objetos (POO) no
solo se aplica a los lenguajes de programacin, sino que tambin se ha
utilizado en diversos mtodos como el de anlisis y diseo y otras reas,
tales como las bases de datos o las comunicaciones. Por lo tanto, para
hacer desarrollo de sistemas de software basados en la POO, hay que
entender bien todos los conceptos del modelo de objetos que estn
dentro de ella.
En el ao de 1970, surge la problemtica de que las variables globales
podan ser modificadas desde cualquier punto del programa, y es as
como el cientfico David L. Parnas que surge la idea de encapsular cada
una de las variables del programa con sus operaciones asociadas, y solo a
travs de estas se poda tener acceso a su uso, y el resto de los mdulos
solo poda acceder a ellas de manera indirecta; en la actualidad
llamamos objetos a estos tipos de mdulos.
Durante los aos setentas fue desarrollado el lenguaje de programacin
llamado SMALLTALK en los laboratorios Xerox en Estado Unidos, este
lenguaje adopt los conceptos de la programacin orientada a objetos.
El hecho de ser creado en Estados Unidos, contribuyo a que se introdujera
a escala mundial el trmino de Orientacin a Objetos (Object Oriented
[OO]) y que cobrara importancia entre los diseadores de lenguajes de
programacin, lo que hizo sobresalir a este lenguaje fue que adopt como
puntos principales los objetos y las clases.
Ya en el aos de 1985 surge otro lenguaje orientado a objetos como lo es
C++ (ya mencionado anteriormente), y en 1986 se crea otro lenguaje
llamado EIFFEL por B. Meyer, estos lugares tuvieron una gran importancia y
utilizacin en el aos de 1985 y hasta los primeros aos de los noventas.
Pero en el aos de 1995 surge JAVA, desarrollado por la empresa SUN
Microsystems, que se basa en conceptos de C++, pero simplificando la
herencia y en su lugar introduce el termino interfaz.
Es as como a travs de todos los cambios en las computadoras y en el
cambio constante de las necesidades de los cientficos surgen los
lenguajes de programacin orientada a objetos. Ahora ya explicados un
poco los orgenes de la Programacin Orientada a Objetos (POO),
podemos comenzar a explicar las ideas que tiene este tipo de
programacin.
La programacin orientada a objetos es la metodologa basada en el
concepto de objeto para imponer la estructura de los programas, nos
permite comprender el problema que se quiere resolver y a partir de ello
construir un modelo de solucin en el mundo real que nos rodea (nuestro
sistema); en palabras simples es la representacin del mundo mediante la
identificacin de objetos que constituyen el dominio del problema, su
organizacin (estructura) y sus responsabilidades (funciones).
La POO se basa en tres mtodos de organizacin basados en nuestra vida
cotidiana y en nuestra forma de pensar:
La diferencia entre un objeto y sus atributos: por ejemplo una
manzana que en este caso sera el objeto y sus atributos como su
sabor o peso.
La diferencia entre un objeto y sus componentes: el objeto seguira
siendo la manzana y sus componentes seran sus semillas o su
cascara.
La formacin y diferencia entre las diversas clases de objetos: por
ejemplo, las manzanas verdes, rojas, y amarillas.
Un gran punto a favor que tiene la programacin orientada a objetos es
que es as fcil de comprender para el usuario, ya que no tiene que dar
instrucciones directamente con la computadora, en este caso se hace uso
de objetos reales, de sus estados, o comportamientos en el mundo real, y
sin duda alguna esta metodologa de programacin eleva el nivel de
abstraccin del usuario.
Ya explicado en qu consiste la Programacin orientada a objetos
podemos describir algunas ventajas y desventajas que tiene.
Ventajas
Favorece la comunicacin entre analistas, diseadores y
programadores puesto que parten del mismo marco de referencia
(el mundo real).
Facilita la estructuracin de problemas complejos sin necesidad de
adentrarnos a modelos o normas, ya que como se viene
mencionando las estructuras provienen del mundo real, as de esta
forma facilita la tarea del analista.
La semntica de esta metodologa es ms sencilla (al provenir del
mundo natural) y de la misma manera permite que el usuario final
entienda los modelos del analista (ya que previenen del mundo
habitual que lo rodea).
Favorece el desarrollo y mantenimiento del software.
Desventajas
Se tiene que ser extremadamente cuidadoso a la hora de definir los
objetos ya que de ello depender el funcionamiento del programa,
precisamente el secreto de esta tcnica est en la definicin de
nuestros objetos.
Los analistas, diseadores y programadores deben conocer las
normas de este lenguaje, para que se pueda desarrollar de manera
adecuada, adems de tener experiencia en este tipo de
programacin.
Por otro lado podemos hablar de que la POO se basa en cuatro
conceptos fundamentales:
1. Objeto
2. Clase
3. Herencia
4. Envo de mensajes
Primero que nada tenemos que identificar que los tres primeros conceptos
se refieren a la parte estructural (esttica) del modelo, y el ltimo concepto
ya es la parte dinmica (comportamiento). Y ahora definiremos cada uno
de estos conceptos:
Qu es un objeto?
Ya hablando generalmente podemos definir a un objeto o tambin
llamado instancia, como una abstraccin conceptual del mundo real que
puede traducirse a un lenguaje de programacin orientado a objetos. Un
objeto puede poseer algunas caractersticas como las que mencionare a
continuacin:
Tienen identidad (es lo que lo distingue de los dems objetos), para
este caso est representado por la referencia.
Posee un estado (permite representar lo que es y cmo se
comporta), y el estado del objeto es la liste de variables con sus
atributos. Y el comportamiento lo podemos definir como un mtodo,
procedimiento o funcin que un objeto puede ejecutar a solicitud
de otro objeto.
Qu es una clase? (molde, esquema o patrn)
Podemos definir a las clases como un conjunto de objetos que son
similares o semejantes, los objetos pertenecientes a una clase deben tener
los mismos atributos (aunque pueden cambiar sus valores), posteriormente
poseen los mismos mtodos, que como ya se mencion son los que
definen su comportamiento. Es interesante describir que es lo que define
una clase, es decir cul es su funcin; esta debe definir el esquema de
datos y el comportamiento que tendrn los mtodos. Finalmente para
concluir esta parte podemos decir que a partir de la clase se llevara a
cabo la ejecucin del programa y la creacin de objetos.
Qu es una herencia?
Podemos explicar la herencia de la siguiente manera: una clase puede
heredar atributos y mtodos a varias subclases en este caso la clase
heredada es llamada superclase-, esto significa que la subclase aparte
de sus mtodos y atributos propios posee mtodos y atributos de la
superclase que fueron lo que heredo.
Qu es el envo de mensajes?
Este concepto se refiere a cuando los objetos quieren comunicarse entre s,
vemoslo de esta forma, un objeto recibe una llamada externa de solicitud
de un servicio (en este caso un mtodo), y este proceso se puede hacer de
manera sucesiva, se pueden llamar una y otra vez a los mtodos de otros
objetos.
Por mi parte considero que la Programacin Orientada a Objetos (POO), es
una de las metodologas de programacin ms sencillas, porque como lo
mencion en esta breve descripcin se hace uso de todo lo que tenemos
en nuestro mundo habitual y que nos permiten un abstraccin ms clara
de un problema a resolver, a partir de elementos comprensibles para
nosotros y los dems.


Bibliografa
Introduccin a la Programacin Orientada a Objetos
http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r51770.P
DF
Luis R. Izquierdo
Introduccin a la Programacin Orientada a Objetos
http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf