Sie sind auf Seite 1von 7

Programacin IV

Tema 1

Introduccin a la programacin Orientada a Objetos


Actualmente una de las reas ms candentes en la industria y en el mbito acadmico es la orientacin a objetos. La Tecnologa Orientada a Objeto (TOO) no solo se aplica a los lenguajes de programacin, sino que tambin se ha propagado a los mtodos de anlisis y diseo y a otras reas tales como las bases de datos y las comunicaciones. La OO promete mejoras de amplio alcance en el 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 difcil de modificar ciclos de desarrollo largos plazos no cumplidos tcnicas de codificacin no intuitivas Un lenguaje orientado a objetos ataca estos problemas. Si bien el paradigma de objetos tiene caractersticas bien definidas, no est libre de la influencia de tcnicas anteriores, tales como la programacin estructurada, los conceptos de abstraccin y de tipos definidos por el usuario1 (UDT). Las caractersticas sobresalientes de las dos tcnicas ms conocidas son: Programacin Estructurada Se emplea desde principios de la dcada de los 70. Es an uno de los mtodos ms utilizados en el campo de la programacin. Los programas se construyen descomponiendo el programa en funciones. En un programa estructurado, lo importante es qu se hace y en segundo plano se piensa en sobre qu estructuras se hace. Los datos locales se ocultan dentro de funciones, y los datos compartidos se pasan como argumentos. En consecuencia, la disposicin de los datos no se puede cambiar sin modificar todas las funciones que acceden a ellos. Presenta problemas en desarrollos realizados por muchas personas, o que estn geogrficamente distribuidas, dado que la comunicacin entre los mismos no es eficiente. Existe reutilizacin basada en bibliotecas de funciones, sin embargo stas siempre tienen dependencia de los datos. La Programacin Orientada a Objetos Con esta tecnologa, cobra relevancia sobre qu se hace y no qu se hace. La reutilizacin se realiza a travs de la derivacin de nuevas clases a partir de clases ya existentes: las bibliotecas de clases predefinidas, que poseen los distintos lenguajes, y las definidas por los propios usuarios. Cuando el software se empaqueta en forma de clases, stas pueden reutilizarse en sistemas de software posteriores. Los grupos de clases relacionados se empaquetan comnmente como componentes reutilizables. En la comunidad del software, se cree que el factor ms importante que afecta al futuro del desarrollo del software es la reutilizacin. Reutilizar clases existentes cuando se crean nuevas clases y programas es un proceso que ahorra tiempo y esfuerzo. Adems, permite crear sistemas ms confiables, ya que las clases existentes a menudo han pasado por un proceso extenso de prueba y depuracin. El paradigma de objetos no es totalmente nuevo, sino que naci de la mano de los problemas de simulacin, y de lenguajes como Flavors y Smalltalk, hace ya ms de dos dcadas. Sin embargo, su auge comenz hace unos diez aos, siendo dos los aspectos que lo han impulsado especialmente: Su uso en aplicaciones comerciales, saliendo del mbito acadmico. La aparicin de metodologas avanzadas de desarrollo orientado a objetos.

Tambin conocido como TDA o TAD (Tipo Abstracto de Dato)

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 1

La crisis del software


En una definicin simple se puede decir que Software es el conjunto de instrucciones que permite al hardware de la computadora desempear trabajo til. Muy frecuentemente se piensa que hacer software significa hacer programas. Sin embargo, ms all de los pequeos programas que realiza un aficionado para su uso personal, generalmente se deben desarrollar productos complejos, para gran cantidad de usuarios, siendo personas distintas quienes los desarrollan o los mantienen, y que por lo tanto deben cumplir requisitos de interfaz hombre-mquina (amigabilidad), legibilidad, robustez, documentacin, etc. Por otra parte, un sistema no es un agregado de programas, y su complejidad crece ms que linealmente con la cantidad de programas que contiene. Una definicin clsica de sistema de software es: conjunto de programas que, trabajando como conjunto, tienen un propsito especfico y mayor a la suma de las partes. El desarrollo de un sistema de software requiere la escritura de grandes cantidades de nuevo software y la reutilizacin de software existente. Este ltimo punto se vuelve cada vez ms importante, dado que tambin aumenta la necesidad de obtener resultados en el menor tiempo posible. La complejidad del software est dada por distintos factores: Tamao del software: o Inicialmente, los programas se desarrollaban en lenguaje ensamblador, y contaban en general con un centenar de lneas o En la actualidad, se utilizan lenguajes de alto nivel con hasta millones de lneas de cdigo, dado que cada vez existe un mayor grado de complejidad. mbitos de la Complejidad Podemos verlo desde dos mbitos distintos: o Complejidad del problema: la implementacin se descompone en centenares de mdulos independientes, que implica tener un equipo de desarrolladores, ya que es imposible que uno solo lleve adelante un proyecto de gran magnitud, y fundamentalmente en el tiempo requerido. o Complejidad humana: cuanto ms desarrolladores, las comunicaciones entre ellos son ms complejas, la coordinacin es difcil. En algunos casos, los equipos se encuentran dispersos geogrficamente (proyectos grandes). Se complica la integracin de los distintos mdulos Al principio, la produccin de software era un problema secundario. Las computadoras eran muy pocas y el costo de fabricarlas era muy superior al de programarlas. Pero a medida que avanzaba el tiempo, stas se fueron haciendo ms complejas, y la demanda de productos de software creci en mayor proporcin que la capacidad de producirlos y mantenerlos. Esta situacin es la que se conoce como crisis del software. Los desarrolladores de sistemas y los usuarios fueron conscientes de esta crisis. El desarrollo de sistemas software a menudo se haca fuera de plazo y de presupuesto, de forma no fiable y, sobre todo, no cumpla los requisitos desde el punto de vista del usuario. Un estudio de la poca del Standish Group2 hecho sobre 352 compaas de software, donde se estudiaron ms de 8.000 proyectos de software, revelaron lo siguiente: El 31% de los proyectos de software fueron cancelados antes de terminar (US$81 billones perdidos) El 53% de los proyectos tuvieron un costo 189% mayor de lo estimado. El 9% de los proyectos se terminaron a tiempo y dentro del presupuesto (compaas grandes). El 16% de los proyectos se terminaron a tiempo y dentro del presupuesto (compaas pequeas). A raz de estos datos, se les pregunt a las empresas sobre las causas de estos problemas. Las tres principales razones expuestas fueron las siguientes: Falta de informacin por parte de los usuarios (12.8%) Especificaciones y requerimientos incompletos (12.3%) Cambios en las especificaciones y requerimientos (11.8%) Del anlisis de stos y otros estudios, se ha llegado a la siguiente conclusin: Si una unidad de costo de uno es asignada al esfuerzo requerido para detectar y reparar un error durante la etapa de codificacin, entonces el costo para detectar y reparar un error durante la etapa de requerimientos es entre cinco y diez
2 Conocida firma de investigaciones que realiza bianualmente el un estudio sobre el nmero de proyectos IT que culminan exitosamente y los que se quedan en el camino.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 1

veces menor. Ms aun, el costo de detectar y reparar un error durante la etapa de mantenimiento es veinte veces ms alto. Era evidente la necesidad de hallar nuevas y mejores tcnicas de produccin.

Ingeniera del Software


A mediados de la dcada de los 60, aparece el concepto de Ingeniera de Software, como un enfoque ms metodolgico para el desarrollo de software. En primer lugar surgieron las llamadas tcnicas estructuradas de anlisis, diseo y programacin, que recin cobraron relevancia a mediados de la dcada de los 80. Segn el estndar IEEE, la ingeniera de software es "(1) la aplicacin de un mtodo sistemtico, disciplinado y cuantificable al desarrollo, operacin y mantenimiento de software, esto es, la aplicacin de la ingeniera al software" y "(2) el estudio de los mtodos de (1)", La ingeniera del software estudia la aplicacin de tcnicas formales de desarrollo a la construccin de programas, buscando obtener productos de calidad, con la menor relacin costo/eficiencia Los problemas que presenta el software se pueden resumir en: Incremento de la complejidad Siempre cambiante Dificultad para hacerlo fiable Dificultad para probarlo Dificultad para la especificacin de requisitos Las nuevas metodologas suponen un enfoque integral del problema, abarcando todas las fases, que en su mayora no se consideraba en los desarrollos tradicionales. El propsito de aplicar metodologas es lograr procesos predecibles y repetibles que mejoren la productividad y la calidad. En particular se busca la reduccin de costos y plazos, as como la calidad del producto final. Para ello se realiza un tratamiento sistemtico del proceso de desarrollo. El proceso de desarrollo de software "es aquel en que las necesidades del usuario son traducidas en requerimientos de software (requerimientos funcionales), estos requerimientos transformados en diseo y el diseo implementado en cdigo, el cdigo es probado, documentado y certificado para su uso operativo". La formalizacin del proceso de desarrollo se define como un marco de referencia denominado ciclo de desarrollo del software o ciclo de vida del software. Se puede describir como, "el perodo de tiempo que comienza con la decisin de desarrollar un producto software y finaliza cuando se ha entregado ste". Este ciclo, por lo general incluye las fases: requisitos diseo implantacin prueba instalacin aceptacin El ciclo de desarrollo software se utiliza para estructurar las actividades que se llevan a cabo en el desarrollo de un producto software. A pesar de que no hay acuerdo acerca del uso y la forma del modelo, cualquiera de ellos sigue siendo til para la comprensin y el control del proceso. La ingeniera de software tiene varios modelos de desarrollo en los cuales se puede apoyar para la realizacin de software, de los cuales se destacan los siguientes, por ser los ms utilizados y los ms completos: Modelo en cascada (ciclo de vida clsico) Modelo de mejora iterativa Modelo de prototipos

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 1

Factores de Calidad del software


El proceso de ingeniera de software se define como "un conjunto de etapas parcialmente ordenadas con la intencin de lograr un objetivo, en este caso, la obtencin de un producto de software de calidad" [Jacobson 1998]. Hay muchas cualidades de software que son deseables. Algunas de stas se aplican tanto al producto como al proceso usado para producir el producto. El usuario quiere que el producto de software sea confiable, eficiente y fcil de usar. El productor del software quiere que sea verificable, mantenible (que se pueda mantener), portable y extensible. El director del proyecto de software quiere que el proceso de desarrollo del software sea productivo y fcil de controlar. Cualidades Externas Versus Internas Las cualidades externas son visibles a los usuarios del sistema; las cualidades internas son aquellas que incumben a los que desarrollan el sistema. En general, a los usuarios del software slo les preocupan las cualidades externas, pero son las cualidades internas (las que se vinculan con gran parte de la estructura del software) las que ayudan a los que las desarrollan a obtener las cualidades externas. En muchos casos, incluso, las cualidades se relacionan estrechamente y la distincin entre internas y externas no es ntida. Para ser considerado software de calidad, debe cumplir con la mayora de los siguientes requisitos: Performance (Eficiencia): Capacidad de un software para hacer un buen uso de los recursos que manipula. En la actualidad ya no se da tanta importancia al almacenamiento como recurso, pero s cobra relevancia el tiempo de respuesta, lo que implica un eficaz uso del procesador. Portabilidad (Transportabilidad): Facilidad con la que un software puede ser transportado a diferentes ambientes fsicos o lgicos, es decir, diferentes plataformas. En esto precisamente radica el xito de Java, dado que mediante la JVM (mquina virtual), logra ser ampliamente portable. Integridad: Capacidad de un software para proteger sus propios componentes contra los procesos que no tengan derecho de acceso a ellos. Este factor es de vital importancia en la actualidad, dado que muchas aplicaciones se encuentran implementadas en Internet, multiplicndose las posibilidades de acceso no deseado. Facilidad de uso (Amigabilidad/Usabilidad): Un software es fcil de utilizar si se puede comunicar con l de manera cmoda. Se debe tener en cuenta que cada da ms personas sin formacin informtica acceden a distintas aplicaciones, y stas deben tener una interfaz amigable. Confiabilidad: Informalmente, el software es confiable si el usuario puede contar con l. La literatura especializada sobre confiabilidad del software define a la confiabilidad en trminos de comportamientos estadsticos - la probabilidad de que el software va a funcionar como debe en un intervalo de tiempo especificado. Correccin: Capacidad de los productos software de realizar exactamente las tareas definidas por su especificacin. Un programa es funcionalmente correcto si se comporta de acuerdo a la especificacin de las funciones que debera proveer (llamadas especificaciones de requerimientos funcionales). Robustez: Capacidad para funcionar incluso en situaciones anormales. Por ejemplo, cuando hay mucha carga de trabajo, o en situaciones imprevistas. Java maneja la primera situacin mediante el uso de multitarea, y el segundo caso, mediante el manejo de excepciones. Extensibilidad (Evolucionabilidad): Se refiere a la facilidad que tienen los productos de adaptarse a cambios en su especificacin, por ejemplo, agregar nuevas funcionalidades. Esto se logra mediante dos principios fundamentales: diseo simple y descentralizacin. La descentralizacin es una capacidad intrnseca de la OO, ya que se basa en la interaccin entre clases a travs de mensajes. Es decir que la responsabilidad del sistema est repartida entre las clases. Reparabilidad: Un sistema de software es reparable si permite la correccin de sus defectos, con una cantidad limitada de trabajo. En muchos productos ingenieriles, la reparabilidad es la meta mayor del diseo. Por ejemplo, los motores de automviles se construyen con las partes que generalmente parecen fallar como las ms accesibles. La reparabilidad es tambin afectada por el nmero de partes del producto. Por ejemplo, es ms difcil reparar un defecto en el

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 1

cuerpo de un auto monoltico que si el cuerpo est hecho de distintas partes. En este caso, se puede reemplazar una nica parte ms fcilmente que el cuerpo completo. Una situacin anloga se aplica al software; un producto de software que consiste en mdulos bien diseados, es mucho ms fcil de analizar y reparar que uno monoltico. La modularizacin correcta, promueve la reparabilidad permitiendo que los errores sean confinados en unos pocos mdulos, haciendo ms fcil la localizacin y remocin de la misma Reutilizacin: Capacidad de los productos de ser reutilizados, en su totalidad o en parte, en nuevas aplicaciones. La reusabilidad es el factor clave que caracteriza la madurez del campo industrial. Se observa un alto grado de reusabilidad en reas como la industria automotriz y los consumos electrnicos. Por ejemplo, en la industria automotriz, el motor es a menudo reusado de modelo en modelo. Adems, el auto es construido por ensamble de componentes que estn altamente estandarizados y son usados para muchos modelos producidos por la misma industria. El bajo grado de reusabilidad en el software es un claro indicador que el campo debe evolucionar para conseguir el status de una bien establecida disciplina ingenieril. Interoperabilidad: Se refiere a la habilidad de un sistema de coexistir y cooperar con otros sistemas - por ejemplo, la habilidad de un procesador de palabras para incorporar un grfico producido por un graficador, o la habilidad del graficador para graficar los datos producidos por una planilla de clculo, o la habilidad de la planilla de clculo para procesar una imagen escaneada por un scanner

La Orientacin a Objetos
Las metodologas y tcnicas estructurales de los 70 y 80 no eliminaron el problema de la crisis del software. Surgieron nuevas herramientas y mtodos, pero la complejidad del problema contina creciendo considerablemente, y stas no dan una solucin eficiente, y fundamentalmente, no resuelven el problema de la reutilizacin. La razn de que esta crisis persista es que la demanda de software se incrementa de forma tan rpida al menos como el desarrollo de las tcnicas que ayudan a su produccin. Por lo tanto, cuando una tcnica estaba resultando til, el enorme crecimiento de la complejidad la hace obsoleta. El aumento de la complejidad no es un asunto trivial. Si se supone que cada nueva funcionalidad agregada a un producto de software agrega un nuevo mdulo, se puede medir el aumento de complejidad en cuanto a la interaccin creciente de los mdulos (nuevos con los existentes). Esto agravado por el hecho de que generalmente no se trata de escribir la menor cantidad de cdigo posible, sino que se suele incurrir en aumentos, a veces innecesarios, del tamao del programa. Es decir, se agregan parches, en vez de mantener una alta calidad y funcionalidad. Es posible afrontar problemas de mayor complejidad realizando modelos (abstracciones), que estn estrechamente relacionados con el problema a resolver. Todas las tcnicas usadas hasta ese momento requeran hacer una transformacin del modelo del problema (o espacio del problema) hacia el modelo de la solucin (o espacio de la solucin). La orientacin a objetos es precisamente la tcnica ms reciente que intenta acercar el modelo del problema al de la solucin. La idea es crear objetos que representan elementos tanto del espacio del problema como de la solucin. De este modo se describe el problema en trminos del problema, y cuando se lee cdigo se leen palabras que expresan el problema. Esta es una de las razones por las que la orientacin a objetos se est haciendo cada vez ms popular. Es un conjunto de disciplinas (ingeniera) que desarrollan y modelan software que facilita la construccin de sistemas complejos a partir de componentes. Trata de cumplir las necesidades de los usuarios finales, y las propias de los desarrolladores de productos software mediante la modelizacin del mundo real. El soporte fundamental es el modelo de objetos. Los cuatro elementos o propiedades ms importantes de este modelo segn Booch son: abstraccin, modularidad, encapsulamiento y jerarqua. Adems de stas, suele incluirse el polimorfismo. Segn Booch, si alguno de estos elementos no existe, se dice que el modelo no es orientado a objetos. La realidad dice que son muy pocos los modelos puros orientados a objetos. La mayor parte son hbridos, que surgen como extensiones, y que implementan algunas de las propiedades mencionadas.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 1

Los principios de la definicin de objetos ayudan a los programadores a hacer cdigo ms robusto, mantenible y seguro; porque se puede aislar cada uno de los objetos y tratarlo como un ente nico, con su propia personalidad, sin que haya cientos de caractersticas que se deban tener presentes, tal como se haca en la programacin orientada a procedimiento. Lo cual, desde el punto de vista econmico, s resulta viable, ya que los objetos bien diseados pueden ser utilizados en muy diversas aplicaciones, con lo cual el tiempo de desarrollo total se reduce. Caractersticas del paradigma de objetos 1) Los sistemas orientados a objetos: Proporcionan el rendimiento, la flexibilidad y funcionalidad requerida para implementaciones prcticas. La programacin se puede hacer con lenguajes OO puros, como Smalltalk y Eiffel, o con extensiones de lenguajes comerciales, como Object-Pascal, C++ o Java, que se conocen como hbridos, dado que, partiendo de lenguajes existentes (por ej. el lenguaje C), y agregndole unas pequeas componentes, implementan la capacidad del desarrollo orientado a objeto. Esto significa que tienen capacidad de implementar clases, encapsular datos, aplicar polimorfismo, etc. Aumentan la variedad de aplicaciones que se pueden programar ya que se liberan las restricciones de los tipos de datos predefinidos. Acomodan estructuras de datos heterogneos y complejos: se pueden aadir nuevos tipos de datos sin modificar cdigo existente. 2) Propuestas de reutilizacin (reusability) de componentes software: Bloques iniciales para la construccin del programa, similares a la construccin de cualquier objeto complejo (tal como un automvil) que se construye ensamblando sus partes. Esta caracterstica es de suma importancia. Ofrece varias ventajas, entre las que destacan: costo: dado que si se usan partes ya hechas, se pierde menos tiempo fiabilidad: si ya se estn usando, se tiene la seguridad de que funciona bien 3) No slo son nuevos lenguajes de programacin, sino un nuevo modo de pensar y disear aplicaciones. Desde el momento en que se inicia un proyecto, relevando los requisitos, se comienzan a aplicar estos nuevos conceptos, y a medida que se avanza en el desarrollo del mismo, es posible realizar etapas en paralelo, de modo que el cliente tenga una mayor aproximacin a lo que ser el resultado final. Esto sin perjuicio de poder volver a etapas anteriores, si fuera necesario, y asentar las modificaciones pertinentes. Es decir, ya no se cumplen las etapas en forma secuencial, como se haca en la metodologa de anlisis y diseo estructurado. En los ltimos aos se observa un abandono progresivo de las metodologas estructuradas, que en principio pareca que iban a sobrevivir a los objetos y coexistir con ellos. Es inexorable el desplazamiento de la mayor parte de los desarrollos estructurados por parte del paradigma de objetos. Una de las causas ms fuertes de esta situacin es indirecta, y tiene que ver con la tendencia cada vez mayor a desarrollar aplicaciones distribuidas sobre Internet y la Web. En realidad, este modelo de computacin distribuida no est necesariamente ligado a los objetos, pero los actores ms importantes del mercado de software han decidido lanzar herramientas de desarrollo que utilizan exclusivamente el paradigma de objetos (Sun Microsystems/java Microsoft/.NET), y esto parece ser un camino sin retorno. Por otra parte, se debe tener en cuenta que las nuevas metodologas de desarrollo de software bregan por una menor separacin entre las fases de desarrollo. Tanto analistas como diseadores y programadores debern manejar un lenguaje comn, y todos debern aprender de diseo, arquitecturas y patrones. Esto justifica la importancia de estudiar la orientacin a objetos como conjunto, y no abordarla slo desde un lenguaje de programacin. Este enfoque se encuentra en una etapa de madurez como paradigma del desarrollo de sistemas de informacin. El Object Management Group (OMG) es un consorcio a nivel internacional que integra a los principales representantes de la industria de la tecnologa de informacin OO. Tiene como objetivo central la promocin, fortalecimiento e impulso de la industria OO. Propone y adopta por consenso especificaciones entorno a la tecnologa OO. Una de las especificaciones ms importantes es la adopcin en 1998 del Lenguaje de Modelado Unificado o UML (del ingls Unified Modeling Language) como un estndar, que junto con el Proceso Unificado (PU) estn consolidando la tecnologa OO.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 1

Lenguajes de programacin OO
El primer lenguaje que introdujo los conceptos de orientacin a objetos fue SIMULA 67 creado en Noruega, por un grupo de investigadores dirigido por O. J. Dahl y K. Nygaard, con el fin de realizar simulaciones discretas de sistemas reales. En estos tiempos no existan lenguajes de programacin que se ajustaran a sus necesidades, as que se basaron en el lenguaje ALGOL 60 y lo extendieron con conceptos de objetos, clases, herencia, el polimorfismo por inclusin (que se obtiene introduciendo la herencia de clases) y procedimientos virtuales. Estos ltimos permiten la sobrecarga de procedimientos, de tal forma que para un solo procedimiento se pueden tener varias implementaciones, dependiendo del nivel de jerarqua de la herencia de clases en el cual est definido un procedimiento. El lenguaje fue utilizado sobre todo en Europa y no tuvo mucho impacto comercial, sin embargo los conceptos que se definieron en l, se volvieron sumamente importantes para el futuro del desarrollo de software. Alrededor de los aos 70 fue desarrollado el lenguaje SMALLTALK en los laboratorios Xerox en Palo Alto, E.U.A.. ste lenguaje adopt los conceptos nombrados anteriormente como su fundamento. El hecho de ser creado en E.U.A., ayudo a que se introdujera a nivel mundial el trmino de Orientacin a Objetos y que cobrara importancia entre los diseadores de lenguajes de programacin. Los puntos importantes de este lenguaje fueron, por un lado, adoptar el concepto de objeto y clase como ncleo del lenguaje y la programacin interactiva, incorporando las ideas ya conocidas de lenguajes funcionales. Es decir que se tuviese un lenguaje interpretado y no compilado. En 1985, E. Stroustrup extendi el lenguaje de programacin C a C++, es decir C con conceptos de clases y objetos, tambin por esta fecha se cre desde sus bases el lenguaje EIFFEL por B. Meyer. Ambos manejan conceptos de objetos y herencia de clases. La herencia es mltiple, y se introduce pensando en dar mayor flexibilidad a los desarrolladores. Sin embargo, actualmente la herencia mltiple se ha evitado por agregar complejidad en las estructura de clases. Ambos lenguajes tuvieron importancia entre 1985 y hasta la primera mitad de los noventa. En 1995 apareci JAVA, el ms reciente lenguaje OO, desarrollado por SUN, que hereda conceptos de C++, pero los simplifica y evita la herencia mltiple. A cambio se introduce el trmino de interfaz, y la herencia mltiple de interfaces. Obtiene una rpida aceptacin gracias a los applets, que son unos programas en JAVA insertado en pginas WEB dentro del cdigo HTML. Estos programas pueden viajar a travs de la Internet y brindarle al usuario mayor interactividad con las pginas WEB. JAVA introduce tambin, la programacin concurrente y distribuida. El lenguaje es mitad compilado y mitad interpretado dando como resultado la portabilidad a distintas plataformas. JAVA aun sigue evolucionando y se espera que en los prximos aos logre la madurez adecuada para volverse un lenguaje de desarrollo de mayor importancia. Los lenguajes orientados a objetos puros implementan todas las propiedades de POO mencionadas y utilizan todas las ventajas de esta tecnologa. Son ms difciles de aprender en un principio. Sin embargo, ofrecen mayor facilidad de reutilizacin. Los lenguajes hbridos tienen como base algn lenguaje tradicional, al que agregan los conceptos de objetos, mensajes y clases. Ms popular de los lenguajes puros es Smalltalk y entre los hbridos sobresale Java.

Beneficios de la tecnologa de objetos


Existen dos razones fundamentales para introducir mtodos de TOO en los procesos de desarrollo: 1) Mejora de la Fiabilidad: Cada objeto es simplemente "una caja negra" con respecto a los objetos externos con los que debe comunicarse: Las estructuras de datos internos y mtodos se pueden refinar sin afectar a otras partes. Las tecnologas de objetos ayudan a los desarrolladores a tratar la complejidad. 2) Mejora de la Productividad: Las clases de objetos se pueden hacer reutilizables de modo que cada subclase o instancia de un objeto puede utilizar el mismo cdigo de programa para la clase. Desarrollo ms rpido y flexible. Mantenimiento ms sencillo y rpido.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Das könnte Ihnen auch gefallen