Contenido Poo

40
PROGRAMACIÓN ORIENTADA A OBJETOS PRESENTACIÓN Este presente trabajo ha sido elaborado para ofrecer información a las personas interesadas sobre la PROGRAMACION ORIENTA A OBJETOS toda la información requerida ha sido investigada por varias fuentes de información ya sean primarias como secundarias en la cual hemos tratado de sacar al máximo la información necesaria para poder concluir con esta elaboración de este documento que trata de la PROGRAMACION ORIENTADA A OBJETOS. Esperando así consecuentemente brindar la información precisa de este trabajo de investigación sea de utilidad y agrado del lector. 1

description

contenido poo

Transcript of Contenido Poo

PROGRAMACIN ORIENTADA A OBJETOS

PRESENTACINEste presente trabajo ha sido elaborado para ofrecer informacin a las personas interesadas sobre la PROGRAMACION ORIENTA A OBJETOS toda la informacin requerida ha sido investigada por varias fuentes de informacin ya sean primarias como secundarias en la cual hemos tratado de sacar al mximo la informacin necesaria para poder concluir con esta elaboracin de este documento que trata de la PROGRAMACION ORIENTADA A OBJETOS.Esperando as consecuentemente brindar la informacin precisa de este trabajo de investigacin sea de utilidad y agrado del lector.

INTRODUCCINLa programacin Orientada a objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real que otros tipos de programacin.Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en trminos de objetos, propiedades, mtodos y otras cosas que veremos rpidamente para aclarar conceptos y dar una pequea base que permita soltarnos un poco con este tipo de programacin. La programacin Orientada a objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real que otros tipos de programacin.Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en trminos de objetos, propiedades, mtodos y otras cosas que veremos rpidamente para aclarar conceptos y dar una pequea base que permita soltarnos un poco con este tipo de programacin.

CAPTULO IGENERALIDADES

1.1 OBJETIVOS Aprender los conceptos bsicos de la programacin orientada a objetos, comportamiento, relaciones y operaciones. Comprender por qu la programacin orientada a objetos sirve para reutilizar cdigo. Comprender los principios bsicos de la programacin orientada a objetos.1.2 Importancia Facilita la creacin de software de calidad potencia en mantenimiento, la extensin y la reutilizacin. Basada en el modo de pensar del hombre y en el modo de operar de la mquina. El elemento bsico no es la funcin (programacin estructurada), sino un ente denominado objeto.

CAPTULO IIBREVE RESEAHISTRICA

2.1 HISTORIA DE PROGRAMACIN ORIENTADA A OBJETOS La Programacin Orientacina Objetos (P.O.O.) surge en Noruega en1967con un lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en el centro de clculo noruego. Simula 67 introdujo por primera vez los conceptos de clases, corrutinas y subclases (conceptos muy similares a los lenguajes Orientados a Objetos de hoy en da).El nacimiento dela Programacin Orientacina Objetos en Europa pas inadvertido para gran parte de los programadores. Hoy tenemosla Orientacina Objetos como un nio de 33 aos al que todos quieren bautizar. Uno de los problemas de inicio de los aos setentas era que pocos sistemas lograban terminarse, pocos se terminaban con los requisitos iniciales y no todos los que se terminaban cumpliendo con los requerimientos se usaban segn lo planificado.

El problema consista en cmo adaptar el software a nuevos requerimientos imposibles de haber sido planificados inicialmente. Este alto grado de planificacin y previsin es contrario a la propia realidad. El hombre aprende y crea a travs de la experimentacin, no de la planeacin.La Orientacina Objetos brinda estos mtodos de experimentacin, no exige la planificacin de un proyecto por completo antes de escribir la primera lnea de cdigo.En los 70scientficos del centro de investigacin en Palo Alto Xerox (Xerox park) inventaron el lenguaje Small talk que dio respuesta al problema anterior (investigar no planificar).Small talk fue el primer lenguaje Orientado a Objetos puro de los lenguajes Orientados a Objetos, es decir, nicamente utiliza clases y objetos (Java usa tipos de datos primitivos, o bien los Wrappers que son clases que encapsulan tipos de datos primitivos).

Quien tuvo la idea fue D. Parnas cuando propuso la disciplina de ocultar la informacin. Su idea era encapsular cada una de las variables globales de la aplicacin en un solo mdulo junto con sus operaciones asociadas, slo mediante las cuales se poda tener acceso a esas variables.El resto de los mdulos (objetos) podan acceder a las variables slo de forma indirecta mediante las operaciones diseadas para tal efecto.En los aos 80sBjarne Stroustrup de AT&T Labs., ampli el lenguaje C para crear C++ que soporta la programacin Orientada a Objetos.En esta misma dcada se desarrollaron otros lenguajes Orientados a Objetos como Objective C, Common Lisp Object System (CIOS), object Pascal, Ada y otros. Posteriores mejoras en herramientas y lanzamientos comerciales de C++ por distintos fabricantes, justificaron la mayor atencin hacia la programacin Orientada a Objetos en la comunidad de desarrollo de software. El desarrollo tcnico del hardware y su disminucin del costo fue el detonante final. Con ms computadoras al alcance de ms personas ms programadores, ms problemas y ms algoritmos surgieron.En el inicio de los 90sse consolidala Orientacina Objetos como una de las mejores maneras para resolver problemas. Aumenta la necesidad de generar prototipos ms rpidamente (concepto RAD Rapid Aplication Developments). Sin esperar a que los requerimientos iniciales estn totalmente precisos.

En 1996surge un desarrollo llamado JAVA (extensin de C++). Su filosofa es aprovechar el software existente. Facilitar la adaptacin del mismo a otros usos diferentes a los originales sin necesidad de modificar el cdigo ya existente.En 1997-98se desarrollan herramientas CASE orientadas a objetos (como el diseo asistido por computadora).Del98 ala fechase desarrolla la arquitectura de objetos distribuidos RMI, Corba, COM, DCOM.Actualmente la orientacin a objetos parece ser el mejor paradigma, no obstante, no es una solucin a todos los problemas. Trata de eliminar la crisis del software.Entre los creadores de metodologas orientadas a objetos se encuentran: G. Booch, Rambaught, Ivar Jacobson y Peter Cheng

CAPTULO IIIQUE ES UN OBJETO

3.1 QU ES UN OBJETO? Un objeto no es ms que un conjunto de variables (o datos) y mtodos (o funciones) relacionados entre s. Los objetos en programacin se usan para modelar objetos o entidades del mundo real (el objeto hijo, madre, o farmacutica, por ejemplo). Un objeto es, por tanto, la representacin en un programa de un concepto, y contiene toda la informacin necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos. La siguiente figura muestra una representacin visual de un objeto.

3.1.1 Representacin visual de un objeto: Los atributos del objeto (estado) y lo que el objeto puede hacer (comportamiento) estn expresados por las variables y los mtodos que componen el objeto respectivamente. Por ejemplo, un objeto que modelase una bicicleta en el mundo real tendra variables que indicararan el estado actual de la bicicleta: su velocidad es de 20 km/h, su cadencia de pedaleo 90 r.p.m. y su marcha actual es la 5. Estas variables se conocen formalmente como variables instancia o variables miembro porque contienen el estado de un objeto bicicleta particular y, en programacin orientada a objetos, un objeto particular se denomina una instancia. Adems de estas variables, el objeto bicicleta podra tener mtodos para frenar, cambiar la cadencia de pedaleo, y cambiar de marcha (la bicicleta no tendra que tener un mtodo para cambiar su velocidad pues sta es funcin de la cadencia de pedaleo, la marcha en la que est y de si los frenos estn siendo utilizados o no, entre otros muchos factores). Estos mtodos se denominan formalmente mtodos instancia o mtodos miembro, ya que cambian el estado de una instancia u objeto bicicleta particular. La siguiente figura muestra una bicicleta modelada como un objeto:

El diagrama del objeto bicicleta muestra las variables objeto en el ncleo o centro del objeto y los mtodos rodeando el ncleo y protegindolo de otros objetos del programa. Este hecho de empaquetar o proteger la variable miembro con el mtodo miembro se denomina encapsulacin. Este dibujo conceptual que muestra el ncleo de variables miembro del objeto protegido por una membrana protectora de mtodos o funcin miembro es la representacin ideal de un objeto y es el ideal que los programadores de objetos suelen buscar. Sin embargo, debemos matizarlo. A menudo, por razones prcticas, es posible que un objeto desee exponer alguna de sus variables miembro, o proteger otras de sus propios mtodos o funcin miembro. Por ejemplo, Java permite establecer 4 niveles de proteccin de las variables y de la funcin miembro para casos como ste. Los niveles de proteccin determinan qu objetos y clases pueden acceder a qu variables o a qu mtodos.

De cualquier forma, el hecho de encapsular las variables y las funciones miembro relacionadas proporciona dos importantes beneficios a los programadores de aplicaciones:Capacidad de crear mdulos: El cdigo fuente de un objeto puede escribirse y mantenerse independiente del cdigo fuente del resto de los objetos. De esta forma, un objeto puede pasarse fcilmente de una parte a otra del programa. Podemos dejar nuestra bicicleta a un amigo, y sta seguir funcionando.

Proteccin de informacin: Un objeto tendr una interfaz pblica perfectamente definida que otros objetos podrn usar para comunicarse con l. De esta forma, los objetos pueden mantener informacin privada y pueden cambiar el modo de operar de sus funciones miembros sin que esto afecte a otros objetos que usen estas funciones miembro. Es decir, no necesitamos entender cmo funciona el mecanismo de cambio de marcha para hacer uso de l.

CAPTULO IVQUE ES UNA CLASE

4.1 QU ES UNA CLASE? Normalmente en el mundo real existen varios objetos de un mismo tipo, o como diremos enseguida, de una misma clase. Por ejemplo, mi bicicleta es una de las muchas bicicletas que existen en el mundo. Usando la terminologa de la programacin orientada a objetos, diremos que mi bicicleta es una instancia de la clase de objetos conocida como bicicletas. Todas las bicicletas tienen algunos estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos mtodos (cambiar de marcha, frenar) en comn. Sin embargo, el estado particular de cada bicicleta es independiente del estado de las dems bicicletas. La particularizacin de estos atributos puede ser diferente. Es decir, una bicicleta podr ser azul, y otra roja, pero ambas tienen en comn el hecho de tener una variable color. De este modo podemos definir una plantilla de variables y mtodos para todas las bicicletas. Las plantillas para crear objetos son denominadas clases.Una clase es una plantilla que define las variables y los mtodos que son comunes para todos los objetos de un cierto tipo. En nuestro ejemplo, la clase bicicleta definira variables miembros comunes a todas las bicicletas, como la marcha actual, la cadencia actual, etc. Esta clase tambin debe declarar e implementar los mtodos o funcin miembro que permiten al ciclista cambiar de marcha, frenar, y cambiar la cadencia de pedaleo, como se muestra en la siguiente figura: Definicin de la clase bicicleta

Despus de haber creado la clase bicicleta, podemos crear cualquier nmero de objetos bicicleta a partir de la clase. Cuando creamos una instancia de una clase, el sistema reserva suficiente memoria para el objeto con todas sus variables miembro. Cada instancia tiene su propia copia de las variables miembro definidas en la clase.

CAPTULO VCARCTERISTICAS

5.1 CARACTERSTICAS Hay un cierto desacuerdo sobre exactamente qu caractersticas de un mtodo de programacin o lenguaje le definen como "orientado a objetos", pero hay un consenso general en que las caractersticas siguientes son las ms importantes (para ms informacin, seguir los enlaces respectivos):5.1.1 Abstraccin: 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 revelarcmo 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. Una clase es una abstraccin que:* Enfatiza las caractersticas relevantes* Suprime otras caractersticas (simplificacin)La abstraccin nos ayuda a trabajar con cosas complejas. 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.Veamos los diferentes tipos de abstraccin que podemos encontrar en un programa:Abstraccin funcional: crear procedimientos y funciones e invocarlos mediante un nombre donde se destaca qu hace la funcin y se ignora cmo lo hace. El usuario slo necesita conocer la especificacin de la abstraccin (el qu) y puede ignorar el resto de los detalles (el cmo).

Abstraccin de datos:Tipo de datos: proporcionado por los leguajes de alto nivel. La representacin usada es invisible al programador, al cual solo se le permite ver las operaciones predefinidas para cada tipo.Tipos definidos: por el programador que posibilitan la definicin de valores de datos ms cercanos al problema que se pretende resolver.TDA: para la definicin y representacin de tipos de datos (valores + operaciones), junto con sus propiedades.Objetos: Son TDA a los que se aade propiedades de reutilizacin y de comparticin de cdigo.5.1.2 Encapsulamiento: La encapsulacin es el mecanismo que enlaza el cdigo y los datos, al tiempo que los agrupa frente a interferencias o fallos externos. Adems, la encapsulacin permite la creacin de un objeto. Dicho de forma simple, un objeto es una entidad lgica que encapsula los datos y el cdigo que manipula dichos datos. Dentro de un objeto, parte del cdigo y/o los datos puede ser privada al objeto y, por tanto, inaccesible desde fuera del mismo. De esta forma, un objeto ofrece un nivel significativo de proteccin frente a otras partes no relacionadas del programa que se modifican accidentalmente o se utilizan incorrectamente utilizando los miembros privados del objeto. Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone unainterfaza 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 pueden cambiar el estado interno de un objeto de maneras inesperadas, 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.

5.1.3 Polimorfismo: Los lenguajes de programacin orientada a objetos soportan el polimorfismo, que se caracteriza por la frase una interfaz, mltiples mtodos. En trminos sencillos, el polimorfismo es el atributo que permite utilizar una interfaz con una clase general de acciones. La accin especfica seleccionada viene determinada por la naturaleza exacta de la situacin. Un ejemplo real de polimorfismo es un termostato. Independientemente del tipo de energa que utilice una casa el termostato funciona de la misma forma. En este caso, el termostato (que podra ser la interfaz) es independiente del tipo de energa (mtodo) que se utilice. Tambin se puede aplicar el mismo principio a la programacin. Por ejemplo, se puede tener un programa que defina tres tipos diferentes de pilas. Una se utiliza para valores enteros, otra para valores de tipo carcter y otra para valores en como flotante. Debido al polimorfismo se pueden crear dos conjuntos de funciones denominados introducir () y recuperar () ( un conjunto por cada tipo de dato). El concepto general (interfaz) es el de introduccin de datos en una pila y recuperacin de los mismos. Las funciones definen los mecanismos (mtodos) especficas que se llevan a cabo para cada tipo de dato. Cuando se introducen datos en una pila, es el tipo de los datos la que determina la versin especifica de la funcin introducir () que se utilizara. El polimorfismo ayuda a reducir la complejidad permitiendo utilizar la misma interfaz para especificar una clase general de acciones. Es tarea del compilador seleccionar la accin especfica (es decir el mtodo) que se aplica a cada situacin. El programador no necesita realizar esta seleccin de forma manual. Solamente se necesita recordar y utilizar la interfaz general.5.1.4 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 enclasesy estas enrbolesoenrejadosque reflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que hayherencia mltiple.

CAPTULO VI CLASIFICACIN

6.1 Clasificacin Los lenguajes de programacin se determinan segn el nivel de abstraccin, Segn la forma de ejecucin y Segn el paradigma de programacin que poseen cada uno de ellos y esos pueden ser:6.1.1 Segn su nivel de abstraccin:Son aquellos que se acercan al funcionamiento de una computadora:

Lenguajes Maquina:

Estn escritos en lenguajes directamente inteligibles por la maquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior lo que supone una velocidad de ejecucin superior, solo que con poca fiabilidad y dificultad de verificar y poner a punto los programas.Lenguajes de bajo nivel:

Los lenguajes de bajo nivel son lenguajes de programacin que se acercan al funcionamiento de una computadora. El lenguaje de ms bajo nivel es, por excelencia, elcdigo mquina. A ste le sigue ellenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa. Lenguajes de medio nivel:

Hay lenguajes de programacin que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso dellenguaje C) al tener ciertas caractersticas que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje mas cercano al humano y, por tanto, de alto nivel. Lenguajes de alto nivel:

Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. En BASIC, el lenguaje de alto nivel ms conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rgida y sistemtica.

6.1.2 Segn la forma de ejecucin

Lenguajes compilados:

Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema.Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario).Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo.

Lenguajes interpretados:

Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de produccin

6.1.3 Segn el paradigma de programacin Un paradigma de programacin representa un enfoque particular o filosofa para la construccin del software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la situacin un paradigma resulta ms apropiado que otro.Atendiendo al paradigma de programacin, se pueden clasificar los lenguajes en:Elparadigma imperativo o por procedimientos:Es considerado el ms comn y est representado, por ejemplo, por elCo porBASIC.El paradigma funcional:Est representado por la familia de lenguajesLISP (en particularScheme),MLoHaskell.El paradigma lgico:Un ejemplo esPROLOG.El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos esSmalltalk.Nota:La representacin orientada a objetos mejora la estructura de los datos y por lo tanto se ha aplicado a diferentes paradigmas comoRedes de Petri, Imperativo Secuencial, Lgica de Predicados, Funcional, etc. No obstante, la manipulacin no queda fundamentalmente afectada y por lo tanto el paradigma inicial tampoco a pesar de ser re-orientado a objetos.

Si bien puede seleccionarse la forma pura de estos paradigmas al momento de programar, en la prctica es habitual que se mezclen, dando lugar a la programacin multiparadigma.Actualmente el paradigma de programacin ms usado debido a mltiples ventajas respecto a sus anteriores, es laprogramacin orientada a objetos.Lenguajes imperativos:

BASIC C C++ Java C# Perl unerg

Lenguajes Funcionales:

Puros:

Haskell Miranda

Hbridos:

Scheme Lips Ocaml Standard ML ML Scala

Lenguajes Lgicos:

Prolog

Lenguajes orientados a objetos:

ActionScript Ada C++C# VB.NET Visual FoxPro Clarion Delphi Harbour Eiffel Java JavaScript Lexico(en castellano) Objective-C, entre otros.

CAPTULO VII VENTAJAS Y DESVENTAJAS

7.1 Ventajas Los lenguajes orientados a objetos presenta las siguientes ventajas: Fomenta la reutilizacin y extensin del cdigo. Permite crear sistemas ms complejos. Relacionar el sistema al mundo real. Facilita la creacin de programas visuales. Construccin de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento del software Lo interesante de la POO es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible.Flexibilidad:Si partimos del hecho que mediante la definicin de clases establecemos mdulos independientes, a partir de los cuales podemos definir nuevas clases, entonces podemos pensar en estos mdulos como bloques con los cuales podemos construir diferentes programas.

Reusabilidad:Una vez que hemos definido a la entidad persona para utilizarla en una aplicacin de negocios, por mencionar un ejemplo, y deseamos construir a continuacin una aplicacin, digamos de deportes, en donde requerimos definir a la misma entidad persona, no es deseable volver a escribir la definicin para la entidad persona. Por medio de la reusabilidad podemos utilizar una clase definida previamente en las aplicaciones que nos sea conveniente. Es claro que la flexibilidad con la que se defini la clase va a ser fundamenta para su reutilizacin. Mantenibilidad:Las clases que conforman una aplicacin, vistas como mdulos independientes entre s, son fciles de mantener sin afectar a los dems componentes de la aplicacin. Extensibilidad:Gracias a la modularidad y a la herencia una aplicacin diseada bajo el paradigma de la orientacin a objetos puede ser fcilmente extensible para cubrir necesidades de crecimiento de la aplicacin.

7.2 DESVENTAJAS A pesar de que las ventajas de la programacin orientada a objetos superan a las limitaciones de la misma, podemos encontrar algunas caractersticas no deseables en sta.Limitaciones para el programador. No obstante que la tecnologa orientada a objetos no es nueva, un gran porcentaje de programadores no estn familiarizados con los conceptos de dicha tecnologa. En otras palabras, la lgica de la programacin estructurada sigue siendo predominante en la mayora de los desarrolladores de software, despus de haber revisado de forma breve los principios de la programacin orientada a objetos, nos es claro que en sta se requiere una lgica de pensamiento totalmente diferente a la lgica comnmente utilizada para la programacin estructurada. Tamao excesivo en las aplicaciones resultantes. La gran mayora de los equipos de cmputo cuentan con capacidades tanto de almacenamiento como de memoria lo suficientemente buena como para ejecutar la mayora de las aplicaciones que puedan desarrollarse con la tecnologa orientada a objetos, sin embargo existen casos en los que lo anterior no se cumple. Una de las desventajas de la programacin orientada a objetos es que cuando se heredan clases a partir de clases existentes se heredan de forma implcita todos los miembros de dicha clase aun cuando no todos se necesiten, lo que produce aplicaciones muy grandes que no siempre encajan en los sistemas con los que se disponga. Velocidad de ejecucin:Esto tiene que ver, en cierto modo, con el punto anterior, una aplicacin innecesariamente pesada en muchas ocasiones es ms lenta de ejecutar que una aplicacin conformada nicamente por los mdulos necesarios.

CAPTULO VIII CONCLUSIONES Y RECOMENDACIONES

8.1 CONCLUSIONES Podemos decir que los lenguajes de programacin orientados a objetos tratan a los programas como conjuntos de objetos que se ayudan entre ellos para realizar acciones, entendiendo como objeto a las entidades que contienen datos y permitiendo que los programas sean ms fciles de escribir mantener y reutilizar. Por otra parte la POO ( programacin orientada a objetos) representa un gran avance en la programacin, entre sus ventajas ms importante se encuentran un notable aumento de la productividad del programador y de la robustez de los programas, personalmente el lenguaje orientado a objetos que ms me agrada esEiffel(adems de sus caractersticas de orientacin a objetos, soporta la metodologa dediseo por contratos). Otro lenguaje muy bien diseado (y de uso creciente) esRuby. Tambin es recomendable, y muy simple para comenzar, el lenguajePython.8.2 RECOMENDACIONES Las tecnologas orientadas a objetos no son nuevas pero en nuestro medio se han aplicado desde hace algn tiempo sin profundizar en las bases tericas de la filosofa orientada a objetos por tanto los desarrolladores de software tienen en este documento una base terica y prctica (depsito de objetos) que seria til para la administracin y desarrollo de proyectos de software en ambiente orientado a objetos.

referencias BibliografcasPantigoso J. (2007) Borland C++ Lima, Per. Grupo editorial Megabyte Referencias electrnicas:http://elticus.com/?contenido=44http://www.ulfix.net/content/view/37/114/1/1/http://www.larevistainformatica.com/clasificacion-de-los-lenguajes-de-programacion.htmlhttp://74.125.45.104/searchq=cache:iAdQCvIk2fQJ:studies.ac.upc.edu/EPSC

29