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]
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.
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.