informe final de pasantías implementación de mejoras al...

19
Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Dirección de Extensión Coordinación de Pasantías Informe Final de Pasantías Implementación de Mejoras al Sistema de Gestión de Pasantías (SGP) de FACYT - UC Pasante: Br. Alejandro González Tutor Empresarial: Lic. Lorena Febres Tutor Académico: Ing. Reina Loaiza Presentado ante la ilustre Universidad de Carabobo como requisito parcial para la obtención del título de Licenciado en Computación Bárbula, abril de 2010

Upload: others

Post on 13-May-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Universidad de Carabobo

Facultad Experimental de Ciencias y Tecnología

Dirección de Extensión

Coordinación de Pasantías

Informe Final de Pasantías

Implementación de Mejoras al Sistema de

Gestión de Pasantías (SGP) de FACYT - UC

Pasante:

Br. Alejandro González

Tutor Empresarial:

Lic. Lorena Febres

Tutor Académico:

Ing. Reina Loaiza

Presentado ante la ilustre Universidad de Carabobo como requisito parcial  

para la obtención del título de Licenciado en Computación

Bárbula, abril de 2010

Page 2: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Objetivos

Objetivo General

• Implementar   mejoras   al   Sistema   de   Gestión   de   Pasantías   (SGP)   de 

FACYT basándose en los aspectos y necesidades señaladas por la Lic. 

Lorena Febres, Coordinadora de Pasantías.

Objetivos Específicos

• Realizar un estudio preliminar para conocer el Sistema de Gestión de 

Pasantías.

• Establecer los aspectos específicos a ser mejorados aplicando técnicas de 

extracción   de   requisitos   a   los   usuarios   involucrados,   de   manera 

particular, los aspectos presentados por la Lic. Lorena Febres.

• Efectuar un proceso de retroingeniería de la aplicación para obtener los 

artefactos utilizados en el desarrollo original.

• Seleccionar una metodología de desarrollo de software apropiada para el 

caso particular.

• Implementar las mejoras siguiendo la metodología seleccionada.

Page 3: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Descripción de la Organización

Coordinación de Pasantías de FACYT

Es una unidad de apoyo para los estudiantes de la Facultad Experimental de 

Ciencias y Tecnología de la Universidad de Carabobo que opten por la práctica 

académica como requisito de grado.

Objetivos Generales de la Coordinación de Pasantías

Brindar a los estudiantes de las distintas carreras la oportunidad de enriquecer 

su formación académica, desarrollar nuevas destrezas que resulten útiles a la 

formación   profesional   y   le   permita   conocer   la   realidad   en   la   cual   se   va   a 

desempeñar como profesional, a objeto de contribuir a la solución de problemas 

en su hábito laboral.

Misión

La misión de la Coordinación de Pasantías es promover, coordinar, divulgar y 

orientar   en   los   procedimientos   relacionados   a   este   importante   requisito   de 

grado, conservando una relación estrecha con los ofertantes de plazas vacantes 

para conocer sus requerimientos.

Visión

Captar la mayor cantidad de ofertantes a través de la creación de una base de 

datos que incluya a instituciones públicas y privadas asociadas a las carreras 

Page 4: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

de   la   Facultad   de   Ciencias   y   Tecnología,   mediante   la   cual   estudiantes   y 

ofertantes se beneficien mutuamente en el desarrollo de las pasantías.

Page 5: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Bases Teóricas

Aplicación Web

En   la   ingeniería   de   software   se   denomina   aplicación   web   a   aquellas 

aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a 

través   de   Internet   o   de   una   intranet   mediante   un   navegador.   En   otras 

palabras, es una aplicación software que se codifica en un lenguaje soportado 

por los navegadores web (HTML, JavaScript, Java, asp.net,php, etc.) en la que 

se confía la ejecución al navegador.

Es importante mencionar que una página Web puede contener elementos que 

permiten   una   comunicación   activa   entre   el   usuario   y   la   información.   Esto 

permite que el usuario acceda a los datos de modo interactivo, gracias a que la 

página responderá  a cada una de sus acciones, como por ejemplo rellenar y 

enviar formularios, participar en juegos diversos y acceder a gestores de base 

de datos de todo tipo.

Programación de Aplicaciones Web

Las Aplicaciones Web están programadas bajo un lenguaje de programación. 

Un lenguaje de programación es un idioma artificial diseñado para expresar 

computaciones   que   pueden   ser   llevadas   a   cabo   por   máquinas   como   las 

computadoras. Los lenguajes de programación orientados a aplicaciones web de 

uso más común son: PHP, JSP y ASP.NET.

Page 6: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Vale la pena acotar que el software utilizado en la Universidad de Carabobo, 

por decreto presidencial, debe estar desarrollado bajo los principios de software 

libre. El lenguaje de programación PHP está desarrollado bajo software libre y 

por ello fue seleccionado para desarrollar la aplicación.

PHP (PHP Hypertext Pre­processor)

PHP  es  un   lenguaje   de  programación   interpretado,   diseñado   originalmente 

para   la   creación   de   páginas   web   dinámicas.   Es   usado   principalmente   en 

interpretación del   lado del   servidor   (server­side  scripting)  pero  actualmente 

puede ser utilizado desde una interfaz de línea de comandos o en la creación de 

otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando 

las bibliotecas Qt o GTK+.

PHP   es   un   acrónimo   recursivo   que   significa   PHP   Hypertext   Pre­processor 

(inicialmente   PHP   Tools,   o,   Personal   Home   Page   Tools).   Fue   creado 

originalmente por Rasmus Lerdorf  en 1994;  sin embargo la   implementación 

principal  de  PHP es  producida  ahora  por  The  PHP Group  y   sirve   como el 

estándar de facto para PHP al no haber una especificación formal. Publicado 

bajo la PHP License, la Free Software Foundation considera esta licencia como 

software libre.

Sistema de Gestión de Bases de Datos (SGBD)

Los sistemas de gestión de bases de datos (en inglés  database management  

system, abreviado DBMS) son un tipo de software muy específico, dedicado a 

Page 7: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

servir de interfaz entre la base de datos, el usuario y las aplicaciones que la 

utilizan.

MySQL

MySQL   es   un   sistema   de   gestión  de   base   de   datos   relacional,   multihilo   y 

multiusuario con más de seis millones de instalaciones. MySQL AB —desde 

enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle 

Corporation desde abril de 2009— desarrolla MySQL como software libre en un 

esquema de licenciamiento dual.

Patrón Modelo­Vista­Controlador (MVC)

Modelo Vista Controlador es un estilo de arquitectura de software que separa 

los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres 

componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones 

web,   donde   la   vista   es   la   página   HTML   y   el   código   que   provee   de   datos 

dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y 

la Lógica de negocio, y el controlador es el responsable de recibir los eventos de 

entrada desde la vista.

Framework

En el  desarrollo de software,  un  framework es  una estructura conceptual  y 

tecnológica   de   soporte   definida,   normalmente   con   artefactos   o   módulos   de 

software   concretos,   en   base   a   la   cual   otro   proyecto   de   software   puede   ser 

organizado y desarrollado. Típicamente, puede incluir soporte de programas, 

Page 8: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

bibliotecas y un lenguaje  interpretado entre otros programas para ayudar a 

desarrollar y unir los diferentes componentes de un proyecto.

CodeIgniter

CodeIgniter es un entorno de desarrollo (framework) abierto que permite crear 

webs   dinámicas   con   PHP.   Su   principal   objetivo   es   ayudar   a   que   los 

desarrolladores, puedan realizar proyectos mucho más rápido que creando toda 

la estructura desde cero. También hay que destacar que CodeIgniter es más 

rápido que muchos otros entornos. Incluso en una discusión sobre entornos de 

desarrollo   con   PHP,   Rasmus   Lerdorf   (el   creador   de   PHP)   expresó   que   le 

gustaba CodeIgniter "porquee es rápido, ligero y parece poco un entorno".

JavaScript

JavaScript es un lenguaje de scripting basado en objetos, utilizado para acceder 

a objetos en aplicaciones. Principalmente, se utiliza integrado en un navegador 

web permitiendo el  desarrollo de  interfaces de usuario mejoradas y páginas 

web   dinámicas.   JavaScript   se   caracteriza   por   ser   un   lenguaje   basado   en 

prototipos, con entrada dinámica y con funciones de primera clase. JavaScript 

ha tenido influencia de múltiples lenguajes y se diseñó con una sintaxis similar 

al lenguaje de programación Java, aunque más fácil de utilizar para personas 

que no programan.

AJAX (Asynchronous JavaScript And XML)

Ajax es una técnica de desarrollo web para crear aplicaciones interactivas o 

RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, 

Page 9: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

es decir, en el navegador de los usuarios mientras se mantiene la comunicación 

asíncrona con el servidor en segundo plano. De esta forma es posible realizar 

cambios   sobre   las   páginas   sin   necesidad   de   recargarlas,   lo   que   significa 

aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

Page 10: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Metodología de Desarrollo

Para el desarrollo de la aplicación, se empleó la metodología de desarrollo XP 

(eXtreme   Programming)   con   algunos   artefactos   de   RUP   (Rational   Unified 

Process).   De   manera   específica,   se   generaron   los   siguientes 

artefactos/documentos:

• Historias de Usuarios

• Diagrama de Casos de Uso UML

• Diagrama de Clases UML

Vale   la  pena  destacar  que  de   las   características   fundamentales  de  XP,   las 

siguientes estuvieron presentes en el proceso de desarrollo de la aplicación:

• Desarrollo iterativo e incremental

• Pruebas unitarias continuas

• Integración del equipo de programación con el cliente

• Refactorización del código

• Corrección de errores antes de añadir nueva funcionalidad

Consideraciones generales

• Para el  desarrollo  de  la  aplicación,  no  se contó   con la  documentación 

adecuada del sistema. 

• La aplicación estaba desarrollada sin el uso del patrón MVC, por lo que 

además de implementar las mejoras deseadas, se cambió la estructura 

de la misma siguiendo el patrón mencionado.

Page 11: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

• Los aspectos a ser mejorados fueron establecidos en una reunión con la 

Lic. Lorena Febres de la cual se redactó una minuta (ver Anexos) donde 

se mencionan detalladamente.

Equipo proporcionado por la Dirección de Servicios Telemáticos de 

FACYT para el desarrollo de la pasantía

• 1 computador Pentium IV con sus periféricos (teclado y mouse) y monitor 

de 19”. En el mismo se instaló el software necesario para llevar a cabo el 

desarrollo de la aplicación.

Pantallazos   de   la   aplicación   ANTES   de   la   implementación   de   las 

mejoras

Interfaz Principal

Page 12: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Biblioteca de Informes de Pasantía

Resultados

Previo   a   la   fase   de   implementación,   se   generaron   algunos   documentos   y 

diagramas de valiosa importancia. Entre ellos se encuentran las Historias de 

Usuarios, que debido a la longitud del documento, no se pudo mostrar en este 

informe. 

Luego de haber establecido y escrito las historias de usuarios, se siguió con la 

elaboración   del   diagrama   de   casos  de   uso.   En   el   mismo   se   identifican   los 

Actores y las Acciones que éstos realizan en el sistema. El diagrama de casos de 

uso es  muy  importante  para cumplir   con  los  requisitos  establecidos  por   los 

usuarios finales.

Page 13: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Diagrama de Casos de Uso de UML

Después de esto,  se procedió  a realizar el  diagrama de clases (de las clases 

involucradas   en   las   mejoras).   Con   esto   se   busca   facilitar   la   creación   y 

modificación de las estructuras persistentes (tablas de BD) involucradas en las 

mejoras requeridas al sistema y facilitar su consecuente programación. 

Page 14: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Diagrama de Clases de UML

A partir de aquí se empezó con la fase de implementación y programación de 

las mejoras a la aplicación, siguiendo las características y mejores prácticas de 

XP   (eXtreme   Programming).   Se   realizaron   reuniones   frecuentes   con   la  Lic. 

Lorena Febres y otros coordinadores de pasantías para ir revisando las mejoras 

que se iban implementando. 

A mediados de noviembre de 2009 se instaló una primera versión del nuevo 

sistema. Luego de un período de pruebas, se detectaron algunos errores y se 

sugirieron   nuevas   funcionalidades   que   fueron   implementadas   a   partir   de 

Page 15: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

febrero de 2010. Para mediados de abril de 2010, se instaló la versión final y 

definitiva del Sistema de Gestión de Pasantías.

Pantallazos de la aplicación luego de la implementación de las mejoras

Interfaz Principal

Page 16: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Interfaz del área de Pasantes

Biblioteca de Informes de Pasantía

Page 17: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Otras actividades realizadas durante la pasantía

• Creación de una galería virtual de imágenes en la página principal de 

FACYT   con   imágenes   relativas   a   infraestructura   de   la   Facultad   y 

eventos realizados en la misma.

• Realización de consultas directas a  la base de datos en lenguaje SQL 

para  extraer   información necesaria  para   la  Lic.  Lorena  Febres  en   la 

elaboración de ciertos reportes.

• Elaboración   de   trípticos   y   materiales   de   apoyo   relativos   a   la 

Coordinación   de   Pasantías   y   la   Dirección   de   Extensión   que   fueron 

donados durante las diferentes jornadas de intercambio de FACYT con 

empresas del sector público y privado.

• Servir   de   apoyo   tecnológico   durante   la   realización   de   encuentros   de 

intercambio   entre   FACYT   y   empresas   del   sector   público   y   privado, 

auspiciados por la Dirección de Extensión, quien rige a la Coordinación 

de Pasantías.

Conclusiones

La implementación de mejoras al Sistema de Gestión de Pasantías de FACYT 

se llevó a cabo de manera exitosa y la misma sirvió como una experiencia tanto 

académica   como   profesional.   Académica   debido   a   que   se   obtuvieron 

conocimientos en el área de programación web y sistemas de información que 

antes no se tenían; y profesional ya que se trabajó en un ambiente institucional 

similar   al   de   cualquier   empresa   donde   la   responsabilidad,   puntualidad   y 

profesionalismo son factores que identifican a sus trabajadores.

Page 18: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Recomendaciones

• Realizar un estudio exhaustivo de la base de datos, debido a que en la 

misma se encuentran algunas inconsistencias en cuanto a estructura. 

Preferiblemente, rediseñar la base de datos.

• Realizar otro sistema paralelo a éste que use esa nueva base de datos.

• Implementar las mejoras señaladas por la Directora de Extensión de la 

Facultad, Prof. Marlene Arias, del Departamento de Matemática.

• Siguiendo los mismos paradigmas y procedimientos llevados a cabo en 

esta   pasantía,   desarrollar   el   Sistema   de   Gestión   de   Servicio 

Comunitario.

• Un problema crítico en el desarrollo de la pasantía era que los cambios 

realizados se cargaban en el servidor de una manera incómoda. Es decir, 

había que contactar al encargado del servidor con varios días (a veces 

semanas) de anticipación, y darle los archivos para que los cargue. Si 

había   que   hacer   cambios,   era   necesario   realizar   este   proceso 

nuevamente. Por lo tanto, al realizar otras mejoras a este Sistema, se 

recomienda   facilitar   al   pasante   una   cuenta   de   usuario   (con   sus 

respectivas directivas y restricciones) para subir al servidor los cambios 

hechos al Sistema y no depender de otras personas para hacerlo, ya que 

esto ocasiona pérdida de tiempo que se puede aprovechar de una mejor 

manera.

Page 19: Informe Final de Pasantías Implementación de Mejoras al ...portal.facyt.uc.edu.ve/pasantias/informes/P32454118.pdf · A partir de aquí se empezó con la fase de implementación

Bibliografía

Tríptico Informativo de la Coordinación de Pasantías

http://es.wikipedia.org/wiki/Aplicación_web

http://es.wikipedia.org/wiki/PHP

http://es.wikipedia.org/wiki/SGBD

http://es.wikipedia.org/wiki/MySQL

http://es.wikipedia.org/wiki/Patrón_MVC

http://es.wikipedia.org/wiki/Framework

http://codeigniter.com/user_guide