1.
MODELO ORIENTADO A OBJETOS.
El
modelo orientado a objetos es el modelo teórico
que usa la mayoría de los programas actuales. La programación
orientada a objetos hunde sus raíces en los años
sesenta (en los que aparecieron los primeros lenguajes de
este tipo, llamados “Simula I” y “Simula
67”, desarrollados en el Centro Noruego de Computación,
en Oslo). En los primeros 70, aparece “Smalltalk”,
un lenguaje fundamental en la historia de la orientación
a objetos.
Sin
embargo, no es hasta la segunda mitad de los años
80 cuando la orientación de objetos se generaliza,
convirtiéndose
en el estándar predominante en los años 90,
de la mano de lenguajes como C++ y Java. El triunfo de la
programación orientada a objetos ha sido impulsado
por la enorme difusión de otras tecnologías
(como la interfaz gráfica o las arquitecturas distribuidas)
que son más fáciles de implementar mediante
este tipo de desarrollo que mediante una programación
tradicional.
Hoy
en día, la práctica totalidad de los lenguajes
de programación que surgen son orientados a objetos
y esta tecnología se ha convertido en el
estándar actual de programación que, a su vez,
está generando nuevos desarrollos muy prometedores
para el futuro (como, por ejemplo, la programación
orientada a aspectos).
La
idea de la orientación a objetos es modelar los
programas de una forma parecida a cómo percibimos
la realidad. Para la mente humana, el universo está compuesto
por una serie de “objetos” (en el sentido más
amplio de la palabra, incluyendo seres vivos, ideas, etc.).
Cada objeto tiene unas características que lo diferencian
de los demás y, con cada objeto, se pueden realizar
unas acciones que son propias y específicas del mismo.
Así, por ejemplo, un determinado auto tiene unas
características (color rojo, caja de cambios automática,
diesel, etc.) y puede realizar unas determinadas acciones
(acelerar, frenar, etc.).
La
programación orientada a objetos intenta modelar
estos objetos reales con estructuras de programa, llamadas “objetos
de software” o, simplemente, “objetos”.
Cada uno de estos objetos de software, está compuesto
por una serie de características (llamadas “atributos”)
y una serie de acciones (llamadas “métodos”),
al igual que un objeto de la vida real. Una representación
gráfica de un objeto de software se muestra en la
figura 2.
Figura 2. Representación gráfica
de un objeto de software
La
forma de programar estos objetos de software es similar
a la
forma en la que se comportan los objetos en la realidad.
Así, por ejemplo, en la vida real un auto contiene
piezas. Análogamente, en el programa, un objeto
de software “Auto” contiene
objetos “Pieza”, como podemos observar en la
figura 3.
Figura 3. El objeto "Auto" incluye objetos "Pieza"
Es
importante remarcar que el modelo orientado a objetos es
un modelo
que incluye tanto la parte estática de
un objeto (los “atributos” del mismo, es decir,
sus características) como su parte dinámica
(los “métodos”, es decir, sus acciones).
Usando una terminología bien conocida en desarrollo,
incluye tanto los “datos” como los “procesos”.
En
resumen, la programación orientada a objetos se
basa en la realidad. Su mayor ventaja es que simplifica el
mantenimiento de los programas y hace posible programar y
mantener hasta los programas más enormes al dividirlos
en partes más pequeñas, es decir, en objetos.
Como consecuencia, produce reducciones de costos y mayor
calidad del código y se ha convertido en el estándar
actual de programación.
|