Está en la página 1de 5

LA PROGRAMACIN ORIENTADA A OBJETOS O POO

Es un paradigma de programacin que usa los objetos en sus interacciones, para


disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo
herencia, cohesin, abstraccin, polimorfismo, acoplamiento y encapsulamiento. Su uso se
populariz a principios de la dcada de los aos 1990. En la actualidad, existe una gran
variedad de lenguajes de programacin que soportan la orientacin a objetos.
ORIGEN
Los conceptos de la programacin orientada a objetos tienen origen en Simula 67,
un lenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen
Nygaard, del Centro de Cmputo Noruego en Oslo. En este centro se trabajaba en
simulaciones de naves, que fueron confundidas por la explosin combinatoria de cmo las
diversas cualidades de diferentes naves podan afectar unas a las otras. La idea surgi al
agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada
clase de objetos de definir sus propios datos y comportamientos. Fueron refinados ms
tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versin fue
escrita sobre Basic) pero diseado para ser un sistema completamente dinmico en el cual
los objetos se podran crear y modificar "sobre la marcha" (en tiempo de ejecucin) en
lugar de tener un sistema basado en programas estticos.
La programacin orientada a objetos se fue convirtiendo en el estilo de programacin
dominante a mediados de los aos ochenta, en gran parte debido a la influencia de C++,
una extensin del lenguaje de programacin C. Su dominacin fue consolidada gracias al
auge de las Interfaces grficas de usuario, para las cuales la programacin orientada a
objetos est particularmente bien adaptada. En este caso, se habla tambin de programacin
dirigida por eventos.
Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes existentes
durante ese tiempo, incluyendo Ada, BASIC, Lisp mas Pascal, entre otros. La adicin de
estas caractersticas a los lenguajes que no fueron diseados inicialmente para ellas condujo
a menudo a problemas de compatibilidad y en la capacidad de mantenimiento del cdigo.
Los lenguajes orientados a objetos "puros", por su parte, carecan de las caractersticas de
las cuales muchos programadores haban venido a depender. Para saltar este obstculo, se

hicieron muchas tentativas para crear nuevos lenguajes basados en mtodos orientados a
objetos, pero permitiendo algunas caractersticas imperativas de maneras "seguras". El
Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos
objetivos, pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la
aparicin de Internet y a la implementacin de la mquina virtual de Java en la mayora de
navegadores. PHPen su versin 5 se ha modificado; soporta una orientacin completa a
objetos, cumpliendo todas las caractersticas propias de la orientacin a objetos.
CARACTERSTICAS DE LA P.O.O.:
No hay un acuerdo aceptado por todo el mundo respecto a cules son las caractersticas que
definen la POO, pero al menos todos concuerdan en estas tres:
1. Abstraccin:
Cada vez que pronunciamos una palabra, realmente lo que hacemos es asociar ese sonido (o
ese conjunto de garabatos al escribir) con una serie de cosas. Decimos que una ave es tal
cosa, que una silla es tal otra, etc.
Cuando vamos a aplicar la POO, lo primero que debemos hacer es cumplir con una vieja
mxima de guerra: Divide y Vencers. Es decir, lo que hacemos es seccionar nuestro cdigo
en grupos de cdigo ms pequeo que, al unirlos, hacen el trabajo. Un buen ejemplo de
abstraccin es el cuerpo humano, aunque el cuerpo es una unidad, est dividido en lo que
conocemos por sistemas (el sistema respiratorio, el sistema linftico, cardiovascular, etc.,
etc.). Estos sistemas, a su vez estn compuestos por otros ms pequeos: los rganos, y as
sucesivamente. La abstraccin nos permite dividir nuestro programa en distintos objetos
que se agrupan para formar cosas ms complejas.
Pero qu demonios es realmente la abstraccin? Bsicamente es la capacidad de separar
los elementos (al menos mentalmente) para poder verlos de forma singular. Como cuando
describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc.
2. Encapsulacin:
Tambin conocida como ocultamiento. Cuando me acuesto a ver televisin no me preocupo
del modo como ste funciona, o lo que hace para cambiar de canal o aumentar el volumen.

A menos que seas experto en electrnica o tcnico en televisores, te pasar lo mismo: no lo


sabes y no te importa; slo sabes que al presionar un botn ocurre la magia.
La encapsulacin se encarga de mantener ocultos los procesos internos que necesita para
hacer lo que sea que haga, dndole al programador acceso slo a lo que necesita. Esto da
dos ventajas iniciales: Lo que hace el usuario puede ser controlado internamente (incluso
sus errores), evitando que todo colapse por una intervencin indeseada (t no quieres que tu
mam, que no tiene ni idea de electrnica, abra tu televisor y empiece a jugar con los
circuitos para cambiar los canales manualmente verdad?). La segunda ventaja es que, al
hacer que la mayor parte del cdigo est oculto, puedes hacer cambios y/o mejoras sin que
eso afecte el modo como los usuarios van a utilizar tu cdigo. Slo tienes que mantener
igual la forma de acceder a l (en el caso del control de la tele, que los botones sigan siendo
los mismos y que el botn de apagado no cambie el volumen). Por cierto, estas puertas de
acceso que das a los usuarios son lo que se conoce como interfaz.
3. Herencia:
Uno de los elementos (a mi modo de ver) ms interesantes de la P.O.O. La herencia es la
capacidad que tiene una clase de derivar las propiedades y mtodos de otra (suena a chino
no? Calma, lo veremos luego con paciencia ;) ). Tratemos de explicarlo con un ejemplo:
Decimos que una gallina es un ave; esto quiere decir que las gallinas tienen caractersticas
comunes con otras aves (pico, plumas, etc.), es decir que la gallina hereda las caractersticas
comunes de todas las aves. Pero adems, resulta que un ave es un animal, lo que significa
que tambin comparte caractersticas comunes al caballo, el perro, el hombre (seeee, somos
animales) y cualquier otra cosa que pueda ser clasificada como animal.
La herencia nos permite, entre otras cosas, evitar tener que escribir el mismo cdigo una y
otra vez, puesto que al definir que una categora (que en programacin llamaremos clase)
pertenece a otra, automticamente estamos atribuyndoles las caractersticas generales de la
primera, sin tener que definirlas de nuevo.
INTERFAZ GRFICA DE USUARIO
La interfaz grfica de usuario, conocida tambin como GUI (del ingls graphical user
interface) es un programa informtico que acta de interfaz de usuario, utilizando un
conjunto de imgenes y objetos grficos para representar la informacin y acciones

disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual


sencillo para permitir la comunicacin con el sistema operativo de una mquina o
computador.
Habitualmente las acciones se realizan mediante manipulacin directa, para facilitar la
interaccin del usuario con la computadora. Surge como evolucin de las interfaces de lnea
de comandos que se usaban para operar los primeros sistemas operativos y es pieza
fundamental en un entorno grfico. Como ejemplos de interfaz grfica de usuario, cabe
citar los entornos de escritorio Windows, el X-Window de GNU/Linux o el de Mac OS X,
Aqua.
En el contexto del proceso de interaccin persona-ordenador, la interfaz grfica de usuario
es el artefacto tecnolgico de un sistema interactivo que posibilita, a travs del uso y la
representacin del lenguaje visual, una interaccin amigable con un sistema informtico.
TIPOS DE INTERFACES GRFICAS DE USUARIO
GUI'S Y ZOOMING USER INTERFACE
Los tipos de GUIs que se encuentran en juegos de computadora, y los GUIs avanzados
basados en realidad virtual, se usan con frecuencia en tareas de investigacin. Muchos
grupos de investigacin en Norteamrica y Europa estn trabajando actualmente en la
interfaz de enfoque del usuario o ZUI (Zooming User Interface), que es un adelanto lgico
de las GUI, mezclando 3D con 2D. Podra expresarse como "2 dimensiones y media en
objetos vectoriales de una dimensin".
INTERFAZ DE USUARIO DE PANTALLA TCTIL
Algunos GUIs son diseados para cumplir con los rigurosos requisitos de los mercados
verticales. stos se conocen como "GUIs de uso especfico." Un ejemplo de un GUI de uso
especfico es la ahora familiar touchscreen o pantalla tctil (pantalla que al ser tocada
efecta los comandos del ratn en el software). Se encuentra actualmente implementado en
muchos restaurantes y en muchas tiendas de autoservicio de todo el mundo. Fue iniciado
por Gene Mosher en la computadora del ST de Atari en 1986, el uso que l especfic en las

GUIs de pantalla tctil ha encabezado una revolucin mundial en el uso de las


computadoras a travs de las industrias alimenticias y de bebidas, y en ventas al por menor.
Otros ejemplos de GUIs de uso especfico, relacionados con la pantalla tctil son los
cajeros automticos, los kioscos de informacin y las pantallas de monitoreo y control en
los usos industriales, que emplean un sistema operativo de tiempo real (RTOS). Los
telfonos mviles y los sistemas o consolas de juego tambin emplean las pantallas tctiles.
Adems la domtica no es posible sin una buena interfaz de usuario, o GUI.
INTERFAZ NATURAL DE USUARIO
Las NUI naturales son aquellas en las que se interacta con un sistema, aplicacin, etc., sin
utilizar dispositivos de entrada como ratn, teclado, lpiz ptico, etc. En lugar de stos se
utilizan las manos o las yemas de los dedos.

También podría gustarte