77
[Escribir el título del d Universidad de Oriente Sede Julio Antonio Mella Facultad de Ingeniería en Telecomunicaciones, Informática y Biomédica Departamento de Informática ] [E Trabajo de Diploma en Opción al Título de Ingeniero Informático Título: Sistema de Gestión Web para el control de la información de los estudiantes extranjeros en la Residencia Estudiantil Sede Mella de la Universidad de Oriente. Autor: Jorge Javier Barrera Correoso. Tutor (s): Msc. Pedro Milá Ortiz Lic. Bárbaro Emilio González Carcassés. Consultante (s): Ing. Indira Darling O´Connor Núñez Ing. Joel Herrero Bravo [Escriba aquí una descripción breve del documento. Una descripción breve es un resumen corto del contenido del documento. Escriba aquí una descripción breve del documento. Una descripción breve es un resumen corto del contenido del Año 60 del Triunfo de La Revolución. 2018. [Seleccionar fecha]

[Escribir el título del d · becarios de dicha entidad, para ello utilizan algunas aplicaciones que les permita controlar el estado en la que se encuentra el becario estudiantil

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

[Escribir el título del d Universidad de Oriente Sede Julio

Antonio Mella Facultad de Ingeniería en

Telecomunicaciones, Informática y Biomédica

Departamento de Informática ]

[E Trabajo de Diploma en Opción al Título de Ingeniero Informático

Título: Sistema de Gestión Web para el control de la información de los estudiantes extranjeros en la Residencia Estudiantil Sede Mella de la Universidad de Oriente.

Autor: Jorge Javier Barrera Correoso.

Tutor (s): Msc. Pedro Milá Ortiz

Lic. Bárbaro Emilio González Carcassés.

Consultante (s): Ing. Indira Darling O´Connor Núñez

Ing. Joel Herrero Bravo

[Escriba aquí una descripción breve del documento. Una descripción breve es un resumen corto del contenido del documento. Escriba aquí una descripción breve del documento. Una descripción breve es un resumen corto del contenido del

Año 60 del Triunfo de La Revolución.

2018. [Seleccionar fecha]

Pensamiento

“Trincheras de ideas valen más que trincheras de piedras”

Fidel Castro Ruz

Dedicatoria

A mis padres por enseñarme que si se lucha se puede y que

siempre me ayudan por encima de cualquier obstáculo.

A mi hermana querida Annia Yiselle Barrera

Correoso(irma);

a mi amigo y hermano del barrio Alexi (Pupo) ;

A mi compañero, hermano Efraín Borrero (Doctor);

y A mis compañera de aula Yirka Vargas que siempre me

apoyaron.

Agradecimiento Esta tesis no había sido posible gracias a:

A Dios por permitirme durante todos estos años seguir viviendo para lograr obtener todo el sueño de mi

vida que es convertirme en un futuro ingeniero informático para así dar mi pedacito de arena a esta

Revolución Cubana en cualquier parte de mi país.

A nuestro Comandante en Jefe Fidel Castro y a nuestra Revolución Cubana.

Mi familia, a mi mamá a quién con mucho esfuerzo, amor y sacrificio se ha dedicado a lo largo de su vida

a ser de mí una mejor persona de lo que soy actualmente.

A mi padre por su apoyo incondicional y profesionalmente en la tesis antes las dificultades de mi vida al

transcurso de mi superación.

A mi hermanita (irmã) querida que está cumpliendo misión internacionalista en Brasil, que desde allá

siempre se ha preocupado por mi bienestar y mi estado académico.

A los compañeros ingenieros David Hernández, Giovanni Alberto Villalón, Argenis Ramos, Efraín

Borrero (Doctor) que al transcurso de mi dura carrera me han apoyado incondicionalmente.

A mi amigo, hermano, compañero Alexis (Pupo), que siempre ha estado en los momentos buenos y malos

de mi vida, ayudándome, apoyándome para seguir adelante.

A los profesores que me dieron consejos durante el desarrollo de mi proyecto de tesis en especial al profesor

Félix.

A mis profesores y tutores que se han preocupado por mí por seguir adelante en mi carrera profesional.

A todas aquellas personas que se han preocupado tanto en mi vida cotidiana como profesional.

A todos muchas gracias

Resumen La Residencia Estudiantil perteneciente a la Sede Mella de la Universidad de

Oriente realiza múltiples procesos que están relacionados con la docencia, uno de

ellos brindarle un servicio de hospedaje a los becarios tanto nacional como

internacional por convenio de gobierno, otra es la gestión de la información de los

becarios de dicha entidad, para ello utilizan algunas aplicaciones que les permita

controlar el estado en la que se encuentra el becario estudiantil. En la actualidad

para estos tipos de procesos se utiliza con más frecuencia las aplicaciones como

Microsoft Access, Excel y Word.

Es por eso que el presente trabajo de diploma hará una breve descripción del

diseño y la implementación de un Sistema Web que permita la optimización de los

procesos que se manejan dentro de la Residencia, nos vamos referir a la gestión

de la información de los becarios extranjeros. El mismo, tendrá con objetivo

dinamizar el control de la información de dichos becarios. Para ello se utilizó varias

herramientas que posibilito el desarrollo de este trabajo en las que podemos

mencionar: XAMPP 3.2.1 integrado servidor Web Apache 2.4.10 para nuestro

Sistema, que viene también con lenguaje de programación el PHP 5.3.8 se utilizó

por medio del IDE de desarrollo Netbeans7.3 y framework Symfony2-2.8.4, como

gestor de la base de datos se escogió el MySQL 5.6.21. También trataremos de la

metodología aplicada la XP (Extreme Programming).

Es por ello que los resultados obtenidos de los sistemas antes mencionados han

tenido limitación en cuanto a la actualización de reportes del estudiantado. Por eso

se decidió crear dicho Sistema que permita la optimización a este problema, para

así tener mejor calidad de trabajo para la implementación de los datos de los

becarios, obteniéndose así mejor búsqueda y registro de los mismos.

Palabras Claves: gestión, información, sistema, datos, sistema Web, entidad,

gestión de la información, Microsoft Access, Excel, Word, bases de datos.

Abstract

Title: Web Management System for the control of the information of foreign

students in the Student Residence Mella Headquarters of the Universidad de Oriente. The Student Residence belonging to the Mella Headquarters of the Universidad de

Oriente carries out multiple processes related to teaching, one of them providing a

hosting service to both national and international fellows by government

agreement, another is the management of information of the scholarship holders of

that entity, for this they use some applications that allow them to control the state in

which the student intern is. Currently, applications such as Microsoft Access, Excel

and Word are used more frequently for these types of processes.

That is why the present diploma work will make a brief description of the design

and implementation of a Web System that allows the optimization of the processes

that are handled within the Residence, we will refer to the management of the

information of foreign scholars . The same, will aim to streamline the control of the

information of these fellows. For this, several tools were used that made possible

the development of this work in which we can mention: XAMPP 3.2.1 integrated

web server Apache 2.4.10 for our System, which also comes with PHP 5.3.8

programming language was used by means of of the Netbeans 7.3 development

IDE and Symfony2-2.8.4 framework, MySQL 5.6.21 was chosen as the database

manager. We will also discuss the methodology applied to XP (Extreme

Programming).

That is why the results obtained from the aforementioned systems have been

limited in terms of updating student reports. That is why it was decided to create

said System that allows the optimization of this problem, in order to have a better

quality of work for the implementation of the data of the fellows, thus obtaining

better search and registration of the same.

Keywords: management, information, system, data, Web system, entity,

information management, Microsoft Access, Excel, Word, databases.

Índice

Introducción ............................................................................................................. 1

Capítulo I. Fundamentación teórica sobre la gestión de la información para el

control de los estudiantes extranjeros en la residencia Sede Mella de la

Universidad de Oriente. ........................................................................................... 7

1.1 Antecedentes históricos de la información de los estudiantes extranjeros en la

residencia sede Mella de la Universidad de Oriente y su gestión. ....................................... 7

1.2 Estudio del estado del Arte .................................................................................................. 7

1.2.1 Fundamentos para lograr el objetivo planteado: ........................................................... 9

1.3 Metodología de desarrollo de software ............................................................................ 12

1.3.1 Programación Extrema (XP) ....................................................................................... 12

1.3.2 Fases de la metodología XP. ...................................................................................... 14

1.4 Tecnologías y herramientas de desarrollo ................................................................... 15

1.4.1 XAMPP 3.2.1 ................................................................................................................. 15

1.4.2 Symfony2 (versión 2.8.4), como marco de trabajo. ................................................ 16

1.4.2.3 Doctrine 2 como ORM. ............................................................................................. 17

1.4.3 NetBeansIDE 7.3 como marco de entorno de desarrollo (IDE) ............................ 19

1.4.3.1 Ventajas del uso de NetBeans IDE: ....................................................................... 20

1.4.4 Servidor Web Apache 2.4.10 ...................................................................................... 20

1.4.5 MySQL 5.6.21 como Sistema Gestor de Base de Datos. ...................................... 21

1.4.6 ER/Estudio Embarcadero 8.0 ..................................................................................... 21

1.4.7 Ajax ................................................................................................................................. 22

1.4.8 Mozilla Firefox 34.0.5 ................................................................................................... 23

1.4.9 Boostrap 3.0 .................................................................................................................. 23

1.5 Lenguajes de Programación .............................................................................................. 23

1.5.1 PHP (versión 5.3.5) ...................................................................................................... 23

1.5.2 HTML 5 ........................................................................................................................... 24

1.5.3 JavaScript ...................................................................................................................... 24

1.5.4 CSS3 .............................................................................................................................. 25

1.5.6 ¿SQL o DQL?: Como lenguajes de programación del lado del servidor. ............ 26

Conclusiones del capítulo ..................................................................................................... 26

Capítulo 2: Planificación y diseño del sistema. ...................................................... 28

2.1 Introducción. ......................................................................................................................... 28

2.2 Planificación del Sistema. ................................................................................................... 28

2.3 Reglas del Negocio. ............................................................................................................ 28

2.3.1 Propuesta del Negocio. ............................................................................................... 29

2.3.2 Roles y Responsabilidades: ........................................................................................ 30

2.4 Funcionalidades del Sistema ............................................................................................. 31

2.5 Requisitos Funcionales e historias técnicas. ................................................................... 32

2.5.1 Historias Técnicas ........................................................................................................ 32

2.5.2 Historias de Usuario ..................................................................................................... 34

2.5.3 Tareas de Ingeniería .................................................................................................... 36

2.6 Diseño del Sistema. ............................................................................................................. 38

2.2.1 Patrón Arquitectónico. .................................................................................................. 39

Conclusiones del Capítulo ..................................................................................... 50

Capítulo 3. Codificación y prueba del Sistema. ..................................................... 51

Introducción ................................................................................................................................. 51

3.1 ¿Cómo se aplica la filosofía de Symfony en la implementación del sistema? ........... 51

3.1.1 Directorio app/ ................................................................................................................... 53

3.1.2 Directorio src/ .................................................................................................................... 54

3.1.2.1 Subdirectorio Residencia. ........................................................................................ 55

3.1.3 Directorio vendor/ ............................................................................................................. 55

3.2 Desarrollo de la aplicación en Symfony2 y plataforma Netbeans 7.3. ........................ 55

3.2.1 Construyendo el directorio para la creación de un proyecto Symfony2. ................. 56

3.2.1.1 Creando e instalando con Symfony2 ..................................................................... 56

3.2.2 Configurando un proyecto en Symfony2 desde Netbeans 7.3. ................................. 57

3.2.3 Creación de los bundles de la aplicación ..................................................................... 57

3.2.4 Creando las clases del modelo ...................................................................................... 58

3.2.5 Seguridad ........................................................................................................................... 59

Conclusiones ......................................................................................................... 61

Recomendaciones ................................................................................................. 62

Referencias Bibliográficas ....................................................................................... 1

1

Introducción

La Residencia Estudiantil es una de las entidades más importantes que posee la

Universidad de Oriente y Sede “Julio Antonio Mella”, ya que en ella residen

estudiantes de todos los municipios, provincias y países extranjeros; unas de las

funcionalidades que tienen estas residencias es brindarle servicio de alojamiento

tanto para estudiantes nacionales, como estudiantes de otros países, estos

últimos que por convenio entre gobiernos, están realizando sus estudios en las

mismas, cuyo objetivo es superarse en sus carreras para convertirse en futuros

profesionales y puedan aplicar sus conocimientos dentro y fuera del país.

Por tal motivo, nuestra Universidad de Oriente cuenta con dos sedes, que están

enlazadas entre sí; estamos hablando de la Sede “Antonio Maceo” y la Sede “Julio

Antonio Mella”, que son dos entidades de gran importancia en una Universidad, lo

cual brinda condiciones, que garantizan facilidades de estudio a jóvenes, que

viven fuera del territorio, donde radica la Universidad, pero garantiza esas mismas

condiciones a estudiantes de otros países.

Para garantizar el trabajo que llevan a cabo en las residencias, existe una

infraestructura a nivel de Universidad que lleva el control de todas las actividades,

relacionadas con los estudiantes nacionales, así como los extranjeros. Para lograr

que este control sea efectivo y eficiente es necesario la aplicación de las nuevas

tecnologías, cosa que en la actualidad se aplican algunas, pero están ya

obsoletas, ya que no permiten la accesibilidad desde diferentes puntos de la

infraestructura, provocando ineficiencias en la comunicación y en la toma rápida

de decisiones, cuando sea necesario.

Este trabajo enfoca el análisis de toda la problemática relacionada con la actividad

de los estudiantes extranjeros que estudian en la Universidad de Oriente,

Para concretar estas ideas, el centro posee un sistema llamado SAGREST,

diseñado en Microsoft Access que registra los datos personales del estudiante

extranjero: carnet de identidad, nombres y apellidos, lugar de procedencia, estado

de salud entre otros, dicho sistema abarca casi la mayoría de todos los datos que

le pueda servir a la Residencia Estudiantil para mantener un estricto control de los

2

mismos pero, este es insuficiente, debido a la inexistencia de un enlace de red

como vía de comunicación Web, que permita la accesibilidad a todas las entidades

que tienen que ver con estas funciones en la Universidad de Oriente. Esto trae

consigo la falta de la poca optimización de la gestión la información, pérdida de

tiempo en cuanto a la entrega de la información y la toma de decisiones.

En la Universidad de Oriente, todos los estudiantes extranjeros están

concentrados en una de las residencias de la Sede Mella.

Por lo que se plantea como problema científico la insuficiente optimización de la

información para la gestión y control de los estudiantes extranjeros en la

Residencia Sede Mella de la Universidad de Oriente.

Para dar cumplimiento al problema científico tenemos como objeto de

investigación la gestión y control de los estudiantes extranjeros en la Residencia

Sede Mella de la Universidad de Oriente. Se precisa como campo de acción la

información en la gestión y control de los estudiantes extranjeros en la Residencia

Sede Mella de la Universidad de Oriente.

Objetivo general: Desarrollar un Sistema Web en la residencia “Julio Antonio

Mella” de la Universidad de Oriente para la optimizar la gestión y control de la

información de los estudiantes extranjeros con DABE de la Universidad de

Oriente.

Se define como hipótesis:

El desarrollo de un Sistema Web en la residencia “Julio Antonio Mella” facilitaría

optimizar la gestión y control de la información de los estudiantes extranjeros con

el departamento de Relaciones Internacionales de la Universidad de Oriente,

permitiendo la accesibilidad a la información a todos los interesados.

A partir del objetivo general se establecen los siguientes objetivos específicos:

Analizar el sistema de gestión y control de la información de los estudiantes

extranjeros entre la residencia “Julio Antonio Mella” y el DABE.

3

Acoplar la información sobre los estudiantes extranjeros con la base de

datos, que se implementa a nivel de residencia, para el sistema Web

previsto, donde recoja los datos de los estudiantes extranjeros de la

Residencia Estudiantil Sede Mella.

Determinar la utilización de las herramientas técnicas para lograr una

implementación efectiva del objetivo planteado y obtener un mejor

funcionamiento y calidad del sistema propuesto.

Validar el sistema propuesto con el DABE y la Dirección de la residencia

estudiantil de la Sede “Julio Antonio Mella”.

Tareas de Investigación

Entrevistar a la dirección de la residencia “Julio Antonio Mella” y al

departamento de relaciones Internacionales y al Departamento de Atención

a Becario Extranjeros (DABE).

Realizar un estudio del estado del arte con vista a investigar la existencia de

otros sistemas, relacionados con el tema.

Definir la información a utilizar para gestionar y controlar todas las

actividades que tienen relación con los estudiantes extranjeros.

Seleccionar las herramientas, metodologías y tecnologías para el sistema

Web que se propone.

Realizar pruebas de funcionalidad del Sistema Web.

Realizar el informe final de los resultados logrados por el Sistema Web

propuesto.

Para la realización de esta investigación se han utilizado diferentes métodos,

técnicas y procedimientos, entre los que se encuentran:

4

Métodos teóricos

Histórico-lógico:

Se utilizó para realizar un estudio lógico y cronológico del desarrollo y

evolución del objeto de estudio. Permitió reconocer los elementos esenciales a

través de su historia. De esta manera se facilitó la organización lógica de toda

la investigación.

Análisis de documentos:

Sirvió como base en la elaboración del apartado teórico de esta investigación,

debido que esta técnica se emplea en la recogida de información y posibilita

interpretar los significados y contenidos presentes en los materiales

examinados. Además se empleó para determinar la información para el

sistema web.

Procedimientos teóricos

Análisis y síntesis:

Permitió analizar los elementos teóricos y empíricos de la investigación

para lograr una síntesis de los mismos. Facilitó desarrollar un proceso analítico

para desmembrar el problema a investigar en sus componentes , para

obtener un análisis más preciso en cuanto al objetivo de la investigación,

y de esta forma obtener los elementos subyacentes para establecer las

conexiones que permiten la existencia del mismo, permitiendo una

comprensión de la ineficiencia de la gestión de la información de los becarios

extranjeros en la residencia estudiantil “Julio Antonio Mella” y obtener

conclusiones sobre la misma.

Inducción y deducción:

Fue útil para lograr una mayor comprensión del problema, de forma general,

partiendo de los casos particulares, para establecer generalidades, logrando

una comprobación empírica de la hipótesis. Así mismo mediante la deducción

se llega de esa generalidad a un nivel más concreto. De acuerdo a los datos

empíricos recogidos, se establece las regularidades y generalidades del

fenómeno estudiado, para luego arribar a conclusiones teóricas sobre el

5

mismo, sometidas a comprobación. A partir de datos generales se lograron

identificar las particularidades de la unidad de análisis.

Métodos empíricos:

Se utilizaron para revelar y explicar las características fenomenológicas del

objeto y se utilizaron para la acumulación de información empírica y la

comprobación experimental de la hipótesis de la investigación.

Observación:

Se utilizó en la recogida de información para facilitar la exploración del campo

de investigación , y reunir conocimientos iníciales para ser sistematizados, y

deben estar sujeto al objeto de investigación y a los marcos de un diseño

metodológico dado, y de esta manera ordenar las experiencias y contribuir a

comprobar la hipótesis propuesta.

Técnicas y Procedimientos:

Observación:

Permitió estudiar los problemas existentes en cuanto a la gestión de la

información en la residencia estudiantil “Julio Antonio Mella” de la Universidad

de Oriente, facilitando la descripción de la situación problémica, mediante la

obtención de la información básica acerca del problema a abordar. Durante la

investigación se detectaron algunas deficiencias importantes, que intervienen

en la inadecuada gestión de la información en la residencia estudiantil “Julio

Antonio Mella” de la Universidad de Oriente.

El presente informe científico está estructurado de la siguiente forma:

Introducción:

Se analiza la situación problémica relacionada con los estudiantes extranjeros y

además se analiza todo el protocolo de investigación sobre esta temática.

Capítulo I: Fundamentación teórica sobre la gestión de la información para el

control de los estudiantes extranjeros en la residencia Sede Mella de la

Universidad de Oriente.

Se muestran los resultados del proceso de estudio del estado del arte y se

describen las herramientas, lenguajes y técnicas utilizadas en la construcción del

sistema.

6

Capítulo II: Planificación y Diseño del Sistema.

Propuesta del sistema: Se describe todo el proceso de modelado de la aplicación,

se documentan aspectos relevantes de las fases de planificación y diseño y se

presenta una propuesta de la arquitectura del sistema. Se muestra la evolución del

sistema, siguiendo la metodología elegida y aplicando los métodos

correspondientes.

Capítulo III. Codificacion y Pruebas del Sistema.

En este capítulo se explica el funcionamiento de varias herramientas que fueron

utilizadas para la confección de la aplicación con sus características

correspondientes.

Conclusiones Generales.

Recomendaciones.

Anexos.

7

Capítulo I. Fundamentación teórica sobre la gestión de la información para el control de los estudiantes extranjeros en la residencia Sede Mella de la Universidad de Oriente.

1.1 Antecedentes históricos de la información de los estudiantes extranjeros en la residencia sede Mella de la Universidad de Oriente y su gestión.

La presencia de estudiantes extranjeros (becarios) en Cuba, está íntimamente

relacionada con el tremendo impacto internacional del Triunfo de la Revolución

Cubana el 1ro de enero de 1959, y su posterior proyección en el terreno cultural

con la Campaña de alfabetización seguida por la universalización de la

enseñanza.

Se debe tener presente el contexto internacional en que triunfa la Revolución

Cubana, por un lado, la situación que imperaba entonces en América Latina en el

plano político-económico y social; pero sobre todo, el clima de efervescencia

política que reinaba en los otrora territorios coloniales de África, el Medio Oriente y

Asia en reclamo de la liberación y las independencias.

En consecuencia y como un hecho natural el encuentro de la revolución cubana

con ese proceso emancipador era por vocación inevitable. Los encuentros de Fidel

en su viaje a la ONU en 1959 con los Presidentes de los países africanos y

asiáticos, todo esto antecedente a la creación del Movimiento de los Países no

Alineados, surgió el compromiso de acoger estudiantes de los recién

independizados países para su formación en Cuba, tal como hizo la Unión

Soviética con Cuba. Todo esto significó una base para el desarrollo de la cultura,

la técnica y la ciencia.

1.2 Estudio del estado del Arte

Para el desarrollo del sistema Web planteado, se realizó el estudio del estado del

arte, donde se buscaron elementos referativos y definiciones que guardan relación

en gran parte con la información en su gestión y control de los estudiantes

extranjeros dentro de la Residencia Sede Mella. Por tal motivo se logró obtener

8

conocimientos acerca de la problemática que presenta la Residencia con respecto

a este proceso que se realiza.

En la investigación desarrollada se realizaron búsquedas para localizar diferentes

trabajos relacionados con la gestión y control de la información sobre las

actividades que se realizan con respecto a los estudiantes extranjeros que

estudian en la Universidad de Oriente.

A continuación se muestran tres sistemas informáticos que están relacionadas con

las actividades antes mencionadas, que son productos de trabajos de diploma

antes realizados.

El trabajo, cuyo título es, “Sistema informático para la toma de decisiones sobre

los laboratorios de computación versión 2.0” (2012-2013) [1], donde su aporte

principal es el control de la entrada y salida de los estudiantes en los laboratorios

de computación de la Facultad de Ingeniería Eléctrica (FIE), ahora actualmente

Facultad de Ingenieros en Telecomunicaciones, Informática y Biomédica (FITIB)

de la Sede Mella de la Universidad de Oriente. Este trabajo controla el tiempo de

máquina por parte del técnico, que registra los datos de los estudiantes en una

aplicación Excel o manualmente en una libreta de usuarios, dicho Sistema llamado

“ControlLab” se instaló en unos de los laboratorios, para comprobar su

efectividad.

Una de las desventajas de este trabajo es la falta de accesibilidad a la información

que brinda el mismo por parte de otros usuarios, tales como la Dirección del

Departamento al querer conocer la información sobre el trabajo de los laboratorios.

Otro de los trabajos que se analiza es el “Sistema de gestión para el control del

rendimiento (docente) de los becarios extranjeros de la Universidad de Oriente”

[2]. La mayor desventaja de este trabajo es nunca fue puesto en activo o sea que

no se probó. La perspectiva del mismo hubiera sido una buena base para este

trabajo que se está realizando.

El otro trabajo que se analiza es “Sistema Informático para el control de las

enfermedades tratadas en el departamento de Reumatología en el hospital

9

provincial Saturnino Lora” (2016-2017) [3]; Este trabajo tiene una buena

perspectiva con las ideas que plantea para ser utilizadas en este nuevo trabajo.

Claro está que la información es completamente diferente. Además da la idea de

las herramientas que deberán ser utilizadas. Este análisis concluye que este

trabajo es muy útil para lograr lo que se desea.

1.2.1 Fundamentos para lograr el objetivo planteado:

Sistema en Microsoft Access

En la Residencia Estudiantil Sede Julio Antonio Mella de la Universidad de

Oriente, existe un sistema para la gestión y control de la información sobre los

estudiantes alojados dentro de la misma. El mismo permite almacenar los datos

personales y de la residencia de los mismos ya sean nacionales o internacionales

(Ver. Figura1).

Sin embargo, la utilización de dicho sistema dificulta que se generen todos los

reportes necesarios para ser presentados y utilizados como medio de informe para

distribuirlos en las distintas infraestructuras que posee la misma entidad o fuera de

la misma. Igualmente no permite que los directivos y demás trabajadores de la

entidad puedan acceder a dicha información, pero no recoge todos los datos que

le hagan falta para el uso que vayan a realizar. La entrada de datos al sistema es

muy engorrosa por lo que el proceso de búsqueda de la información es muy lento

y no se hace de una manera eficiente. En la figura 1.1 que se ilustra a

continuación se muestra el diseño de la interfaz de entrada de datos de los

estudiantes extranjeros.

10

Figura 1.1 Interfaz de entrada de los datos personales y de residencia del estudiante extranjero.

Sistema (SAGREst)

El sistema informático antes mencionado SAGREst brinda funcionalidades para

medir la eficiencia del control de los estudiantes nacionales e internacionales en la

residencia Estudiantil Sede Mella de la Universidad de Oriente. Fue diseñado bajo

el marco de trabajo de Microsoft Access. El mismo permite almacenar la

información de los estudiantes tanto nacionales como internacionales y realiza el

muestreo estadístico de los estudiantes extranjeros, según la carrera, año, y país

de procedencia. Sin embargo no satisface todas las funcionalidades deseadas por

los trabajadores de la Residencia, ya que presenta algunas limitantes para mostrar

la información a los directivos de la misma. Por tanto se requiere modificar el

diseño de la base de datos para satisfacer los requerimientos solicitados. A

continuación se señalan algunas de estas funcionalidades deseadas por el cliente

la cual el sistema no presenta:

El sistema no genera automáticamente los informes de control de los

estudiantes nacionales e internacionales correspondientes al día, mes y

año.

Las tablas en las cuales se muestran los datos, se salen del marco de la

página creando inseguridad en el cliente, además no resultan del todo

atractivas, lo que provoca cierto grado de insatisfacción en el mismo.

11

No ofrece la facilidad de paginar, lo que dificulta la visualización de la

información, porque se manejan grandes cantidades de datos y las tablas

se expanden hasta alcanzar una dimensión relativamente grande.

No se incluye la funcionalidad de filtrado, lo que impide la rapidez y

eficiencia en la gestión de los datos.

No brinda la posibilidad de visualizar la información de los resultados de los

reportes en gráficas, la cual es de suma importancia ya que esta son

mostradas en las reuniones de la calidad dentro de la Residencia.

¿Qué es un Sistema?

Un sistema es un conjunto de "elementos" relacionados entre sí, de forma tal que

un cambio en un elemento afecta al conjunto de todos ellos. Los elementos

relacionados directa o indirectamente con el problema, y sólo estos, formarán el

sistema que vamos a estudiar. [4]

¿Qué es un Sistema Web?

Los Sistemas Web o también conocido como Aplicaciones Web, son aquellos que

se alojan en un servidor en Internet o sobre una intranet (red local). Su aspecto es

muy similar a las páginas Web que conocemos normalmente, pero en realidad los

Sistemas Web tienen funcionalidades muy potentes que brindan respuestas a

casos particulares. Estos se pueden utilizar en cualquier navegador Web (Chrome,

Firefox, Internet Explorer, etc.) sin importar el sistema operativo. [5]

Base de Datos

Base de datos es una colección de información organizada para proporcionar

informes eficientes. La información recopilada puede estar en diferentes formatos,

como: electrónicos, impresos, gráficos, audio, estadísticas o una combinación

entre digital e impreso. Existen bases de dato físico (papel/impresión) y bases de

datos electrónicas.

Una base de datos constituye la representación abstracta de un problema del

mundo real así como los datos de información acerca del problema en cuestión.

12

Se conocen también como banco de datos. La abreviatura de base de datos es

DB que proviene de las palabras en inglés “database”. [6]

¿Qué es un Sistema Gestor de Base de Datos?

Un Sistema Gestor de Bases de Datos (SGBD) o DBMA (DataBase Management

System) es una colección de programas cuyo objetivo es servir de interfaz entre la

base de datos, el usuario y las aplicaciones. Se compone de un lenguaje de

definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de

consulta. Un SGBD permite definir los datos a distintos niveles de abstracción y

manipular dichos datos, garantizando la seguridad e integridad de los mismos.

Unos de los SGBD podemos mencionar: Oracle, DB2, PostgreSQL, MySQL, MS

SQL Server, etc. [7]

Sistema SIGENU

El Sistema de Gestión de la Nueva Universidad (SIGENU permite la gestión de la

información académica vinculada con la educación superior en Cuba. El sistema

ha sido concebido para garantizar la seguridad e integridad de los datos. Permite

ser adaptado a las particularidades de cada centro de educación superior. La

aplicación cliente cuenta con versiones de escritorio y para la Web [8].

1.3 Metodología de desarrollo de software

Las metodologías representan un conjunto de métodos a seguir en una

investigación científica, indican cómo hay que llevar a cabo las actividades

identificadas en el proceso de desarrollo, qué técnicas son las más apropiadas en

cada actividad y qué produce cada una de ellas.

1.3.1 Programación Extrema (XP)

Es una metodología ágil, centrada en potenciar las relaciones interpersonales

como clave para el éxito en desarrollo de software, promoviendo el trabajo en

equipo, preocupándose por el aprendizaje de los desarrolladores y propiciando un

buen clima de trabajo. La Programación Extrema XP se basa en realimentación

continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos

13

los participantes, simplicidad en las soluciones implementadas y coraje para

enfrentar los cambios. Se define como especialmente adecuada para proyectos

con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico

[9, 10].

1.3.1.1 Características Fundamentales del XP

Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.

Pruebas unitarias continuas: frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión.

La programación en pareja: requiere que dos desarrolladores participen en un esfuerzo combinado de desarrollo en un sitio de trabajo. Cada miembro realiza una acción que el otro no está haciendo actualmente, mientras que uno codifica las pruebas unitarias el otro piensa en la clase que satisface la prueba.

Frecuente integración del equipo de programación con el cliente o usuario: se recomienda que un representante del cliente trabaje junto al equipo de desarrollo y sea parte del proyecto.

Corrección de todos los errores: antes de añadir nueva funcionalidad, hacer entregas frecuentes.

Refactorización del código: es decir, rescribir ciertas partes del código para aumentar su legibilidad y mantenimiento, pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.

Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores sean detectados.

Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo [11].

14

1.3.2 Fases de la metodología XP.

1.3.2.1 Planificación

En esta fase se plantean a grandes rasgos las historias de usuarios que son de

interés para la entrega del producto. Estas son construidas con la información

proporcionada por los clientes y el equipo de desarrollo comienza a familiarizarse

con las herramientas, metodología y prácticas que serán usadas para realizar el

proyecto, tienen el mismo propósito que los casos de uso. Las escriben los propios

clientes de forma clara y sencilla, sin lenguaje técnico; tal y como ven ellos las

necesidades del trabajo. Se realiza una historia de usuario por cada característica

principal de los métodos a desarrollar y estas son empleadas para estimar el

tiempo que requiere el equipo de desarrollo para realizar las entregas.

1.3.2.2 Diseño

Esta fase establece la prioridad de cada historia de usuario, y los programadores

establecen una estimación de esfuerzo necesario para cada una de ellas. El orden

de las historias de usuarios implementadas en las iteraciones son determinadas

por el cliente.

1.3.2.3 Codificación

Prácticamente desde un principio se hacen pruebas en XP para favorecer

entregas frecuentes que es el objetivo fundamental de la metodología, donde es

imprescindible la participación del cliente.

Figura 1.2 Fases de la metodología XP.

15

1.3.2.4 Prueba

Se realizan búsquedas y se verifica que se han implementado todas las historias

de usuario definidas en la fase de planificación, donde la participación del cliente

es de vital importancia. Estas pruebas se realizan en todas las fases con la

herramienta JUnit, excepto las de interfaz gráfica de usuario que se solucionan de

forma manual debido a que esta API no soporta este tipo de pruebas [12].

1.4 Tecnologías y herramientas de desarrollo

1.4.1 XAMPP 3.2.1

XAMPP es un servidor Web de plataforma, software libre, que consiste

principalmente en el sistema de gestión de bases de datos MySQL, el servidor

Web Apache y los intérpretes para lenguajes de script PHP y Perl. El nombre es

en realidad un acrónimo: X (para cualquiera de los diferentes sistemas operativos),

Apache, MariaDB/MySQL, PHP, Perl. A partir de la versión 5.6.15, XAMPP

cambió la base de datos MySQL por MariaDB, un fork de MySQL con licencia

GPL.

16

El programa se distribuye con la licencia GNU y actúa como un servidor Web libre,

fácil de usar y capaz de interpretar páginas dinámicas. A esta fecha, XAMPP está

disponible para Microsoft Windows, GNU/Linux, Solaris y Mac OS X. [13].

1.4.2 Symfony2 (versión 2.8.4), como marco de trabajo.

Es el framework con que se trabaja para la implementación del sistema. Está

completamente desarrollado en PHP versión 5.3.0 o superior, compatible con la

mayoría de gestores de bases de datos, como MySQL, sistema gestor de bases

de datos que se emplea en el sistema; así como otros servidor es como

PostgreSQL, Oracle y SQLServer de Microsoft. Se puede ejecutar tanto en

plataformas *nix (Unix, Linux, etc.), como en plataformas Windows [14].

1.4.2.1 ¿Por qué utilizar Symfony2?

Este framework contiene una estructura conceptual y tecnológica bien definida.

Incluye soporte de programas, bibliotecas y lenguajes para ayudar a desarrollar un

proyecto. Proporciona estructura al código fuente, forzando al desarrollador a

crear código más legible y más fácil de mantener. Facilita el desarrollo de

software, permitiendo pasar más tiempo identificando requerimientos de software.

Simplifica el desarrollo de una aplicación mediante la automatización de algunos

de los patrones utilizados para resolver las tareas comunes. Facilita la

programación de aplicaciones, ya que encapsula operaciones complejas en

instrucciones sencillas. [14]

1.4.2.2 Patrón arquitectónico utilizado: MVC

Symfony2 basa su funcionamiento interno en el patrón arquitectónico MVC, puesto

que el sistema se acopla a esta arquitectura y utilizando como responsabilidad

para el modelo del mapeador de objetos relacionales (ORM) Doctrine2 [15].

A continuación, se presenta en la figura1.2 el esquema simplificado del

funcionamiento interno de Symfony2, utilizando el patrón arquitectónico MVC.

17

Figura 1.2: Patrón arquitectónico MVC.

Cuando el usuario solicita acceder al sitio, internamente el sistema de

enrutamiento determina qué controlador está asociado con la página de la

portada. Luego Symfony2 ejecuta el controlador asociado a la página (un

controlador no es más que una clase PHP en la que se puede ejecutar cualquier

código). Entonces el controlador solicita al modelo los datos que pertenecen al

usuario que accedió al sistema (el modelo no es más que una clase PHP

especializada en obtener información, normalmente de una base de datos). Con

los datos de vueltos por el modelo, el controlador solicita a la vista que cree una

página mediante una plantilla y que inserte los datos del modelo. Finalmente, el

controlador entrega al servidor la página creada por la vista. Osea, el

funcionamiento interno siempre es el mismo:

1) El controlador manda y ordena.

2) El modelo busca la información que se le pide.

3) La vista crea páginas con plantillas y datos.[15]

1.4.2.3 Doctrine 2 como ORM.

Symfony2 incluye bibliotecas muy buenas, una de ellas es Doctrine2, la cual es

considerada como el gran descubrimiento de Symfony. Doctrine es un mapeador

de objetos relacionales (ORM) escrito en PHP que proporciona persistencia para

objetos PHP. El mapeo es una técnica de programación para convertir datos entre

18

el lenguaje de programación orientado a objetos y el sistema de base de datos

relacional utilizado en el desarrollo de una aplicación. [16].

La figura 1.3 demuestra como el mapeador de objetos relacional es transformar

los objetos en datos primitivos para almacenarlos y viceversa.

Figura1.3: Esquema ORM.

1.4.2.4 Los Bundles

Un bundle es un directorio que contiene todo tipo de archivos dentro de una

estructura jeraquizada de directorios. Los bundles de las aplicaciones Symfony2

suelen contener clases PHP y archivos Web (JavaScript, CSS e imágenes). Una

aplicación en Symfony2 podrá contener todos los Bundles que queramos y

necesitemos, simplemente debemos crearlos y registrarlos. Los Bundles que se

deseen crear deberán ir dentro de la carpeta “src\” del proyecto mientras que los

Bundles de terceros deberán ir dentro de la carpeta “vendor\”. [16]

19

1.4.2.5 Las Entidades

Se define las entidades de la aplicación como la manera de traducir la información

de las tablas de la base de datos a clases PHP. El código PHP de las aplicaciones

Symfony2 no interacciona directamente con las bases de datos. Por eso la

información no se gestiona con sentencias SQL sino mediante objetos PHP. Por

esta razón estos objetos se denominan técnicamente entidades.[16]

1.4.2.6 Motor de plantillas Twig

Twig es un motor de plantillas para PHP. Dentro de sus características se destaca

que es rápido porque logra compilar las plantillas hasta código PHP regular

optimizado. El costo general en comparación con código PHP regular se reduce al

mínimo. Esa demás seguro al contar con un modo de recinto de seguridad para

evaluar el código de la plantilla que no es confiable, lo que permite utilizar Twig

como un lenguaje de plantillas para aplicaciones donde los usuarios pueden

modificar el diseño de la plantilla y es flexible porque es nutrido por flexibles

analizadores léxico y sintáctico, posibilitando que el desarrollador pueda definir

sus propias etiquetas y filtros personalizados. [17]

1.4.3 NetBeansIDE 7.3 como marco de entorno de desarrollo (IDE)

Netbeans IDE (versión 7.3).: Es un entorno de desarrollo integrado, una

herramienta para programadores pensada para escribir, compilar, depurar y

ejecutar programas. Está escrito en Java pero puede servir para cualquier otro

lenguaje de programación. El NetBeans IDE es un ambiente libre de desarrollo

integrado con código abierto para desarrolladores de software.

NetBeans IDE 7.3 ofrece un rendimiento significativamente mejorado y una

experiencia de codificación perfeccionada, con nuevas capacidades de análisis de

código estático en el editor Java y más inteligente de exploración del proyecto.

Incluye características notables como el soporte para múltiples marcos de trabajo

PHP [17].

20

NetBeans es un IDE (Entorno de Desarrollo Integrado) para programadores,

pensado para escribir, compilar, depurar y ejecutar programas. Está escrito en

Java, pero puede servir para cualquier otro lenguaje de programación. Es un

producto libre y gratuito sin restricciones de uso. Todas las funciones del IDE son

provistas por módulos. Cada módulo provee una función bien definida, tales como

el soporte de Java, edición, o soporte para el sistema de control de versiones.

Expande el soporte de los lenguajes dinámicos con apoyo para PHP 5.4, así como

el esquema de Symfony2 y Doctrine2, y acelera el desarrollo de aplicaciones web

con PHP.

1.4.3.1 Ventajas del uso de NetBeans IDE:

NetBeans es una herramienta para programadores pensada para escribir,

compilar, depurar y ejecutar un programa escrito en Java pero puede servir

para cualquier otro lenguaje de programación.

Es un producto libre y gratuito sin restricciones de uso.

Soporta el desarrollo de todos los tipos de aplicación Java, J2SE, Web y

aplicaciones móviles.

Para el desarrollo en C y C++ brinda un completo editor con depurador,

plantillas de proyecto y soporte para varias configuraciones de proyecto.

Mejor edición del código, capacidades de navegación e inspección, historial

local, soporte integrado para subversión, y mayores capacidades de

personalización. [17]

1.4.4 Servidor Web Apache 2.4.10

Es el servidor web que se utiliza en el sistema, distribuye las páginas de

información formateada a los clientes que las solicitan, o sea que realizan

peticiones de recursos. Losrequerimientos son hechos a través de una conexión

de red, y para ello se usa el protocolo http (hypertext transfer protocol).

Apache es uno de los servidores web más populares del mercado, y el más

utilizado actualmente, de código abierto y gratuito que funciona sobre cualquier

plataforma. Desde que salió al mercado ha evolucionado hasta convertirse en uno

de los mejores servidores en términos de eficiencia, funcionalidad y velocidad [18].

21

1.4.5 MySQL 5.6.21 como Sistema Gestor de Base de Datos.

Es un sistema de administración de Bases de Datos que opera en una arquitectura

cliente/servidor. Permite la fácil conectividad, alta velocidad de respuesta a

solicitudes, y gran seguridad, por ello se utiliza para acceder a Bases de Datos

desde Internet. MySQL es rápido, confiable y fácil de usar, es multiplataforma,

multiusuario y permite elaborar consultas con el robusto SQL. El lenguaje PHP es

compatible con MySQL, por el amplio conjunto de instrucciones definidas para el

tratamiento de este [19].

1.4.6 ER/Estudio Embarcadero 8.0

Es una herramienta de modelado de datos fácil de usar y multinivel, para el diseño

y construcción de bases de datos a nivel físico y lógico. Direcciona las

necesidades diarias de los administradores de bases de datos, desarrolladores y

arquitectos de datos que construyen y mantienen aplicaciones de bases de datos

grandes y complejos. ER/Studio está equipado para crear y manejar diseños de

bases de datos funcionales y confiables.

Ofrece fuertes capacidades de diseño lógico, sincronización bidireccional de los

diseños físicos y lógicos, construcción automática de bases de datos,

documentación y fácil creación de reportes.

Se diseña en ER/Studio para hacer más fácil de entender el estado actual de los

datos de la empresa. Simple y fácil al usuario, ayuda a organizaciones para tomar

decisiones en cómo resolver embotellamientos de los datos, elimina redundancia y

alcanza en última instancia usos de más alta calidad que entreguen datos más

eficientes y exactos a la empresa [20].

ER/Studio ofrece un nuevo componente visual para análisis del impacto en el

rendimiento entre fuentes de datos. Esto permite a los usuarios visualizar,analizar

y documentar cómo fluyen los datos a través de la organización.ER/Studio

también incluye nuevas funcionalidades de sub modelado en el nivel de atributos y

opciones de comparación, que ahorran tiempo.

Entre sus Funcionalidades y Beneficios se encuentran:

22

Entorno de Diseño Dirigido por el Modelo de Alta Productividad:Verdadera

separación de modelos físicos y lógicos con integración completa, transformación

automatizada, y mapeo de tipos personalizados de datos.Publicación de modelos

e informes en una gran variedad de formatosincluyendo HTML, RTF, Microsoft

Office Output, y ER/Studio Viewer.Generación de esquemas XML desde modelos

físicos y lógicos.

Soporte Completo al Ciclo de Vida de Bases de Datos: Ingeniería inversa y

directa.Generación automatizada de código de bases de datos.

Almacén de Datos y Soporte a la Integración: Documentación Visual del Linaje

de Datos, Modelado Dimensional de los modelos lógico y físico.

Diseños de Calidad de Bases de Datos: Validación de diseño, formamientode la

integridad referencial, Capacidad de planificación y modelado deseguridad.

(Duarte Linares , 2014).

1.4.7 Ajax

AJAX, acrónimo de Asynchronousn JavaScript And XML (JavaScript asíncrono y

XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA

(Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, 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, mejorando la interactividad, velocidad y

usabilidad en las aplicaciones.

Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se

solicitan al servidor y se cargan en segundo plano sin interferir con la visualización

ni el comportamiento de la página, aunque existe la posibilidad de configurar las

peticiones como síncronas de tal forma que la interactividad de la página se

detiene hasta la espera de la respuesta por parte del servidor. [21]

23

1.4.8 Mozilla Firefox 34.0.5

Es un navegador web libre descendiente de Mozilla Application Suite, desarrollado

por la Corporación Mozilla, la Fundación Mozilla y un gran número de voluntarios

externos. Es un navegador multiplataforma y está disponible en varias versiones

de Microsoft Windows, Mac OS X, GNU/Linux y algunos sistemas basados en

Unix. Su código fuente es software libre, publicado bajo una triple licencia GPL /

LGPL / MPL. Para visualizar páginas web, Firefox usa el motor de renderizado

Gecko, que implementa algunos estándares web actuales además de otras

funciones, algunas de las cuales están destinadas a anticipar probables adiciones

a los estándares web. Incluye navegación por pestañas, corrector ortográfico,

búsqueda progresiva, marcadores dinámicos, un administrador de descargas y un

sistema de búsqueda integrado que utiliza el motor de búsqueda que desee el

usuario. Además se pueden añadir funciones a través de complementos

desarrolladas por terceros. [22]

1.4.9 Boostrap 3.0

Boostrap es un marco de trabajo de código abierto, es un compendio de buenas

prácticas. Implementa los nuevos estándares: HTML5 + CSS3. Todo está

organizado por módulos, los cuales son independientes y reutilizables en todo el

proyecto. Puede servir como herramienta ágil para construir interfaces y para

prototipos de sitios webs en ciertos casos [23].

1.5 Lenguajes de Programación

1.5.1 PHP (versión 5.3.5)

PHP, sigla recursiva en inglés de PHP: Hypertext Preprocessor (procesador de

hipertexto), es un lenguaje de programación de propósito general de código del

lado del servidor originalmente diseñado para el desarrollo Web de contenido

dinámico. Fue uno de los primeros lenguajes de programación del lado del

servidor que se podían incorporar directamente en el documento HTML en lugar

de llamar a un archivo externo que procese los datos. El código es interpretado

24

por un servidor Web con un módulo de procesador de PHP que genera la página

Web resultante. PHP ha evolucionado por lo que ahora incluye también una

interfaz de línea de comandos que puede ser usada en aplicaciones gráficas

independientes. Puede ser usado en la mayoría de los servidores Web al igual que

en casi todos los sistemas operativos y plataformas sin ningún costo. [24]

1.5.2 HTML 5

HTML5 (Hyper Text Markup Language, versión 5) es la quinta revisión importante

del lenguaje básico de la World Wide Web, HTML. HTM5 especificados variantes

de sintaxis para HTML: una «clásica», HTML (text/html), conocida como HTML5, y

una variante XHTML conocida como sintaxis XHTML5 que deberá servirse con

sintaxis XML (application/xhtml+xml). Esta es la primera vez que HTML y XHTML

se han desarrollado en paralelo. La versión definitiva de la quinta revisión del

estándar se publicó en octubre de 2014.

Al no ser reconocido en viejas versiones de navegadores por sus nuevas

etiquetas, se recomienda al usuario común actualizar su navegador a la versión

más nueva, para poder disfrutar de todo el potencial que provee HTML. [25]

1.5.3 JavaScript

JavaScript es un lenguaje de programación dinámico que soporta construcción de

objetos basado en prototipos. La sintaxis básica es similar a Java y C++ con la

intención de reducir el número de nuevos conceptos necesarios para aprender el

lenguaje.

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.

Es el lenguaje de programación Web del lado del cliente más extendido. Con este

lenguaje script se pueden generar páginas dinámicamente en función de las

25

preferencias del usuario, validar los datos introducidos en un formulario o modificar

dinámicamente el contenido de la página. [23]

1.5.4 CSS3

Hojas de estilo en cascada (o CSS, siglas en inglés de CascadingStylesheets)

es un lenguaje de diseño gráfico para definir y crear la presentación de un

documento estructurado escrito en un lenguaje de marcado. Es muy usado para

establecer el diseño visual de los documentos web, e interfaces de usuario

escritas en HTML o XHTML; el lenguaje puede ser aplicado a cualquier

documento XML, incluyendo XHTML, SVG, XUL, RSS, etcétera. También permite

aplicar estilos no visuales, como las hojas de estilo auditivas.

Junto con HTML y JavaScript, CSS es una tecnología usada por muchos sitios

web para crear páginas visualmente atractivas, interfaces de usuario para

aplicaciones web, y GUIs para muchas aplicaciones móviles (como Firefox OS).

CSS está diseñado principalmente para marcar la separación del contenido del

documento y la forma de presentación de este, características tales como las

capas o layouts, los colores y las fuentes. Esta separación busca mejorar la

accesibilidad del documento, proveer más flexibilidad y control en la especificación

de características presentacionales, permitir que varios documentos HTML

compartan un mismo estilo usando una sola hoja de estilos separada en un

archivo .css, y reducir la complejidad y la repetición de código en la estructura del

documento.

La especificación CSS describe un esquema prioritario para determinar que reglas

de estilo se aplican si más de una regla coincide para un elemento en particular.

Estas reglas, aplicadas con un sistema llamado en cascadas, las prioridades son

calculadas y asignadas a las reglas, así que los resultados son predecibles.[31]

26

1.5.6 ¿SQL o DQL?: Como lenguajes de programación del lado del servidor.

1.5.6.1 SQL:

El lenguaje de consulta estructurado o SQL (por sus siglas en inglés

StructuredQuery Language) es un lenguaje declarativo de acceso a bases de

datos relacionales que explota la flexibilidad y potencia de los sistemas

relacionales permitiendo gran variedad de operaciones. Una de sus características

es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con

el finde recuperar de una forma sencilla informaciones de interés de una base de

datos, así como también hacer cambios sobre ella [].

1.5.6.2 DQL:

Una de las características clave de Doctrine2 es la opción de escribir las consultas

de base de datos en un dialecto SQL propio orientado a objetos llamado Lenguaje

de Consulta Doctrine (DQL por Doctrine Query Language), inspirado en

Hibernates HQL. Además DQL difiere ligeramente de SQL en que

abstraeconsiderablemente la asignación entre las filas de la base de datos y

objetos, permitiendo a los desarrolladores escribir poderosas consultas de una

manera sencilla y flexible.

DQL realiza consultas sobre objetos, mientras que SQL realiza consultas sobre

tablas. El lenguaje DQL permite realizar consultas de tipo SELECT, UPDATE y

DELETE. Las consultas de tipo INSERT no están permitidas, ya que toda la

nuevainformación se debe crear a través del método persist() del entity

manager.[19, 20]

Conclusiones del capítulo

En este capítulo se realizó el estudio del estado del arte, analizando las ventajas y

desventajas de los trabajos mostrados. Se realiza la descripción de las

herramientas que serán utilizadas para lograr el objetivo planteado. El estudio

realizado permitió determinar las principales características del proceso de gestión

de la información para el control de los estudiantes extranjeros, así como la

27

estructura interna y desarrollo de dicha actividad en la residencia estudiantil de la

Sede Mella de la Universidad de Oriente en Santiago de Cuba, pudiendo constatar

las problemáticas existentes y su posible solución mediante un Sistema Web.

28

Capítulo 2: Planificación y diseño del sistema.

2.1 Introducción.

En este capítulo se abordan detalladamente las fases de planificación y

diseño según la metodología XP. Se plantean las reglas del negocio, así como la

propuesta del sistema, sus usuarios y sus roles. Se declaran los requisitos

funcionales y se describen las historias de usuario y las tareas de ingeniería.

Se relacionan todas las clases a través de un diagrama de clase generado en

el ER/Studio y se muestran algunas tarjetas CRC de las clases controladoras. El

modelo de datos queda reflejado mediante el diagrama físico de la base de datos.

2.2 Planificación del Sistema.

En la etapa de planificación se comienza a interactuar con el cliente y con el resto

del equipo de desarrollo. Se crean las historias de usuarios (HU) a partir de la

información proporcionada por los clientes, y son utilizadas para especificar los

requisitos del software.

2.3 Reglas del Negocio.

Las reglas de negocio son declaraciones de condiciones o políticas que se deben

cumplir. Tienen como propósito definir restricciones o invariantes que son

acometidas por el negocio. Las reglas del negocio que se deben tener en cuenta

para el sistema se listan a continuación:

1- El usuario, cuyo rol sea “Administrador”, tendrá acceso total a todas las

funcionalidades del sistema, principalmente a la parte de Administración de

los nomencladores y Administración de Usuarios que van a interactuar con

dicho Sistema.

2- El usuario, cuyo rol sea “Técnico”, tendrá acceso a la actualización de la

información del sistema, después de ser autenticado por el “Administrador”,

el cual lo ha registrado dentro de la Dirección de Residencia.

29

3- Los usuarios, cuyo rol sea “Invitado”, tendrán acceso a la lectura de la

página principal para ver los datos personales de los estudiantes

extranjeros, de residencia y docentes.

4- El proceso de registro de los becarios extranjeros es inicializado por el

“Técnico”, el mismo llena los datos mediante una plantilla, hecha a mano,

de ahí esos datos son transferidos al sistema.

5- El Departamento de Atención a Estudiantes Extranjeros y el de la Dirección

de Residencias Estudiantiles (Residencia Estudiantil Sede Mella), son las

únicas entidades autorizadas a tener acceso al sistema.

6- Para poder utilizar el Sistema es obligatorio que se le haya creado una

cuenta al usuario desde el módulo de Administración.

2.3.1 Propuesta del Negocio.

La Residencia Estudiantil Sede “Julio Antonio Mella” perteneciente a la

Universidad de Oriente en la provincia Santiago de Cuba, es una de las

instituciones más importantes y prestigosas de nuestro país. La misma cuenta con

dos entidades principales que son el Departamento a Atención a Estudiantes

Extranjeros (Relaciones Internacionales) y la Residencia Estudiantil

(Departamento de Dirección de Residencias Estudiantiles).

En esta última, se requiere informatizar el proceso de gestión y control de la

información de los estudiantes extranjeros en cuanto a los datos personales, datos

estadísticos, docentes y las actividades que ellos realizan dentro de la residencia.

Se necesita una herramienta que por la vía Web permita la comunicación entre la

Residencia Estudiantil Sede “Mella”, el Departamento de Atención a Becarios

Extranjeros (DABE) y los interesados (consultantes) que necesiten la búsqueda de

información necesaria sobre los estudiantes extranjeros.

Para ello se diseño un sistema Web que permita, no solamente la conexión entre

los mismos, sino que facilite la posibilidad de que los usuarios que interactuen con

el sistema. Que se puedan conectar desde otra entidad u otra estacion de trabajo

donde tengan acceso al servidor principal de la Univerdad que se encuentra en el

Departamento de Informatización.

30

Entre las principales funcionalidades propuestas, se pueden mencionar los

siguientes:

- Listar el total de estudiantes extranjeros existentes en dicha residencia

Sede “Mella”.

- Permitir la generación de reportes específicos por el cliente, en vista al

crierio seleccionado.

- La obtención de datos estadísticos de los mismos reportes.

2.3.2 Roles y Responsabilidades:

Los usuarios de la aplicación son todas aquellas personas que interactúan de

alguna forma con esta o que desempeñan algún rol específico en la operatividad

de la misma. En el sistema, los roles se representan de acuerdo a privilegios o

permisos, es decir, diversas categorías de accesibilidad, que determinan un nivel

de operaciones dentro de las funcionalidades de la misma. En el sistema se

definen tres roles de usuarios, cada uno con diferentes privilegios. En la tabla 2.1

que a continuación se muestra, aparecen detallados cada uno de ellos.

Roles de los

desarrolladores Descripción

Administrador

Gestiona el sistema en su totalidad, incluyendo la

adición de nuevos usuarios y los profesores

responsables de los estudiantes extranjeros, así

como la gestión de los nomencladores del sistema y

realiza salvas a la base de datos.

Técnico

Representa a la Dirección de Residencias Estudiantil

de la Residencia Estudiantil, encargado de actualizar

los registros de los estudiantes extranjeros

distribuidos en las diferentes facultades de la entidad.

Invitado Es el usuario que solamente leerá la información que

le interesa y no modifica nada.

Fig. 2.1 Roles y Responsabilidades.

31

2.4 Funcionalidades del Sistema

Una funcionalidad define el comportamiento interno del software: cálculos, detalles

técnicos, manipulación de datos y otras características específicas que muestran

cómo los procesos se llevan a la práctica. Son complementadas por las historias

técnicas, que se enfocan en cambio en el diseño o la implementación. En la

metodología de desarrollo utilizada XP, estos requerimientos van a ser descritos

por medio de las historias de usuarios [].

A partir de la propuesta del sistema se identifican las siguientes funcionalidades:

F1: Gestionar usuario y contraseña.

F2: Gestionar Técnicos:

Añade, modifica, elimina y filtra en el sistema la información de los

Técnicos se deseen gestionar.

F3: Gestionar Profesores Responsables:

Añade, modifica, elimina y filtra en el sistema la información de los

Profesores Responsables se deseen gestionar.

F4: Gestionar Información de los Estudiantes Extranjeros:

Añade, modifica, elimina y filtra en el sistema la información de los

estudiantes extranjeros que se deseen gestionar.

F5: Gestionar Información de los Módulos de los Estudiantes Extranjeros.

Añade, modifica, elimina y filtra en el sistema la información de los

Módulos de los Estudiantes se deseen gestionar.

F6: Gestionar Informacion de los Reportes de los Estudiantes Extranjeros por

Carrera.

Añade, modifica, elimina y filtra en el sistema la información de los

Estudiantes Extranjeros por Carreras que se deseen gestionar.

F7: Gestionar Informacion de los Reportes de los Estudiantes Extranjeros por

Facultad

Añade, modifica, elimina y filtra en el sistema la información de los

Estudiantes Extranjeros por Facultad que se deseen gestionar.

32

F8: Gestionar Informacion de los Reportes de los Estudiantes Extranjeros por Pais

Añade, modifica, elimina y filtra en el sistema la información de los

Estudiantes Extranjeros por Paises que se deseen gestionar.

F9: Gestionar Informacion de los Reportes de los Estudiantes Extranjeros por

Evaluacion Anual.

Añade, modifica, elimina y filtra en el sistema la información de los

Estudiantes Extranjeros por Evaluacion Anual que se deseen gestionar.

F10: Gestionar Informacion de los Reportes de los Profesores por Estudiantes

Extranjeros

Añade, modifica, elimina y filtra en el sistema la información de los

Profesores por Estudiantes Extranjeros que se deseen gestionar.

2.5 Requisitos Funcionales e historias técnicas.

Los requisitos funcionales especifican las funcionalidades que debe cumplir el

sistema, definen el comportamiento interno en base a cálculos, manipulación de

datos y otras funciones específicas que muestran cómo los requerimientos del

negocio serán llevados a la práctica.

2.5.1 Historias Técnicas

Los requisitos no funcionales son propiedades o cualidades que el producto

debe tener. Estas propiedades representan las características que debe hacer al

producto atractivo, usable, rápido o confiables. En muchos casos los

requerimientos no funcionales son fundamentales en el éxito del producto.

HT1: Disponibilidad

HT1.1: Acceso a la información solicitada en todo momento(si tiene permiso

para ello).

HT2: Confidencialidad

HT2.1: Los administradores del sistema son los únicos que podrán

transformar la información referente a los usuarios; los usuarios cuyo rol sea

33

“Administrador”, podrán gestionar la información de los usuarios (Técnicos) y

los nomencladores que posee el sistema de los cuales sean responsables.

HT3: Interfaz externa

HT3.1: El diseño de la interfaz es sencillo y claro de usar, es formal, serio

y con una navegación sugerente, todo esto teniendo en cuenta el fin con el que

se desarrolla la sistema.

HT4: Usabilidad

HT4.1: El módulo garantiza un acceso fácil y rápido a los usuarios, el rol de

invitado no necesita autenticación.

HT5: Rendimiento

HT5.1: Los tiempos de respuesta y velocidad de procesamiento de la

información serán rápidos en el orden de los pocos segundos.

HT6 Soporte

HT6.1 Fácil instalación, mantenimiento y adaptable a cualquier plataforma.

HT7: Seguridad

HT7.1: La información será almacenada en una base de datos. Se implementarán

mecanismos de seguridad, en dependencia de los privilegios que tenga el

usuario será la información a la que tendrá acceso.

HT8: Software

HT8.1: El servidor de aplicaciones web a utilizar es Apache (versión 2.2.11)

o superior que soporta a PHP5 y EMS Manager MySQL 2010, los sistemas

operativos recomendados a utilizar es GNU/Linux Ubuntu 12.5 o superior,

Windows 7 o superior, y navegador web preferentemente Firefox Mozilla

versión 35.0.0 o superior, además de un visor de pdf como el Foxit Reader.

34

HT9: Hardware

HT9.1: Se requiere de una PC con memoria RAM de 512MB o superior, de disco

duro preferiblemente de 80 GB o más, procesador Pentium 4 o superior, con

tarjeta de red de 100mbs.

2.5.2 Historias de Usuario

Las historias de usuario conforman la parte central de la metodología XP. Estas

definen lo que se debe construir en el proyecto de software, tienen una

prioridad asociada, definida por el cliente, especificando cuáles son las más

importantes para el resultado final. Estas historias de usuario serán divididas en

tareas y su tiempo será estimado por los desarrolladores. A continuación se

describen las principales historias de usuarios del proyecto. De la siguiente

manera se calificó la prioridad de las historias de usuario:

a) ALTA: requerimientos que no pueden faltar.

b) MEDIA: requerimientos que pueden ser implementados en otra iteración.

c) BAJA: requerimientos adicionales.

En la realización del sistema, que llevará a cabo el control de los estudiantes

extranjeros, se realizaron las siguientes Historias de Usuario, donde se

establecen las definiciones y funcionalidades principales del sistema

requeridas por los usuarios responsables de controlar al estudiante. Desde la

tabla 2.1 hasta la tabla 2.3 se muestra la historia de usuarios con sus respectivas

tareas de ingeniería. (28)

35

Historias de Usuarios

Número: HU_1 Nombre de la Historia de Usuario:

Gestionar usuario y contraseña

Modificación de Historia de Usuario Número: Ninguna

Usuario: Administrador Iteraciones: 2

Prioridad en el Negocio: Alta Riesgo de Desarrollo: Medio.

Descripción: Después de iniciada la aplicación. El Sistema tendrá definido por

defecto un usuario Administrador, el cual tendrá acceso a todas las

funcionalidades del sistema. Así mismo poder realizar las operaciones de registro

de permiso, edición, eliminación de usuario. Los tipos de usuario que tendrá

acceso al sistema serán los administradores y técnicos.

Observaciones: El Administrador debe de estar autenticado en el sistema.

Prototipo de interfaz: (Véase en Anexo 1)

Tabla 2.1

Historias de Usuarios

Número: HU_2 Nombre de la Historia de Usuario:

Gestionar Información de los Estudiante

Extranjero.

Modificación de Historia de Usuario Número: Ninguna

Usuario: Técnico Iteraciones: 1

Prioridad en el Negocio: Alta Riesgo de Desarrollo: Medio.

36

Descripción: Después de iniciada la aplicación. El Técnico deberá autenticarse

para acceder al módulo de registro de estudiantes extranjeros, se solicita el

correo electrónico y contraseña con que se registró inicialmente por el

Administrador para que tenga acceso atendiendo, según su categoría. Si no

desea autenticarse puede visualizar toda la información referente al sistema.

Observaciones: El Técnico debe estar autenticado en el sistema

Prototipo de interfaz: (Véase en Anexo 2)

Tabla 2.2

Historias de Usuarios

Número: HU_3 Nombre de la Historia de Usuario:

Gestionar Técnicos.

Modificación de Historia de Usuario Número: Ninguna

Usuario: Administrador. Iteraciones: 1

Prioridad en el Negocio: Alta Riesgo de Desarrollo: Medio.

Descripción: Después de iniciada la aplicación. El Técnico sino se encuentra

registrado, hace una solicitud al Administrador para que el mismo le cree su perfil

de usuario mediante el nomenclador Técnicos, para que así pueda trabajar con

el sistema.

Observaciones: Debe estar autenticado en el sistema

Prototipo de interfaz: (Véase en Anexo ………)

Tabla 2.3

2.5.3 Tareas de Ingeniería

37

Tareas de Ingeniería

Número de la Tarea: 1 Número de la Historias de Usuario: 1

Nombre de la Tarea: Insertar Estudiante Extranjero.

Tipo de Tarea: De Desarrollo Puntos estimados: 5 días.

Fecha Inicio: 03-03-18 Fecha Fin:08-03-18

Programador Responsable: Jorge Javier Barrera Correoso

Descripción: El Técnico inserta toda la información relacionada con el nuevo

estudiante extranjero que llegó a la residencia a hospedarse, esta se inserta en

la tabla de registro de información de estudiante extranjero..

Observaciones: El Técnico debe de estar autenticado en el sistema

Prototipo de interfaz: (Véase Anexo 2)

Tabla 2.4

Tareas de Ingeniería

Número de la Tarea: 2 Número de la Historias de Usuario: 1

Nombre de la Tarea: Modificar Estudiante Extranjero.

Tipo de Tarea: De Desarrollo Puntos estimados: 5 días.

Fecha Inicio: 03-03-18 Fecha Fin:08-03-18

Programador Responsable: Jorge Javier Barrera Correoso

38

Descripción: El Técnico modifica y actualiza toda la información relacionada con

el estudiante extranjero dentro del sistema, esta se inserta en la tabla de registro

de información de estudiante extranjero.

Observaciones: El Técnico debe de estar autenticado en el sistema.

Prototipo de interfaz: (Véase Anexo 2)

Tabla 2.5

Tareas de Ingeniería

Número de la Tarea: 3 Número de la Historias de Usuario: 1

Nombre de la Tarea: Eliminar Estudiante Extranjero.

Tipo de Tarea: De Desarrollo Puntos estimados: 5 días.

Fecha Inicio: 03-03-18 Fecha Fin:08-03-18

Programador Responsable: Jorge Javier Barrera Correoso

Descripción: El Técnico elimina toda la información relacionada con el

estudiante extranjero dentro del sistema, esta se inserta en la tabla de registro de

información de estudiante extranjero.

Observaciones: El Técnico debe de estar autenticado en el sistema

Prototipo de interfaz: (Véase Anexo 3)

Tabla 2.6

2.6 Diseño del Sistema.

39

En el diseño se modela el sistema en construcción de forma que soporte todos

los requisitos, incluyendo las historias técnicas y las restricciones que se le

suponen. Además se define una estructura del sistema que se debe

conservar lo más fielmente posible durante el ciclo de vida completo del software.

2.2.1 Patrón Arquitectónico.

El patrón de diseño arquitectónico Modelo-Vista-Controlador (MVC) a utilizar

se definió de la forma siguiente: en la vista se incorporan el marco de

trabajo Boostrap, la tecnología Ajax, y el motor de plantillas Twig que es una

biblioteca incluida en Symfony2. Los mismos ofrecen una mejor interacción del

sistema con el usuario proporcionando un entorno visual más agradable e intuitivo.

El controlador mes el mismo que propone Symfony2 escrito en PHP y el

modelo es generado a través del ORM Doctrine2, el cual mapea los objetos

hacia la base de datos del sistema, que en este caso es el SGBD PostgreSQL

por decisión de la empresa. La arquitectura resultante se puede apreciar en la

Figura 2.2.

40

41

Modelo Lógico

42

Modelo Físico

43

Diagrama de despliegue

El diagrama de despliegue es un modelo de objetos que describe la distribución

física del sistema en términos de cómo se distribuye la funcionalidad entre los

nodos de cómputo. Se utiliza como entrada fundamental en las actividades de

diseño e implementación debido a que la distribución del sistema tiene una

influencia principal en su diseño. A continuación, en la Figura 2.8 se muestra el

diagrama de despliegue de la aplicación (32).

Figura 2.8: Diagrama de Despliegue

2.6 Estimación de tiempo y costo

Calcular los Puntos de Historias de Usuarios sin ajustar

El primer paso para la estimación consiste en el cálculo de los Puntos de Historias de

Usuarios sin ajustar. Este valor, se calcula como se muestra en la ecuación 2.9

cálculo de los Puntos de Historias de Usuarios sin ajustar.

Ecuación 2.9: Cálculo de los Puntos de Historias de Usuarios sin ajustar

UUCP = UAW + UUCW

Donde: UUCP: Puntos de Historias de Usuarios sin ajustar.

UAW: Factor de Peso de los Actores sin ajustar.

UUCW: Factor de Peso de Historias de Usuarios sin ajustar.

Este valor se calcula mediante un análisis de la cantidad de Actores presentes

en el sistema y la complejidad de cada uno de ellos.

44

En la tabla 2.10 se presenta el Factor de Peso de los Actores sin ajustar. Tabla 2.10: Factor de Peso de los Actores sin ajustar

Tipo Descripción Peso Cant * peso

Simple

Otro sistema que interactúa con el

sistema a desarrollar

mediante una interfaz de

programación.

1 1*1

Medio

Otro sistema que interactúa con el

sistema a desarrollar

mediante un protocolo o una

interfaz basada en texto.

2 0*2

Complejo

Una persona que interactúa con el sistema mediante

una interfaz gráfica.

3 2*3

Total 1+0+6=7 Tabla 2.10 Factor de Peso de los Actores sin ajustar (UAW)

Este valor se calcula mediante un análisis de la cantidad de HU presentes en el

sistema y la complejidad de cada uno de ellos. La complejidad de los HU se

establece teniendo en cuenta la cantidad de transacciones efectuadas en el

mismo según muestra la tabla 2.11 se presenta el Peso de las Historias de

Usuarios sin Ajustar.

Tipo Descripción Peso Cant* peso

Simple La HU contiene de 1 a 3

transacciones 5 5*5

Medio La HU contiene de 4 a 7

transacciones 10 3*10

Complejo La HU contiene más de 8

transacciones 15 0*15

Total 55

Tabla 2.11 Peso de las Historias de Usuarios sin Ajustar

UUCP = 7 +55= 62

45

Cálculo de los Puntos de Historias de Usuarios ajustadas.

Una vez que se tienen los Puntos de Historias de Usuarios, se debe ajustar éste valor

como se muestra en la ecuación 2.12 cálculo de los puntos de historias de usuarios

ajustadas.

Ecuación 2.12: Cálculo de los Puntos de Historias de Usuarios ajustadas

UCP = UUCP * TCF * EF

Donde:

UCP: Puntos de Historias de Usuarios ajustados.

UUCP: Puntos de Historias de Usuarios sin ajustar.

TCF: Factor de complejidad técnica.

EF: Factor de ambiente.

Factor de complejidad técnica (TCF).

Este coeficiente se calcula mediante la cuantificación de un conjunto de factores que

determinan la complejidad técnica del sistema. Cada uno de los factores se cuantifica

con un valor de 0 a 5, donde 0 significa un aporte irrelevante o nulo y 5 un aporte muy

importante. En la siguiente tabla 2.13 se muestra factor de complejidad técnica con su

significado y el peso de cada uno de éstos factores:

Factor Descripción Peso Valor Ó(Pesoi* Valori)

T1 Sistema distribuido 2 0 0

T2 Objetivos de performance o tiempo de respuesta

1 1 1

T3 Eficiencia del usuario final 1 1 1

T4 Procesamiento interno complejo 1 1 1

T5 El código debe ser reutilizable 1 1 1

T6 Facilidad de instalación 0.5 1 0.5

T7 Facilidad de uso 0.5 3 1.5

T8 Portabilidad 2 0 0

T9 Facilidad de cambio 1 3 3

T10 Concurrencia 1 0 0

T11 Incluye objetivos especiales de seguridad

1 3 3

T12 Provee acceso directo a terceras partes 1 5 5

Total 18

Tabla 2.13 Factor de complejidad técnica

46

Para Calcular TCF: Factor de complejidad técnica se muestra la ecuación 2.13

cálculo del factor complejidad técnica.

Ecuación 2.13: Cálculo del Factor de complejidad técnica

TCF = 0.6 + 0.01 * Σ(Pesoi* Valori)

TCF = 0.6 + 0.01 *18

TCF = 0.78

Factor Ambiente (EF).

El factor de ambiente está relacionado con las habilidades y entrenamiento del

grupo de desarrollo. Cada factor se cuantifica con un valor desde 0 (aporte

irrelevante) hasta 5 aporte muy relevante).

En la siguiente tabla 2.14 se muestra factor de ambiente con su significado y el

peso de cada uno de éstos factores:

Factor Descripción Peso Valor Ó(Pesoi* Valori)

E1 Familiaridad con el modelo de proyecto utilizado

1.5 4 6

E2 Experiencia en la aplicación 0.5 4 2

E3 Experiencia en orientación a objetos 1 4 4

E4 Capacidad del analista líder 0.5 0 0

E5 Motivación 1 5 5

E6 Estabilidad de los requerimientos 2 2 4

E7 Personal part-time -1 0 0

E8 Dificultad del lenguaje de programación

-1 3 -2

Total 19

Tabla 2.14 Factor de ambiente

Para Calcular EF: Factor de ambiente se muestra la ecuación 2.15 cálculo del

factor ambiente.

Ecuación 2.15: Cálculo del Factor de ambiente

EF = 1.4 - 0.03 * Σ(Pesoi* Valori)

EF = 1.4 - 0.03 * 19

EF = 0.83

Luego UCP = 62 * 0.78 * 0.83

UCP = 40,1388

47

Estimación de esfuerzo a través de los Puntos de Historias de Usuarios.

A continuación se muestra la ecuación 2.16 esfuerzo estimado en horas hombres.

Ecuación 2.16: Esfuerzo estimado en horas hombres.

E = UCP * CF

Donde:

E: Esfuerzo estimado en horas hombres.

UCP: Punto de historias de usuarios ajustadas.

CF: Factor de conversión.

Para obtener el factor de conversión (CF) se cuentan cuántos valores de los que

afectan el factor ambiente (E1, E8) están por debajo de la media (3), y los que

están por encima para los restantes (E3, E5). Si el total (4) es 2 o menos se utiliza

el factor de conversión 20 Horas- Hombre / Punto de historias de usuarios. Si el

total es 3 o 4 se utiliza el factor de conversión 28 Horas-Hombre / Punto de

historias de usuarios. Si el total es mayor o 31 igual que 5 se recomienda efectuar

cambios en el proyecto ya que se considera que el riesgo de fracaso es

demasiado alto. En este caso:

CF= 20 Horas-hombre / Puntos de historias de usuarios.

Luego

E = 40,1388* 20 horas-hombre

E = 802,776 horas-hombre

En la siguiente tabla 2.17 se muestra distribución del esfuerzo por etapas.

Tabla 2.17 Distribución del esfuerzo por etapas

Actividad % esfuerzo Valor esfuerzo

Planificación 10% 80 horas-hombre

Diseño 20% 160 horas-hombre

Codificación 35% 281 horas-hombre

Prueba 35% 281 horas-hombre

Total 100% 802 horas-hombre Tabla 2.17 Distribución del esfuerzo por etapas .

Una vez estimado el tiempo de desarrollo del proyecto y conociendo la cantidad de

desarrolladores y el pago que recibe cada uno de estos se puede llevar a cabo

una estimación del costo total del proyecto referidos a los recursos humanos;

48

existen otros costos como por ejemplo del equipamiento que se suman al anterior.

El costo por concepto de desarrolladores se muestra en la ecuación 2.17 de costo.

Ecuación 2.17: Costo.

C = E (Total)*CHH

Donde:

CHH: Costo por hombre hora

A continuación se muestra la ecuación 2.18 de costo por hombre hora

Ecuación 2.18: Costo por hombre hora

CHH = K * THP

Donde:

K: Coeficiente que tiene en cuenta los costos indirectos (1,5 y 2,0).

THP: Tarifa Horaria Promedio. El salario promedio de las personas que trabajan en el

proyecto dividido entre 160 horas. Es 500 por mes.

CHH = 2 * 500 / 160

CHH = 6.25

Entonces:

C = E (Total) * K * THP

El salario promedio de los 1 desarrolladores de este caso de estudio es de $500 y por

tanto la THP = 500 / 160 = 3.125 (se toman cuatro posiciones decimales).

C = 802 * 2 * 3.125 = $5012,5

De los resultados obtenidos se interpreta que el proyecto se desarrolla en

aproximadamente 4 meses y 16 días. El costo de producción total se estima que sea

$5012,5.

THP: Tarifa Horaria Promedio. El salario promedio de las personas que trabajan

en el proyecto dividido entre 160 horas. Es 500 por mes.

CHH = 2 * 500 / 160

CHH = 6.25

Entonces:

C = E (Total) * K * THP

El salario promedio de los 1 desarrolladores de este caso de estudio es de $500 y

por tanto la THP = 500 / 160 = 3.125 (se toman cuatro posiciones decimales).

C = 802 * 2 * 3.125 = $5012,5

49

De los resultados obtenidos se interpreta que el proyecto se desarrolla en

aproximadamente 4 meses y 16 días. El costo de producción total se estima que

sea $5012,5

2.2.4 Normalización de la Base de Datos .

La normalización de las bases de datos es un proceso que elimina anomalías en

el diseño de la misma, mediante la descomposición o división de las relaciones

que almacenan los datos, dígase las tablas, provocando un aumento en la

cantidad de tablas. Esto a su vez acarrea demoras al realizar consultas sobre los

datos, pero aún la normalización garantiza la eliminación de los problemas

existentes inicialmente, además permite que al insertar nuevos datos no sea

necesario escribirlos sino seleccionarlos, logrando que el tiempo de interacción al

incluir nuevos datos al sistema, se minimice y de esta forma los especialistas se

concentren en los resultados de los cálculos, gráficas y reportes. La base de datos

ha sido normalizada hasta la tercera forma normal, ya que ningún atributo no

primario de la tabla es dependiente transitivamente de una clave primaria.

2.2.5 Tarjetas Clase – Responsabilidad – Colaborador (CRC) .

El Modelado de Clase-Responsabilidad-Colaborador (CRC) proporciona un medio

simple para identificar y organizar las clases relevantes para los requisitos del

sistema o producto. Un modelo CRC es una colección de tarjetas, índice estándar

que representan clases. Las tarjetas se dividen en tres secciones:

El modelo CRC tiene como objetivo desarrollar una representación organizada de

las clases. Las responsabilidades son los atributos y las operaciones relevantes de

la clase, mientras que los colaboradores son aquellas clases que requieren para

que una clase reciba la información necesaria para de esta forma completar la

responsabilidad. En la tabla 2.11 la cual se muestra a continuación se describen

las tarjetas CRC de las clases controladoras de la aplicación.

50

Clase: RegistrarInfoBecarioController

Descripción: Es la clase controladora del bundle TecnicoBundle. Tiene la

responsabilidad de gestionar todo lo referente al control de la información de los

estudiantes extranjeros.

Responsabilidad Colaborador

newAction():Inserta un nuevo becario

extranjero.

Becarioextranjero, Indicador_Social,

Diagnóstico_salud, Datos_Residencia

editAction():Editar becario extranjero. Becarioextranjero, Indicador_Social,

Diagnóstico_salud, Datos_Residencia

deleteAction():Eliminar becario

extranjero.

Becarioextranjero

Conclusiones del Capítulo

En el presente capítulo se mostraron aspectos relacionados con las fases de

planificación y diseño de desarrollo del software. Quedaron expuestas las

funcionalidades a implementar definidas por los artefactos que propone la

metodología XP, entre los que se destacan las historias de usuarios, las tareas de

ingeniería y las tarjetas CRC, las cuales describen como deben cumplirse los

requerimientos del sistema desde la perspectiva del usuario y la prioridad de estos

para la siguiente fase de desarrollo. Se construyó un diseño de base de datos que

cumple con el almacenamiento de toda la información referente al proceso del

control de la información de los estudiantes extranjeros dentro de la residencia

Sede Mella de la Universidad de Oriente.

51

Capítulo 3. Codificación y prueba del Sistema.

Introducción

En este capítulo detallaremos las dos últimas fases de la metodología de

desarrollo de software (XP) que son la Codificación y Prueba. La fase de

codificación detalla cómo fue desarrollado el software, describiendo el código

fuente de acuerdo con el mecanismo de estructuración y modularización

disponibles en el entorno de implementación y en los lenguajes de programación

utilizados. También se abordará la fase de prueba verificando el resultado de la

implementación. En la metodología de desarrollo de software (XP) estas dos fases

son de gran importancia para la implementación de cada software, ya que sin

código fuente no hay programa, y para saber si este código está bien escrito o si

funciona como deseamos se le necesitan hacer pruebas. Es por estas razones

que se ha dedicado este capítulo a explicar algunas de las de las pruebas o test

de aceptación a las que fue sometida la aplicación.

3.1 ¿Cómo se aplica la filosofía de Symfony en la implementación del sistema?

Symfony2 fue diseñado para optimizar el desarrollo de aplicaciones o sistemas

Web. La estructura de directorios en una aplicación de Symfony2 es bastante

flexible, pero la organización de directorios de la Edición Estándar refleja la

estructura típica y recomendada de una aplicación desarrollada en este marco de

trabajo, fue a partir de ésta que se creó el Sistema de Gestión para la Residencia

Estudiantil para Estudiantes Extranjeros (SGREExj) con el objetivo de tener todo el

código bien organizado.

Antes de empezar a programar la aplicación, fue necesario adaptar todas las

funcionalidades y esquemas a la filosofía de trabajo de Symfony2. Planificar el

proyecto según la forma de pensar de Symfony2 se asegura el desarrollo e

implementación del sistema lo más eficientemente posible. El orden recomendado

52

para aplicar la filosofía de Symfony2 consiste en definir primero las entidades,

después los bundles y por último el enrutamiento. Este orden se adoptó en la

aplicación quedando la siguiente estructura de directorios: La aplicación

ResidenciaUO (ver figura 3.1) desarrollada para el control de estudiantes

extranjeros que llegan de las distintas facultades de la Universidad de Oriente y

tiene una estructura de directorios que consta de 4 carpetas fundamentales:

app/: Se encuentran los principales archivos de configuración de la aplicación:

archivos de enrutamiento, de conexión a bases de datos, de configuración de la

seguridad. En el directorio cache se almacena la información en dos archivos de

cache en dependencia del entorno en el que se esté trabajando: producción o

desarrollo.

src/: Se encuentra aquí todo el código de la aplicación, estructurado a partir de

una jerarquía propuesta por Symfony: Se especifica primero el vendor y dentro de

este los bundles o paquetes que agruparán la lógica de la aplicación.

vendor/: Contiene todas las bibliotecas que conforman el núcleo del marco de

trabajo.

web/: Puede incluir archivos CSS, JavaScript, imágenes y demás recursos que la

aplicación utiliza.

53

3.1.1 Directorio app/

Dentro de este directorio se encuentra una de las clases PHP más importante

de la aplicación: AppKernel. Esta clase se considera punto de entrada

principal para la configuración de la aplicación e implementa dos métodos que

son claves:

registerBundles(), que devuelve una matriz de todos los paquetes

necesarios para ejecutar la aplicación y

registerContainerConfiguration(), el cual carga la configuración de la

aplicación.

Además, dentro de este directorio se encuentra una carpeta llamada config

donde se encuentran los archivos de configuración del sistema, y los más

d estacados son parameters.yml donde se encuentra registrado todo el

proceso de configuración de la conexión de la base de datos al sistema así como

también el idioma de la aplicación. Otro archivo muy importante es config.yml

donde se tiene toda la configuración de la aplicación Symfony2 y finalmente el

archivo security.yml contiene la configuración de la seguridad del sistema.

En el directorio cache se almacena la información en dos archivos de

cache en dependencia del entorno en el que se esté trabajando: producción o

desarrollo.

54

Figura 3.2 Estructura de los directorios app y config.

3.1.2 Directorio src/

Dentro del directorio src mostrado en la figura 3.3 se encuentran el

subdirectorio Reumatología, el cual contiene cuatro bundles creados para la

implementación del sistema.

Figura 3.3. Estructura del directorio src.

55

3.1.2.1 Subdirectorio Residencia.

El bundle AdministradorBundle contiene las clases, entidades, controladores,

vistas, etc., desarrollado para la gestión y control de la información referente a los

nomencladores del sistema y usuarios, o sea involucra todo el proceso de gestión

de los mismos.

El bundle InvitadoBundle es el encargado visualizar el contenido del el sistema.

El bundle TecnicoBundle es el encargado de actualizar la información de los

estudiantes extranjeros y la generación de consultas hechos por los profesores

responsable de la gestión de usuarios del sistema, o sea involucra todo el proceso

de registro de usuario.

El bundle PdfBundle se utilizó para implementar la funcionalidad de convertir

una página html a un fichero pdf permitiendo imprimirla o guardarla en un

directorio luego manejar este documento, todo esto gracias a la ventaja de

Symfony2 de reutilizar bundles que ya fueron creados, solamente con

registrarlo es posible acceder a sus clases y métodos.

3.1.3 Directorio vendor/

Contiene todas las bibliotecas que conforman el núcleo del marco de trabajo.

3.2 Desarrollo de la aplicación en Symfony2 y plataforma Netbeans 7.3.

La dificultad que acarrea la realización de los sistemas de gestión puede

minimizarse en gran medida si se utiliza un marco de trabajo que automatice las

tareas más comunes y permitan al desarrollador concentrarse en los aspectos

complejos del negocio. De todas formas, muchas veces se limita la utilización de

estos marcos de trabajo (como es el caso de Symfony2), porque la curva de

aprendizaje se hace muy grande y por tanto, mayor es el tiempo que debe

dedicarse a la realización del sistema. No obstante, para los principiantes en la

utilización de los mismos sigue siendo de gran importancia dedicar el tiempo

necesario a su estudio porque esto permitirá luego desarrollar sistemas de mayor

calidad en menor tiempo.

56

Es por lo antes expuesto que se dedica parte del capítulo a documentar los pasos

fundamentales mediante los cuales se logró crear el sistema propuesto con la

ayuda del marco de trabajo de Symfony2 (versión 2.8.4), integrado en el IDE

Netbeans (versión 7.3). El objetivo principal es lograr que se entienda cómo crear

una aplicación de gestión con la ayuda de estos sistemas de manera que estas

páginas sirvan de ejemplo para llevar a feliz término sistemas similares.

3.2.1 Construyendo el directorio para la creación de un proyecto Symfony2.

Para la utilización del marco de trabajo Symfony2 es conveniente crear la

siguiente estructura de carpetas dentro de la carpeta destinada en el servidor Web

para guardar los sistemas (en este caso carpeta htdocs):

3.2.1.1 Creando e instalando con Symfony2

1- Primeramente se debe descompactar todo el contenido del paquete

Symfony2 (en este caso Symfony2-2.8.4.zip), y renombrar la carpeta

obtenida quitándole los datos de la versión de manera que quede con el

nombre que se desee. Este paquete consta de una estructura de directorio

que es fundamental para la instalación de nuevos bundle, además de

brindar una estructura de carpetas muy bien formada y ordenada.

2- Acceder a la dirección http://localhost/ResidenciaUO/web/app_dev.php y

seleccionar el botón Configure.

3- Seleccionar el driver de conexión a la base de datos (MySQL), usuario,

contraseña y nombre de la base de datos a utilizar y seleccionar NextStep.

Nota: Si en un futuro es necesario cambiar los parámetros de conexión a la

base de datos entonces hay que editar el archivo de configuración

app/config/parameters.yml

4- Generar la cadena aleatoria que Symfony2 utiliza para la seguridad, luego

seleccionar NextStep y ya queda lista la instalación.

57

3.2.2 Configurando un proyecto en Symfony2 desde Netbeans 7.3.

Abrimos IDE Netbeans 7.3 o superior y crear un nuevo proyecto y

seleccionar la opción PHP Application.

Establecer el nombre del proyecto, por ejemplo ResidenciaUO, ya que es

recomendable que el proyecto tenga el mismo nombre que el establecido

en el directorio.

Luego se establece la dirección del proyecto.

A continuación se debe establecer la ruta que se mostrará en el navegador

cuando se ejecute la aplicación y la definimos de esta manera:

(http://localhost/ResidenciaUO/web/app_dev.php).

Luego se debe marcar el cuadro de selección Symfony2 PHP Web

Framework, y al dejar en blanco el campo Parameters se utilizará por

defecto el ORM Doctrine.

En dependencia de las aplicaciones que deba tener el proyecto se pueden

marcar los campos de selección frontend y backend. En el proyecto

ResidenciaUO ninguna de las dos, ya que se crean a comodidad de los

programadores.

3.2.3 Creación de los bundles de la aplicación

Luego de tener establecida la configuración básica de la aplicación es necesario

crear los bundles en los cuales vamos a organizar nuestro código

(controladores, clases de entidad, formularios, plantillas, etc.). Para crear un

bundle es necesario hacer clic derecho sobre el nombre del proyecto y

seleccionar la opción RunComand del submenú Symfony2. Luego aparece un

cuadro de diálogo con los comandos de Symfony2 en el cual se debe

seleccionar el comando generate:bundle y seguir los pasos requeridos por

este, primeramente insertar el namespace, el cual deberá seguir el patrón

58

ResidenciaUO/NombredelBundleBundle (sin obviar la terminación Bundle

luego del nombre del bundle), luego introducir el nombre del bundle por el cual

se le va a conocer en toda la aplicación. La aplicación consta de cuatro bundles,

los que fueron descritos anteriormente.

3.2.4 Creando las clases del modelo

El código PHP de las aplicaciones en Symfony2 no interacciona directamente

con la base de datos por eso la información no se gestiona con sentencias SQL

sino mediante objetos PHP. Estos objetos se les conocen como entidades y

mediante ellas se puede gestionar la información: insertar, actualizar, eliminar,

etc.

Figura 3.3: Ejemplo de anotaciones para mapear clases del modelo a tablas de la base de

datos.

Las entidades son clases PHP que se pueden crear a mano en el directorio

Entity del bundle correspondiente o se pueden crear a través del comando para

la generación de entidades que facilita Symfony2, esta última opción es más

rápida.

Para crear las clases de Entity a través de los comandos se debe:

Abrir la consola para generar un comando.

Seleccionar el comando doctrine:generate:entity.

Definir el parámetro de Entityshortcutname, por

59

ejemplo: ResidenciaUOBundle:Becarioextranjero; o sea bundle al que

pertenece y nombre de la entidad.

Seleccionar el formato por defecto “Anotaciones”.

Especificar cada uno de los atributos que pertenecen a la entidad.

Finalmente crear una clase repositorio donde irían las consultas que

pertenecen a la clase.

Una vez que se definan todas las entidades de la aplicación se crea la base de

datos vacía a través del comando: doctrine:database:create y luego se genera

el esquema de la base de datos mediante el comando: doctrine:schema:create.

Para acceder a los datos de la base de datos en el entorno orientado a objeto, se

utiliza una interfaz que traduzca la lógica de los objetos a la lógica relacional y

esto es posible gracias al ORM Doctrine2 incluido en Symfony2 con el cual

se definen las clases entidad y se mapea cada una de esta a su tabla

correspondiente en la base de datos, a través de las anotaciones (ver figura 3.3).

3.2.5 Seguridad

La seguridad es un proceso de dos etapas cuyo objetivo es evitar que un

usuario acceda a un recurso para el que no debería tener acceso. Hoy en día este

fenómeno se ha convertido en uno de los elementos más importantes dentro de

una aplicación web.

En el primer paso del proceso, el sistema de seguridad identifica quién es el

usuario obligándolo a enviar algún tipo de identificación. Esto se llama

autenticación, y significa que el sistema está tratando de averiguar quién eres.

Una vez que el sistema sabe quién eres, el siguiente paso es decidir si

deberías tener acceso a un determinado recurso. Esta parte del proceso se

llama autorización, y significa que el sistema está comprobando si tienes

suficientes privilegios para realizar una determinada acción.

La configuración de la seguridad de la aplicación se establece en el

archivo app/config/security.yml. Este archivo está compuesto por

cuatro partes fundamentales que garantizan que el sistema de seguridad

funcione correctamente: firewalls: se definen las URLs que están protegidas y

60

además es el encargado de proporcionar mecanismos de autenticación, en

este caso se utilizó un formulario de acceso. El trabajo del firewall consiste

en determinar si el usuario necesita estar autenticado, y si lo necesita, enviar

una respuesta al usuario para iniciar el proceso de autenticación. Un firewall se

activa cuando la URL de una petición entrante concuerda con el valor de su

opción de configuración pattern. En este ejemplo el valor de pattern ( /̂)

concuerda con cualquier petición entrante. No obstante, el hecho de que el

firewall esté activado no significa que el navegador muestra la caja de

login + contraseña para todas las URL, sino que solamente aparecerá una vez

que el usuario solicite una URL que esté protegida (ver figura 3.4), [3, 15].

Figura 3.4 Configuración de las áreas protegidas.

61

Conclusiones Se analizó el sistema de gestión y control de la información de los

estudiantes extranjeros entre la residencia “Julio Antonio Mella” y el DABE.

Se acopló la información sobre los estudiantes extranjeros con la base de

datos, que se implementa a nivel de residencia, para el sistema Web

previsto, donde se recogen los datos de los estudiantes extranjeros de la

Residencia Estudiantil Sede Mella.

Se determinó las herramientas técnicas para lograr una implementación

efectiva del objetivo planteado y obtener un mejor funcionamiento y calidad

del sistema propuesto.

Se validó el sistema propuesto con el DABE y la Dirección de la residencia

estudiantil de la Sede “Julio Antonio Mella”.

Se implementó la obtención de reportes estadísticos en cuanto a cantidades

de estudiantes, carrera, evaluaciones, etc.

Como resultado se obtuvo una aplicación web que permite la gestión y

control de la información referente a los estudiantes extranjeros

pertenecientes a la residencia estudiantil Sede Mella de la Universidad de

Oriente, además de la obtención de reportes estadísticos a diferentes

niveles.

El software resultante cuenta con un sistema de seguridad, que permite el

acceso a cada una de las funcionalidades del mismo, según el rol del

usuario que esté interactuando con él en cada momento.

62

Recomendaciones

Utilizar el sistema propuesto en la residencia estudiantil Sede Mella de la

Universidad de Oriente y comprobar su eficiencia e ir ajustando los

problemas que surjan.

Realizar el estudio del framework del Symfony 2.8.4 para la toma de

decisiones en caso que se desee realizar algún cambio al sistema o crear

uno nuevo.

Seguir dándole seguimiento al desarrollo del sistema a medida que se vaya

poniendo en práctica de la residencia estudiantil Sede Mella.

Referencias Bibliográficas

[1] Díaz Cabrera, Ibis Magalis, “Sistema informático para la toma de decisiones

sobre los laboratorios de computación Versión 2.0”, Universidad de Oriente.

Santiago de Cuba, 2012.

[2] Cristòvão, Deuni Jacinto, “Sistema de gestión para el control del rendimiento

de los becarios extranjeros de la Universidad de Oriente”, Universidad de Oriente.

Santiago de Cuba, 2015.

[3] Borrero Heredia, Efrain, “Sistema Informático para el control de las

enfermedades tratadas en el departamento de Reumatología en el Hospital

Provincial Saturnino Lora Torres”. Universidad de Oriente. Santiago de Cuba,

2016.

[4]http://www.dinamica-de-sistemas.com/libros/sistemas_concepto.htm ¿Qué es

un Sistema? (11-5-18).

[5] http://fraktalweb.com/blog/sistemas-web-para-que-sirven/ ¿Sistemas Web para

que sirven? Consultado (5-5-2018)

[6]http://www.cavsi.com/preguntasrespuestas/tag/bases-de-datos/ Base de Datos

(7-5-18)

[7]http://www.cavsi.com/preguntasrespuestas/tag/sgbd/Sistemas Gestores de

Bases de Datos. (SGBD) (9-5-18)

[8].Manual de Usuario del SIGENU. Módulo Web de Secretaría. Abril. 2010

[9]Metodología Ágil Programación Extrema XP. Pdf (2016)

[10]. Fernández, Gerardo Escribano, “Programación Extrema (XP)”. Introducción a

ExtremePrograming, 2007 (07/01/2013).

[11] “Características de XP”.http://www.dosideas.com/wiki/Extreme_Programming

(05/05/2012).

[12]. “Fases de XP”. http://programacionextrema.tripod.com/fases.htm

(11/01/2013).

[13]. XAMPP. http://es.wikipedia.org/wiki/xampp (17-12-17).

[14].Potencier, Fabien y Zaninotto, Francois, Symfony, la guía definitiva, Febrero

de 2009, http://www.librosweb.es/symfony,(16/06/2016).

[15]J. Eguiluz. Desarrollo Web ágil con Symfony 2.

2

[16]. K. Dunglas. Persistence in PHP with the Doctrine ORM, 2013.

[17] “NetBeansIDE IDE 7.3 con soporte en varias plataformas”. http:// netbeans-

ide-721-programar-en-cc-y-java.html (14/01/2013).

[18]. Álvarez, M. A. XAMPP: Apache, PHP y MySQL, 2013,

http://www.desarrolloweb.com/articulos/xampp.html, (15/12/2015).

[19]Á. Cobo, PHP y MySQL: Tecnología para el desarrollo de aplicaciones web:

Ediciones Díaz de Santos, 2005.

[20].ER/Studio

http://www.comp.unanleon.edu.ni/u/acontreras/Asignaturas/OPTATIVA%20II/erstu

dio.pdf (Febrero 29, 2012)

[21] https://es.wikipedia.org/wiki/AJAX AJAX

[22] https://es.wikipedia.org/wiki/HhhTML5 HTML5 (15-5-17).

[23] J. J. Manger, et al., Fundamentos de JavaScript: McGraw-Hill, 1997.

[24] C. Escofet Martín, El lenguaje SQL [citado 12 Mar 2012], ed.

[25] C. COSTILLA, Apuntes Complementarios al Programa Docente, Tema V: El

Lenguaje SQL de BDR, Estándar SQL: 99. Modelo de Datos Objeto-

Relacional. 2005, Ed.

[26] Giró Morales, Claudia, “Subsistema de gestión para el control del consumo de

energía eléctrica en el aeropuerto Antonio Maceo”, Universidad de Oriente.

Santiago de Cuba, 2012, página 26.

[27] Hernández Bestard, David Leonardo, “Subsistema de Gestión para el control

del tiempo de estancia de los pasajeros en el Aeropuerto Antonio Maceo”,

Universidad de Oriente. Santiago de Cuba, 2012, página 51.

[28]. Chacón Rodríguez, Dannais, “Integración de Subsistemas para el SigEcasa

en la Empresa de Servicios Aeroportuarios de Santiago de Cuba”, Universidad de

Oriente, Santiago de Cuba. 2014, página 67.

[29]. Pacheco, Nacho. Doctrine2ORM, 2011.

[30]. Costilla, C. Tema V: El Lenguaje SQL de BDR, Estándar SQL: 99, Modelo de

Datos Objeto-Relacional, Apuntes Complementarios al Programa Docente. s.l.:ed.,

2005.

3

[31] «Descriptions of all CSS specifications».World Wide Web Consortium (18 de febrero de 2011). Consultado el 3 de marzo de 2011. Descripción de todas las especificaciones del CSS, por la W3C (en inglés) [32] «CSS currentwork». World Wide Web Consortium (26 de febrero de 2011).Consultado el 3 de marzo de 2011. Trabajos actuales en CSS (en inglés) [33]«Cascading Style Sheets (CSS) Snapshot 2010». World Wide Web Consortium (12 de diciembre de 2010). Consultado el 3 de marzo de 2011. Definiciones del CSS (2010) (en inglés) [34]http://www.w3.org/standards/xml/transformations#uses [35]«CSS3 Values and Units». W3.org. Consultado el 20-06-2009.

4

Anexos

Anexo 1.

5

Anexo 2.

Anexo3.

6

Anexo 4.

Anexo 5.

Anexo 6.

7

Anexo 7.

Anexo 8.