paper programacion orientada a los objetos

Upload: jose-ruben

Post on 04-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Paper Programacion Orientada a Los Objetos

    1/5

    Instituto Universitario de Tecnologa Jos Antonio Anzotegui Pgina 1 de 4

    Programacin orientada a objetos (JAVA)

    David [email protected]

    Yorbelys Gonzlez

    [email protected] Martinez

    [email protected]

    Nstor [email protected]

    Georfrank [email protected]

    RESUMEN: el estudiar un lenguaje orientado aobjetos va ms alla que aprender otro lenguaje ms.En realidad, el cambio es mas profundo y se trata delestudio de un nuevo paradigma, Por tanto, el objetivo

    se debera ver desde la perspectiva de este cambiode paradigma y el uso del lenguaje de programacinJava considerarlo como un medio, mas que como unfin..

    PALABRAS CLAVE: Anlisis, Diseo,Orientacin, POO

    1 INTRODUCCIN

    Cuando se decide iniciar un desarrollo, lo primeroque se debe decidir es el paradigma de trabajo. Laeleccin del paradigma marca significativamente laforma de anlisis y diseo de la solucin delproblema. As un mismo problema se podra abordarusando un paradigma procedural clsico (es el que seha usado en cursos anteriores de programacin,cuando se ha programado en Pascal o C, porejemplo) o bien un paradigma orientado a objetos (elque usaremos en este curso). Por ejemplo, el diseode un software que implementara el juego del ajedrezen un paradigma procedural y en un paradigmaorientado a objeto tendran poco que ver. Pero elobjetivo de este tema es introducir conceptos paraque de manera intuitiva se vaya comprendiendo quesignifica cambiar de paradigma; y concretamente usarel paradigma orientado a objetos.

    2 LA ORIENTACION A OBJETOS

    La orientacin a objetos promete mejoras deamplio alcance en la forma de diseo, desarrollo ymantenimiento del software ofreciendo una solucin alargo plazo a los problemas y preocupaciones quehan existido desde el comienzo en el desarrollo desoftware:

    La falta de portabilidad del cdigo y su escasareusabilidad.

    Cdigo que es difcil de modificar.

    Ciclos de desarrollo largos.

    Tcnicas de codificacin no intuitivas

    El concepto de programacin orientada a

    objetos (POO) no es nuevo, lenguajes clsicos comoSmallTalk se basan en ella. Dado que la POO sebasa en la idea natural de la existencia de un mundolleno de objetos y que la resolucin del problema se

    realiza en trminos de objetos, un lenguaje se diceque esta basado en objetos si soporta objetos comouna caracterstica fundamental del mismo. Nodebemos confundir que este basado en objetos conque sea orientado a objetos: para que sea orientadoa objetos al margen que este basado en objetos,necesita tener clases y relaciones de herencia entreellas.

    Hemos utilizado con mucha frecuencia la palabraparadigma, que convendra formalizar de algunaforma: Se entiende paradigma como un conjunto deteoras, estndares y mtodos que juntos representanuna forma de organizar el conocimiento, esto es, unaforma de ver el mundo. La visin OO nos obliga areconsiderar nuestras ideas a cerca de la

    computacin, de lo que significa ponerla en practica yde como debera estructurarse la informacin en lossistemas de informacin.

    2.1 EVOLUCION HISTORICA

    Desde un punto de vista histrico, la idea de laPOO aparece por primera vez en SmallTalk (aprincipios de los 70), pero conceptos similares a losque se usan en la POO ya aparecan en Simula(1967). De cualquier forma se considera queSmalltalk fue el primer lenguaje orientado a objetos:

    Es uno de los lenguajes orientados a objetos ms

    consistentes: todos sus tipos de datos son clases ytodas sus operaciones son mensajes.

    No es adecuado para aplicaciones de granenvergadura: es ineficiente y no permitecomprobacin de tipos esttica.

    A mediados de los 80 aparecen lenguajeshbridos como son el C++, Objetive-C, Object-Pascal entre otros:Incluyen tipos de datos convencionales y clases.

    Incluyen procedimientos adems de mtodos.

    Permiten comprobaciones en tiempo de compilacin(estticas).

    Su eficiencia es equivalente a la de los

    convencionales.

  • 7/21/2019 Paper Programacion Orientada a Los Objetos

    2/5

    Instituto Universitario de Tecnologa Jos Antonio Anzotegui Pgina 2 de 4

    La transicin de la programacin algortmica clsicaa la POO es ms fcil usando este tipo delenguajes.

    2.2 DIFERENCIAS ENTRE LAPROGRAMACION CONVENCIONAL

    Y LA POO,

    La POO se centra en los datos en lugar de en losprocedimientos.

    Programacin mediante extensin. POO significanormalmente extender software existente.

    Especial nfasis en la reutilizacin el objetivo no esajustar las clases a los clientes que las vayan ausar, sino adaptarlas a su contexto y adaptar losclientes a las clases.

    Estado distribuido y responsabilidades distribuidascada objeto posee su propio estado y un conjuntode procedimientos que trabajan sobre dicho estado.

    Fig. 1. Pilares de la programacin orientada a objetos

    2.3 BENEFICIOS MSINTERESANTES DE LA POO

    Gestin de la complejidad permiten la construccinde componentes manejables con interfaces simples

    La POO permite construir sistemas extensibles quetrabajen con nuevos componentes sin necesidad demodificacin.

    La POO mejora la reutilizacin al permitir adaptarcomponentes a necesidades nueva sin invalidar losclientes existentes

    2.4 DEBILIDADES MSINTERESANTES DE LA POO

    la POO no sea efectiva para muchas empresasEsfuerzo de aprendizaje y la nica manera de hacer

    efectivos todos estos conceptos es mediante laexperiencia.

    Problemas de comprensin y flexibilidad.Muchas veces se critica a los lenguajes orientados aobjetos de ser poco eficaces, cuando en realidad lo

    que subyace es un problema de mal diseo yprogramacin.

    2.5 CONCEPTOS FUNDAMENTALES

    Clase: definiciones de las propiedades ycomportamiento de un tipo de objeto concreto

    Objeto: Instancia de una clase. Entidad provista deun conjunto de propiedades o atributos (datos)Mtodo: Algoritmo asociado a un objeto (o a unaclase de objetos), cuya ejecucin se desencadenatras la recepcin de un "mensaje".Evento: Es un suceso en el sistema (tal como unainteraccin del usuario con la mquina, o un mensajeenviado por un objeto).Atributos:Caractersticas que tiene la claseMensaje:Una comunicacin dirigida a un objeto, quele ordena que ejecute uno de sus mtodos con ciertosparmetros asociados al evento que lo gener.Propiedad o atributo: Contenedor de un tipo dedatos asociados a un objeto (o a una clase de

    objetos), que hace los datos visibles desde fuera delobjeto.Estado interno: Es una variable que se declaraprivada, que puede ser nicamente accedida yalterada por un mtodo del objeto.Identificacin de un objeto: Un objeto se representapor medio de una tabla o entidad que est compuestapor sus atributos y funciones correspondientes.

    3. JAVA

    Se defini buscando su independencia de lamaquina donde se ejecutaran los programas.En lamayora de los lenguajes, al compilar se genera uncdigo maquina directamente ejecutable en unamaquina determinada (y de uso limitado a ese tipo demaquina). En cambio, al compilar en Java, el cdigogenerado es independiente del hardware y no sepuede ejecutar directamente en ninguna maquina,sino que ha de ser interpretado por una maquinavirtual. Al cdigo generado por el compilador Java sele llama bytecode. Y la maquina que interpreta elbytecode, generando el cdigo ejecutable para unprocesador concreto, es la maquina virtual de Java o,en ingles, JVM (Java Virtual Machine).

    Entonces, el bytecode compilado en una maquinapuede ser llevado a otra maquina diferente y

    ejecutado sin problemas.

    Fig. 2. Plataforma Java

  • 7/21/2019 Paper Programacion Orientada a Los Objetos

    3/5

    Instituto Universitario de Tecnologa Jos Antonio Anzotegui Pgina 3 de 4

    3.1 HISTORIA

    Java se cre como una herramienta deprogramacin para ser usada en un proyecto deset-top-boxen una pequea operacin denominadatheGreen Projecten Sun Microsystems en el ao1991.El equipo (Green Team), compuesto por trecepersonas y dirigido porJames Gosling, trabajdurante 18 meses en Sand Hill Road en Menlo Parken su desarrollo.

    Fig. 3. James Gosling,

    El lenguaje se denomin inicialmenteOak(por unroble que haba fuera de la oficina de Gosling), luegopas a denominarse Green tras descubrirqueOakera ya una marca comercial registrada paraadaptadores de tarjetas grficas y finalmente serenombr aJava.Es frecuentada por algunos de losmiembros del equipo. Pero no est claro si es unacrnimo o no, aunque algunas fuentes sealan quepodra tratarse de las iniciales de suscreadores: James Gosling, A rthur Van Hoff, y AndyBechtolsheim.

    Otros abogan por el siguiente acrnimo, JustAnother Vague Acronym("slo otro acrnimoambiguo ms"). La hiptesis que ms fuerza tiene esla de que Java debe su nombre a un tipo de cafdisponible en la cafetera cercana, de ah que el iconode java sea una taza de caf caliente.

    Fig. 4. Logo taza de caf Java

    La promesa inicial de Gosling era Write Once, RunAnywhere(Escrbelo una vez, ejectalo en cualquierlugar), proporcionando un lenguaje independiente dela plataforma y un entorno de ejecucin (laJVM)ligero y gratuito para las plataformas ms popularesde forma que los binarios (bytecode) de lasaplicaciones Java pudiesen ejecutarse en cualquier

    plataforma.

    3.2 ESTRUCTURA BSICA DE UNPROGRAMA EN JAVA

    En esta seccin se presentan los tres tipos deprogramas que se pueden escribir en Java:programas de consola, programas grficos y applets.En Java, las aplicaciones graficas, en entorno de

    ventanas, pueden ejecutarse como programasindependientes o como applets, programasintegrados en un navegador web. En el ltimo temade este texto se trataran los applets en Java.

    Programa de consolaSe llama programas de consola a los programas quefuncionan en modo texto, es decir, programas dondela entrada de datos y la salida de resultados serealizan mediante sucesivaslneas de texto.

    Programa graficotambin conocido como grficos orientados a objetos,mantiene la imagen como una serie de puntos, lneas,arcos y otras formas geomtricas. Este mtodo seutiliza para diseo asistido por computador (CAD) eilustraciones tcnicas onde los componentes de undibujo deben ser separables e individualmenteajustables a escala.

    Appletes un caso particular de aplicacin grafica de Java,pero que se ejecuta integrada en una pagina web (yes gestionado por el navegador web), en lugar deejecutarse como aplicacin independiente.

    En Java cualquier programa forma parte de unaclase. Las clases constan de datos (llamadosatributos) que guardan la informacin y de funciones(llamadas mtodos) que manipulan la informacin.

    3.3 LA ORIENTACIN A OBJETOS YJAVA

    El objetivo es hacer que grandes proyectos seanfciles de gestionar y manejar, mejorando comoconsecuencia su calidad y reduciendo el nmero deproyectos fallidos. Otra de las grandes promesas dela programacin orientada a objetos es la creacin deentidades ms genricas (objetos) que permitan lareutilizacin del software entre proyectos, una de laspremisas fundamentales de la Ingeniera delSoftware.

    En este sentido, los objetos podran verse comopiezas reutilizables que pueden emplearse enmltiples proyectos distintos, posibilitando as a laindustria del software a construir proyectos deenvergadura empleando componentes ya existentes yde comprobada calidad; conduciendo esto finalmentea una reduccin drstica del tiempo de desarrollo.

    Para ello, se compila el cdigo fuente escrito enlenguaje Java, para generar un cdigo conocidocomo bytecode (especficamente Java bytecode)instrucciones mquina simplificadas especficas de laplataforma Java.

    3.4 ENTORNOS DE

    FUNCIONAMIENTO

    El diseo de Java, su robustez, el respaldo de laindustria y su fcil portabilidad han hecho de Java

    http://es.wikipedia.org/wiki/M%C3%A1quina_virtual_Javahttp://es.wikipedia.org/wiki/M%C3%A1quina_virtual_Javahttp://es.wikipedia.org/wiki/M%C3%A1quina_virtual_Javahttp://es.wikipedia.org/wiki/M%C3%A1quina_virtual_Java
  • 7/21/2019 Paper Programacion Orientada a Los Objetos

    4/5

    Instituto Universitario de Tecnologa Jos Antonio Anzotegui Pgina 4 de 4

    uno de los lenguajes con un mayor crecimiento yamplitud de uso en distintos mbitos de la industriade la informtica.

    En dispositivos mviles y sistemasempotrados

    Es posible encontrar microprocesadores diseadospara ejecutar bytecode Java y software Java paratarjetas inteligentes (JavaCard), telfonos mviles,buscapersonas, set-top-boxes, sintonizadores de TVy otros pequeos electrodomsticos. El modelo dedesarrollo de estas aplicaciones es muy semejante alasappletsde los navegadores

    En el navegador webDesde la primera versin de java existe la

    posibilidad de desarrollar pequeas aplicaciones(Applets) en Java que luego pueden ser incrustadasen una pgina HTML para que sean descargadas yejecutadas por el navegador web

    En sistemas de servidorEn la parte del servidor, Java es ms popularque nunca, desde la aparicin de la especificacindeServletsy JSP (Java Server Pages). Hastaentonces, las aplicaciones web dinmicas de servidorque existan se basaban fundamentalmente encomponentesCGIy lenguajes interpretados. Ambostenan diversos inconvenientes (fundamentalmentelentitud, elevada carga computacional o de memoria ypropensin a errores por su interpretacin dinmica).

    En aplicaciones de escritorioHoy en da existen multitud de aplicaciones

    grficas de usuario basadas en Java. El entorno deejecucin Java (JRE) se ha convertido en un

    componente habitual en los PC de usuario de lossistemas operativos ms usados en el mundo.Adems, muchas aplicaciones Java lo incluyen dentrodel propio paquete de la aplicacin de modo que seejecuten en cualquierPC.

    Plataformas soportadas

    Una versin del entorno de ejecucin JavaJRE (JavaRuntime Environment) est disponible en la mayorade equipos de escritorio. Sin embargo,Microsoft no loha incluido por defecto en sus sistemas operativos.En el caso deApple,ste incluye una versin propiadel JRE en su sistema operativo, elMac OS.Tambines un producto que por defecto aparece en lamayora de las distribuciones deGNU/Linux

    4 REFERENCIAS

    1es.wikipedia.org/wiki/lenguaje de programacin

    2www.um.es/eubacteria/eubacteria2/softwarefree.pdf

    3www.elblogdelfrasco.blogspot.com

    http://es.wikipedia.org/wiki/JREhttp://es.wikipedia.org/wiki/Microsofthttp://es.wikipedia.org/wiki/Apple_Inc.http://es.wikipedia.org/wiki/Mac_OShttp://es.wikipedia.org/wiki/GNU/Linuxhttp://es.wikipedia.org/wiki/GNU/Linuxhttp://es.wikipedia.org/wiki/Mac_OShttp://es.wikipedia.org/wiki/Apple_Inc.http://es.wikipedia.org/wiki/Microsofthttp://es.wikipedia.org/wiki/JRE
  • 7/21/2019 Paper Programacion Orientada a Los Objetos

    5/5

    Instituto Universitario de Tecnologa Jos Antonio Anzotegui Pgina 5 de 4