You are on page 1of 14

Programacin Orientada a Objetos 2012

1




E.A.P. INGENIERIA CIVIL


CURSO: Programacin Digital
TEMA: Programacin Orientada a Objetos
PROFESOR: Ing. Hugo Serrano Rodas
INTEGRANTES:
Alarcn Garca, Jonathan
Blas Penadillo, Carlos
CICLO: IV

2012


Programacin Orientada a Objetos 2012

2





























DEDICATORIA
Para nuestros seres queridos

Programacin Orientada a Objetos 2012

3




INTRODUCCION

Actualmente una de las reas ms candentes en la industria y en el mbito acadmico es
la orientacin a objetos. La orientacin a objetos promete mejoras de amplio alcance en la
forma de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a
largo plazo a los problemas y preocupaciones que han existido desde el comienzo en
el desarrollo de software: la falta de portabilidad del cdigo y reusabilidad, cdigo que es
difcil de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas.

Un lenguaje orientado a objetos ataca estos problemas. Tiene tres caractersticas bsicas:
debe estar basado en objetos, basado en clases y capaz de tener herencia de clases.
Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres.
La barrera ms difcil de sortear es usualmente la herencia.

El concepto de programacin orientada a objetos (OOP) no es nuevo, lenguajes clsicos
como SmallTalk se basan en ella. Dado que la OOP. Se basa en la idea natural de la
existencia de un mundo lleno de objetos y que la resolucin del problema se realiza en
trminos de objetos, un lenguaje se dice que est basado en objetos si soporta objetos
como una caracterstica fundamental del mismo.

El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos
definir un objeto como un conjunto complejo de datos y programas que
poseen estructura y forman parte de una organizacin.

Esta definicin especifica varias propiedades importantes de los objetos. En primer lugar,
un objeto no es un dato simple, sino que contiene en su interior cierto nmero de
componentes bien estructurados. En segundo lugar, cada objeto no es un ente aislado,
sino que forma parte de una organizacin jerrquica o de otro tipo.


Programacin Orientada a Objetos 2012

4






PRESENTACION

Este trabajo es un breve resumen de algunos trabajos encontradas en internet,
pginas que sern citadas al final en la bibligrafa.

Para comenzar y entender lo que trata este trabajo que es La programacin orientada a
objetos necesitamos entender bien dos conceptos fundamentales.

Es importante aclarar desde un principio la diferencia que existe entre programacin
orientada a objetos y un lenguaje orientado a objetos.

La programacin orientada a objetos es una filosofa, un modelo de programacin, con
su teora y su metodologa, que conviene conocer y estudiar antes de nada. Un lenguaje
orientado a objetos es un lenguaje de programacin que permite el diseo de aplicaciones
orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar
aplicaciones orientadas a objetos aprenda primero la filosofa (o adquiera la forma de
pensar) y despus el lenguaje, porque filosofa slo hay una y lenguajes muchos. En
este trabajo veremos brevemente los conceptos bsicos de la programacin orientada a
objetos desde un punto de vista global, sin particularizar para ningn lenguaje de
programacin especfico.











Programacin Orientada a Objetos 2012

5


PROGRAMACION ORIENTADA A OBJETOS


Concepto
La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) 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 encapsulamient
o. Su uso se populariz a principios de la dcada de los aos 1990. En la actualidad,
existe variedad de lenguajes de programacin que soportan la orientacin a objetos.

Conceptos fundamentales
La programacin orientada a objetos es una forma de programar que trata de encontrar
una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan
conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
Clase: definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciacin es la lectura de estas definiciones y la creacin de un
objeto a partir de ellas.
Herencia: (por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante
la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como
si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto,
puede usar los mismos mtodos y variables publicas declaradas en C. Los
componentes registrados como "privados" (private) tambin se heredan, pero como
no pertenecen a la clase, se mantienen escondidos al programador y slo pueden ser
accedidos a travs de otros mtodos pblicos. Esto es as para mantener hegemnico
el ideal de OOP.
Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (mtodos), los mismos que consecuentemente
reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos
rodea, o con objetos internos del sistema (del programa). Es una instancia a una
clase.
Mtodo: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se
desencadena tras la recepcin de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un
cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo
mensaje para otro objeto del sistema.
Evento: es un suceso en el sistema (tal como una interaccin del usuario con la
mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando
el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento la
reaccin que puede desencadenar un objeto; es decir, la accin que genera.
Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de
sus mtodos con ciertos parmetros asociados al evento que lo gener.
Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una
clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define
Programacin Orientada a Objetos 2012

6


como sus caractersticas predeterminadas, y cuyo valor puede ser alterado por la
ejecucin de algn mtodo.
Estado interno: es una variable que se declara privada, que puede ser nicamente
accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas
situaciones posibles para el objeto (o clase de objetos). No es visible al programador
que maneja una instancia de la clase.
Componentes de un objeto: atributos, identidad, relaciones y mtodos.
Identificacin de un objeto: un objeto se representa por medio de una tabla o
entidad que est compuesta por sus atributos y funciones correspondientes.
En comparacin con un lenguaje imperativo, una "variable" no es ms que un contenedor
interno del atributo del objeto o de un estado interno, as como la "funcin" es un
procedimiento interno del mtodo del objeto.

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 y 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. PHP en
su versin 5 se ha modificado; soporta una orientacin completa a objetos, cumpliendo
todas las caractersticas propias de la orientacin a objetos.

Programacin Orientada a Objetos 2012

7




Objetos

Los objetos son entidades que tienen un determinado estado, comportamiento
(mtodo) e identidad:
El estado est compuesto de datos o informaciones; sern uno o varios atributos a los
que se habrn asignado unos valores concretos (datos).
El comportamiento est definido por los mtodos o mensajes a los que sabe
responder dicho objeto, es decir, qu operaciones se pueden realizar con l.
La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras
palabras, es su identificador (concepto anlogo al de identificador de una variable o
una constante).
Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros
objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al
poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de
mecanismos de interaccin llamados mtodos, que favorecen la comunicacin entre ellos.
Esta comunicacin favorece a su vez el cambio de estado en los propios objetos. Esta
caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separa el
estado y el comportamiento.
Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por
la propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos
para poder tratar los atributos con los que cuenta. El programador debe pensar
indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de
ellos. Hacerlo podra producir el hbito errneo de crear clases contenedoras de
informacin por un lado y clases con mtodos que manejen a las primeras por el otro. De
esta manera se estara realizando una programacin estructurada camuflada en un
lenguaje de programacin orientado a objetos.
La POO difiere de la programacin estructurada tradicional, en la que los datos y los
procedimientos estn separados y sin relacin, ya que lo nico que se busca es el
procesamiento de unos datos de entrada para obtener otros de salida. La programacin
estructurada anima al programador a pensar sobre todo en trminos de procedimientos o
funciones, y en segundo lugar en las estructuras de datos que esos procedimientos
manejan. En la programacin estructurada solo se escriben funciones que procesan
datos. Los programadores que emplean POO, en cambio, primero definen objetos para
luego enviarles mensajes solicitndoles que realicen sus mtodos por s mismos.

Estructura de un Objeto

Un objeto puede considerarse como una especie de cpsula dividida en tres partes:

1. RELACIONES
2. PROPIEDADES
Programacin Orientada a Objetos 2012

8


3. METODOS

Cada uno de estos componentes desempea un papel totalmente independiente:

Las relaciones permiten que el objeto se inserte en la organizacin y estn formadas
esencialmente por punteros a otros objetos.

Las propiedades distinguen un objeto determinado de los restantes que forman parte de la
misma organizacin y tiene valores que dependen de la propiedad de que se trate. Las
propiedades de un objeto pueden ser heredadas a sus descendientes en la organizacin.

Los mtodos son las operaciones que pueden realizarse sobre el objeto, que
normalmente estarn incorporados en forma de programas (cdigo) que el objeto es
capaz de ejecutar y que tambin pone a disposicin de sus descendientes a travs de la
herencia.

Encapsulamiento y ocultacin
Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos y
programas, todos ellos relacionados entre s, como si estuvieran encerrados
conjuntamente en una cpsula. Esta propiedad (encapsulamiento), es una de las
caractersticas fundamentales en la OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los
programadores conozcan cmo est distribuida la informacin o qu informacin hay
disponible. Esta propiedad de los objetos se denomina ocultacin de la informacin.
Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un
objeto y a lo que contiene. Si as fuera no se podra hacer gran cosa con l. Lo que
sucede es que las peticiones de informacin a un objeto. Deben realizarse a travs
de mensajes dirigidos a l, con la orden de realizar la operacin pertinente. La respuesta
a estas rdenes ser la informacin requerida, siempre que el objeto considere que quien
enva el mensaje est autorizado para obtenerla.
El hecho de que cada objeto sea una cpsula facilita enormemente que un objeto
determinado pueda ser transportado a otro punto de la organizacin, o incluso a otra
organizacin totalmente diferente que precise de l. Si el objeto ha sido bien construido,
sus mtodos seguirn funcionando en el nuevo entorno sin problemas. Esta cualidad hace
que la OOP sea muy apta para la reutilizacin de programas.

Organizacin de los objetos
En principio, los objetos forman siempre una organizacin jerrquica, en el sentido de que
ciertos objetos son superiores a otros de cierto modo.
Existen varios tipos de jerarquas: sern simples cuando su estructura pueda ser
representada por medio de un "rbol". En otros casos puede ser ms compleja.
En cualquier caso, sea la estructura simple o compleja, podrn distinguirse en ella tres
niveles de objetos.
La raz de la jerarqua. Se trata de un objeto nico y especial. Este se caracteriza
por estar en el nivel ms alto de la estructura y suele recibir un nombre muy
Programacin Orientada a Objetos 2012

9


genrico, que indica su categora especial, como por ejemplo objeto madre, Raz o
Entidad.
Los objetos intermedios. Son aquellos que descienden directamente de la raz y
que a su vez tienen descendientes. Representan conjuntos o clases de objetos,
que pueden ser muy generales o muy especializados, segn la aplicacin.
Normalmente reciben nombres genricos que denotan al conjunto de objetos que
representan, por ejemplo, VENTANA, CUENTA, FICHERO. En un conjunto
reciben el nombre de clases o tipos si descienden de otra clase o subclase.
Los objetos terminales. Son todos aquellos que descienden de una clase o
subclase y no tienen descendientes. Suelen llamarse casos
particulares, instancias o tems porque representan los elementos del conjunto
representado por la clase o subclase a la que pertenecen.

Caractersticas de la POO
Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos". Las
caractersticas siguientes son las ms importantes:
Abstraccin: denota las caractersticas esenciales de un objeto, donde se capturan
sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse"
con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas.
Los procesos, las funciones o los mtodos pueden tambin ser abstrados, y, cuando
lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. El
proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un
conjunto e identificar comportamientos comunes para definir nuevos tipos de
entidades en el mundo real. La abstraccin es clave en el proceso de anlisis y diseo
orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de
clases que permitan modelar la realidad o el problema que se quiere atacar.
Encapsulamiento: significa reunir todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite
aumentar la cohesin de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultacin, principalmente porque se suelen emplear
conjuntamente.
Modularidad: se denomina modularidad a la propiedad que permite subdividir una
aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe
ser tan independiente como sea posible de la aplicacin en s y de las restantes
partes. Estos mdulos se pueden compilar por separado, pero tienen conexiones con
otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la modularidad
de diversas formas.
Principio de ocultacin: cada objeto est aislado del exterior, es un mdulo natural,
y cada tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden
interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un
objeto contra su modificacin por quien no tenga derecho a acceder a ellas;
solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto
asegura que otros objetos no puedan cambiar el estado interno de un objeto de
Programacin Orientada a Objetos 2012

10


manera inesperada, eliminando efectos secundarios e interacciones inesperadas.
Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del
objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin
entera se reduce a un agregado o rompecabezas de objetos.
Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden
compartir el mismo nombre; al llamarlos por ese nombre se utilizar el
comportamiento correspondiente al objeto que se est usando. O, dicho de otro modo,
las referencias y las colecciones de objetos pueden contener objetos de diferentes
tipos, y la invocacin de un comportamiento en una referencia producir el
comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre
en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin tarda o
asignacin dinmica. Algunos lenguajes proporcionan medios ms estticos (en
"tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga de
operadores de C++.
Herencia: las clases no estn aisladas, sino que se relacionan entre s, formando una
jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento
de todas las clases a las que pertenecen. La herencia organiza y facilita el
polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados
como tipos especializados de objetos preexistentes. Estos pueden compartir (y
extender) su comportamiento sin tener que volver a implementarlo. Esto suele
hacerse habitualmente agrupando los objetos en clases y estas en
rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto hereda
de ms de una clase se dice que hay herencia mltiple.
Recoleccin de basura: la recoleccin de basura o garbage collector es la tcnica
por la cual el entorno de objetos se encarga de destruir automticamente, y por tanto
desvincular la memoria asociada, los objetos que hayan quedado sin ninguna
referencia a ellos. Esto significa que el programador no debe preocuparse por la
asignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevo
objeto y la liberar cuando nadie lo est usando. En la mayora de los lenguajes
hbridos que se extendieron para soportar el Paradigma de Programacin Orientada a
Objetos como C++ u Object Pascal, esta caracterstica no existe y la memoria debe
desasignarse expresamente.

Lenguajes orientados a objetos
Simula (1967) es aceptado como el primer lenguaje que posee las caractersticas
principales de un lenguaje orientado a objetos. Fue creado para hacer programas de
simulacin, en donde los "objetos" son la representacin de la informacin ms
importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo cannico, y con el que
gran parte de la teora de la programacin orientada a objetos se ha desarrollado.
Entre los lenguajes orientados a objetos se destacan los siguientes:
ABAP -> SAP Lenguaje orientado a eventos
ABL Lenguaje de programacin de OpenEdge de Progress Software
Programacin Orientada a Objetos 2012

11


ActionScript
ActionScript 3
Ada
C++
C#
Clarion
Clipper (lenguaje de programacin) (Versin 5.x con librera de objetos Class(y))
D
Object Pascal (Embarcadero Delphi)
Gambas
Genie
Harbour
Eiffel
Fortran 90/95
Java
JavaScript (la herencia se realiza por medio de la programacin basada en prototipos)
Lexico (en castellano)
Objective-C
Ocaml
Oz
R
Perl (soporta herencia mltiple. La resolucin se realiza en preorden, pero puede
modificarse al algoritmo linearization C3 por medio del mdulo Class::C3 en CPAN)
PHP (a partir de su versin 5)
PowerBuilder
Python
Ruby
Self
Smalltalk (Entorno de objetos puro)
Magik (SmallWorld)
Vala
VB.NET
Visual FoxPro (en su versin 6)
Visual Basic 6.0
Visual DataFlex
Visual Objects
XBase++
Lenguaje DRP
Lenguaje de programacin Scala (lenguaje usado por Twitter) http://www.scala-
lang.org/page.jsp
Muchos de estos lenguajes de programacin no son puramente orientados a objetos, sino
que son hbridos que combinan la POO con otros paradigmas.
Al igual que C++, otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object
REXX, han sido creados aadiendo extensiones orientadas a objetos a un lenguaje de
programacin clsico.
Programacin Orientada a Objetos 2012

12


Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin
Orientada a Aspectos (POA). Aunque es todava una metodologa en estado de
maduracin, cada vez atrae a ms investigadores e incluso proyectos comerciales en todo
el mundo.

Consideraciones finales

Beneficios que se obtienen del desarrollo con OOP:
Da a da los costos del Hardware decrecen. As surgen nuevas reas de aplicacin
cotidianamente: procesamiento de imgenes y sonido, bases de datos multi
mediales, automatizacin de oficinas, ambientes de ingeniera de software, etc. An en
las aplicaciones tradicionales encontramos que definir inter fases hombre-mquina "a-la-
Windows" suele ser bastante conveniente.
Lamentablemente, los costos de produccin de software siguen aumentando; el
mantenimiento y la modificacin de sistemas complejos suele ser una tarea trabajosa;
cada aplicacin, (aunque tenga aspectos similares a otra) suele encararse como
un proyecto nuevo, etc.
Todos estos problemas an no han sido solucionados en forma completa. Pero como los
objetos son portables (tericamente) mientras que la herencia permite la reusabilidad del
cdigo orientado a objetos, es ms sencillo modificar cdigo existente porque los objetos
no interaccionan excepto a travs de mensajes; en consecuencia un cambio en
la codificacin de un objeto no afectar la operacin con otro objeto siempre que los
mtodos respectivos permanezcan intactos. La introduccin de tecnologa de objetos
como una herramienta conceptual para analizar, disear e implementar aplicaciones
permite obtener aplicaciones ms modificables, fcilmente extensibles y a partir de
componentes reusables. Esta reusabilidad del cdigo disminuye el tiempo que se utiliza
en el desarrollo y hace que el desarrollo del software sea ms intuitivo porque la gente
piensa naturalmente en trminos de objetos ms que en trminos de algoritmos de
software.

Problemas derivados de la utilizacin de OOP en la actualidad:
Un sistema orientado a objetos, por lo visto, puede parecer un paraso virtual. El problema
sin embargo surge en la implementacin de tal sistema. Muchas compaas oyen acerca
de los beneficios de un sistema orientado a objetos e invierten gran cantidad
de recursos luego comienzan a darse cuenta que han impuesto una nueva cultura que es
ajena a los programadores actuales. Especficamente los siguientes temas suelen
aparecer repetidamente:

Curvas de aprendizaje largas. Un sistema orientado a objetos ve al mundo en una forma
nica. Involucra la conceptualizacin de todos los elementos de un programa, desde
subsistemas a los datos, en la forma de objetos. Toda la comunicacin entre los objetos
debe realizarse en la forma de mensajes. Esta no es la forma en que estn escritos los
programas orientados a objetos actualmente; al hacer la transicin a un sistema orientado
a objetos la mayora de los programadores deben capacitarse nuevamente antes
de poder usarlo.
Programacin Orientada a Objetos 2012

13


Dependencia del lenguaje. A pesar de la portabilidad conceptual de los objetos en un
sistema orientado a objetos, en la prctica existen muchas dependencias. Muchos
lenguajes orientados a objetos estn compitiendo actualmente para dominar el mercado.
Cambiar el lenguaje de implementacin de un sistema orientado a objetos no es una tarea
sencilla; por ejemplo C++ soporta el concepto de herencia mltiple mientras que
SmallTalk no lo soporta; en consecuencia la eleccin de un lenguaje tiene ramificaciones
de diseo muy importantes.
Determinacin de las clases. Una clase es un molde que se utiliza para crear nuevos
objetos. En consecuencia es importante crear el conjunto de clases adecuado para un
proyecto. Desafortunadamente la definicin de las clases es ms un arte que una ciencia.
Si bien hay muchas jerarquas de clase predefinidas usualmente se deben crear clases
especficas para la aplicacin que se est desarrollando. Luego, en 6 meses 1 ao se
da cuenta que las clases que se establecieron no son posibles; en ese caso ser
necesario reestructurar la jerarqua de clases devastando totalmente
la planificacin original.
Performance. En un sistema donde todo es un objeto y toda interaccin es a travs de
mensajes, el trfico de mensajes afecta la performance. A medida que la tecnologa
avanza y la velocidad de micro procesamiento, potencia y tamao de la
memoria aumentan, la situacin mejorar; pero en la situacin actual, un diseo de una
aplicacin orientada a objetos que no tiene en cuenta la performance no ser viable
comercialmente.
Idealmente, habra una forma de atacar estos problemas eficientemente al mismo tiempo
que se obtienen los beneficios del desarrollo de una estrategia orientada a objetos.
Debera existir una metodologa fcil de aprender e independiente del lenguaje, y fcil de
reestructurar que no drene la performance del sistema.
















Programacin Orientada a Objetos 2012

14


CONCLUSIONES

El elemento fundamental de la OOP es, como su nombre lo indica, el objeto.
Podemos definir un objeto como un conjunto complejo de datos y programas que
poseen estructura y forman parte de una organizacin.

La programacin orientada a objetos es una filosofa, un modelo de
programacin, con su teora y su metodologa. Un lenguaje orientado a objetos es
un lenguaje de programacin que permite el diseo de aplicaciones orientadas a
objetos.

La programacin orientada a objetos es una forma de programar que trata de
encontrar una solucin a muchos problemas. Introduce nuevos conceptos, que
superan y amplan conceptos antiguos ya conocidos.

BIBLIOGRAFIA
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objeto

http://www.monografias.com/trabajos/objetos/objetos.shtml

You might also like