Introducción CAPÍTULO 1

Documentos relacionados
Análisis y diseño del sistema CAPÍTULO 3

Implementación CAPÍTULO 4

Capitulo 5. Implementación del sistema MDM

Capítulo 1 Introducción

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Una plataforma de trabajo colaborativo

PROGRAMACIÓN PÁGINAS WEB CON PHP

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

1.2. SITUACIÓN PROBLEMÁTICA Los Centros de Cómputo de la Universidad de Oriente están conformados de la siguiente manera:

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

Unidad III. Software para la administración de proyectos.

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

App para realizar consultas al Sistema de Información Estadística de Castilla y León

CÓMO MANEJAR SU NUEVO SITIO WEB SOBRE DRUPAL Manual técnico y de usuario. Pontificia Universidad Javeriana Grupo PSU CDI

En este capítulo se describe la forma de cómo se implementó el sistema de video

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Aplicaciones Móviles. Sesión 12: Acceso a datos

comunidades de práctica

5.2. PROYECTO RODA. (6/07/04).

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Diseño de Base de Datos

Qué necesito saber para tener mi sitio web en Internet?

CONCLUISIONES Y RECOMENDACIONES

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

Qué es una página web?, qué conoces al respecto?, sabes crear una página

UNIVERSIDAD DE SALAMANCA

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computación

Aplicación para la gestión de prácticas en empresas. Memoria

C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o

CAPÍTULO VI. RESULTADOS, PRUEBAS Y CONCLUSIONES DE LA APLICACIÓN.

PRESENTACIÓN DEL PRODUCTO

Aprendiendo con las redes sociales

En nuestro capitulo final, daremos las conclusiones y las aplicaciones a futuro

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Visión General de GXportal. Última actualización: 2009

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

SUBIENDO NUESTRA WEB CON MACROMEDIA DREAMWEAVER

CAPITULO III.- SELECCIÓN DE PLATAFORMA Y ENTORNO DE DESARROLLO

Capítulo III. Diseño del sistema. Dentro de este capítulo veremos a detalle el diseño del sistema, que como se había

Capitulo III. Diseño del Sistema.

Prof. Julio Cerdá Universidad de Alcalá. Gestión electrónica de documentos y acceso a la información

I. OBJETIVOS INTRODUCCIÓN. Oscar Daniel Camuendo Vásquez

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

MATERIAL DE TRABAJO 1. Evaluación del software

Ingeniería de Software. Pruebas

1.2 Qué es un Sistemas de Información Geográfica?

Prezi: editor de presentaciones

Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web

BOLETÍN DE NOVEDADES Barcelona, enero de 2007

Unidad 1. Fundamentos en Gestión de Riesgos

E-learning: E-learning:

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

Estándares Web: XHTML y CSS - Usabilidad - Accesibilidad. Desarrollo de Sitios Web de Calidad, Usables, Seguros, Válidos y Accesibles

REGISTRO DE EMPRESAS Y PERSONAS BASE DE INFORMACIÓN DE CLIENTES & CONTACTOS

Sistemas de Gestión de Documentos Electrónicos de Archivo (SGDEA)

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

Para detalles y funcionalidades ver Manual para el Administrador

Centro de Competencias de Integración. Portal del paciente

CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB

Anexo 4 Documento de Arquitectura

ikimap. Comparte cartografía.

Studium, Campus Virtual de la Universidad de Salamanca.

Capítulo 4: Requerimientos.

VICERRECTORÍA DE ADMINISTRACIÓN Y ASUNTOS ECONÓMICOS DIRECCIÓN DE DESARROLLO DE PERSONAS. Estructura de Cargos y Competencias Institucionales

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

Documento Técnico Gerardo Barcia Jonathan Trujillo María Alejandra Uribe

PROGRAMA FORMATIVO MICROSOFT ACCESS 2007 (COMPLETO)

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

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

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

1.- Introducción y objetivos

Presentación y Planificación del Proyecto: Administración de Calzado

CAPÍTULO 1. INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

CMS JOOMLA. Características

Anexos de Bases de Presentación de Propuestas. Consultoría para la implementación de sistemas de gestión de contenidos para comunidades de RedCLARA

ORIENTACIONES SIMCE TIC

Programación páginas web. Servidor (PHP)

revista transparencia transparencia y UNIVERSIDADES

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

Capítulo 5. Cliente-Servidor.

Base de datos en Excel

Hostaliawhitepapers. Las ventajas de los Servidores dedicados. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

Introducción a la plataforma Moodle Aníbal de la Torre Plataforma Moodle. Accediendo a los contenidos

Para tener una visión general de las revistas de estadística, ir a:

04/04/2005 InnovaPortal e InnovaNet 26 de marzo 961 of Montevideo - Uruguay

Transcripción:

Introducción CAPÍTULO 1 6

CAPÍTULO 1 - Introducción. En la actualidad hay una gran cantidad de repositorios en los que se puede alojar código fuente para poder compartirlo con los usuarios que visiten el sitio. Esta abundancia de repositorios dificulta o incluso impide encontrar la información que realmente interesa. En algunos de estos sitios, para acceder a todo su contenido hay que pagar una membresía, otros centran su contenido en información irrelevante, insuficiente o en el peor de los casos poco confiable, provocando una inversión inútil de tiempo. Por el contrario son pocos lo que proporcionan los códigos fuente de manera clara y ordenada por ejemplo: http://www.koders.com, http://www.planet-source-code.com. Koders proporciona una funcionalidad muy importante que es la de poder hacer consultas directamente en el código fuente y por su parte Planet-Souce proporcionan la capacidad de consulta de código agrupado en categorías así como un ranking que el usuario le da dependiendo de el grado de calidad y beneficio que le haya aportado el programa que descargó. Actualmente los estudiantes de Ingeniería en Sistemas Computaciones de la Universidad de las Américas Puebla, generalmente, al concluir un programa este queda olvidado en algún lugar. Por otro lado, la idea de que estos puedan colaborar para ayudar a la comprensión de funciones o conceptos de programación a alguien más, es lo que motiva la propuesta de crear una herramienta para poder almacenar y consultar código fuente, proporcionando la facilidad de ser visto y analizado por muchos estudiantes, independientes al profesor y el autor del programa. En el contexto actual de estudiantes de ingeniería en sistemas, estos antes o durante la realización de un programa se sienten en la necesidad de consultar fuentes que les aporten ideas suficientes para solucionar su problema, indiscutiblemente leen o modifican código fuente para mejorarlo y adaptarlo a sus necesidades; la filosofía open source afirma la premisa de compartir el código tiende a provocar que el programa resultante sea de calidad superior [Wikipedia, 2006]. Sin embargo no se pretende solamente poner los programas disponibles, 7

sino convocar a los estudiantes a exponer sus conocimientos, discutirlos y generar nuevas ideas y propuestas. [Proal, 2003]. 1.1 Definición del problema. En la actualidad la Universidad de las Américas Puebla, cuenta con una colección de tesis digitales de los estudiantes, de manera similar se encuentra la necesidad de tener una colección de los programas realizados por los estudiantes de Ingeniería en Sistemas, de tal manera que el código fuente de estos programas puedan ser consultados de manera conjunta. En la actualidad los estudiantes tienen sus programas dispersos en las cuentas asignadas por la Universidad, lo que hace necesario el desarrollo de una herramienta que ayude a la integración de los programas en un solo sitio. 1.2 Justificación Como se mencionó anteriormente el compartir el código fuente de los programas sería muy útil, debido a que los programas desarrollados podrían ayudar a resolver dudas de implementación a otros estudiantes, brindándoles una referencia para el desarrollo de sus aplicaciones. No se pretende fomentar el plagio sino por el contrario, se quiere motivar al estudiante a realizar trabajos de calidad y alcance en sus proyectos, porque se les daría una alternativa para consultar código fuente de programas de contenido fiable y seguro. 1.3 Objetivo General Desarrollar una aplicación web para la creación de un repositorio de programas de Java que permita realizar consultas de un conjunto de programas a través de un enunciado de búsqueda usando tecnologías de indexación, almacenamiento y recuperación, utilizando principalmente el ORM Hibernate (Object/ Relational Mapping). 8

1.4 Objetivos Específicos Capacidad de almacenar y recuperar código fuente de java, utilizando la herramienta de ORM Hibernate para el mapping entre los dos modelos (orientado a objetos y relacional), con el fin de probar los beneficios que ofrecen los ORM principalmente el reducir la complejidad de la aplicación y el tiempo de desarrollo. Capacidad de compilación del código en el momento de almacenarlo para garantizar su funcionamiento. El compilar no garantiza que los programas hayan sido desarrollados adecuadamente, que haya métodos duplicados o variables sin usar, pero es una manera muy útil de probar que el programa funciona y no solo es código inservible. Capacidad de obtener los archivos java por dos tipos de búsqueda (por palabras o fragmentos de código y por clasificación). Este es el punto más importante debido a que el usuario que va a hacer la consulta necesita alguna manera de filtrar los resultados para llegar a los programa que él necesita, el encontrar los resultados de una manera rápida es lo que impulsaría al usuario a ocupar el sistema. Capacidad de visualizar el código fuente coloreado en formato html. El poder visualizarlo facilitaría el entendimiento entre lo que estamos buscando y lo que estamos viendo es necesario mostrarlo de una manera agradable a la vista y con distintos colores (como si estuviéramos visualizando el código en un IDE) Interfaz web para acceder a la aplicación. En el contexto de esta aplicación clienteservidor es necesaria la interfaz web. Por otro lado se busca que está interfaz se diseñe de una manera minimalista y agradable a la vista. El diseño minimalista se eligió para no complicar el uso del sistema a los usuario y de está manera no entretenerlo mucho y le resulte fastidioso. Control de usuarios y clasificaciones existentes. El administrador debe de ser capaz de eliminar del repositorio a usuarios que por criterios personales no deban de usar más el repositorio, de misma manera pasa con las categorías. 9

1.5 Alcances Aplicación web disponible de manera local. No se considera la instalación en un servido de la Universidad debido al difícil acceso que se tiene a ellos en este momento. Aunque la aplicación no se liga a un sistema operativo en particular. No se considera el manejo de paquetes y dependencias para los programas del repositorio. El manejo de paquetes y dependencias implicaría una serie de revisión de dependencias que no está consideras para este proyecto. Indexación de código fuente para su consulta. La indexación es necesaria para la realización de las consultas a través de un enunciado proporcionado por el usuario estudiante. Asignación de categorías a los códigos (clasificación). El clasificar a los programas ayuda a tenerlos organizados para su recuperación. Obtención de códigos fuente a través de la comunicación de Hibernate con la base de datos y el sistema de archivos generado. El mantener los programas en la base de datos le restaría velocidad a la aplicación, teniendo un sistema de archivos se tiene más velocidad de recuperación. Manejo de usuarios sin considerar la interacción con la base de datos institucional de estudiantes de la Universidad. Como se mencionó anteriormente el acceso a los servidores de la Universidad por el momento está muy restringida. 1.6 Justificación de tecnología a utilizar En la actualidad las bases de datos más comerciales y con mayor estabilidad se enfocan hacia un modelo relacional, mientras que la programación por el contrario tiende a ser orientada a objetos. Al tratarse de dos modelos distintos se dificulta el intercambio de 10

información del lenguaje de programación con la base de datos; en consecuencia han surgido las bases de datos orientadas a objetos. Debido a su reciente aparición estas se encuentran inmaduras para poder brindar la seguridad de mantener la consistencia y persistencia adecuada de los datos, independientemente de no tener compatibilidad entre ellas, haciendo imposible la migración de una base de datos a otra. Por lo que para trabajar la persistencia de manera transparente entre los dos modelos se desarrollaron las herramientas de ORM (Object/Relational mapping), como por ejemplo: Hibernate, Torque, TopLink entre otros. 1.6.1 Hibernate Hibernate es una herramienta Open Source, que realiza el mapeo entre las aplicaciones orientadas a objetos y la entidad-relación de las bases de datos en entorno Java. Mantiene características fundamentales como: asociación, herencia, polimorfismo, composición y colecciones [Hibernate, 2006] Hibernate realiza la transición de una representación de datos de un modelo orientado a objetos a un modelo relacional, proporcionándole capacidades para el almacenamiento y recuperación de información en una base de datos relacional. En el capítulo 2 se profundizará sobre estos conceptos. 1.7 Software Hibernate 3.0.5 o Comunicación entre base de datos y java siguiendo modelo orientado a objetos. Apache Tomcat 5 o Contenedor de servlets y JSPs MySQL 4.1 o Base de datos relacional, en donde se almacenará información persistente 11

XML o Lenguaje para intercambio de datos entre aplicaciones (uso en nuestro contexto), utilizado principalmente para mapear los objetos a ser persistentes de Hibernate a la base de datos. Apache Lucene 1.4.3 o API para la indexación y búsqueda de documentos creada en java, utilizado para la búsqueda de programas. Apache FileUpload 1.1 o API utilizado para subir el archivo al servidor. Para utilizar éste es necesario commons-io-1.1.jar Java2Html 5 de Markus Gebhard o API utilizado para generar el archivo html con el código fuente coloreado a partir de el archivo.java Java jdk1.5 release3 o Lenguaje de programación para el desarrollo de la aplicación y la compilación de los programas que poblan el repositorio. Javascript o Lenguaje de programación para la validación de los formularios. CCS o Hoja de estilo Macromedia Dreamweaver MX 2004 o Editor de paginas web, utilizado para creación de JSPs Borland JBuilder 2005 o Entorno de desarrollo (IDE) 12

1.8 Organización de este documento Este documento está organizado como se explica a continuación: el capítulo 2 introduce los conceptos generales para comprender la base teórica y técnica de Hibernate como los requerimientos mínimos para su uso y algunos ejemplos básicos para su implementación, por otro lado se dan los conceptos generales del indexador Lucene para entender su funcionamiento. El capítulo 3 se muestra un análisis de los requerimientos del sistema desarrollado, así como las especificaciones de proceso y la descripción de interfaces. En el capítulo 4 se describen los componentes usados para el desarrollo y las clases que se utilizaron. En el capítulo 5 se muestran las pruebas realizadas al sistema y los correspondientes resultados obtenidos. Finalmente en el capítulo 6 termina el documento mostrando las conclusiones y las posibilidades de ampliación al sistema. 13