Generador de Beans para Inventory bulider. Documentación

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Generador de Beans para Inventory bulider. Documentación"

Transcripción

1 Generador de Beans para Inventory bulider Documentación Ángel Castellanos González W 01/02/2010

2 PROYECTO HP 2

3 PROYECTO HP 3 Indice 1. Resumen Objetivos Introducción Lenguaje de Marcas Qué es un lenguaje de marcas? Clases de Lenguaje de Marcas XML Qué es XML? Historia de XML Estructura de un documento XML HP Service Activator Inventory Builder Beans Análisis y Planificación Desarrollo de la Aplicación Tecnologías y Herramientas utilizadas Java Eclipse PDE CASTOR Implementación Preparación del entorno Desarrollo del Plug-in Desarrollo de la aplicación Exportación de la aplicación Resultados Creación de un nuevo bean o apertura de uno ya existente Modificación de los bean Anexo A A.1: XML Schema... 63

4 PROYECTO HP 4 A.2: Ejemplo de Bean Anexo B: Instalación de Componentes B.1: Eclipse y PDE B.2: Castor Anexo C: Codigo Fuente C.1: Bean C.2: Marshal C.3: Unmarshal... 98

5 PROYECTO HP 5

6 PROYECTO HP 6 Índice de Ilustraciones Ejemplo 1: Marcas Ejemplo 2: Documento XML simple Ejemplo 3: DTD para el Ejemplo Ejemplo 3.a: DTD para el Ejemplo Ejemplo 4: XML Schema para el Ejemplo Ejemplo 4.a: XML Schema para el Ejemplo Ejemplo 5: Hola Mundo en Java Ilustración 1: Integración HPSA Ilustración 2: Grafico Gantt del Proyecto Ilustración 3: Entorno de desarrollo Eclipse Ilustración 4.a: Creación de un nuevo proyecto PDE Ilustración 4.b: Creación de un nuevo proyecto PDE Ilustración 4.c: Creación de un nuevo proyecto PDE Ilustración 4.d: Creación de un nuevo proyecto PDE Ilustración 4.e: Creación de un nuevo proyecto PDE Ilustración 5: Vista principal del proyecto PDE Ilustración 6: Vista de la creación de un nuevo menú Ilustración 7: Ejemplo de clase para la creación de un nuevo menú Ilustración 8: Ventana 0 para abrir o crear un nuevo bean Ilustración 9: Ventana 1 para crear un nuevo bean Ilustración 10: Ventana 1 para abrir un nuevo bean Ilustración 11: HP IB Bean Editor (editor XML) Ilustración 12: HP IB Bean Editor (árbol) Ilustración 13: HP IB Bean Editor (vistas) Ilustración 14: Modelo de datos de XML Schema Ilustración 15: Funcionamiento de la vista Árbol Ilustración 16: Ejemplo de formulario asociado a un nodo Ilustración 17: Ejemplo de funcionamiento del formulario

7 PROYECTO HP 7 Ilustración 18: Zona para la exportación del plug-in Ilustración 19: Asistente para la exportación Ilustración 20: Carpeta para la instalación del plug-in Ilustración 21: Nuevo Bean Ilustración 22: Nuevo Bean (II) Ilustración 23: Nuevo Bean (III.a) Ilustración 24: Nuevo Bean (III.b) Ilustración 25: Crear nuevo nodo del árbol Ilustración 26: Borrar un nodo del árbol Ilustración 27: Modificar información de un nodo Ilustración 28: Vista del Codigo XML Ilustración 29: Descarga de Eclipse Ilustración 30: Descarga de Eclipse (II) Ilustración 31: Ejecución de Eclipse Ilustración 32: Descarga de Castor Ilustración 33: Instalación de Castor Ilustración 34: Instalación de Castor (II)

8 PROYECTO HP 8

9 PROYECTO HP 9 1. Resumen Este proyecto se enmarca dentro del Observatorio Tecnológico en su edición de 2008/2009 impulsado por HP y la Universidad de León. El proyecto forma parte de la aplicación propietaria de HP Inventory Builder, la cual a su vez es parte del software HP Service Activator (HPSA). HPSA está dirigido a operadores de telecomunicaciones para la automatización de los procesos de gestión y configuración de sus servicios. El proyecto pretende desarrollar una aplicación para la creación o modificación de archivos en lenguaje XML, a partir de su estructura definida en un XML Schema. Para ello el proyecto utiliza las características ofrecidas por los lenguajes de marcas y en concreto las de XML. La aplicación se integrará en Eclipse, un entorno de desarrollo de aplicaciones en lenguaje Java, mediante la creación de un plug-in. Gracias a su implementación como plug-in se facilitara su distribución, implantación y uso.

10 PROYECTO HP Objetivos - Desarrollar una aplicación para la creación de archivos en lenguaje XML (Beans) de acuerdo a una definición, en un XML Schema. Esto archivos estarán sujetos a su posterior uso por parte de HP Inventory Builder. - Facilitar su uso y distribución a través de la integración en el IDE Eclipse, de código libre, mediante la realización de un Plug-in. - Facilitar la creación de Beans ofreciendo al desarrollador una nueva interfaz basada en una vista de árbol que represente la estructura del documento.

11 PROYECTO HP Introducción 3.1. Lenguaje de Marcas Qué es un lenguaje de marcas? Es un lenguaje que combina junto con el texto base una serie de marcas o etiquetas con información extra acerca de su contenido. A diferencia de los lenguajes de programación los lenguajes de marcas no contienen funciones o variables, simplemente información sobre la estructura del texto o su presentación Clases de Lenguaje de Marcas Existen 3 clases de lenguajes de marcas: - Marcas de presentación: Es el que indica el formato del texto. Es útil para estructurar el documento para su presentación y lectura aunque resulta complejo de mantener o modificar. Su uso es cada vez menos extendido ya que es muy poco flexible, especialmente en grandes proyectos. - Marcas de procedimientos: Está enfocado a la presentación, pero también es visible para quien edita el texto. Se utilizan marcas que son evaluadas por orden de aparición. Por ejemplo, se agrega una marca antes de un texto para representar que estará en negrita (debe tener otra marca también para indicar el fin del texto en negrita). Algunos ejemplos de esto son: trof, TeX, HTML - Marcas descriptivas: Utiliza etiquetas para describir fragmentos de texto sin especificar cómo debe ser representado o en qué orden. Simplifica la tarea de reformatear un texto ya que la descripción del formato está separada del propio texto. Dentro de estos tipos de lenguaje de marcas se enmarca el lenguaje XML.

12 PROYECTO HP XML Qué es XML? XML (Extensible Markup Language) es un lenguaje extensible de marcas desarrollado y supervisado por el World Wide Web Consortium (W3C). Pretende ser una adaptación y simplificación de SGML que permite definir la gramática de lenguajes. Por tanto no es un lenguaje en si mismo, si no un metalenguaje para definir lenguajes asociados a determinadas aplicaciones. XML se ha convertido en un estándar ya que con él se pueden intercambiar datos estructurados entre diferentes aplicaciones, aún cuando estas aplicaciones no guarden relación alguna. Es la forma más fácil y segura permitir la compatibilidad entre plataformas. Se pude usar en bases de datos, hojas de cálculo, Internet y en general para cualquier aplicación Historia de XML El germen de XML y en general de todos los lenguajes de marcas es el lenguaje GML (Generalized Markup Language) desarrollado en los años sesenta por IBM, bajo el mando de Charles F. Goldfarb, Edward Mosher y Raymond Lorie, ante la necesidad de almacenar grandes cantidades de información de muy diversos temas. En 1986 la ISO (Organización Internacional para la Estandarización) normalizo el GML creando el SGML (Standard GML). SGML es un lenguaje mucho más general que GML capaz de adaptarse a un gran abanico de problemas. El siguiente paso se dio en Tim Berners Lee creo, basándose en SGML, el lenguaje HTML para el nuevo servicio de Internet, la Web. HTML fue adaptado rápidamente por la comunidad; sin embargo, varias organizaciones crearon sus propios navegadores HTML que competían entre ellos, para ser el más avanzado, incluyendo sus propias etiquetas que extendían el lenguaje. Aunque desde 1996 la W3C ha intentado normalizar HTML y hacer de él un estándar, HTML creció de una manera descontrolada. Muchas páginas Web son caóticas y no cumplen la sintaxis y son dependientes de la manera de tratar los errores de cada navegador.

13 PROYECTO HP 13 Para solucionar las carencias de HTML se busco definir un nuevo subconjunto de SGML que permita: - Mezclar elementos de diferentes lenguajes: lenguajes extensibles - Creación de analizadores simples sin lógica especial para cada lenguaje (como la lógica ad hoc incrustada en el HTML) - Impedir que se acepte un documento con errores de sintaxis En respuesta a esto desde 1998 la W3C desarrolla y supervisa el lenguaje XML. XML es un lenguaje mucho menos general que SGML, renunciando a muchas de sus características, a cambio de facilitar la interpretación automática de documentos Estructura de un documento XML XML busca la mejor manera de expresar de una manera abstracta y reutilizable información estructurada, entendiendo por estructurada que esté compuesta de partes bien definidas que a su vez pueden estar compuestas por otras partes. Estas partes son llamadas elementos, estando delimitados por marcas. Una marca es una señalización en el documento para indicar el comienzo y el fin de un elemento. Dentro de las marcas irán incluidos los atributos que afectaran a ese elemento. Las marcas son de la forma: <nombre atributo1= valor, atributo2 = valor > : marca de inicio Contenido del Elemento </nombre> : marca de final Ejemplo 1: Marcas Donde nombre es el nombre del elemento y valor el valor que toma cada uno de los atributos Un documento XML estará formado por una cabecera, donde se podrá establecer la versión, la codificación entre otros, y por un único elemento raíz del cual cuelgan el resto de elementos que forman el documento anidados jerárquicamente.

14 PROYECTO HP 14 Un ejemplo de documento XML sería: <?xml version="1.0" encoding="iso "?> <matricula> <personal> <dni> c</dni> <nombre>ángel Castellanos</nombre> <titulación>ingeniería Informática (Pla 2001)</titulación> <curso_academico>2002/2003</curso_academico> <domicilios> <domicilio tipo="familiar"> <nombre>c/ Principal nº1</nombre> </domicilio> <domicilio tipo="habitual"> <nombre>c/ Secundaria nº2</nombre> </domicilio> </domicilios> </personal> <pago> <tipo_matricula>matrícula ordinaria</tipo_matricula> </pago> </matricula> Ejemplo 2: Documento XML simple Documentos bien formados Si los documentos cumplen todas las restricciones de estructura se dice que el documento está bien formado y pueden, por tanto, ser analizados por cualquier analizador sintáctico (parser). Las restricciones que debe cumplir son: - Elemento raíz único. - Organización jerárquica de elementos, deben estar correctamente anidados. - Los valores de los atributos, correspondientes a cada elementos, deben estar entre comillas simples o dobles - Es sensible a mayúsculas y minúsculas - Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc.

15 PROYECTO HP 15 Validez Que un documento este bien formado solo hace referencia a que su estructura sintáctica esta conforme a como XML especifica; sin embargo, cada documento XML tiene que indicar cuáles son las relaciones entre los distintos elementos del documento. Estas relaciones se establecen en archivos de definición externos, lo cual equivale a crear un nuevo lenguaje de marcado, especifico para estos archivos XML. Si un documento XML se ajusta a su archivo de definición decimos que es un documento válido. Los principales tipos de archivos de definición son: - DTD (Document Type Definition): Define los elementos, atributos y entidades que se podrán utilizar, así como posibles restricciones entre ellos. Ejemplo: <!ENTITY matricula (personal, pago)> <!ENTITY personal (dni, nombre, titulación, curso_academico, domicilios)> <!ENTITY dni (#PCDATA)> <!ENTITY nombre (#PCDATA)> <!ENTITY titulación (#PCDATA)> <!ENTITY curso_academico (#PCDATA)> <!ENTITY domicilios (domicilio+)> <!ENTITY domicilio (nombre)> <!ATTLIST domicilio tipo (familiar habitual) #REQUIRED> <!ENTITY nombre (#PCDATA)> <!ENTITY pago (tipo_matricula)> <!ENTITY tipo_matricula (#PCDATA)> Ejemplo 3: DTD para el Ejemplo 2 Para usar este DTD se añade a la cabecera del XML que lo emplee: <?xml version="1.0" encoding="iso "?> <!DOCTYPE nombre del DTD SYSTEM "ruta del DTD"> <matricula>... </matricula> Ejemplo 3.a: DTD para el Ejemplo 2

16 PROYECTO HP 16 - XML Schema: Similar al DTD. Define los elementos, con sus atributos y tipos de estos, así como su organización. Tiene como ventajas frente al DTD: Al contrario que el DTD usa sintaxis XML Son extensibles Permite especificar tipos de datos Ejemplo: <?xml version="1.0" encoding="iso "?> <xs:schema xmlns:xs="http://www.w3.org/2001/xml Schema" xml:lang="es"> <xs:element name="matricula" type="tmatricula"/> <xs:complextype name="tmatricula"> <xs:sequence> <xs:element name="personal" type="tpersonal"/> <xs:element name="pago" type="tpago"/> </xs:sequence> </xs:complextype> <xs:complextype name="tpersonal"> <xs:all> <xs:element name="dni" type="xs:string"/> <xs:element name="nombre" type="xs:string"/> <xs:element name="titulacion" type="xs:string"/> <xs:element name="curso_academico" type="xs:string"/> <xs:element name="domicilios" type="tdomicilio"/> </xs:all> </xs:complextype> <xs:complextype name="tpago"> <xs:all> <xs:element name="tipo_matricula" type="xs:string"/> </xs:all> </xs:complextype> <xs:complextype name="tdomicilio"> <xs:sequence> <xs:element name="domiclio" maxoccurs="unbounded"> <xs:complextype> <xs:all> <xs:element name="nombre" type="xs:string"/> </xs:all> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:schema> Ejemplo 4: XML Schema para el Ejemplo 2

17 PROYECTO HP 17 Para usar este XML Schema se añade a la cabecera del XML que lo emplee: <?xml version="1.0" encoding="iso "?> <matricula xmlns:xsi="http://www.w3.org/2001/xml Schema-instance" xsi:schemalocation="ruta del XML Schema">... </matricula> Ejemplo 4.a: XML Schema para el Ejemplo 2

18 PROYECTO HP HP Service Activator El proyecto se va a desarrollar como una aplicación interna de HP dentro del Software HP Service Activator (HPSA). HP Service Activator se ha desarrollado como componente de la solución HP Next Generation Operations Support Systems (NG OSS) para ofrecer entornos de Sistemas de Soporte de las Operaciones (Operations Support Systems, OSS) más avanzados. Este Software está dirigido a las principales operadoras de telecomunicaciones. Con él se automatizan, simplifican y aceleran las principales tareas de provisión y configuración de servicios, buscando una mayor rapidez y eficiencia cuando un cliente solicita un servicio (activación de línea, solicitud de reparación, etc ). Con la automatización de todas estas tareas las operadoras persiguen otorgar un mejor servicio a sus clientes para lograr la fidelización de estos. HPSA no está dirigido a una red o tipo de servicio especifico, se puede aplicar a entornos de Internet, móviles, lo que permite que se adapte al funcionamiento requerido por cada operadora, ampliando su campo de aplicación. Al ser una aplicación basada en estándares abiertos permite también la posibilidad de ampliación de los servicios ya provistos o la inclusión de nuevos servicios de una manera sencilla. Ilustración 1: Integración HPSA

19 PROYECTO HP Inventory Builder El Inventory Builder es una herramienta interna, propiedad de HP, desarrollada dentro del Software HPSA. Provee un entorno para el almacenamiento de la información de cada uno de los elementos físicos y lógicos asociados al proceso de alta y configuración de un nuevo servicio. El código necesario para acceder, crear y modificar cada uno de los elementos será generado automáticamente desde la definición XML de los diferentes elementos. A partir del documento XML se genera automáticamente: - Sentencias SQL necesarias para almacenar al información en una BBDD como creación de tablas, índices, restricciones de acuerdo al estándar SQL92 - Interfaces gráficas de usuario, de acuerdo al modelo vista-controlador usando Struts, generando JSPs y los forms y actions de Struts necesarios - Componentes de JavaBeans que permiten crear, borrar, actualizar y buscar operaciones Beans Inventory Builder utiliza unos archivos XML específicos llamados beans. Estos archivos poseen una estructura determinada que se especifica en un archivo XML Schema. Este archivo define los campos que el bean puede tener, los valores que dichos campos pueden tomar, posibles restricciones, uniones entre ellos, etc El archivo XML Schema completo de definición de los beans se puede ver en el anexo A.1. Un bean de ejemplo completo se puede ver en el anexo A.2. El Inventory como se ha dicho automatiza todo el proceso de creación; sin embargo, se ha crear los beans para cada uno de los elementos con la definición detallada de cada uno de ellos. Esto no se puede realizar de manera arbitraria, cada documento debe respetar la estructura que define su XML Schema para que el bean sea válido.

20 PROYECTO HP 20 Estos beans se han de generar de manera manual, con la dificultad que esto conlleva y los posibles errores en su creación. En este proyecto se estudia y se implementa una solución para automatizar este paso y lograr que todo el proceso de creación y configuración que provee el Inventory Builder sea automático.

21 PROYECTO HP Análisis y Planificación La realización del proyecto ha entrañado la realización de varias fases: - Aprendizaje y Documentación: Esta fase abarcó los dos primeros meses del proyecto. Fue la primera fase en la creación del proyecto, correspondiente a la adquisición de los conocimientos previos necesarios. La primera parte se corresponde con el aprendizaje del funcionamiento del Inventory, así como la estructura (definida en los DTD) de los archivos XML usados por este. La segunda parte se corresponde con el aprendizaje del funcionamiento de la herramienta de creación de Plug-ins para Eclipse (Plug-in Development Environment). - Desarrollo de la Aplicación Es la principal fase del proyecto que abarca los 4 siguientes meses. Esta fase corresponde con la creación del código Java de la aplicación. Una parte genérica, para la creación del Plug-in (con el PDE estudiado antes) y otra especifica con la generación del código propio de la aplicación. Durante la creación del código específico de la aplicación se han empleado varias herramientas, las cuales han conllevado un proceso de documentación previo a su uso: Librería XSOM (de libre distribución) para la representación del XSD como un árbol Castor (SourceGenerator) para el modelado de la estructura del XML Schema en clases de Java Castor (Marshal) para la creación de archivos XML desde la información recogida Castor (Unmarshal) para la recogida de información de los archivos XML - Creación de la documentación Se lleva a cabo durante el tiempo de desarrollo de la aplicación y el mes siguiente a la finalización de este. Durante esta fase se desarrolla la documentación correspondiente a la aplicación, necesaria para el análisis y el uso de esta.

22 PROYECTO HP 22 Este proceso de documentación consta de varias partes: Introducción de los principales aspectos del proyecto. Estudio de sus objetivos. Estudio de posibles ampliaciones. - Desarrollo de posibles Ampliaciones Esta hipotética fase incluiría el desarrollo de las posibles ampliaciones estudiadas con anterioridad. Conllevaría un proceso de actualización del código cerrado de la aplicación conforme a las nuevas especificaciones, así como la evaluación del uso de nuevas herramientas que fuesen necesarias para esta actualización y el proceso de documentación de estas si fuese necesario. Ilustración 2: Grafico Gantt del Proyecto

23 5. Desarrollo de la Aplicación PROYECTO HP 23 La principal característica de la aplicación es que está desarrollada como un plug-in para el entorno de desarrollo Eclipse. Se eligió esta solución frente a desarrollarlo como una aplicación independiente por las ventajas que aporta: - Al desarrollarlo como un plug-in su distribución es mucho más sencilla, pudiendo incluirse con la distribución del propio Eclipse o a través de una conexión a Internet. Se elimina la necesidad de instalar una aplicación a mayores de Eclipse con la mayor complejidad que esto requiere. - Al estar los proyectos de Inventory Builder desarrollados con Eclipse, incluir la aplicación dentro del entorno facilita la creación de los beans dentro del propio proyecto en el cual son necesarios. Se favorece así la integración de los proyectos, con una sola herramienta, Eclipse, se pueden desarrollar todos los elementos que sean necesarios. - La interfaz de desarrollo es la del propio Eclipse. De esta manera se facilita la labor del desarrollador ya que no es necesario que se familiarice con una nueva interfaz y con nuevos controles para el desarrollo. El periodo de aprendizaje de uso de la herramienta es por tanto mínimo y se realiza de manera muy intuitiva para alguien familiarizado con el desarrollo de aplicaciones con Eclipse. - Gran parte de las librerías y archivos necesarios para el funcionamiento de la aplicación esta incluidos ya en Eclipse. Con esto se consigue reducir considerablemente el tamaño de la aplicación al no tener que incluir archivos a mayores. El tener un tamaño más reducido facilita su distribución, especialmente si esta se realiza a través de Internet.

24 PROYECTO HP Tecnologías y Herramientas utilizadas Java Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los 90. En la actualidad es uno de los lenguajes de programación de mayor difusión tanto en aplicaciones de escritorio como en aplicaciones Web. Tiene una sintaxis muy semejante a la de C pero presenta un modelo de objetos más simple y elimina los aspectos de mayor complejidad de C como el manejo directo de punteros o memoria. Se evitan también errores en la gestión del ciclo de vida de los objetos. Java realiza esta tarea automáticamente mediante el Recolector de Basura que determina cuando se crean y destruyen los objetos. Debido a esta simplificación a menudo se emplea en lugar de C, sobretodo en aplicaciones de gestión. Otra de las razones de su gran difusión es que es independiente de plataforma. Java sigue la filosofía write once, run everywhere, una aplicación desarrollada en Java pueden ejecutarse en cualquier tipo de Hardware (PC, PowerPC, Dispositivos Moviles, Sistemas empotrados) y bajo cualquier sistema operativo (Windows, Linux, MacOS,...) así como en navegadores Web. Esto es posible debido a que durante la compilación no se crea un código maquina al uso si no un código conocido como Java bytecode (instrucciones simplificadas especificas de Java), siendo este un paso intermedio entre el código Java y el lenguaje maquina. El bytecode debe ser ejecutado entonces por la maquina virtual de Java (JVM), un programa escrito específicamente para la plataforma de destino que interpreta el bytecode al ejecutarse la aplicación (método Just in Time o compilación al vuelo) A pesar de todas estas ventajas que ofrece Java, que han hecho que su uso sea cada vez mayor, Java también tiene algunas desventajas. La principal de ellas sería la merma que produce en el rendimiento el hecho de que el bytecode tenga que ser convertido al ejecutar la aplicación. Esto hace que su uso no sea recomendable en aplicaciones en tiempo real frente a otras opciones como C que ofrecen un mayor rendimiento. A continuación se presenta un ejemplo del típico programa de Hola Mundo escrito en lenguaje Java que servirá para comprobar los principales aspectos de la sintaxis en Java y como introducción al lenguaje:

25 PROYECTO HP 25 // Hola.java public class Hola { public static void main(string[] args)throws IOException { System.out.println(" Hola, mundo!"); Ejemplo 5: Hola Mundo en Java Basándose en el código se pueden destacar varios aspectos: - Todo en Java está dentro de una clase, incluyendo programas autónomos. - El código fuente se guarda en archivos con el mismo nombre que la clase que contienen y con extensión.java. Una clase (class) declarada pública (public) debe seguir este convenio. En el ejemplo anterior, la clase es Hola, por lo que el código fuente debe guardarse en el fichero Hola.java. - El compilador genera un archivo de clase (con extensión.class ) por cada una de las clases definidas en el archivo fuente. - Los programas que se ejecutan de forma independiente y autónoma, deben contener el método main(). - La palabra reservada void indica que el método main no devuelve nada. - El método main debe aceptar un array de objetos tipo String. Por acuerdo se referencia como args, aunque puede emplearse cualquier otro identificador. - La palabra reservada static indica que el método es un método estático - La palabra reservada public significa que un método puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarquía de la propia clase. Otros tipos de acceso son private o protected. - La utilidad de impresión (en pantalla por ejemplo) forma parte de la biblioteca estándar de Java: la clase System define un campo público estático llamado out. El objeto out es una instancia de PrintStream, que ofrece el método println (String) para volcar datos en la pantalla (la salida estándar). - La función main arroja una excepción del tipo IOException, es decir, una excepción de entrada/salida.

26 PROYECTO HP 26 En resumen se puede decir que Java posee una sintaxis similar a C, que todo en Java es un objeto y que todo debe estar incluido dentro de una clase Eclipse Eclipse es un entorno de desarrollo integrado de código libre multiplataforma para el desarrollo de aplicaciones, principalmente en lenguaje JAVA. Inicialmente fue desarrollado por IBM, aunque en la actualidad es desarrollado por la Fundación Eclipse (sin ánimo de lucro). Eclipse proporciona un entorno que facilita el desarrollo bajo lenguaje JAVA. Consta de un editor de textos con resaltado de sintaxis, opción de autocompletado y detección de errores de compilación en tiempo real. Integra pruebas unitarias con JUnit, control de versiones con CVS, refactorización y proporciona integración con Ant. Posee una serie de asistentes para automatizar la creación de proyectos, clases, test. En resumen Eclipse integra en una sola aplicación todas las funcionalidades necesarias para el desarrollo de proyectos en lenguaje Java. Eclipse emplea módulos para otorgar su funcionalidad, de esta forma solo son instalados aquellos que el usuario considera oportunos para sus necesidades consiguiendo así un entorno más liviano. Adicionalmente se pueden agregar módulos (plug-ins) que añaden funcionalidades extras a las originales proporcionadas por Eclipse. De esta manera se pueden usar otros lenguajes de programación con C, Python o LaTex, soporte para gestión de bases de datos, control de versiones con SubVersion o integración con Hibernate. También se pueden desarrollar plug-ins propios para ofrecer cualquier funcionalidad requerida como es el caso de este proyecto.

27 PROYECTO HP PDE PDE (Plug-in Development Environment) es una herramienta para la creación, desarrollo, testeo, construcción y distribución de plug-ins para Eclipse. Eclipse ofrece la posibilidad de la instalación de módulos que amplían su funcionalidad, de esta manera se puede añadir cualquier comportamiento que pueda resultar de utilidad para el desarrollador. Mediante PDE se pueden crear estos módulos desde el propio entorno, de esta manera se puede incluir en este todas las funcionalidades que el propio Eclipse ofrece (asistentes de creación de objetos, menús emergentes, editor de texto ). PDE es un plug-in en sí mismo, por tanto la instalación de este en Eclipse se realiza de manera sencilla y su integración en el entorno es total.

28 PROYECTO HP CASTOR Castor es un framework de código abierto que ofrece la posibilidad de serializar objetos de Java en un archivo XML y viceversa. Es básicamente el camino más corto entre Java y XML. Mediante Castor se puede capturar la información contenida en cualquier objeto propio de Java y representarla en un archivo respetando el formato de XML, de esta manera se consigue un puente de conexión entre el código Java que realiza las operaciones sobre los datos y lo datos propiamente dicho es formato XML. Castor también crea una estructura de objetos Java basándose en un archivo XML Schema que define el formato de los archivos XML que contendrán los datos. De esta manera se tendrá una estructura de datos en Java que se asemeje a la estructura del XML facilitando así la transformación. Proporciona también la posibilidad de abstracción sobre los tipos básicos de datos del formato XML utilizando los tipos básicos de Java (Integer, String, Long, ) siendo el propio Castor el que realiza la transformación.

29 PROYECTO HP Implementación A continuación se describen detalladamente los pasos seguidos para el desarrollo de la aplicación y su posterior compilación y distribución Preparación del entorno El primer paso es configurar el equipo en el que se va a realizar el proyecto e instalar las herramientas básicas para poder comenzar con el desarrollo (La instalación de nuevas herramientas necesarias como Castor se tratará más adelante, cuando sean necesarias para el desarrollo). Como se ha comentado anteriormente Eclipse es un entorno de desarrollo para lenguaje Java. Ha sido elegido Eclipse por ser el entorno usado para desarrollar los proyectos pertenecientes al Inventory Builder. Se busca así una integración total con estos proyectos. Eclipse es un software de código abierto y gratuito, por tanto se puede descargar su versión completa o cualquiera de las otras versiones desde su página web. Para este proyecto interesa la versión orientada a la creación de plug-ins que ya incluye el PDE (Plug-in Development Environment). La descarga, instalación y configuración de Eclipse se explica en el anexo B.

30 PROYECTO HP 30 Ilustración 3: Entorno de desarrollo Eclipse. Con el entorno ya instalado el siguiente paso en el desarrollo es el de crear un nuevo proyecto de plug-in. Para ello se va a emplear la herramienta PDE que se encargará de crear y configurar automáticamente todos los archivos que son necesarios para el desarrollo del plug-in. El proceso de creación se puede ver a continuación:

31 PROYECTO HP 31 Ilustración 4.a: Creación de un nuevo proyecto PDE. lustración 4.b: Creación de un nuevo proyecto PDE. En la ventana que se muestra a continuación se pide al usuario que introduzca el nombre del proyecto, su localización y la versión de Eclipse sobre la que va a funcionar.

32 PROYECTO HP 32 Ilustración 4.c: Creación de un nuevo proyecto PDE. En la siguiente ventana se establecen los datos requeridos para generar el plug-in tales como el entorno de ejecución de java (para el proyecto se

33 PROYECTO HP 33 empleará la versión 1.4 por ser la empleada por Inventory Builder), su identificador y si queremos generar un activador. El activador es una clase java que se encarga de controlar el ciclo de vida del plug-in, tanto de lanzarlo como detenerlo. Ilustración 4.d: Creación de un nuevo proyecto PDE. En la última ventana se muestran una serie de plantillas de proyectos. Estas plantillas definen una serie de proyectos prediseñados que sirven de

34 PROYECTO HP 34 punto de partida para basar el desarrollo. Para el proyecto se empleará la plantilla de Plug-in con un editor multipágina. Esta plantilla creará un nuevo editor de texto que constará de varias pestañas. Este editor será la base sobre la que se construya el editor que usará el plug-in para crear los beans (HP IB Bean Editor). La plantilla también creará un asistente para la creación y apertura de archivos que se ajusten al editor creado. Ilustración 4.e: Creación de un nuevo proyecto PDE. Tras cumplir con todas las ventanas del asistente de creación PDE habrá creado un nuevo proyecto con todas las clases necesarias para el funcionamiento del plug-in con las dos aportaciones que hará a Eclipse: el editor y el asistente. PDE también ofrece una interfaz mediante la cual se pueden encarar todos los aspectos básicos en el desarrollo del plug-in (resolver las

35 PROYECTO HP 35 dependencias, definir las nuevas funcionalidades que añadirá a Eclipse, editar sus archivos de configuración ). Desde esta interfaz también se dispone de la posibilidad de probar el plug-in. Para ello PDE lanza una nueva instancia de Eclipse, independiente de la que se esté usando, con el plug-in ya añadido. Este aspecto facilita la prueba de los proyectos PDE evitando que sea necesario compilar exportar y añadir a Eclipse el proyecto cada vez que se desee realizar una nueva prueba. Ilustración 5: Vista principal del proyecto PDE

36 PROYECTO HP Desarrollo del Plug-in. Una vez creado el nuevo proyecto plug-in, los archivos y la estructura básica, se deben implementar todas sus funcionalidades así como los aportes que este hará a Eclipse una vez incluido en el entorno. El primero de estos aportes será la adicción de una nueva opción al menú de creación de archivos de Eclipse. Gracias a este menú se podrán crear los beans manejados por la aplicación o abrir los que ya existan. Ilustración 6: Vista de la creación de un nuevo menú PDE, mediante la plantilla seleccionada con anterioridad, generará automáticamente las clases para el funcionamiento de los menús y de los asistentes intermedios, los cuales guiarán al usuario final en la creación de los beans que manejará la aplicación; así como los métodos de estas clases que son necesarios. Será labor del desarrollador otorgar la funcionalidad que desee a cada uno de estos métodos según sus preferencias.

37 PROYECTO HP 37 Ilustración 7: Ejemplo de clase para la creación de un nuevo menú

38 PROYECTO HP 38 A continuación se pueden ver los nuevos asistentes creados por el plugin Ilustración 8: Ventana 0 para abrir o crear un nuevo bean Ilustración 9: Ventana 1 para crear un nuevo bean

39 Ilustración 10: Ventana 1 para abrir un nuevo bean PROYECTO HP 39

40 PROYECTO HP 40 El siguiente aporte del plug-in a Eclipse será la creación de un nuevo tipo de editor (HP IB Bean Editor) que se asociará automáticamente con la extensión de los bean. De esta forma cada vez que se cree un nuevo bean o se abra uno ya existente, se hará automáticamente en el HP IB Bean Editor. Para crear este editor se modificará el editor multipágina que anteriormente se ha creado mediante las plantillas de PDE. Este editor posee 2 partes. La primera de ellas es un editor XML básico en el cual se puede consultar el código completo del bean. La otra parte es una representación en forma de árbol de la estructura del bean, en ella se puede editar cada uno de los nodos de este a través de un formulario adjunto. Ilustración 11: HP IB Bean Editor (editor XML) Ilustración 12: HP IB Bean Editor (árbol)

41 Desarrollo de la aplicación PROYECTO HP 41 Una vez desarrollado el plug-in propiamente dicho y las nuevas funcionalidades que otorga al entorno (los nuevos asistentes de creación y el HP IB Bean Editor) es necesario implementar la aplicación que hace uso de este plug-in y que será la que justifique su creación. La aplicación como se ha comentado anteriormente pretende, a grandes rasgos, facilitar la creación y modificación de archivos XML. Concretamente estará enfocada a beans que serán los que maneje para su funcionamiento el Inventory Builder. Se podrán tanto crear como editar beans usando el HP IB Bean Editor creado por el plug-in. Aunque se podrán realizar modificaciones mediante el editor de texto del HP IB Bean Editor, la aplicación está pensada para realizar estas modificaciones mediante la interfaz de árbol, más sencilla e intuitiva, dejando el editor de texto únicamente para comprobar el aspecto final y la sintaxis del bean. El editor de texto es un editor estándar proporcionado por el propio plugin similar al editor que por defecto que incluye Eclipse, por tanto no será necesario ningún desarrollo a mayores sobre este editor. El esfuerzo principal de implementación se centrará en la creación de la representación de árbol.

42 PROYECTO HP 42 Esta representación está dividida en 2 vistas: la del árbol propiamente dicho y la del formulario. Cada una de ellas será desarrollada por separado proporcionando diferentes funcionalidades. Ilustración 13: HP IB Bean Editor (vistas)

43 PROYECTO HP 43 Vista de Árbol Esta vista pretende representar la estructura del bean en forma de árbol para así facilitar su visión general aprovechando que la estructura del documento está definida en el archivo XML Schema. Es necesario convertir esta estructura definida en el XML Schema en una estructura de árbol que sea comprensible por Java. Para ello se empleará la clase JTree, mediante ella se podrá manejar dicha estructura adaptándola a las modificaciones que el usuario final desee. A continuación se puede consultar la documentación sobre la clase JTree desde la página web oficial de Java: Para este proceso de convertir el documento XML Schema en un árbol ( parsear el documento) será necesaria una librería externa a Java que facilite la tarea. En el caso del proyecto se utilizará la librería XSOM (XML Schema Object Model), especialmente diseñada para el parseo de documentos XML Schema. XSOM tiene implementados métodos para el recorrido de los elementos de un XML Schema y para su conversión a objetos de Java. XSOM también tiene implementados tipos que se adaptan a los definidos por el XML Schema, de tal forma que la correspondencia entre el modelo de datos del XML Schema y el modelo de datos de Java sea total. El modelo de datos del XML Schema se muestra en el siguiente diagrama:

44 PROYECTO HP 44 Ilustración 14: Modelo de datos de XML Schema A continuación se puede consultar la página web del proyecto XSOM desde donde descargar la librería o consultar la documentación: https://xsom.dev.java.net/ Tanto el parseo del documento mediante XSOM, la generación del árbol, y sus posteriores modificaciones (tales como añadir nuevos nodos al árbol, eliminar nodos ya existentes, cambiar el nombre de estos) serán implementadas en la misma clase. Para las modificaciones que el usuario quiera introducir en la estructura se empleará un menú Popup que se desplegará al hacer click derecho únicamente sobre la vista de árbol si se tiene seleccionado alguno de los nodos. El funcionamiento de este menú emergente estará sujeto a las restricciones definidas en el XML Schema (por ejemplo ciertos nodos solo pueden tener una aparición), estas restricciones serán recogidas en el proceso de parseo del documento. Para implementar este menú se empleará la clase JPopupMenu incluida en el API de Java.

45 PROYECTO HP 45 La documentación de la clase JPopupMenu se puede comprobar desde la página web oficial de Java: A continuación se muestra una captura de pantalla de la vista de árbol y el menú emergente donde se puede ver la interfaz ofrecida por la aplicación: Vista de Formulario Ilustración 15: Funcionamiento de la vista Árbol Esta vista pretende ofrecer una interfaz sencilla e intuitiva para la introducción de los datos en cada uno de los nodos del bean. Mediante una serie de sencillos formularios se podrá introducir la información de cada campo. Esta vista está fuertemente ligada a la vista del árbol, cuando un nodo del árbol es seleccionado automáticamente se carga el formulario correspondiente a dicho nodo. Durante el proceso de parseo del XML Schema, que como se vio antes servía para construir el árbol, se construye también un formulario asociado a cada nodo que recoge los campos que posee.

46 PROYECTO HP 46 Ilustración 16: Ejemplo de formulario asociado a un nodo Como se puede ver el formulario consiste en un par de elementos (nombre del campo cajetín para introducción de la información). El formulario pretende ir más allá que la simple introducción de los datos, ofrece una lógica para ayudar en la creación de los bean. Cada campo posee un indicador para comprobar si la información introducida en él es incorrecta (nombres de campo inválidos, datos fuera de rango, el campo siendo obligatorio está vacío, etc ). En determinados campos los valores introducidos solo pueden tomar un conjunto determinado; en estos casos el cuadro de texto original se sustituirá por una lista desplegable. Hay algunos campos que son obligatorios, en este caso se indica con un asterisco junto al nombre del campo y resaltando el cuadro de texto en color verde.toda esta información es recogida durante la creación del formulario al parsear el documento. El formulario también ofrece un indicador de ayuda que ofrece información del campo a rellenar en caso de que esta esté disponible. Este indicador es especialmente significativo ya que la información se recoge desde el propio XML Schema donde viene especificada. De esta manera se pueden aprovechar las anotaciones, comunes en los XML Schema.

47 PROYECTO HP 47 Ilustración 17: Ejemplo de funcionamiento del formulario El formulario se construirá mediante las clases JPanel (panel que representa al formulario), JTextField (Campos para la introducción de datos), JLabel (para los nombres y los indicadores de corrección y ayuda) y JCheckBox (para las listas desplegables) todas ellas incluidas en el API de Java. Una vez completado el formulario con la información que se desea introducir en cada campo es necesario guardarlo y transformarlo para que pueda ser almacenado en el bean en formato XML. Para poder hacer esto es necesario un nuevo proceso de parseo en esta ocasión para transformar el modelo de datos de Java al modelo XML. Para realizar este proceso de una manera sencilla se empleará Castor. Como se ha comentado antes Castor es un framework especialmente diseñado para esta tarea. Como Castor no está incluido como tal en Java antes de poder usarlo es necesario incluir las librerías necesarias. Una explicación detallada de la instalación de Castor se puede consultar en el anexo B.2. Una vez incluidas las librerías es necesario crear el modelo de datos Java. Para ello Castor lee el XML Schema y basándose en él que define crea el modelo de datos Java (para cada elemento del XML Schema crea una nueva clase de Java con un parámetro para cada campo del elemento). Estas clases siguen una estructura especial para que Castor pueda convertirlas facilmente al formato XML.

48 PROYECTO HP 48 Para crear el modelo de datos se empleará la línea de comandos. Se puede consultar la documentación de Castor para consultar un ejemplo de creación de modelo de datos Java. Un ejemplo de clase generada por Castor que forman parte del modelo de datos se puede ver en el anexo C.1 El modelo Java es usado para almacenar la información recogida en los formularios, creando un objeto de la clase requerida. Castor convertirá la información almacenada en el objeto en un archivo XML valido. De esta manera la información recogida en los formularios se convertirá en un archivo XML que sigue la estructura de los beans. Todo este proceso se realiza automáticamente mediante la función marshal de Castor, bastará con indicarle cual es el objeto raíz de la estructura de datos. Castor también se empleará para el proceso inverso; es decir, cuando se abra un bean para su modificación tanto la información que este ya tiene como su estructura debe leerse y representarse en los formularios correspondientes. Para ello Castor realizará el proceso de unmarshal leyendo el bean y almacenando su información en los objetos Java definidos por el modelo de datos creado. Las clases que realizan estas funciones son las clases Marshal y Unmarshal que pueden ser consultadas en el anexo C.2 y el anexo C.3 respectivamente 5.3. Exportación de la aplicación. Una vez finalizada la aplicación se debe exportar de manera que pueda ser posteriormente añadida como plug-in a Eclipse. Para ello de nuevo se emplearán las funcionalidades de PDE. PDE proporciona un sistema de

49 PROYECTO HP 49 exportación para hacer este proceso de manera automática en unos pocos pasos a través de su interfaz. Ilustración 18: Zona para la exportación del plug-in Mediante la interfaz de PDE se completan de manera sencilla los 4 pasos necesarios para completar la exportación: - Se organizan los archivos del proyecto evitando que queden dependencias sin resolver. - Se externalizan las cadenas de texto; es decir, se extrae a un archivo de propiedades los Strings básicos del plug-in tales como nombres de ventanas, id del plug-in, cuadros de texto. De esta forma si con posterioridad se desea cambiar alguna de estas cadenas no será necesario buscar en el código cada una de sus apariciones, bastará con cambiarlas en el archivo de propiedades. - Se especifican los paquetes que se necesitan incluir para que el plugin funcione. Ciertos paquetes y librerías serán necesarias para el funcionamiento del plug-in (Castor, XSOM, etc ). Para evitar que el usuario final tenga que introducirlas, con los fallos que esto puede acarrear, el propio plug-in ya las tendrá incluidas.

50 PROYECTO HP 50 - El último paso será exportar el plug-in a un archivo.jar que pueda ser añadido a Eclipse. La exportación se realiza mediante un asistente en el que especificar todas las opciones. Una vez completado el proceso se creara un archivo.jar que contendrá el plug-in. Este archivo resultante es el que tendrá que ser añadido a Eclipse Ilustración 19: Asistente para la exportación. Una vez generado el plug-in es necesario incluirlo en Eclipse. Para ello bastará con incluir el archivo generado dentro de la carpeta plugins creada durante la instalación de eclipse.

51 PROYECTO HP 51 Ilustración 20: Carpeta para la instalación del plug-in. Esta carpeta es leída por Eclipse cada vez que se ejecuta, por tanto la próxima vez que se ejecute inspeccionará la carpeta, reconocerá el nuevo plugin e incluirá todas las nuevas funcionalidades desarrolladas en el entorno.

52 PROYECTO HP Resultados Una vez concluida la fase de desarrollo se muestran las funcionalidades de la aplicación ya terminada Creación de un nuevo bean o apertura de uno ya existente. La aplicación permite crear bean desde cero o abrir uno ya existente. Los beans creados tendrán la estructura mínima necesaria, esto es, los campos definidos como obligatorios en el XML Schema; a partir de esta estructura básica se podrá ampliar la información guardada en el bean. Para crear los beans la aplicación aprovechará los nuevos elementos incluidos (asistentes, menús, editores, etc ) en Eclipse gracias al plug-in. Los beans se crearán dentro del proyecto que este actualmente abierto y que será el que haga uso de este. Como se ha visto con anterioridad la creación del bean se automatiza con el uso de asistentes. Para ello desde el menú Fichero>Nuevo>Otro accederemos a la sección con todos los asistentes de creación de ficheros que oferta Eclipse entre ellos el del plug-in.

53 PROYECTO HP 53 Ilustración 21: Nuevo Bean En la siguiente ventana se puede elegir entre abrir un bean ya existente o crear uno nuevo desde cero. Ilustración 22: Nuevo Bean (II) Según la opción seleccionada se abrirá uno de los dos asistentes para crear o abrir un bean ya comentados con anterioridad en la sección de desarrollo. Su cometido será el de especificar el nombre del bean y en caso de querer abrir uno ya existente la ruta en que este se encuentra (por defecto se tomara la ruta del worspace de Eclipse)

54 PROYECTO HP 54 Ilustración 23: Nuevo Bean (III.a) Ilustración 24: Nuevo Bean (III.b)

55 PROYECTO HP Modificación de los bean Una vez creado el bean, la aplicación empleará el editor (HP IB Bean Editor) creado por el plug-in para la modificación del archivo. Como se ha visto con anterioridad el editor está formado por dos vistas (la de árbol y la de los formularios). La información se introducirá a través de los campos de los distintos formularios (en algunos casos la información que puede ser introducida está restringida o estará relacionada con la información introducida en otros nodos del bean), estos campos dispondrán de un elemento de ayuda para comprobar que la información introducida es correcta. Estos formularios se activarán al seleccionar cualquiera de los nodos del árbol. Las modificaciones introducidas en los formularios serán realizadas cuando se cambie a otro formulario distinto. Cuando el campo sea el relativo al nombre este modificará también el nombre del nodo mostrado en el árbol. El árbol por su parte servirá para modificar la estructura del documento. Al seleccionar con el botón derecho sobre un elemento del árbol se activará un menú desplegable con los nuevos nodos que el nodo seleccionado puede aceptar y con la posibilidad de borrar el nodo si no es un nodo obligatorio. Ilustración 25: Crear nuevo nodo del árbol

56 PROYECTO HP 56 Ilustración 26: Borrar un nodo del árbol Ilustración 27: Modificar información de un nodo

57 PROYECTO HP 57 Finalmente se podrán comprobar el resultado de las modificaciones introducidas mediante la pestaña de editor de texto del HP IB Bean Editor donde se mostrará el código XML del archivo. Ilustración 28: Vista del Código XML

58 PROYECTO HP Conclusiones Se ha desarrollado con éxito una primera versión del proyecto. En ella se han abordado los objetivos planteados al inicio del proyecto; esto es, otorgar al desarrollador una herramienta integrada en el Entorno de Desarrollo Eclipse que facilite la creación de Beans, en formato XML, para su uso por parte de Inventory Builder. La aplicación aprovecha la herramienta PDE (Plug-in Development Environmet) para la creación de Plug-in para Eclipse. Mediante esta herramienta se pueden agregar nuevas funcionalidades a Eclipse o modificar las que este ya ofrece. La inclusión de la aplicación en Eclipse es uno de los principales aspectos del proyecto. De esta manera se favorece la integración con los proyectos desarrollados para Inventory Builder con esta plataforma, así como facilitar su uso al no ser necesaria la ejecución de otra aplicación. Se evita al desarrollador tener que familiarizarse con el funcionamiento de una nueva aplicación al tener la misma interfaz que cualquier otra funcionalidad de Eclipse. El proyecto queda abierto a futuras ampliaciones de la aplicación ya existente. El proyecto ha servido como introducción al lenguaje XML, especialmente a su uso para el almacenamiento y procesado de información estructurada. También se han adquirido los conocimientos necesarios para el desarrollo de aplicaciones empresariales al más alto nivel bajo lenguaje Java. A mayores ha servido como introducción al desarrollo de plug-ins para Eclipse mediante la herramienta PDE.

59 PROYECTO HP Trabajos futuros Desde su creación, la importancia de XML se ha incrementado, siendo este incremento especialmente acusado en la actualidad. Esto es debido a todas las facilidades que XML otorga, especialmente en el manejo de datos estructurados y el intercambio de estos a través de Internet. Por tanto el número de las aplicaciones que en el futuro utilizarán XML para almacenar sus datos será mucho mayor. En este contexto futuro, aplicaciones como las tratadas en este proyecto serán cada vez más demandadas, ya que será necesario manejar gran cantidad de datos en formato XML pudiendo realizar operaciones sobre ellos para extraer información válida para tareas de gestión o administración. Estas aplicaciones se aprovecharán también de las nuevas tecnologías de gestión y distribución de la información para incrementar su funcionalidad. Tratando ya sobre la aplicación desarrollada en este proyecto son posibles varias mejoras a corto plazo. La primera de ellas trata sobre la distribución del proyecto, actualmente la aplicación se distribuye mediante un archivo.jar que ha de ser incluido en Eclipse. Este archivo debe distribuirse ya sea vía Web o físicamente a cada equipo donde vaya a ser ejecutado, con el consecuente coste de esto. Eclipse sin embargo ofrece una herramienta de actualización de Software que da la posibilidad de descargar y actualizar plug-ins de manera automática vía Internet a través de sus propios servidores. Incluyendo la aplicación en este sistema proporcionado por el propio Eclipse se facilitaría la distribución y se automatizarían las futuras actualizaciones haciéndolas transparentes para el usuario. Otro punto en el que continuar el desarrollo sería el de la compatibilidad con las distintas versiones de Inventory Builder. La aplicación está desarrollada para funcionar con la versión de Inventory que se emplea en la actualidad; sin embargo, en el futuro es posible que se usen distintas versiones, incluso de manera simultánea. Para ello se emplearía Spring, un framework de desarrollo bajo lenguaje Java para el manejo de versiones. De esta forma la aplicación configuraría automáticamente su funcionamiento según la versión utilizada.

60 PROYECTO HP 60 Otro aspecto de mejora de la aplicación sería incluir en ella un parseador para convertir archivos DTD a archivos de tipo XML Schema. En la actualidad Inventory Builder utiliza archivos DTD para la definición de los beans. La aplicación por el contrario utiliza archivos XML Schema por las mayores funcionalidades que este ofrece. La conversión entre ambos se realiza de forma manual y sería interesante que la transformación fuese realizada por la propia aplicación de forma automática, abstrayendo de este proceso al desarrollador. La última mejor que se podría incluir, ya más a largo plazo, seria la generalización de la aplicación para su uso con cualquier archivo en formato XML que este definido por un XML Schema y no solo con beans.

61 9. Bibliografía PROYECTO HP 61

62 Anexo A: Ejemplos PROYECTO HP 62

63 PROYECTO HP 63 A.1: XML Schema <?xml version="1.0" encoding="utf-8" standalone="no"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xml Schema"> <xsd:element name="bean"> <xsd:complextype> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="description" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="alias" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="constraint-name" type="xsd:string"/> <xsd:element name="package" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="application" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="dbtable" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="hist-dbtable" type="xsd:string"/> <xsd:element name="fields"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="field"> <xsd:complextype> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="column" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="alias" type="xsd:string"/> <xsd:element name="type" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="default" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="description" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="listofvalues"> <xsd:complextype> <xsd:choice> <xsd:element maxoccurs="unbounded" name="value" type="xsd:string"/> <xsd:sequence> <xsd:element name="beanname" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="beanclass" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="label" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="method" type="xsd:string"/> <xsd:element maxoccurs="unbounded" minoccurs="0" name="param"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="type" type="xsd:string" use="optional"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:choice> <xsd:attribute name="without-fk" use="optional"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="true"/> <xsd:enumeration value="false"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:complextype> </xsd:element> <xsd:element maxoccurs="1" minoccurs="0" name="loader" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="mandatory" type="xsd:string" use="optional"/> <xsd:attribute name="advancedaudit" type="xsd:string" use="optional"/> <xsd:attribute name="hiddenupdate" type="xsd:string" use="optional"/> <xsd:attribute name="hiddenview" type="xsd:string" use="optional"/> <xsd:attribute name="searchable" type="xsd:string" use="optional"/> <xsd:attribute name="dateformat" type="xsd:string" use="optional"/> <xsd:attribute name="store" type="xsd:string" use="optional"/> <xsd:attribute name="readonly" type="xsd:string" use="optional"/> <xsd:attribute name="hidden" type="xsd:string" use="optional"/> <xsd:attribute name="sequence" type="xsd:string" use="optional"/> <xsd:attribute name="maxcount" type="xsd:string" use="optional"/> <xsd:attribute name="password" type="xsd:string" use="optional"/>

64 PROYECTO HP 64 </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name="keys"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="key"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="1" minoccurs="0" name="name" type="xsd:string"/> <xsd:element maxoccurs="unbounded" minoccurs="0" name="keyfield"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="foreignfield" type="xsd:string" use="optional"/> <xsd:attribute name="external-bean" type="xsd:string" use="optional"/> <xsd:attribute name="alias" type="xsd:string" use="optional"/> <xsd:attribute name="join-field" type="xsd:string" use="optional"/> <xsd:attribute name="external-join-field" type="xsd:string" use="optional"/> <xsd:attribute name="ignore-case" type="xsd:string" use="optional"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> <xsd:element maxoccurs="unbounded" minoccurs="0" name="joinbridge"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="jump"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="jump-field" type="xsd:string" use="optional"/> <xsd:attribute name="inverse-jump-field" type="xsd:string" use="optional"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attribute name="origin" type="xsd:string" use="optional"/> <xsd:attribute name="destination" type="xsd:string" use="optional"/> <xsd:attribute name="jump-field" type="xsd:string" use="optional"/> <xsd:attribute name="inverse-jump-field" type="xsd:string" use="optional"/> </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attribute name="foreignbean" type="xsd:string" use="optional"/> <xsd:attribute name="pk" type="xsd:string" use="optional"/> <xsd:attribute name="unique" type="xsd:string" use="optional"/> <xsd:attribute name="makeindex" type="xsd:string" use="optional"/> <xsd:attribute name="restrict" type="xsd:string" use="optional"/> <xsd:attribute name="include-bean" type="xsd:string" use="optional"/> <xsd:attribute name="findbyarray" type="xsd:string" use="optional"/> <xsd:attribute name="sqlconstraint" type="xsd:string" use="optional"/> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element maxoccurs="1" minoccurs="0" name="operations"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="1" minoccurs="0" name="store" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="update" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="remove" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="queryform"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="column" type="xsd:string"/> </xsd:sequence>

65 PROYECTO HP 65 </xsd:complextype> </xsd:element> <xsd:element maxoccurs="unbounded" minoccurs="0" name="findby"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="orderfield"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="desc" use="optional"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="true"/> <xsd:enumeration value="false"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> <xsd:attribute name="convert-to" use="optional"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="number"/> <xsd:enumeration value="string"/> <xsd:enumeration value="date"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> <xsd:attribute name="format" type="xsd:string" use="optional"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attribute name="doreservation" type="xsd:string" use="optional"/> <xsd:attribute name="key" type="xsd:string" use="optional"/> </xsd:complextype> </xsd:element> <xsd:element maxoccurs="1" minoccurs="0" name="oncreationjspinitwf" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="onupdatejspinitwf" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="ondeletejspinitwf" type="xsd:string"/> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element maxoccurs="1" minoccurs="0" name="roles"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="1" minoccurs="0" name="store" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="update" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="remove" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="query" type="xsd:string"/> <xsd:element maxoccurs="unbounded" minoccurs="0" name="ext-attributes"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="type" use="required"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="class"/> <xsd:enumeration value="instance"/> <xsd:enumeration value="both"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element maxoccurs="1" minoccurs="0" name="construction" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="validation" type="xsd:string"/> <xsd:element maxoccurs="1" minoccurs="0" name="validations-form"> <xsd:complextype> <xsd:sequence> <xsd:element maxoccurs="unbounded" minoccurs="0" name="validation-form">

66 <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="entry" type="xsd:string" use="optional"/> <xsd:attribute name="message" type="xsd:string" use="optional"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attribute name="inheritsfrom" type="xsd:string" use="optional"/> <xsd:attribute name="snmp-manage" type="xsd:string" use="optional"/> <xsd:attribute name="audit" type="xsd:string" use="optional"/> <xsd:attribute name="maxcount" type="xsd:string" use="optional"/> <xsd:attribute name="ext-attributes" use="optional"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="class"/> <xsd:enumeration value="instance"/> <xsd:enumeration value="both"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> <xsd:attribute name="history" use="optional"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="true"/> <xsd:enumeration value="false"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:complextype> </xsd:element> </xsd:schema> PROYECTO HP 66

67 PROYECTO HP 67 A.2: Ejemplo de Bean <?xml version="1.0" encoding="utf-8"?> <Bean xmlns:xsi='http://www.w3.org/2001/xml Schema-instance' xsi:schemalocation= "C:\Users\Gelou\workspace\Plugin2\resources\Esquema Antiguo.xsd"> <Name>Pedido</Name> <Package>com.hp.spain.jazztel.sga.inventory</Package> <DBTable>SGA_Pedidos</DBTable> <Fields> <Field sequence="true" hidden="true"> <Name>IdPedido</Name> <Type>String</Type> <Description>Id del Pedido</Description> </Field> <Field mandatory="false"> <Name>Albaran</Name> <Alias>Albarà n</alias> <Type>String</Type> <Description>Albarà n del pedido</description> </Field> <Field mandatory="false"> <Name>IdPedidoMayorista</Name> <Alias>Identificador del pedido del mayorista</alias> <Type>String</Type> <Description>Identificador del pedido del mayorista</description> </Field> <Field> <Name>IdPedidoCrm</Name> <Alias>Identificador del pedido del CRM</Alias> <Type>String</Type> <Description>Identificador del pedido del CRM</Description> </Field> <Field mandatory="false" readonly="true"> <Name>IdSIM</Name> <Alias>SIM</Alias> <Type>String</Type> <Description>ICCID de la SIM</Description> <ListOfValues> <BeanName>com.hp.spain.jazztel.sga.inventory.SIM</BeanName> <Label>$ICCID$</Label> </ListOfValues> </Field> <Field mandatory="false" readonly="true"> <Name>IdTerminal</Name> <Alias>Terminal</Alias> <Type>String</Type> <Description>IMEI del terminal</description> <ListOfValues> <BeanName>com.hp.spain.jazztel.sga.inventory.Terminal</BeanName> <Label>$IMEI$</Label> </ListOfValues> </Field> <Field mandatory="false" readonly="true"> <Name>IdModemUsb</Name> <Alias>Modem USB</Alias> <Type>String</Type> <Description>IMEI del modem USB</Description> <ListOfValues> <BeanName>com.hp.spain.jazztel.sga.inventory.Terminal</BeanName> <Label>$IMEI$</Label> </ListOfValues> </Field>

68 PROYECTO HP 68 <Field mandatory="false" readonly="true"> <Name>IdNumero</Name> <Alias>Número de telã fono</alias> <Type>String</Type> <Description>Número de telã fono</description> <ListOfValues> <BeanName>com.hp.spain.jazztel.sga.inventory.Numero</BeanName> <Label>$Numero$</Label> </ListOfValues> </Field> <Field> <Name>IdOperadorLogistico</Name> <Alias>Operador logãstico</alias> <Type>String</Type> <Description>Nombre del operador logãstico</description> <ListOfValues> <BeanName>com.hp.spain.jazztel.sga.inventory.OperadorLogistico</BeanName> <Label>$Nombre$</Label> </ListOfValues> </Field> <Field> <Name>IdEstado</Name> <Alias>Estado del pedido</alias> <Type>String</Type> <Description>Estado del pedido</description> <ListOfValues> <BeanName>com.hp.spain.jazztel.sga.inventory.Estado</BeanName> <Label>$Nombre$</Label> <Method>findByGrupo</Method> <Param>constant:PEDIDO</Param> </ListOfValues> </Field> <Field mandatory="false"> <Name>IdPedidoPrecedente</Name> <Alias>Identificador del pedido relanzado</alias> <Type>String</Type> <Description>Identificador del pedido relanzado</description> </Field> <Field mandatory="false"> <Name>Portabilidad</Name> <Alias>Portabilidad</Alias> <Type>boolean</Type> <Description>Pedido portado o no portado</description> </Field> <Field dateformat="dd/mm/yyyy hh:mm:ss" mandatory="false"> <Name>VentanaCambio</Name> <Alias>Fecha</Alias> <Type>Date</Type> <Description>Fecha de realizacion real de la portabilidad</description> </Field> <Field mandatory="false"> <Name>Nombre</Name> <Alias>Nombre</Alias> <Type>String</Type> <Description>Nombre del contacto autorizado</description> </Field> <Field mandatory="false"> <Name>Direccion</Name> <Alias>Direccion</Alias> <Type>String</Type> <Description>Direccion del contacto autorizado</description> </Field> <Field mandatory="false"> <Name>Localidad</Name> <Alias>Localidad</Alias> <Type>String</Type>

69 PROYECTO HP 69 <Description>Localidad del contacto autorizado</description> </Field> <Field mandatory="false"> <Name>Provincia</Name> <Alias>Provincia</Alias> <Type>String</Type> <Description>Provincia del contacto autorizado</description> </Field> <Field mandatory="false"> <Name>Complemento</Name> <Alias>Complemento</Alias> <Type>String</Type> <Description>Datos suplementarios a la direccion</description> </Field> <Field mandatory="false"> <Name>FijoPrincipal</Name> <Alias>Telefono fijo</alias> <Type>String</Type> <Description>Telefono fijo del contacto principal</description> </Field> <Field mandatory="false"> <Name>MovilPrincipal</Name> <Alias>Telefono movil</alias> <Type>String</Type> <Description>Telefono movil del contacto principal</description> </Field> <Field mandatory="false"> <Name>FijoAutorizado</Name> <Alias>Telefono fijo</alias> <Type>String</Type> <Description>Telefono fijo del contacto autorizado</description> </Field> <Field mandatory="false"> <Name>MovilAutorizado</Name> <Alias>Telefono movil</alias> <Type>String</Type> <Description>Telefono movil del contacto autorizado</description> </Field> </Fields> <Keys> <Key pk="true"> <KeyField>IdPedido</KeyField> </Key> <Key unique="true"> <KeyField>Albaran</KeyField> </Key> <Key foreignbean="sim" restrict="true"> <KeyField foreignfield="idsim">idsim</keyfield> </Key> <Key foreignbean="terminal" restrict="true"> <KeyField foreignfield="idterminal">idterminal</keyfield> </Key> <Key foreignbean="terminal" restrict="true"> <KeyField foreignfield="idterminal">idmodemusb</keyfield> </Key> <Key foreignbean="numero" restrict="true"> <KeyField foreignfield="idnumero">idnumero</keyfield> </Key> <Key foreignbean="operadorlogistico" restrict="true">

70 PROYECTO HP 70 <KeyField foreignfield="idoperadorlogistico">idoperadorlogistico</keyfield> </Key> <Key foreignbean="estado" restrict="true"> <KeyField foreignfield="idestado">idestado</keyfield> </Key> <Key foreignbean="pedido" restrict="true"> <KeyField foreignfield="idpedido">idpedidoprecedente</keyfield> </Key> </Keys> <Operations> <Store/> <Update/> <Remove/> <QueryForm/> <FindBy/> </Operations> </Bean>

71 PROYECTO HP 71 Anexo B: Instalación de Componentes En este anexo se explica con detalle, capturas de pantalla y ejemplos la instalación y configuración de cada una de las herramientas necesarias para este proyecto. B.1: Eclipse y PDE Como se ha visto con anterioridad Eclipse es un proyecto de software de código abierto y gratuito. Se puede por tanto descargar la versión completa de manera gratuita desde la página web del proyecto. En la sección de descargas se pueden ver todas las diferentes versiones de Eclipse que se pueden descargar, cada una de ellas orientada a un tipo de desarrollo software (empresarial, C++, PHP, etc ). La dirección de la página es: para acceder directamente a la sección de descargas. Una vez abierta la página para el caso del proyecto se debe elegir la versión de Eclipse especialmente configurada para el desarrollo de plug-ins, que ya incluye PDE, y la versión del sistema operativo deseada (Windows, Mac, Linux) Ilustración 29: Descarga de Eclipse

72 PROYECTO HP 72 Una vez seleccionada la versión deseada se pasará a la ventana de opciones de la descarga. Bastara con hacer click en el enlace de descarga desde el servidor ofrecido por la página. Ilustración 30: Descarga de Eclipse (II) Una vez finalizada la descarga se deberá únicamente descomprimir el archivo descargado, no siendo necesaria ninguna instalación, en la ubicación que se desee para Eclipse. No será necesario crear ninguna carpeta ya que el propio archivo al descomprimirse creará la suya propia. Como PDE ya viene incluido en esta versión del entorno no será necesaria ninguna instalación a mayores.

73 PROYECTO HP 73 Tras finalizar la descompresión el entorno ya estará listo para usarse, ejecutando su lanzador Ilustración 31: Ejecución de Eclipse

74 PROYECTO HP 74 B.2: Castor Para descargar Castor bastará con acceder a la sección de descargas en la página web del proyecto Castor donde se puede obtener la versión completa de forma gratuita. La dirección es: Una vez allí se elegirá la versión completa en el formato deseado (.zip o.tgz) Ilustración 32: Descarga de Castor.

75 PROYECTO HP 75 El archivo descargado contiene tanto lo JAR necesarios como la documentación. Una vez descargado Castor será necesario incluirlo en Eclipse; desde el propio Eclipse se añadirán los.jar de Castor necesarios al proyecto. Para ello se accede a las propiedades del proyecto haciendo click derecho sobre el proyecto. Ilustración 33: Instalación de Castor. Una vez en la ventana de propiedades, en la sección de Java Build Path se selecciona la pestaña de Libraries y se añadirá un.jar externo (Add External JARs). Se añadirán las librerías que se pueden ver en a siguiente ilustración. Una vez añadidas se podrán emplear todas las clases de Castor que serán necesarias para el proyecto.

76 PROYECTO HP 76 Ilustración 34: Instalación de Castor (II) Anexo C: Codigo Fuente A continuación se presenta el código fuente de las principales clases que forman parte de la aplicación.

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... Contenido Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... 5 Introducción Es tiempo de hablar en detalle de lo que significa

Más detalles

Seminario de Java. Contenido

Seminario de Java. Contenido Seminario de Java Programación Orientada a Objetos Curso 2006/2007 Contenido 1. Introducción 2. Primeros pasos con Java. El entorno Eclipse 3. La sintaxis del lenguaje Java 4. Clases y objetos 5. Cadenas

Más detalles

Unidad II. Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar

Unidad II. Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar Clase:005 1 Unidad II Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar 2 Agenda Desarrollo de Apps para Android Aplicaciones en Android Componentes Básicos de las Aplicaciones

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA Visual Basic.NET es la última versión del sistema de desarrollo Visual Basic. Antes de empezar a crear aplicaciones en Visual Basic.NET, le será útil conocer y entender algunos conceptos básicos de.net.

Más detalles

Tema: Introducción a Java y Netbeans

Tema: Introducción a Java y Netbeans 1 Tema: Introducción a Java y Netbeans Objetivo Especifico Conocer el uso básico del JDK para la compilación y ejecución de código java desde la linea de comando Conocer el entorno de desarrollo NetBeans

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

SIOM-Interfaz AM Manual de Usuario

SIOM-Interfaz AM Manual de Usuario SIOM-Interfaz AM Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_InterfazAM.doc Versión 5.0 Fecha: 2014-09-10 ÍNDICE 1 INTRODUCCIÓN 3 2 REQUISITOS PREVIOS 4 2.1 COMPONENTES

Más detalles

1. El entorno de desarrollo Eclipse

1. El entorno de desarrollo Eclipse Índice 1. El entorno de desarrollo Eclipse 1 1.1. Qué es Eclipse?........................................................ 1 1.2. Trabajando con Eclipse....................................................

Más detalles

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario Apéndice 5 Manual de usuario de ColeXión ColeXión 1.0 Manual de usuario Índice 1. Qué es ColeXión?... 2 2. Requerimientos del sistema... 3 3. Instalación de ColeXión... 3 4. Creación de un nuevo esquema...

Más detalles

Práctica de introducción a

Práctica de introducción a Práctica de introducción a XML El trabajo consiste en una introducción al uso del lenguaje XML y su aplicación en documentos y sistemas de caracteristicas multimedia. 1.- Qué es XML? XML (extensible Markup

Más detalles

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse Programación 2 Curso 2013 2014 Introducción Guía de desarrollo C/C++ con Eclipse Eclipse 1 es un entorno de programación que permite el desarrollo de aplicaciones en diferentes lenguajes. Consta de un

Más detalles

Instalación de IBM SPSS Modeler Server Adapter

Instalación de IBM SPSS Modeler Server Adapter Instalación de IBM SPSS Modeler Server Adapter Contenido Instalación del adaptador de IBM SPSS Modeler Server............ 1 Acerca de la instalación de IBM SPSS Modeler Server Adapter................

Más detalles

PROGRAMACIÓN II. BLOQUE I de prácticas. Práctica 1

PROGRAMACIÓN II. BLOQUE I de prácticas. Práctica 1 UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERIA Y SISTEMAS DE TELECOMUNICACIÓN PROGRAMACIÓN II BLOQUE I de prácticas Práctica 1 Semestre de primavera curso 2013/14 UNIVERSIDAD

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua.

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua. Manual de instalación y uso de Aplicación Test Web Services MEGA Introducción Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado

Más detalles

Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Gestión y administración de un curso

Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Gestión y administración de un curso Plataforma Moodle Gestión y administración de un curso El panel de administración----------------------------------------------------------- 2 Gestión de personas (alumnos y profesores) ------------------------------------

Más detalles

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE Versión 1.8 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de usuario del

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

LOS LENGUAJES DE MARCADO APLICADOS A LOS REGISTROS BIBLIOGRÁFICOS. XML MARC DTD; XML MARC SCHEMA.

LOS LENGUAJES DE MARCADO APLICADOS A LOS REGISTROS BIBLIOGRÁFICOS. XML MARC DTD; XML MARC SCHEMA. LOS LENGUAJES DE MARCADO APLICADOS A LOS REGISTROS BIBLIOGRÁFICOS. XML MARC DTD; XML MARC SCHEMA. I. INTRODUCCIÓN A LOS LENGUAJES DE MARCADO Los lenguajes de marcado, también denominados lenguajes de marcas,

Más detalles

Ar lips Development E nvironment versión 1.0.0

Ar lips Development E nvironment versión 1.0.0 Ar lips Development E nvironment versión 1.0.0 Grupo de Tecnología Informática - Inteligencia Artificial Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia (España)

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO INTRODUCCIÓN Objetivo del curso: El alumno desarrollará la capacidad para resolver problemas de almacenamiento, recuperación y ordenamiento de datos, utilizando las diferentes estructuras que existen para

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

INTRODUCCIÓN A JAVA. Índice

INTRODUCCIÓN A JAVA. Índice INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java

Más detalles

Introducción a JAX-WS Web Services

Introducción a JAX-WS Web Services INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO ALUMNO: SANLUIS CASTILLO JOSE DAVID PROFESOR: CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO MATERIA: WEB APPLICATION DEVEPLOMENT Introducción a JAX-WS

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas

Más detalles

UF1302 Creación de páginas web con lenguajes de marcas

UF1302 Creación de páginas web con lenguajes de marcas UF1302 Creación de páginas web con lenguajes de marcas TEMA 1. Los lenguajes de marcas TEMA 2. Imágenes y elementos multimedia TEMA 3. Técnicas de accesibilidad y usabilidad TEMA 4. Herramientas de edición

Más detalles

Capítulo V. Pruebas de Software

Capítulo V. Pruebas de Software Capítulo V. Pruebas de Software Este capítulo es un reporte de las pruebas realizadas al software de este proyecto de tesis. En primer lugar se presenta un reporte de las pruebas formativas de usabilidad

Más detalles

(volver a Tabla de Contenidos)

(volver a Tabla de Contenidos) Para escribir, compilar y ejecutar un programa en Java lo único que realmente se necesita y no viene incluido con el sistema operativo es el kit de desarrollo de Java, denominado SDK (Software Development

Más detalles

Tema 1: y el lenguaje Java 1.Programación orientada a objetos 2.El lenguaje Java 3.Compilación, bytecode y JVMs 4.Entornos de desarrollo Java 5.Java vs otros lenguajes OO Programación orientada a objetos

Más detalles

Java Avanzado. Guía 1 7. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1 7. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 7 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en

Más detalles

MANUAL DE AYUDA INFORMATIVAS MAC/OSX

MANUAL DE AYUDA INFORMATIVAS MAC/OSX MANUAL DE AYUDA INFORMATIVAS MAC/OSX Agencia Tributaria Centro de Atención Telefónica Departamento de INFORMÁTICA TRIBUTARIA ÍNDICE PLATAFORMA DE INFORMATIVAS INTRODUCCIÓN... 4 Requisitos mínimos... 4

Más detalles

Módulo 1 El lenguaje Java

Módulo 1 El lenguaje Java Módulo 1 El lenguaje 1.1 Presentación de es un lenguaje de programación desarrollado por la empresa Sun Microsystems en 1991 como parte de un proyecto secreto de investigación llamado Green Proyect, con

Más detalles

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México Licencia La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México S. A de C.V., Está protegida por derechos de autor y / u otras leyes aplicables. Cualquier uso diferente a

Más detalles

procesamientodedatosconjava modalidadteleformación 210horas completamentegratuito

procesamientodedatosconjava modalidadteleformación 210horas completamentegratuito curso: procesamientodedatosconjava modalidadteleformación 210horas completamentegratuito +información a/a Zully Montelongo Teléfono: 91 532 93 65 Móvil: 696 42 95 89 Correo electrónico: fcontinua3@viaformacion.com

Más detalles

Quieres diseñar una página web y no sabes por dónde empezar? Puedes decantarte por utilizar Visual Web Developer.

Quieres diseñar una página web y no sabes por dónde empezar? Puedes decantarte por utilizar Visual Web Developer. Crear una página Web básica en Visual Web Developer Quieres diseñar una página web y no sabes por dónde empezar? Puedes decantarte por utilizar Visual Web Developer. Visual Web Developer es una herramienta

Más detalles

CAPÍTULO II - SERIALIZACIÓN: PERSISTENCIA DE DATOS EN JAVA

CAPÍTULO II - SERIALIZACIÓN: PERSISTENCIA DE DATOS EN JAVA CAPÍTULO II - SERIALIZACIÓN: PERSISTENCIA DE DATOS EN JAVA 14 2.1 Introducción En este capítulo se explica el mecanismo de serialización usado en EAPI para permitir la persistencia de objetos entre ejecuciones

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java Qué es? Introducción a es Un lenguaje de programación Un entorno de desarrollo Un entorno de ejecución de aplicaciones Un entorno de despliegue de aplicaciones Utilizado para desarrollar, tanto applets

Más detalles

SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID

SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID Versión 1.2 Julio 2010 Página: 1 CONTROL DE CAMBIOS Fecha Versión Cambios 01/01/2006 1.0 Primera versión 11/09/2008 1.1 Se

Más detalles

3.4. Reload Editor ( Guía de Uso).

3.4. Reload Editor ( Guía de Uso). 3.4. Reload Editor ( Guía de Uso). Anterior 3. Lors Management Siguiente 3.4. Reload Editor ( Guía de Uso). 3.4.1. Preguntas básicas sobre Reload Editor. - Qué hace el programa Reload Editor? RELOAD Editor

Más detalles

Introducción a la Programación en Java. Page 1

Introducción a la Programación en Java. Page 1 Introducción a la Programación en Java Page 1 Qué es Java? Java es un lenguaje de programación de propósito general, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias

Más detalles

Introducción a Javato

Introducción a Javato Introducción a Javato Fº. Javier Pereñiguez Steria Iberica 20/02/2008 Índice Introducción Arquitectura Ejemplo arquitectura Plataforma Desarrollo Ejemplo de entorno de desarrollo Vías futuras Casos de

Más detalles

Herramienta CASE (Bouml)

Herramienta CASE (Bouml) Herramienta CASE (Bouml) Ingeniería de la Programación Práctica 6 1 Contenido La presentación es una traducción, con alguna pequeña aportación, del tutorial sobre Bouml que puede encontrarse en inglés

Más detalles

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS UNA SESIÓN EN SPSS INTRODUCCIÓN. SPSS (Statistical Product and Service Solutions) es un paquete estadístico orientado, en principio, al ámbito de aplicación de las Ciencias sociales, es uno de las herramientas

Más detalles

Cristian Blanco www.cristianblanco.es

Cristian Blanco www.cristianblanco.es INSTALACIÓN Y USO DE ENTORNOS DE DESARROLLO 2.1 ENTORNO DE DESARROLLO INTEGRADO Un entorno de desarrollo integrado (en inglés integrated development environment) es un programa informático compuesto por

Más detalles

1º ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS EN RED

1º ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS EN RED UT1: Introducción a los Lenguajes de Marcas 1º ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS EN RED Contenidos Definición y clasificación de lenguajes de marcas Tipos de lenguajes de marcas Evolución de los

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB DENOMINACIÓN: CON TECNOLOGÍAS WEB Código: IFCD0210 Familia profesional: Informática y Comunicaciones Área profesional: Desarrollo Nivel de cualificación profesional: 3 Cualificación profesional de referencia:

Más detalles

U.T.4.EL ENTORNO DE DESARROLLO

U.T.4.EL ENTORNO DE DESARROLLO U.T.4.EL ENTORNO DE DESARROLLO Lenguaje Java Estamos en unos días en los que cada vez más la informática invade más campos de nuestra vida, estando el ciudadano medio cada vez más familiarizado con términos

Más detalles

GATOCREM. Gestión de Tareas y flujos. Registro de Entradas y Salidas

GATOCREM. Gestión de Tareas y flujos. Registro de Entradas y Salidas Ponentes: ---- angel.cifuentes2@carm.es CENTRO REGIONAL DE ESTADÍSTICA DE MURCIA - CREM Resumen: Sistema Informático denominado GATOCREM permite una gestión automatizada de todas las tareas estadísticas

Más detalles

MANUAL DE AYUDA INFORMATIVAS MAC/OSX

MANUAL DE AYUDA INFORMATIVAS MAC/OSX MANUAL DE AYUDA INFORMATIVAS MAC/OSX Agencia Tributaria CENTRO DE ATENCIÓN TELEFÓNICA DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA ÍNDICE PLATAFORMA DE INFORMATIVAS INTRODUCCIÓN... 4 Requisitos mínimos... 4

Más detalles

Notas de la versión DMO 2.0.0.200801101556

Notas de la versión DMO 2.0.0.200801101556 16.01.2008 Notas de la versión.0.200801101556 Sistemas de Información y Procesos RESUMEN Descripción de las correcciones y mejoras incorporadas a la aplicación cliente DMO 2.0 versión 2.0.0.200801101556,

Más detalles

Capí tulo IV. Lenguajes de estilo

Capí tulo IV. Lenguajes de estilo Capí tulo IV Lenguajes de estilo Lenguajes de Estilo Hojas de estilos Mecanismos de Hojas de estilos previos a XSL Lenguaje de estilo XSL Comparación entre CSS y XSL Transformación XML/XSL en aplicativos

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 18 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 5 Situación RD 1201/2007 Actualización

Más detalles

Entorno de desarrollo Instalación y configuración

Entorno de desarrollo Instalación y configuración Entorno de desarrollo Instalación y configuración GExCALL Formación http://gexcall.unex.es/formacion El plugin ADT (Android Development Tools) extiende al IDE Eclipse. Te permite crear y depurar aplicaciones

Más detalles

ACCIÓN FORMATIVA FINANCIADA POR EL SERVICIO PÚBLICO DE EMPLEO ESTATAL

ACCIÓN FORMATIVA FINANCIADA POR EL SERVICIO PÚBLICO DE EMPLEO ESTATAL MF0491_3: PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE. (IFCD0210: DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB) 180 HORAS PRESENCIALES Nº DE EXPEDIENTE: FC/2013/0064 ACCION 141 GRUPO 1 ACCIÓN FORMATIVA FINANCIADA

Más detalles

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R v 3 Junio 2015 ÍNDICE Introducción Requisitos técnicos para la instalación Arquitectura Hardware Arquitectura Software Instrucciones de instalación Instalación módulo GONG2 Instalación módulo eporte Instrucciones

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

Ejemplo práctico de instalación del programa JCLIC en red

Ejemplo práctico de instalación del programa JCLIC en red Ejemplo práctico de instalación del programa JCLIC en red Una red local permite optimizar los recursos, tanto en relación al espacio (los programas se pueden colocar en el disco duro del servidor y ser

Más detalles

Clase Práctica Nº 1 ED 2015

Clase Práctica Nº 1 ED 2015 Clase Práctica Nº 1 ED 2015 Introducción La creación de una solución de software tiene varias etapas, por ejemplo: Diseño Implementación Testeo Y para cada etapa existen herramientas que nos ayudan. Introducción

Más detalles

Actividades didácticas con JClic DEFINICIÓN DE JCLIC

Actividades didácticas con JClic DEFINICIÓN DE JCLIC DEFINICIÓN DE JCLIC Qué es JClic? Dependiendo del punto de vista desde el que abordemos esta pregunta las respuestas pueden ser varias. La más sencilla de todas, desde el punto de vista funcional, dice:

Más detalles

ESCUELA POLITÉCNICA NACIONAL Ingeniería en Sistemas APLICACIONES EN AMBIENTES LIBRES

ESCUELA POLITÉCNICA NACIONAL Ingeniería en Sistemas APLICACIONES EN AMBIENTES LIBRES Integrantes: GRUPO: 4 - Marcela Balseca Fecha: 04/05/2012 - Patricia Gálvez - Lilian Guamán S. - Diego Hallo ALTERNATIVAS DE SOFTWARE LIBRE PARA PROYECTOS DE DESARROLLO La cantidad de alternativas libres

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

Programación en Java. Temario. David Contreras Bárcena

Programación en Java. Temario. David Contreras Bárcena Programación en Java David Contreras Bárcena David Contreras Bárcena (ETSI) - Comillas 1 Temario 1. Introducción 1. Lenguaje java 2. Compilador SDK 1.4 3. Sintaxis 4. Tipos de datos 5. Estructuras de Control

Más detalles

Gestión Documental ERP

Gestión Documental ERP N. Documento Revisión Nº: 1.0 Fecha: 30/03/11 Introducción 1 Configuración de la Gestión Documental ERP 2 Funcionamiento de la Gestión Documental ERP 6 ÍNDICE Introducción El programa Ahora permite una

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Framework para el desarrollo ágil de aplicaciones

Framework para el desarrollo ágil de aplicaciones Framework para el desarrollo ágil de aplicaciones 1 Índice INTRODUCCIÓN... 3 QUÉ ES UN FRAMEWORK?... 3 VENTAJAS DE UTILIZAR UN FRAMEWORK... 4 DESVENTAJAS DE UTILIZAR UN FRAMEWORK... 5 CARACTERÍSTICAS DE

Más detalles

Leer XML con XMLReader en el aula

Leer XML con XMLReader en el aula Leer XML con XMLReader en el aula Nieves Carralero Colmenar. IES Pedro Mercedes. Junta de Comunidades de Castilla-La Mancha. España. ncarralero@edu.jccm.es Resumen Según la Orden EDU/2887/2010, de 2 de

Más detalles

RUEDA TORRES DULCE CAROLINA 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT

RUEDA TORRES DULCE CAROLINA 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT JavaServer Faces (JSF) es una interfaz de usuario (UI) para las aplicaciones web Java. Está diseñado para aliviar considerablemente la carga de la

Más detalles

Sistema de aprendizaje por refuerzo para la mejora del rendimiento del alumno en prácticas

Sistema de aprendizaje por refuerzo para la mejora del rendimiento del alumno en prácticas Memoria resumen del Proyecto de Innovación Docente (PID) Ref.: 52B (periodo 2009-2011) Sistema de aprendizaje por refuerzo para la mejora del rendimiento del alumno en prácticas Investigador Principal:

Más detalles

Cálculo de calidad del suministro eléctrico y Energía y Facturación. - Manual de Usuario

Cálculo de calidad del suministro eléctrico y Energía y Facturación. - Manual de Usuario Cálculo de calidad del suministro eléctrico y Energía y Facturación. - Manual de Usuario ÍNDICE 1. INTRODUCCIÓN 2. ASPECTOS COMUNES DE LA APLICACIÓN 3. GESTIÓN 3.1. USUARIOS 3.2. ORGANIZACIONES 3.3. ASOCIACIONES

Más detalles

19. Packages o paquetes

19. Packages o paquetes Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir

Más detalles

Fundamentos de programación I. - Anexo de Software -

Fundamentos de programación I. - Anexo de Software - Fundamentos de programación I - - 1. Introducción 1.1. Introducción a Dev-C++ y DJGPP 1.1.1. Qué es Dev-C++? Dev-C++ es un Entorno Integrado de Desarrollo (Integrated Development Environment, IDE) capaz

Más detalles

30 de Mayo de 2008. www.sigrid.es

30 de Mayo de 2008. www.sigrid.es Guia de Instalación del servidor SgdWMS 30 de Mayo de 2008 www.sigrid.es 2 Índice 1.- INTRODUCCIÓN... 3 2.- INSTALACIÓN DE INTERNET INFORMATION SERVER (IIS)... 3 3.- INSTALACIÓN DEL SERVIDOR SGDWMS EN

Más detalles

Desarrollo de Aplicaciones Móviles. Java

Desarrollo de Aplicaciones Móviles. Java Java Java es la base para prácticamente todos los tipos de aplicaciones de red, además del estándar global para desarrollar y distribuir aplicaciones móviles y embebidas, juegos, contenido basado en web

Más detalles

GUÍA DE USO DEL MÓDULO DE SEGUIMIENTO EQUAL PARA GESTIÓN DE PROYECTOS DE ACCIÓN 3

GUÍA DE USO DEL MÓDULO DE SEGUIMIENTO EQUAL PARA GESTIÓN DE PROYECTOS DE ACCIÓN 3 MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES SECRETARÍA GENERAL DE EMPLEO Unidad Administradora del Fondo Social Europeo GUÍA DE USO DEL MÓDULO DE SEGUIMIENTO EQUAL PARA GESTIÓN DE PROYECTOS DE ACCIÓN 3 Unión

Más detalles

Java y Eclipse. Lenguajes y Entornos de Programación Libre

Java y Eclipse. Lenguajes y Entornos de Programación Libre Java y Eclipse Lenguajes y Entornos de Programación Libre El lenguaje Java Un poco de historia: 1990: James Gosling, responsable de una empresa filial creada por Sun Microsystems, empieza a diseñar Java

Más detalles

SUN FORTE FOR JAVA 3.0

SUN FORTE FOR JAVA 3.0 ENTORNO DE DESARROLLO O INTEGRADO SUN FORTE FOR JAVA 3.0 Un Entorno de Desarrollo Integrado (IDE, por sus siglas en inglés) permite editar, compilar, ejecutar y depurar programas de una forma cómoda y

Más detalles

O3 Requerimientos de Software y Hardware

O3 Requerimientos de Software y Hardware IdeaSoft Uruguay S.R.L. Phone: +598 (2) 710 4372 21 de Setiembre 2570 Fax: +598 (2) 710 4965 Montevideo http://www.ideasoft.com.uy Uruguay O3 Requerimientos de Software y Hardware Uso de memoria, espacio

Más detalles

Organización Mundial de la Salud Gestión de Vacuna Efectiva, (EVM por sus siglas en inglés)

Organización Mundial de la Salud Gestión de Vacuna Efectiva, (EVM por sus siglas en inglés) Organización Mundial de la Salud Gestión de Vacuna Efectiva, (EVM por sus siglas en inglés) Herramienta de evaluación EVM versión 1.0.5: guía del usuario Reconocimientos 2 de 35 Índice 1. Introducción...

Más detalles

Índice. HTML HyperText Markup Language. Conceptos básicos. Qué es HTML? Diseño de servicios Web HTML 1

Índice. HTML HyperText Markup Language. Conceptos básicos. Qué es HTML? Diseño de servicios Web HTML 1 Índice HTML HyperText Markup Language Conceptos básicos Historia y evolución de HTML XHTML vs. HTML HTML dinámico Hojas de estilo (CSS) DOM Diseño de servicios Web 2 DATSI Qué es HTML? Lenguaje de publicación

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

Eclipse Visual Editor

Eclipse Visual Editor Eclipse Visual Editor Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Analista de Sistemas Licenciatura en Sistemas Laboratorio de Programación Indice Temas Pág. Introducción...

Más detalles

v7.1 SP2 Guía de novedades

v7.1 SP2 Guía de novedades v7.1 SP2 Guía de novedades Copyright 2012 Sage Technologies Limited, publicador de este trabajo. Todos los derechos reservados. No se podrá copiar, fotocopiar, reproducir, traducir, microfilmar o duplicar

Más detalles

Diseño lógico de sistemas aplicando el lenguaje de modelado unificado

Diseño lógico de sistemas aplicando el lenguaje de modelado unificado Diseño lógico de sistemas aplicando el lenguaje de modelado unificado No. De Registro CGPI: 20061221. Director del proyecto: Roberto De Luna Caballero. Profesores participantes: M. en C Fabiola Ocampo

Más detalles

Indice. Swing: conceptos. Generalidades. Swing & AWT: diferencias. Interfaz Gráfica de Usuario (GUI)

Indice. Swing: conceptos. Generalidades. Swing & AWT: diferencias. Interfaz Gráfica de Usuario (GUI) Indice Interfaz Gráfica de Usuario (GUI) Unidad: 2 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Swing Generalidades Conceptos y caracteristicas

Más detalles

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS INSTALACIÓN A3ERP INTRODUCCIÓN La instalación de a3erp v9 ha sufrido una trasformación importante respecto a sus versiones anteriores. Cualquier instalación exige la existencia de un pc al que le asignaremos

Más detalles

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC304_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

INTEROPERABILIDAD ESTÁNDARES APLICADOS EN COSTA RICA

INTEROPERABILIDAD ESTÁNDARES APLICADOS EN COSTA RICA INTEROPERABILIDAD ESTÁNDARES APLICADOS EN COSTA RICA Ing. Marco Jiménez HA-2508 SEMINARIO DE TEMAS ARCHIVÍSTICOS 21-09-2010 Temas de la presentación Definiciones Interoperabilidad Sistema Importancia de

Más detalles

Mi Mensa-Red edición web

Mi Mensa-Red edición web Aplicaciones de Mensajería Vodafone: Mi Mensa-Red edición web Manual de Usuario España, Octubre de 2006 1 Descripción La aplicación Mi Mensa-Red edición Web, te permite enviar Mensajes Cortos (SMS) y Mensajes

Más detalles

XML. El nuevo lenguaje universal

XML. El nuevo lenguaje universal Tema: XML el nuevo lenguaje universal. Autor: Marlene Melián Montalvo Institución: CITMATEL. Este trabajo consiste en una introducción al lenguaje XML. En el mismo se da a conocer su surgimiento, definiciones

Más detalles

Introducción a la programación (Java)

Introducción a la programación (Java) Introducción a la programación (Java) Preparar las herramientas de desarrollo Introducción La primera parte de este documento es una guía para la instalación del software necesario para realizar programas

Más detalles

INTRODUCCIÓN AL WEB. Pag. 1 de 10

INTRODUCCIÓN AL WEB. Pag. 1 de 10 INTRODUCCIÓN AL WEB La World Wide Web o simplemente WWW o Web es uno de los métodos más importantes de comunicación que existe en Internet. Consiste en un sistema de información basado en Hipertexto (texto

Más detalles

Introducción a Netbeans

Introducción a Netbeans Introducción a Netbeans Programación 2 Curso 2010/2011 Juan Manuel Gimeno José Luis González Qué es Netbeans? NB es un entorno integrado de desarrollo o IDE (Integrated Development Environment) En él podemos

Más detalles

CMS, Repositorios y Gestores de Portales.

CMS, Repositorios y Gestores de Portales. CMS, Repositorios y Gestores de Portales. En el mundo de la programación estamos acostumbrados a que la mayoría de los avances que se realizan vayan orientados a simplificar el desarrollo de proyectos.

Más detalles

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación Trabajo Final de Graduación para optar por el título Bachiller en Ingeniería en Computación Migración del Módulo de Inventario del Sistema Business Advance Víctor Guzmán Alfaro Carrera Ingeniería en Computación

Más detalles

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Report Builder

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Report Builder Ministerio de Educación Base de datos en la Enseñanza. Open Office Módulo 5: Report Builder Instituto de Tecnologías Educativas 2011 Informes con Oracle Report Builder En su configuración original, OpenOffice

Más detalles