Aplicación web basada en modelos predictivos para el control de la

Anuncio
TRABAJO FIN DE GRADO
Título
Aplicación web basada en modelos predictivos para el
control de la maduración de la uva en la DOC Rioja
Autor/es
Óscar Mezquita Domínguez
Director/es
Francisco Javier Martínez de Pisón Ascacíbar
Facultad
Facultad de Ciencias, Estudios Agroalimentarios e Informática
Titulación
Grado en Ingeniería Informática
Departamento
Curso Académico
2012-2013
Aplicación web basada en modelos predictivos para el control de la
maduración de la uva en la DOC Rioja, trabajo fin de grado
de Óscar Mezquita Domínguez, dirigido por Francisco Javier Martínez de Pisón Ascacíbar
(publicado por la Universidad de La Rioja), se difunde bajo una Licencia
Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.
Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los
titulares del copyright.
©
©
El autor
Universidad de La Rioja, Servicio de Publicaciones, 2013
publicaciones.unirioja.es
E-mail: [email protected]
UNIVERSIDAD DE LA RIOJA
Facultad de Ciencias, Estudios Agroalimentarios
e Informática
TRABAJO FIN DE GRADO
CURSO 2012-2013
Ingeniería Técnica en Informática de
Gestión
APLICACIÓN WEB BASADA EN
MODELOS PREDICTIVOS
PARA EL CONTROL DE LA
MADURACIÓN DE LA UVA EN
LA DOC RIOJA
Alumno: Oscar Mezquita Domínguez
Director: Francisco Javier Martínez De Pisón
Ascacíbar
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
2
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
3
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
ÍNDICES
4
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
I1. Índice
ÍNDICES.................................................................................................................................... 4
I1. ÍNDICE............................................................................................................................... 5
I2. ÍNDICE DE FIGURAS .......................................................................................................... 7
CAPÍTULO 1: INTRODUCCIÓN .......................................................................................... 9
1. INTRODUCCIÓN ............................................................................................................... 10
1.1. RESUMEN (CASTELLANO) ....................................................................................... 10
1.2. RESUMEN (INGLÉS) ................................................................................................. 10
1.3. RECURSOS HUMANOS ............................................................................................. 11
1.4. ANTECEDENTES ...................................................................................................... 11
1.5. DESCRIPCIÓN .......................................................................................................... 11
1.5.1. BASE DE DATOS ......................................................................................... 11
1.5.2. SERVICIO WEB ........................................................................................... 12
1.6. ALCANCE (REQUISITOS) ......................................................................................... 13
1.7. TECNOLOGÍAS ......................................................................................................... 13
1.7.1. ADOBE FLASH ............................................................................................ 13
1.7.2. HTML 5 ..................................................................................................... 13
1.7.3. CSS 3 ......................................................................................................... 14
1.7.4. PHP ............................................................................................................ 15
1.7.5. MYSQL ...................................................................................................... 15
1.7.6. JAVA SCRIPT .............................................................................................. 15
1.7.7. JAVA ........................................................................................................... 15
1.7.8. R................................................................................................................. 16
1.8. RIESGOS .................................................................................................................. 16
1.8.1. FALTA DE FORMACIÓN .............................................................................. 16
1.8.2. CAMBIOS EN LOS REQUISITOS ................................................................... 16
1.8.3. REQUISITOS POCO CLAROS ........................................................................ 16
1.8.4. PLANIFICACIONES NO REALISTAS .............................................................. 16
1.8.5. UTILIZAR TECNOLOGÍAS NUEVAS ............................................................. 17
1.8.6. AUSENCIA DEL DESARROLLADOR ............................................................. 17
1.8.7. FALLO EN EL HARDWARE .......................................................................... 17
1.9. ESTRUCTURA DEL PROYECTO ................................................................................. 17
1.10. PLANIFICACIÓN DEL PROYECTO........................................................................... 17
CAPÍTULO 2: ANÁLISIS DEL SISTEMA.......................................................................... 19
2. ANÁLISIS DEL SISTEMA .................................................................................................. 20
2.1. CATÁLOGO DE REQUISITOS .................................................................................... 20
2.1.1. DIAGRAMAS DE CASOS DE USO ................................................................. 20
2.1.1.1. DIAGRAMAS DE ACTIVIDAD.......................................................... 22
5
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 3: DISEÑO DEL SISTEMA ............................................................................. 28
3. DISEÑO ........................................................................................................................... 29
3.1. DISEÑO DE LA BASE DE DATOS .............................................................................. 29
3.1.1. DISEÑO DEL MODELO DE DATOS ............................................................... 29
3.1.2. TABLAS Y RELACIONES ............................................................................. 29
3.1.2.1. TABLA “ESTACIONES” ................................................................... 29
3.1.2.2. TABLA “DATOSMETEOROLOGICOS” .............................................. 30
3.1.2.3. TABLA “DATOSPROCESADOS” ....................................................... 30
3.1.2.4. TABLA “DATOSNOPROCESADOS” .................................................. 31
3.1.2.5. TABLA “USUARIOS”....................................................................... 32
3.1.2.6. TABLA “PARCELAS” ...................................................................... 33
3.2. DISEÑO DEL SERVICIO WEB.................................................................................... 34
CAPÍTULO 4: IMPLEMENTACIÓN DEL SISTEMA ...................................................... 35
4. IMPLEMENTACIÓN DEL SISTEMA .................................................................................... 36
4.1. PROGRAMACIÓN DE LA BASE DE DATOS ................................................................ 36
4.1.1. DATOS METEOROLÓGICOS......................................................................... 36
4.1.2. DATOS ESTACIONES ................................................................................... 36
4.1.3. GENERAR CSV ........................................................................................... 37
4.2. PROGRAMACIÓN DEL SERVICIO WEB ..................................................................... 37
4.2.1.GRÁFICOS....................................................................................................... 37
4.2.2.USO DEL MODELO PREDICTIVO ..................................................................... 38
4.2.2.1.PROCESAR DATOS ............................................................................ 39
4.2.2.2.EJECUTAR MODELO PREDICTIVO ..................................................... 40
4.2.3.REGISTRO DE USUARIOS ................................................................................ 41
4.2.3.1.USO DE CATCHAS ............................................................................. 41
4.2.3.2.CORREO DE CONFIRMACIÓN............................................................. 42
4.2.3.3.CONTRASEÑA DE USUARIO............................................................... 42
4.2.4.OTRAS FUNCIONALIDADES ............................................................................ 43
4.2.4.1.GESTIÓN DE PARCELAS .................................................................... 43
4.2.4.2.COMPROBAR NAVEGADOR ............................................................... 44
4.2.4.3.CODIFICAR DATOS ............................................................................ 45
CAPÍTULO 5: PRUEBAS...................................................................................................... 46
5. PRUEBAS ......................................................................................................................... 47
5.1. DISEÑO DE LAS PRUEBAS APLICADAS AL SERVICIO WEB ...................................... 47
5.2. RESULTADOS DE LAS PRUEBAS APLICADAS AL SERVICIO WEB............................. 48
CAPÍTULO 6: CONCLUSIONES ........................................................................................ 50
6. CONCLUSIONES............................................................................................................... 51
6.1. CONCLUSIÓN 1 ........................................................................................................ 51
6.2. CONCLUSIÓN 2 ........................................................................................................ 51
6.3. CONCLUSIÓN 3 ........................................................................................................ 52
CAPÍTULO 7: BIBLIOGRAFÍA .......................................................................................... 53
7. BIBLIOGRAFÍA ................................................................................................................ 54
6
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
I2. Índice de Figuras
Figura 01.
Figura 02.
Figura 03.
Figura 04.
Figura 05.
Figura 06.
Figura 07.
Figura 08.
Figura 09.
Figura 10.
Figura 11.
Figura 12.
Figura 13.
Figura 14.
Figura 15.
Figura 16.
Figura 17.
Figura 18.
Figura 19.
Figura 20.
Figura 21.
Figura 22.
Figura 23.
Figura 24.
Figura 25.
Figura 26.
Figura 27.
Figura 28.
Figura 29.
Figura 30.
Figura 31.
Figura 32.
Figura 33.
7
Estaciones Meteorológicas ..................................................................................... 12
Ejemplo Input HTML5 ........................................................................................... 14
Nuevas Etiquetas HTML5 ...................................................................................... 14
División de Tareas .................................................................................................. 17
Distribución en Horas ............................................................................................. 18
Distribución en Porcentaje...................................................................................... 18
Diagrama de Casos de Usos del Usuario Anónimo ................................................ 21
Diagrama de Casos de Usos del Usuario Registrado .............................................. 21
Diagrama de Actividad - Mostrar Gráfico .............................................................. 22
Diagrama de Actividad - Obtener Previsión ........................................................... 23
Diagrama de Actividad - Registrarse ...................................................................... 23
Diagrama de Actividad - Autentificación ............................................................... 24
Diagrama de Actividad - Modificar Datos ............................................................. 24
Diagrama de Actividad - Añadir Parcela ................................................................ 25
Diagrama de Actividad - Modificar Parcela ........................................................... 25
Diagrama de Actividad - Eliminar Parcela ............................................................. 26
Diagrama de Actividad - Mostrar Gráfico .............................................................. 26
Diagrama de Actividad - Obtener Previsión ........................................................... 27
Diagrama Entidad-Relación.................................................................................... 29
Diseño General de la Interfaz ................................................................................. 34
Diseño Final ............................................................................................................ 34
ODBC ..................................................................................................................... 36
Ejemplo de Gráfico ................................................................................................. 38
Ejemplo de Datos Procesados ................................................................................. 40
Ejemplo de Previsión .............................................................................................. 41
Ejemplo Gráfico de Previsión ................................................................................. 41
Ejemplo Formulario de Registro ............................................................................ 42
Contraseñas Almacenadas ...................................................................................... 43
Ejemplo Listado Parcelas ....................................................................................... 44
Comprobar Navegador y JavaScript ....................................................................... 45
Pase de Variables .................................................................................................... 45
Distribución en Horas Real ..................................................................................... 51
Distribución en Porcentaje Real ............................................................................. 51
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
8
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 1:
INTRODUCCIÓN
9
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
1. Introducción
1.1. Resumen (Castellano)
El objetivo principal de este proyecto es desarrollar un Servicio Web para la utilización de
modelos predictivos en el control de la maduración de la uva en la Denominación de Origen
Calificada Rioja (DOC Rioja), principalmente, centrándose en el grado alcohólico de la uva.
Esta Web debe servir a los enólogos, viticultores o gestores de una bodega o cooperativa para
predecir el proceso de maduración de la uva según la meteorología y las características propias
de la finca, y, de esta forma, conocer cuándo sería el momento óptimo de realizar la vendimia
de dicha finca. Con el propósito de facilitar la visualización, se utilizarán gráficos donde se
representarán los datos obtenidos.
A parte del objetivo principal, la Web contará con un sistema de gráficos para comparar
diferentes atributos meteorológicos (humedad, precipitaciones, temperatura y radiación solar),
ya que, dichos atributos tienen una gran influencia sobre el modelo predictivo.
Para facilitar la utilización de los modelos los usuarios podrán registrarse y, una vez realizado
este proceso, podrán almacenar sus parcelas, incluyendo los datos más representativos y
necesarios para el uso de los modelos.
Las principales características a tener en cuenta en este proyecto son:
 Necesidad de crear un Servicio Web para el uso de los modelos predictivos.
 Necesidad de registro y/o autentificación por parte de los usuarios.
 Despliegue de una serie gráficos.
 Posibilidad de modificar los datos de los usuarios registrados.
 Posibilidad de introducir parcelas, incluyendo los datos necesarios para el uso de los
modelos predictivos, por parte de los usuarios registrados.
 Posibilidad de modificar y/o eliminar las parcelas introducidas.
Este proyecto debe estar finalizado antes del 1 de junio de 2013, ya que, es en este mes cuando
se realizarán las presentaciones de los Trabajos de Fin de Grado.
1.2. Resumen (Inglés)
The main aim of this Undergraduate Thesis Project is to develop a Web Service to use
predictive patterns when controlling the ripening of grapes in the Rioja Certificate of Origin.
Basically, this project will be focused on the degree of alcohol included in grapes. This web
could be useful to oenologists, vine growers and winery or cooperative managers to foresee
the ripening of the grapes according to the weather and the features of the plots in order to
know the right time to pick the grapes. To make the display easier, several graphics containing
the data obtained will be used.
In addition, the Web will have a system of graphics to compare different meteorological
features such as humidity, rain, temperature, and solar radiation since such features have a
great influence on the predictive pattern.
Also, to facilitate the use of the patterns, all the users will be able to register and then to
upload their plots, including the most representative and necessary data to use the patterns.
The main characteristics of this Undergraduate Thesis Project are the following:
10
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
 The necessity of creating a Web Service for the use of predictive patterns.
 The necessity of register or/and validation of the users.
 The display of several graphics.
 The possibility of changing the users’ data.
 The possibility of including plots containing the necessary data for the use of the predictive
models of the users.
 The possibility of changing or/and deleting the plots.
This Undergraduate Thesis Project must be finished before the 1st of June, 2013 since the
defenses of the Final Degree Projects will take place in June.
1.3. Recursos Humanos
Los principales participantes en este proyecto son:
 Proyectante: Oscar Mezquita Domínguez, encargado de desarrollar este proyecto.
 Director de proyecto: Francisco Javier Martínez de Pisón Ascacíbar, que, como director,
su función será aconsejar y supervisar el desarrollo del proyecto.
1.4. Antecedentes
Roberto Fernández Martínez en su Tesis Doctoral “Utilización de Redes de Sensores
Inalámbricas y Técnicas de Aprendizaje Automático para la Obtención de Conocimiento Útil
en Entornos Vitivinícolas”, desarrolló un modelo predictivo para la maduración de la uva a lo
largo del periodo comprendido desde el final del envero hasta la maduración y la vendimia del
fruto. Para ello, modelizó varias de las variables que definen la evolución de dicho proceso y,
además, analizó los atributos meteorológicos que influenciaban dichas variables.
Para que este modelo estuviera a disposición de enólogos, viticultores o gestores de una
bodega o cooperativa, el profesor Francisco Javier Martínez de Pisón me propuso la
implementación de un Servicio Web donde se mostraran los datos meteorológicos que
influyen en la maduración de la uva y donde se pudiera utilizar, de una forma sencilla y
amigable, el modelo predictivo.
En base a lo expuesto anteriormente, se decidió llevar a cabo este Trabajo Fin de Grado.
1.5. Descripción
A continuación describiré, a grandes rasgos, los diferentes elementos que componen el
proyecto:
1.5.1. Base de Datos
Para dar soporte a la web y al modelo predictivo es necesario el diseño e implementación de
una Base de Datos que contenga los datos necesarios.
A continuación, enumeraré los diferentes datos que deberá contener la BD:
 Estaciones meteorológicas: en las estaciones meteorológicas es donde se realizan las
mediciones de las diferentes variables atmosféricas, éstas sirven para ubicar dichas
mediciones y las parcelas introducidas por los usuarios registrados.
 Datos meteorológicos: para el uso del modelo y la generación de los gráficos incluidos
en la Web son necesarias las mediciones realizadas en las diferentes estaciones
meteorológicas.
11
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
 Datos meteorológicos procesados: para el uso del modelo predictivo es necesario un
conjunto de treinta variables de entrada. Estas variables se calculan a partir de los datos
meteorológicos.
 Datos meteorológicos de entrenamiento: para el uso del modelo predictivo es
necesario un conjunto de datos compuestos por treinta variables para realizar el
entrenamiento del modelo predictivo, por lo que, se han introducido en la base de datos
y estas variables se calculan a partir de los datos meteorológicos.
 Usuarios: para que los usuarios puedan registrarse y utilizar las diferentes
funcionalidades disponibles deberán almacenarse sus datos.
 Parcelas: para facilitar el uso del modelo predictivo los usuarios registrados podrán
introducir sus parcelas (viñas) y, de esta forma, no necesitarán introducir cada vez los
datos.
Figura 1. Estaciones Meteorológicas
1.5.2. Servicio Web
Elemento desde donde el usuario, tanto un usuario anónimo (es decir, un usuario que no se
ha registrado y, por lo tanto, no ha iniciado una sesión) como un usuario logueado, accederán
a las diferentes funcionalidades, dichas funcionalidades son:
 Registro Web: posibilidad de registrarse en la Web. Esta funcionalidad estará disponible
para todos los usuarios.
 Autentificación Web: posibilidad de loguearse en la Web. Previamente el usuario deberá
registrarse.
 Representación de datos meteorológicos: representación mediante gráficos de los datos
meteorológicos más influyentes en el proceso de maduración de la uva (humedad,
precipitaciones, temperatura y radiación solar). Esta funcionalidad estará disponible para
todos los usuarios.
 Evolución del grado alcohólico: representación mediante gráficos de las valores
obtenidos del modelo predictivo. Esta funcionalidad estará disponible para todos los
usuarios, pero los usuarios no registrados deberán introducir cada vez los datos necesarios
para el cálculo del modelo, mientras que, los usuarios registrados podrán aplicarlo
directamente sobre las parcelas que hayan introducido.
Los valores del modelo predictivo se dividirán por semanas desde la fecha que el usuario
introduzca como fecha de inicio hasta la fecha de la vendimia.
 Gestión de datos: el usuario podrá modificar los datos que introdujo durante el proceso
de registro, por lo que, el usuario debe estar previamente registrado.
 Añadir parcela: introducir en la Web una parcela, es decir, introducir los datos de dicha
parcela para poder aplicarle el modelo predictivo. Cada parcela se asigna al usuario, por
lo que, el usuario debe estar previamente registrado.
12
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
 Modificar parcela: modificar los datos de una parcela, esta funcionalidad sólo estará
disponible para usuarios registrados.
 Eliminar parcela: eliminar una parcela introducida previamente de la Web, esta
funcionalidad sólo estará disponible para usuarios registrados.
1.6. Alcance (Requisitos)
Para conocer los requisitos de este proyecto me reuní con Francisco Javier Martínez de Pisón
y con Roberto Fernández Martínez. En esta reunión se definieron los requisitos generales del
proyecto:
 Creación del servicio web para el uso del modelo predictivo.
 Creación de la base de datos (es decir, la creación de las tablas y/o campos) necesaria
para el uso del modelo predictivo.
 Posibilidad de registrarse y loguearse para acceder a ciertas funcionalidades.
 Uso de gráficos para representar los datos obtenidos del modelo y otros datos referentes a
la meteorología.
 Posibilidad de gestión de parcelas de los usuarios registrados.
 Otro de los requisitos serían las tecnologías implicadas en el desarrollo de este proyecto:
 Adobe Flash: para el desarrollo de los gráficos.
 HTML: para el desarrollo del servicio web.
 CSS: para definir el aspecto y formato del Servicio Web.
 PHP: para aportar funcionalidad al servicio web, como la conexión con la base de
datos.
 Java Script: para aportar cierta funcionalidad al servicio web.
 MYSQL: para la gestión de la base de datos.
 Java: para la ejecución del modelo predictivo.
 R: para procesar los datos meteorológicos.
1.7. Tecnologías
A continuación explicaré las tecnologías utilizadas en el desarrollo de este proyecto.
1.7.1. Adobe Flash
Anteriormente llamado Macromedia Flash, es una aplicación en forma de estudio de
animación que trabaja sobre "fotogramas", destinado a la producción y entrega de contenido
interactivo sin importar la plataforma. Utiliza gráficos vectoriales (imagen digital formada
por objetos geométricos independientes como segmentos, polígonos, arcos, etc.) e imágenes
ráster (mapa de bits, imagen matricial o bitmap), sonido, código de programa, flujo de vídeo
y audio bidireccional. En sentido estricto, Flash es el entorno y Flash Player es el programa
de máquina virtual utilizado para ejecutar los archivos generados con Flash.
1.7.2. HTML 5
Siglas de HyperText Markup Language o Lenguaje de Marcado de Hipertexto (surgió a
partir de las etiquetas SGML o Standard Generalized Markup Language). Hace referencia al
lenguaje de marcado predominante para la elaboración de páginas web que se utiliza para
describir y traducir la estructura y la información en forma de texto, así como para
complementar el texto con objetos tales como imágenes.
HTML también puede describir, hasta un cierto punto, la apariencia de un documento y
puede incluir otros lenguajes para que cambie el comportamiento de navegadores web.
13
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Para el desarrollo de este proyecto se usará HTML5, ya que esta nueva revisión incluye
nuevos elementos que pueden ser útiles, como son:
 Etiqueta header: representa la cabecera de un documento o sección, diferente a la
etiqueta head.
 Etiqueta footer: representa el pie de un documento o sección.
 Etiqueta input: se han añadido trece nuevos elemento type como:
 Date y Datetime: que hacen referencia a datos de tipo fechas.
 Email: para correos electrónicos y, aparte de hacer referencia al aspecto del campo,
también realiza la comprobación de que los datos introducidos en dicho campo
mantengan el formato específico para emails ([email protected]).
También se han añadido varios atributos nuevos como:
 Required: este atributo sirve para especificar que un campo es obligatorio y esto
implica que los datos del formulario no serán enviados si el campo marcado como
requerido está vacío, eliminando la necesidad de realizar la comprobación por parte
del desarrollador.
 Placeholder: este atributo permite rellenar el campo con un valor predeterminado y
una vez que el usuario hace clic en el campo este valor desaparece.
 Title: este atributo permite personalizar el error que nos ofrece el navegador cuando
alguno de los datos no cumple alguno de los requisitos, como tipo de dato, formato,
obligatoriedad, etc.
Figura 2. Ejemplo Input HTML5
 Etiqueta nav: debido a que la gran mayoría de webs incluyen menús de navegación se
incluyó esta etiqueta para facilitar su uso y para que en los dispositivos móviles (tablets y
teléfonos móviles) puedan reconocerlos de una forma más sencilla.
 Etiqueta article: tienen por finalidad representar un contenido específico de una web.
 Etiqueta section: tienen por finalidad definir secciones (bloques) dentro de una web.
Figura 3. Nuevas Etiquetas HTML5
1.7.3. CSS 3
CSS son las siglas de Hojas de Estilo en Cascada o Cascading Style Sheets y hacen
referencia a un lenguaje de hojas de estilos usado para describir la presentación (el aspecto y
el formato) de un documento escrito en lenguaje de marcas. Su aplicación más común es dar
estilo a páginas webs escritas en lenguaje HTML y XHTML, pero también puede ser
aplicado a cualquier tipo de documentos XML.
La información de estilo puede ser adjuntada como un documento separado o en el mismo
documento HTML. En este último caso podrían definirse estilos generales en la cabecera del
documento o en cada etiqueta particular mediante el atributo style.
14
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Para el desarrollo del proyecto se usará CSS3, ya que, incorpora nuevos mecanismos para
mantener un mayor control sobre el estilo con el que se muestran los elementos de las
páginas, sin tener que recurrir a trucos, que a menudo complicaban el código de las web. Las
principales novedades CSS3 son:
 Bordes: border-color, border-image, border-radius, box-shadow.
 Fondos: background-origin, background-clip, background-size, capas con múltiples
imágenes de fondo.
 Color: colores HSL, colores HSLA, colores RGBA, Opacidad.
 Texto: text-shadow, text-overflow, división de palabras largas, Web Fonts.
 Interfaz: box-sizing, resize, outline, nav (nav-top, nav-right, nav-bottom, nav-left).
 Degradados: lineales, radiales, lineales de repetición, radiales de repetición.
 Varios: media queries, múltiples columnas de texto, propiedades orientadas a la lectura
automática de páginas web, animaciones mediante CSS.
1.7.4. PHP
Acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools o
Personal Home Page Tools). Es un lenguaje de programación interpretado, es decir, que está
diseñado para ser ejecutado por medio de un intérprete; diseñado originalmente para la
creación de páginas web dinámicas. Es usado principalmente en interpretación en el lado del
servidor pero, actualmente, puede ser utilizado desde una interfaz de línea de comandos o en
la creación de otros tipos de programas, incluyendo aplicaciones con interfaz gráfica.
1.7.5. MySQL
MySQL es un sistema de administración relacional de bases de datos multihilo y
multiusuario. Se trata de una base de datos relacional archiva datos en tablas separadas en
vez de colocar todos los datos en un gran archivo, esto permite velocidad y flexibilidad. Las
tablas están conectadas por relaciones definidas que hacen posible combinar datos de
diferentes tablas sobre pedido.
MySQL es software de fuente abierta, esto quiere decir, que es posible para cualquier
persona usarlo y modificarlo; cualquiera puede bajar el código fuente de MySQL y usarlo sin
pagar, cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades.
MySQL usa el GPL (GNU General Public License) para definir lo que puede hacer y lo que
no puede hacer con el software en diferentes situaciones.
1.7.6. Java Script
Es un lenguaje de scripting basado en objetos, utilizado para acceder a objetos en
aplicaciones. Principalmente se utiliza integrado en un navegador web permitiendo el
desarrollo de interfaces de usuario mejoradas y páginas web dinámicas. Se caracteriza por
ser un lenguaje basado en prototipos, con entrada dinámica y con funciones de primera clase.
Java Script ha tenido influencia de múltiples lenguajes y se diseñó con una sintaxis similar al
lenguaje de programación Java.
1.7.7. Java
Java es un lenguaje de programación publicado en el 1995 como un componente
fundamental de la plataforma Java de Sun Microsystems. El lenguaje deriva de la sintaxis de
C y C++, pero tiene menos facilidades de bajo nivel que cualquiera de ellos. Las
aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede correr
en cualquier máquina virtual Java (JVM) sin importar la arquitectura del ordenador. Java es
15
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
un lenguaje de programación de propósito general, concurrente, basado en clases y orientado
a objetos, que fue diseñado específicamente para tener tan pocas dependencias de
implementación como fuera posible.
Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una
vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA o “write once,
run anywhere”), lo que quiere decir que el código que es ejecutado en una plataforma no
tiene que ser recompilado para correr en otra.
1.7.8. R
R es un lenguaje y entorno de programación para análisis estadístico y gráfico, lo que
posibilita la carga de diferentes bibliotecas o paquetes con finalidades específicas de cálculo
o gráfico. Se trata de un proyecto de software libre.
R proporciona un amplio abanico de herramientas estadísticas (modelos lineales y no
lineales, test estadísticos, análisis de series temporales, algoritmos de clasificación y
agrupamiento, etc.) y gráficas.
1.8. Riesgos
Los riesgos asociados a este proyecto son los siguientes:
1.8.1. Falta de Formación
La falta de formación técnica y de experiencia conllevaría el aumento del tiempo de
desarrollo del proyecto. Este riesgo se podría dar durante todo el desarrollo del mismo y con
un nivel alto de probabilidad de que ocurra.
1.8.2. Cambios en los Requisitos
Los cambios en los requisitos iníciales como, por ejemplo, darse cuenta de que la aplicación
sería más eficiente utilizando otra tecnología distinta a la acordada inicialmente en el
documento de requisitos iníciales. Este riesgo se podría dar durante todo el desarrollo del
proyecto y con un nivel bajo de probabilidad de que ocurra.
1.8.3. Requisitos Poco Claros
Si no se tienen los requisitos claros desde el principio podemos hacer mal el trabajo y
retrasar la fecha de entrega del proyecto debido a errores de lógica o entendimiento. Este
riesgo se podría dar durante todo el desarrollo del proyecto y con un nivel bajo de
probabilidad de que ocurra.
1.8.4. Planificaciones no realistas
Una planificación poco realista surge, normalmente, debido a la inexperiencia. Una buena
planificación debe tener en cuenta todos los inconvenientes y retrasos que puedan surgir.
Si somos demasiado optimistas, haciendo la planificación, estaremos obligados a cumplirla,
si no se cumple en el tiempo indicado estaremos usando tiempo planificado para otros
deberes y no cumpliremos con las expectativas que hemos creado al cliente. Este riesgo se
podría dar durante la planificación del proyecto y con un nivel alto de probabilidad de que
ocurra, ya que no dispongo de una amplia experiencia.
16
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
1.8.5. Utilizar Tecnologías Nuevas
Esto se puede dar si se trabaja con tecnologías nuevas, tanto, con hardware como con
software. Este riesgo se podría dar durante la fase de implementación del proyecto y con un
nivel alto de probabilidad de que ocurra.
1.8.6. Ausencia del Desarrollador
La ausencia temporal o indefinida del desarrollador, es decir, que no pudiera trabajar en el
proyecto durante un tiempo, ya sea por enfermedad, motivos personales, etc. Este riesgo se
podría dar durante todo el desarrollo del proyecto y con un nivel bajo de probabilidad de que
ocurra.
1.8.7. Fallo en el Hardware
Fallo catastrófico en el hardware, es decir, perder todo el trabajo que tengamos hasta ese
momento almacenado en los discos duros. Son muchas las causas que pueden llevar a que se
pierdan datos valiosos, como incendios, caídas de la red en medio de una transferencia de
información, antigüedad de los discos, mala manipulación, ataques de virus, etc. Este riesgo
se podría dar durante todo el desarrollo del proyecto y con un nivel bajo de probabilidad de
que ocurra que se pierda la totalidad del proyecto, ya que se realizarán copias de seguridad
de forma regular y se almacenarán en diversos lugares geográficos distintos, lo que sí puede
ocurrir es la perdida puntual de alguna modificación debido a que el fallo se produzca antes
de realizar dicha copia de seguridad.
1.9. Estructura del Proyecto
Para poder realizar una correcta planificación se hizo una división en tareas del proyecto, ésta
queda representada en el siguiente gráfico:
Figura 4. División de Tareas
Con esta división se ajustó la planificación que a continuación se expone.
1.10. Planificación del Proyecto
El plazo para el desarrollo del proyecto será de 300 horas, distribuidas entre el 4 de febrero y
el 31 de mayo de 2013.
17
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
La planificación se ha dividido en tareas y cada tarea se distribuyó en el tiempo asignándole
un número de horas, dejando siempre un margen de tiempo, para que en caso de retrasos en
alguna de ellas el proyecto no se viera afectado en todo su conjunto, también se dejo, al final
del proyecto un periodo de tiempo por si era necesario ampliar alguna de las tareas, realizar
cambios y/o realizar más pruebas.
Por lo que la planificación quedo de la siguiente forma:
 Definición y planificación: 20 horas.
 Formación: 40 horas.
 Análisis del sistema: 20 horas, que incluía el análisis de requisitos (5 horas); diseño de
los diagramas (5 horas); identificación de tecnologías (5 horas) y 5 horas como margen.
 Diseño del sistema: 30 horas, que incluía el diseño de la base de datos (5 horas); el
diseño de la web (20 horas) y 5 horas como margen.
 Implementación del sistema: 135 horas, que incluía la implementación de la base de
datos y la generación del código necesario para la introducción de datos en ella (15
horas); la implementación del servicio web y todas sus funcionalidades (115 horas) y 5
horas como margen.
 Pruebas: 5 horas.
 Documentación: 35 horas, que incluía la documentación del código (5 horas); la
redacción de la memoria de trabajo (20 horas); la creación de la presentación (5 horas) y
5 horas como margen.
De esta forma suman 290 horas, por lo que las 10 horas restantes quedan para utilizarlas en
caso de necesidad en alguna de las anteriores tareas, a parte de lo anterior, cada dos semanas
se realizará una reunión con el tutor del proyecto para comprobar el desarrollo del mismo.
En el siguiente gráfico veremos la distribución, en horas, de cada una de las diferentes tareas:
Horas
160
140
120
100
80
60
40
20
0
135
40
20
20
35
30
10
10
Figura 5. Distribución en Horas
A continuación veremos el porcentaje, de horas, de cada una de las diferentes tareas:
Definición y Planificación
Porcentajes
Formación
3%
12%
7%
3%
13%
7%
Análisis del Sistema
Diseño
Implementación
45%
Pruebas
10%
Documentación
Tiempo Extra
Figura 6. Distribución en Porcentaje
18
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 2:
ANÁLISIS DEL
SISTEMA
19
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
2. Análisis del Sistema
En este apartado realizaremos una especificación detallada del sistema. Veremos, en primer
lugar, los requisitos que ha de cumplir el proyecto.
2.1. Catálogo de Requisitos
Los requisitos finales que el proyecto deberá cumplir quedaron definidos y serán los
siguientes:
 Creación del servicio web para el uso del modelo predictivo.
 Creación de la base de datos (es decir, la creación de las tablas y/o campos) necesaria
para el uso del modelo predictivo.
 Posibilidad de registrarse y loguearse para acceder a ciertas funcionalidades.
 Uso de gráficos para representar los datos obtenidos del modelo y otros datos referentes a
la meteorología.
 Posibilidad de gestión de parcelas de los usuarios registrados.
 Otro de los requisitos serían las tecnologías implicadas en el desarrollo de este proyecto:
 Adobe Flash: para el desarrollo de los gráficos.
 HTML: para el desarrollo del servicio web.
 CSS: para definir el aspecto y formato del Servicio Web.
 PHP: para aportar funcionalidad al servicio web, como la conexión con la base de
datos.
 Java Script: para aportar cierta funcionalidad al servicio web.
 MYSQL: para la gestión de los datos en la base de datos.
 Java: para la ejecución del modelo predictivo.
 R: para procesar los datos meteorológicos.
2.1.1. Diagramas de Casos de Uso
A continuación, se explicará de forma detallada el diagrama de casos de uso de la aplicación
y sus respectivos actores.
Lo primero es que podemos distinguir entro dos actores diferentes, por un lado el “usuario
anónimo”, es decir, aquel usuario que no se ha registrado y, por lo tanto, no se ha
identificado y por otro el “usuario registrado”; es decir, el usuario que se ha registrado y que
ya puede identificarse en la web y acceder a todas las funcionalidades.
En primer lugar, veremos el diagrama del “usuario anónimo”:
20
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Figura 7. Diagrama de Casos de Usos del Usuario Anónimo
Y, en segundo lugar, veremos el diagrama del “usuario registrado”:
Figura 8. Diagrama de Casos de Usos del Usuario Registrado
21
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
2.1.1.1. Diagramas de Actividad
Primero nos centraremos en las funcionalidades disponibles para el “usuario anónimo”:
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Mostrar Gráfico
El usuario podrá ver un gráfico comparativo de un parámetro
meteorológico.
Ninguna.
- Seleccionar parámetro meteorológico a mostrar.
- Seleccionar los tipos de datos (resumen, valores de la media, valores
máximos, valores mínimos).
- Seleccionar las opciones referentes al tipo de dato (agrupar por años
o por zonas).
El gráfico generado a partir de las elecciones del usuario se mostrará en
la pantalla.
Figura 9. Diagrama de Actividad - Mostrar Gráfico
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
22
Obtener Previsión
El usuario podrá obtener las previsiones del grado alcohólico gracias a
la utilización del modelo predictivo y dichas previsiones se mostrarán a
través de un gráfico.
Ninguna.
- Introducir los datos necesarios para el uso del modelo.
El gráfico generado a partir de los datos obtenidos del modelo
predictivo se mostrará en la pantalla.
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Figura 10.Diagrama de Actividad - Obtener Previsión
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Registrarse
El usuario podrá registrarse en la web.
Ninguna.
- Introducir sus datos.
- Introducir el captcha.
El usuario pasa a estar registrado, por lo tanto, podrá autentificarse y
acceder a todas las funciones disponibles en el servicio web.
Figura 11.Diagrama de Actividad - Registrarse
23
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
A continuación, nos centraremos en las funcionalidades disponibles para el “usuario
registrado”:
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Autentificarse
El usuario registrado podrá loguearse y acceder a todas las
funcionalidades disponibles.
El usuario debe estar registrado previamente.
- Introducir nombre de usuario.
- Introducir contraseña.
El usuario iniciará una sesión en la web.
Figura 12.Diagrama de Actividad - Autentificación
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Modificar Datos del Usuario
El usuario podrá modificar los datos que introdujo al registrarse.
El usuario debe estar registrado e identificado.
- Modificar datos.
- Verificar la modificación de los datos.
Los datos del usuario serán modificados.
Figura 13.Diagrama de Actividad - Modificar Datos
24
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Añadir Parcela
El usuario podrá añadir una parcela.
El usuario debe estar registrado e identificado.
- Introducir los datos correspondientes de la parcela.
La parcela será almacenada.
Figura 14.Diagrama de Actividad - Añadir Parcela
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Modificar Datos Parcela
El usuario podrá modificar los datos de una parcela que previamente ha
introducido en la web.
El usuario debe estar registrado e identificado y debe haber introducido
previamente una parcela.
- Elegir parcela.
- Modificar los datos de la parcela.
- Verificar la modificación de los datos.
Los datos de la parcela serán modificados.
Figura 15.Diagrama de Actividad - Modificar Parcela
25
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Eliminar Parcela
El usuario podrá eliminar una parcela que previamente ha introducido en la
web.
El usuario debe estar registrado, identificado y haber introducido
previamente una parcela.
- Elegir parcela.
- Eliminar la parcela.
- Verificar la eliminación de la parcela.
Los datos de la parcela serán eliminados.
Figura 16.Diagrama de Actividad - Eliminar Parcela
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Mostrar Gráfico
El usuario podrá ver un gráfico comparativo de un parámetro
meteorológico.
El usuario debe estar registrado e identificado, aunque esta función
también está disponible para los usuarios no registrados.
- Seleccionar parámetro meteorológico a mostrar.
- Seleccionar los tipos de datos (resumen, valores de la media, valores
máximos, valores mínimos).
- Seleccionar las opciones referentes al tipo de dato (agrupar por años
o por zonas).
El gráfico generado a partir de las elecciones del usuario se mostrará en
la pantalla.
Figura 17.Diagrama de Actividad - Mostrar Gráfico
26
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Nombre:
Descripción:
Precondiciones:
Acciones:
Resultado:
Obtener Previsión de una Parcela
El usuario podrá obtener las previsiones del grado alcohólico de una
parcela determinada gracias a la utilización del modelo predictivo y
dichas previsiones se mostrarán a través de un gráfico.
El usuario debe estar registrado, identificado y haber introducido
previamente una parcela.
- Seleccionar parcela.
- Modificar los datos necesarios para el uso del modelo (opcional).
El gráfico generado a partir de los datos obtenidos del modelo
predictivo se mostrará en la pantalla.
Figura 18.Diagrama de Actividad - Obtener Previsión Parcela
27
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 3:
DISEÑO DEL SISTEMA
28
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
3. Diseño
En esta parte deberá quedar especificada la forma de desarrollar el proyecto, cuál va a ser su
funcionamiento y estructura, etc.
Dentro de esta tarea se pueden encontrar dos grandes secciones: por una parte, el diseño de la
Base de Datos (Modelo de datos) y, por otra, la del Servicio Web (Diseño de las interfaces).
3.1. Diseño de la Base de Datos
En primer lugar, nos centraremos en la parte que hace referencia a la Base de Datos:
3.1.1. Diseño del Modelo de Datos
Para almacenar los datos necesarios para el Servicio Web y para el uso del modelo predictivo
es necesario el uso de una base de datos. A continuación se explica el diseño del modelo de
datos, comenzando con el diagrama UML:
Figura 19.Diagrama UML
3.1.2. Tablas y Relaciones
Seguidamente, se detallarán las diferentes tablas y relaciones que forman la Base de Datos:
3.1.2.1. Tabla “estaciones”
En las estaciones meteorológicas se realizan las mediciones de las diferentes variables
atmosféricas y sirven para ubicar dichas mediciones y las parcelas introducidas por los
usuarios registrados.
Los datos a almacenar de las estaciones y sus tipos:
 CodeEstacion: para identificar la estación meteorológica. Por lo tanto, es la clave
primaria y su tipo es int de longitud 4.
 Nombre: nombre de la estación meteorológica, que habitualmente corresponde con la
zona donde se encuentra ubicada. Es de tipo varchar de longitud 25.
 Latitud: distancia desde el ecuador hasta donde se encuentra la estación meteorológica.
Es tipo es int de longitud 15.
 Longitud: distancia desde el meridiano cero hasta donde se encuentra la estación
meteorológica. Es de tipo int de longitud 15.
29
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
 Altitud: distancias desde el nivel del mar hasta donde se encuentra la estación
meteorológica. Es de tipo int de longitud 15.
3.1.2.2. Tabla “datosmeteorologicos”
Para el uso del modelo y la generación de los gráficos incluidos en la Web son necesarias
las mediciones realizadas en las diferentes estaciones meteorológicas, los datos de dichas
mediciones a almacenar, sus tipos y sus relaciones son los siguientes:
 CodeEstacion: para identificar la estación meteorológica donde se ha realizado la
captura de los datos. Es de tipo int de longitud 4 y este campo es una clave foránea del
campo “CodeEstacion” de la tabla “estaciones”.
 Fecha: fecha cuando se ha realizado la captura de los datos. Es de tipo date.
 TempMed: dato de tipo double.
 TempMax: dato de tipo double.
 TempMin: dato de tipo double.
 Lluvia: dato de tipo double.
 Humedad: dato de tipo double.
 Radiacion: dato de tipo double.
La clave primaria son los campos “CodeEstacion” y “Fecha”, ya que cada estación realiza
una medición diaria, por lo que el código o la fecha de forma separada no son únicos.
3.1.2.3. Tabla “datosprocesados”
Para el uso del modelo predictivo es necesario un conjunto de treinta variables de entrada,
que se calculan a partir de los datos meteorológicos. Las variables, sus tipos y sus
relaciones son:
 FechaInicio: fecha cuando se produce el procesamiento de los datos. Es de tipo date.
 CodeEstacion: para identificar la estación meteorológica donde se ha realizado la
captura de los datos. Es de tipo int de longitud 4 y este campo es una clave foránea del
campo “CodeEstacion” de la tabla “estaciones”.
 Variedad: variedad de la uva plantada en la viña. Es de tipo varchar de longitud 25.
 Anio: año cuando se plantó la viña. Es de tipo double.
 Cota: altitud, en metros, de la viña. Es de tipo double.
 Peso100Granos: peso de cien granos de uva. Es de tipo double.
 Dir: dirección del viento dominante durante la semana anterior. Es de tipo varchar de
longitud 5.
 HumMedia: humedad relativa media durante la semana anterior. Es de tipo double.
 HumMin: humedad relativa mínima durante la semana anterior. Es de tipo double.
 HumMax: humedad relativa máxima durante la semana anterior. Es de tipo double.
 LluviaAcuSemana: lluvia acumulada, en mm, durante la semana anterior. Es de tipo
double.
 LluviaAcu2Semanas: lluvia acumulada, en mm, durante las dos semanas anteriores. Es
de tipo double.
 LluviaAcu3Semanas: lluvia acumulada, en mm, durante las tres semanas anteriores. Es
de tipo double.
 LluviaAcuAno: lluvia acumulada, en mm, desde el inicio del año. Es de tipo double.
 LluviaAcuDesdeDesborre: lluvia acumulada, en mm, desde la fecha de desborre. Es
de tipo double.
 LluviaAcuHace2Semanas: lluvia acumulada, en mm, durante la penúltima semana. Es
de tipo double.
 LluviaAcu2Hace2Semanas: lluvia acumulada, en mm, durante la penúltima y
antepenúltima semana. Es de tipo double.
30
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
 LluviaAcuEntreDesborreYFloracion: lluvia acumulada, en mm, entre la fecha de
desborre y la fecha de floración. Es de tipo double.
 LluviaAcuEntreFloracionYCuajado: lluvia acumulada, en mm, entre la fecha de
floración y la fecha de cuajado. Es de tipo double.
 LluviaAcuEntreCuajadoYEnvero: lluvia acumulada, en mm, entre la fecha de
cuajado y la fecha de envero. Es de tipo double.
 LluviaAcuEntreEnveroYVendimia: lluvia acumulada, en mm, entre la fecha de
envero y la fecha de vendimia. Es de tipo double.
 TemMedia: temperatura media, en grados centígrados, de la semana anterior. Es de
tipo double.
 TemMin: temperatura mínima, en grados centígrados, de la semana anterior. Es de tipo
double.
 TemMax: temperatura máxima, en grados centígrados, de la semana anterior. Es de
tipo double.
 VelMediaKmh: velocidad media del viento, en Km/h, durante la semana anterior. Es
de tipo double.
 VelMaxKmh: velocidad máxima del viento, en Km/h, durante la semana anterior. Es
de tipo double.
 SumaTemMedDiarias: suma de las temperaturas medias, en grados centígrados, desde
el inicio del año. Es de tipo double.
 DiasTemMayorMax40: cantidad de días con una temperatura máxima superior a
cuarenta grados centígrados desde el inicio del año. Es de tipo double.
 DiasTemMayorMed18Maduracion: cantidad de días con una temperatura media
superior a dieciocho grados centígrados desde el inicio del año. Es de tipo double.
 DiasTemMayorMax30Maduracion: cantidad de días con una temperatura máxima
superior a treinta grados centígrados durante la época de maduración. Es de tipo double.
 DiferenciaMedTemMaxyMinDiariaMaduracion: media entre la diferencia entre las
temperaturas mínimas y máximas diarias durante la época de maduración. Es de tipo
double.
 GradoAlcohol: el grado alcohólico de la parcela, es la variable de salida del modelo
predictivo. Es de tipo double.
La clave primaria son los campos “FechaInicio” y “CodeEstacion”.
3.1.2.4. Tabla “datosnoprocesados”
Para el uso del modelo predictivo es necesario un conjunto de datos compuestos por treinta
variables para realizar el entrenamiento del modelo predictivo, por lo que, se han
introducido en la base de datos. Las variables se calculan a partir de los datos
meteorológicos, dichas variables y sus tipos son:
 CodeEstacion: para identificar la estación meteorológica donde se ha realizado la
captura de los datos. Es de tipo int de longitud 4 y este campo es una clave foránea del
campo “CodeEstacion” de la tabla “estaciones”.
 Variedad: variedad de la uva plantada en la viña. Es de tipo varchar de longitud 25.
 Anio: año cuando se plantó la viña. Es de tipo double.
 Cota: altitud, en metros, de la viña. Es de tipo double.
 Peso100Granos: peso de cien granos de uva. Es de tipo double.
 Dir: dirección del viento dominante durante la semana anterior. Es de tipo varchar de
longitud 5.
 HumMedia: humedad relativa media durante la semana anterior. Es de tipo double.
 HumMin: humedad relativa mínima durante la semana anterior. Es de tipo double.
 HumMax: humedad relativa máxima durante la semana anterior. Es de tipo double.
31
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
 LluviaAcuSemana: lluvia acumulada, en mm, durante la semana anterior. Es de tipo
double.
 LluviaAcu2Semanas: lluvia acumulada, en mm, durante las dos semanas anteriores. Es
de tipo double.
 LluviaAcu3Semanas: lluvia acumulada, en mm, durante las tres semanas anteriores. Es
de tipo double.
 LluviaAcuAno: lluvia acumulada, en mm, desde el inicio del año. Es de tipo double.
 LluviaAcuDesdeDesborre: lluvia acumulada, en mm, desde la fecha de desborre. Es
de tipo double.
 LluviaAcuHace2Semanas: lluvia acumulada, en mm, durante la penúltima semana. Es
de tipo double.
 LluviaAcu2Hace2Semanas: lluvia acumulada, en mm, durante la penúltima y
antepenúltima semana. Es de tipo double.
 LluviaAcuEntreDesborreYFloracion: lluvia acumulada, en mm, entre la fecha de
desborre y la fecha de floración. Es de tipo double.
 LluviaAcuEntreFloracionYCuajado: lluvia acumulada, en mm, entre la fecha de
floración y la fecha de cuajado. Es de tipo double.
 LluviaAcuEntreCuajadoYEnvero: lluvia acumulada, en mm, entre la fecha de
cuajado y la fecha de envero. Es de tipo double.
 LluviaAcuEntreEnveroYVendimia: lluvia acumulada, en mm, entre la fecha de
envero y la fecha de vendimia. Es de tipo double.
 TemMedia: temperatura media, en grados centígrados, de la semana anterior. Es de
tipo double.
 TemMin: temperatura mínima, en grados centígrados, de la semana anterior. Es de tipo
double.
 TemMax: temperatura máxima, en grados centígrados, de la semana anterior. Es de
tipo double.
 VelMediaKmh: velocidad media del viento, en Km/h, durante la semana anterior. Es
de tipo double.
 VelMaxKmh: velocidad máxima del viento, en Km/h, durante la semana anterior. Es
de tipo double.
 SumaTemMedDiarias: suma de las temperaturas medias, en grados centígrados, desde
el inicio del año. Es de tipo double.
 DiasTemMayorMax40: cantidad de días con una temperatura máxima superior a
cuarenta grados centígrados desde el inicio del año. Es de tipo double.
 DiasTemMayorMed18Maduracion: cantidad de días con una temperatura media
superior a dieciocho grados centígrados desde el inicio del año. Es de tipo double.
 DiasTemMayorMax30Maduracion: cantidad de días con una temperatura máxima
superior a treinta grados centígrados durante la época de maduración. Es de tipo double.
 DiferenciaMedTemMaxyMinDiariaMaduracion: media entre la diferencia entre las
temperaturas mínimas y máximas diarias durante la época de maduración. Es de tipo
double.
 GradoAlcohol: el grado alcohólico de la parcela, es la variable de salida del modelo
predictivo. Es de tipo double.
Esta tabla, al final, sólo se usará para realizar pruebas del buen funcionamiento del código
para ejecutar el modelo predictivo, ya que inicialmente se esperaba su uso para dicho
código.
3.1.2.5. Tabla “usuarios”
Para que los usuarios puedan registrarse y utilizar las diferentes utilidades disponibles
deberán almacenarán los siguientes datos y sus tipos:
32
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
 Usuario: nombre único con el que se identificará al usuario y con el que iniciará la
sesión en la Web, por lo tanto, es la clave primaria. Es de tipo varchar de longitud 25.
 Contraseña: contraseña para identificarse e iniciar sesión. Es de tipo varchar de
longitud 150.
 Nombre: nombre del usuario. Es de tipo varchar de longitud 25.
 Primer apellido: primer apellido del usuario. Es de tipo varchar de longitud 25.
 Segundo apellido: segundo apellido del usuario. Es de tipo varchar de longitud 25.
 Email: correo electrónico del usuario, para enviarle la confirmación del registro. Es de
tipo varchar de longitud 25.
3.1.2.6. Tabla “parcelas”
Para facilitar el uso del modelo predictivo los usuarios registrados podrán introducir sus
parcelas (viñas) y, de esta forma, no necesitarán introducir cada vez los datos.
Los datos almacenados referentes a las parcelas y sus tipos son:
 Usuario: usuario al que pertenece la parcela. Es de tipo varchar de longitud 25 y este
campo es una clave foránea del campo “Usuario” de la tabla “usuarios”.
 Nombre: nombre o identificación de la parcela. Es de tipo varchar de longitud 25.
 CodeEstacion: referente a la estación (es decir, a la zona) más cercana o a la que
pertenezca. Es de tipo int de longitud 4 y este campo es una clave foránea del campo
“CodeEstacion” de la tabla “estaciones”.
 Latitud: distancia desde el ecuador hasta donde se encuentra la estación meteorológica.
Es de tipo int de longitud 15.
 Longitud: distancia desde el meridiano cero hasta donde se encuentra la estación
meteorológica. Es de tipo int de longitud 15.
 Altura: distancias desde el nivel del mar hasta donde se encuentra la estación
meteorológica. Es de tipo int de longitud 15.
 Variedad: variedad de uva plantada en la parcela. Es de tipo varchar de longitud 150.
 Anioplantacion: año en el que se llevó a cabo la plantación de la parcela. Es de tipo int
de longitud 4.
 Fechadesborre: fecha aproximada del comienzo del desborre. Es de tipo date.
El término desborre se utiliza para referirse al momento en que comienza a brotar, se
trata de la primera manifestación del crecimiento y se produce cuando en la primavera
las yemas comienzan a hincharse, entonces las escamas que las recubren se abren y
aparece al exterior la borra (sustancia algodonosa y parduzca), de ahí el nombre
desborre.
 Fechafloracion: cuando comienzan a florecer las flores de la vid, que son blancas y
minúsculas. Es de tipo date.
A finales de mayo o principios de junio aparecen los embriones de las flores y la
floración se produce en pleno mes de junio.
 Fechacuajado: fecha aproximada del comienzo del cuajado. Es de tipo date.
El término cuajado hace referencia a cuando la flor de la vid ha sido fecundada y da
lugar a la baya.
 Fechaenvero: fecha aproximada del comienzo del envero. Es de tipo date.
El envero es la época de la coloración de la uva, si la variedad es blanca, del verde
pasará al amarillo, mientras que, si se trata de una variedad tinta, del verde pasará al
rojo claro que se irá oscureciendo posteriormente.
 Fechavendimia: fecha aproximada del comienzo de la vendimia. Es de tipo date.
La clave primaria son los campos “Usuario” y “Nombre”, ya que un usuario puede haber
introducido varias parcelas.
33
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
3.2. Diseño del Servicio Web
Para el diseño de las interfaces de la web se especificaron varias normas:
 Simplicidad y facilidad de uso.
 Uso de colores claros (blanco y tonos de rojo).
 Creación de una estructura común para todas las web, pero que a su vez incluya los
elementos necesarios para adaptarse a cada una de las funcionalidades de los diferentes
tipos de web.
 Uso de CSS3 para definir el aspecto y formato de las webs.
Para cumplir los requisitos anteriores se decidió dividir la web en cuatro secciones:
 Parte superior: que contendrá la cabecera de la web, el formulario de autentificación y el
menú de navegación principal (con las secciones “Inicio”, “Gráficos”, “Maduración”,
“Registro” y “Zona Privada”).
 Parte izquierda: que contendrá el menú correspondiente a cada una de las diferentes
secciones.
 Parte central y parte derecha: que contendrá la información a mostrar.
 Parte inferior: que contendrá el pie de la web.
Figura 20. Diseño General de la Interfaz
El diseño final de la web fue el siguiente:
Figura 21. Diseño Final (Página Principal)
34
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 4:
IMPLEMENTACIÓN
DEL SISTEMA
35
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
4. Implementación del Sistema
En este capítulo mostraré alguno de los aspectos más importantes de la fase de implementación
del sistema. Para ello usaré varios fragmentos de código.
4.1. Programación de la Base de Datos
En esta sección se hace referencia a la programación de funcionalidades relacionadas con la
introducción de datos en la base de datos.
4.1.1. Datos Meteorológicos
Debido a que (1) los datos referentes a la meteorología se encuentran almacenados en un
archivo RData y (2) que son cerca de 63.000 registros fue necesario desarrollar una función
para realizar la lectura de dichos datos del archivo y la inserción en la base de datos. A
continuación se muestra el fragmento de código en R que realiza dicha función:
Con el fin de realizar la conexión entre R y la base de datos se usó la librería de R
“RODBC”, que utiliza el ODBC de MySQL (en el código anterior se hacer referencia a él
con el nombre “local”, que es el nombre asignado al ODBC al definirlo), para llevar a cabo
dicha conexión:
Figura 22. ODBC de MySQL
4.1.2. Datos Estaciones
Los datos referentes a las estaciones meteorológicas están almacenados en un archivo CSV.
A continuación el fragmento de código en R que realiza dicha función:
36
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
4.1.3. Generar CSV
También se programó la funcionalidad para a partir de un archivo RData generar un CSV,
aunque no se llegó a utilizar. A continuación, figura el fragmento de código en R que realiza
dicha función:
4.2. Programación del Servicio Web
En esta sección se hace referencia a la programación de funcionalidades relacionadas con el
Servicio Web.
4.2.1. Gráficos
En los requisitos iniciales se especificaba que para el desarrollo de los gráficos se utilizaría
Adobe Flash, pero para su utilización se encontraron los siguientes inconvenientes:
 Esta tecnología está siendo utilizada cada vez menos.
 No es compatible con dispositivos móviles.
 Los usuarios necesitan tener instalado el plugin correspondiente.
 Aumenta el tiempo de carga de las páginas.
 Es necesario un tiempo para desarrollar los gráficos y su funcionalidad.
Debido a estos inconvenientes, se decidió cambiar dicho requisito y utilizar otra tecnología
para su desarrollo, se probaron varias pero la gran mayoría al final se basaban en Adobe
Flash (ya que utilizaban el propio lanzador de Flash para su publicación, aunque se utilizaran
otros lenguajes para su desarrollo) y finalmente se decidió utilizar la librería de código
abierto “Flot” (www.flotcharts.org).
“Flot” es una librería gráfica para JQuery basada en Java Script y sus características
principales son:
 Buen rendimiento
 Gran cantidad de gráficos diferentes disponibles (líneas, barras, circular, de área, etc.).
 Plugins para utilizar Flot en distintos entornos de programación.
 Múltiples funcionalidades (actualización en tiempo real, Ajax, etc.).
 Compatible con múltiples navegadores y con dispositivos móviles.
 Gráficos exportables (PNG, JPEG, etc.).
 Soporta CSS.
37
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Figura 23. Ejemplo de Gráfico con Flot
Seguidamente, se mostrará el código Java Script para crear los gráficos a partir de los datos
obtenidos del modelo predictivo:
4.2.2. Uso del Modelo Predictivo
Para usar el modelo predictivo son necesarios realizar dos pasos: el primero es procesar los
datos meteorológicos para obtener las treinta variables de entrada que necesita el modelo y el
segundo es ejecutar el modelo propiamente dicho y obtener la previsión.
38
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
4.2.2.1. Procesar Datos
Lo primero es procesar los datos meteorológicos y, de esta forma, obtener las variables de
entrada necesarias para la ejecución del modelo. Para llevar esto a cabo ejecutamos un
archivo bat, pasándole los parámetros necesarios y almacenamos los datos devueltos:
Este archivo bat lo que realmente hace es ejecutar un código escrito en R (almacenado en
un archivo .R) en línea de comandos del propio R. Se utiliza un archivo bat, ya que para
ejecutar R es necesario indicar la ubicación donde se encuentra instalada dicha aplicación y
de esta forma es mucho más sencillo realizar dicho cambio. A continuación se muestra el
código del bat:
El código en R que realiza el proceso de los datos es el siguiente:
39
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
El resultado de este proceso es el siguiente:
Figura 24. Ejemplo de Datos Procesados
4.2.2.2. Ejecutar Modelo Predictivo
Una vez obtenidos estos datos ya podemos ejecutar el modelo predictivo, para ello se
ejecuta un archivo jar y obtenemos los resultados del grado alcohólico que posteriormente
se usarán para generar el gráfico:
El código Java a partir del cual se generó el archivo jar es el siguiente:
40
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Una vez ejecutado el modelo los datos obtenidos serían los siguientes:
Figura 25. Ejemplo de Previsión
Y el gráfico generado a partir de ellos quedaría de la siguiente forma:
Figura 26. Ejemplo Gráfico de Previsión
4.2.3. Registro de Usuarios
Para llevar a cabo el registro de un usuario en la web se han tenido en cuenta los siguientes
aspectos:
4.2.3.1. Uso de Captchas
Con el propósito de comprobar que quien se está intentando registrar es una persona y no
una máquina se utiliza el sistema de captchas. Para ello se emplea la librería de código
abierto “Secureimage” (www.phpcaptcha.org). El código para insertarlo en el formulario
de registro sería el que se muestra a continuación:
El código de validación del captcha:
41
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Y el resultado final:
Figura 27. Ejemplo Formulario de Registro
4.2.3.2. Correo de Confirmación
Al realizar el registro de un nuevo usuario, se envía un correo a su dirección de correo
electrónico para confirmarle su registro, para ello se utiliza la librería de código abierto
“PHPMailer” (phpmailer.worxware.com). El código para usarlo sería:
4.2.3.3. Contraseña del Usuario
Para que la contraseña del usuario no se almacene de forma clara en la base de datos y, de
esta forma, sólo él tuviera conocimiento de la misma se decidió almacenarla codificada.
Para codificarla se utilizó la codificación SHA1 y el código sería:
42
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Y en la base de datos quedaría almacenado de la siguiente forma:
Figura 28.Contraseñas Almacenadas
4.2.4. Otras Funcionalidades
A continuación, se describen otras funcionalidades a tener en cuenta:
4.2.4.1. Gestión de Parcelas
Para mostrar los datos de las parcelas y poder gestionarlas se utiliza la librería de código
abierto “phpGrid” (phpgrid.com). El código para usarlo sería:
43
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Y el resultado final:
Figura 29. Ejemplo Formulario Listado Parcelas
Desde la tabla generada se podría: ordenar por columna, buscar por columna,
mostrar/ocultar columnas, cambiar el tamaño de las columnas, cambiar el número de filas a
mostrar por página, selección múltiple, editar los datos de las parcelas y eliminar parcelas.
4.2.4.2. Comprobar Navegador
Al utilizar HTML5 y sobre todo algunos tipos de input (type date) sólo algunos
navegadores y ciertas versiones de los mismos son compatibles:
 Internet Explorer v11.0 o superior.
 Google Chrome v20.0 o superior.
 Opera v10.6 o superior.
 Safari v5.0 (500.0) o superior.
Para informar a un usuario que está usando un navegador incompatible y que cierta
funcionalidad puede que no se ejecute de forma correcta (también verificar que el
navegador tenga habilitada la ejecución de código Java Script), se creó el código para
identificar el navegador y versión:
Y, por último, verificar que está entre los navegadores que soportan las funciones
anteriormente mencionadas y que tiene habilitada la ejecución del código Java Script:
44
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Ahora podemos comprobar el resultado de las funciones anteriores al acceder a la web con
un navegador que no soporta HTML5 y con la ejecución deshabilitada del código Java
Script:
Figura 30. Comprobar Navegador y Java Script
4.2.4.3. Codificar Datos
Para evitar que el paso de parámetros entre webs sea en claro se creó una función para
codificarlos y decodificarlos, el código sería:
Y el paso de los parámetros sería de la siguiente forma:
Figura 31. Pase de Variables
45
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 5:
PRUEBAS
46
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
5. Pruebas
Mientras se iban implementando el Servicio Web, se realizaron pequeñas pruebas para
comprobar que ciertas funcionalidades eran correctas y una vez finalizado su desarrollo se
diseñaron las siguientes pruebas para verificar su buen funcionamiento:
5.1. Diseño de las Pruebas Aplicadas al Servicio Web
Prueba
Descripción
Comprobar el correcto visionado Verificar que la web se vea y se ejecute de forma
correcta en todos los navegadores y en los dispositivos
y funcionalidad
móviles.
Comprobar el enlace con la Base Verificar que se realiza con éxito el establecimiento de
la conexión con la base de datos, así como la inserción,
de Datos
la lectura, la modificación y el borrado de los datos.
Para ello se comprobarán las diferentes formas de
conexión:
 Conexión en PHP.
 Conexión del ODBC de MySQL.
 Conexión de la librería RODBC en R.
 Conexión en Java.
Comprobar el procesamiento de Verificar que se obtienen las variables necesarias para
el uso del modelo predictivo y que se almacenan en la
datos meteorológicos
bases de datos.
Comprobar la correcta ejecución Verificar que el código generado para el uso del
modelo devuelva los valores correctos comparándolos
del modelo predictivo
con los obtenidos del modelo ejecutado en WEKA.
Comprobar la generación de los Verificar que los gráficos se generan de forma correcta,
tanto los generados a partir de los datos meteorológicos
gráficos
como los generados a partir del modelo predictivo.
Comprobar el registro de Verificar que el registro de un usuario se hace de forma
correcta y se realizan todas las funciones que ello
usuarios
engloba (verificar captcha, verificar datos, insertar
datos en la base de datos, enviar mail de confirmación,
etc.).
Verificar que el inicio y fin de sesión se realiza de
Comprobar la gestión de sesión
forma correcta.
Comprobar la gestión de los Verificar que el usuario puede acceder, modificar y
guardar los cambios sobre los datos introducidos al
datos del usuario
registrarse.
Comprobar la gestión de Verificar que el usuario puede añadir, acceder,
modificar, guardar y eliminar los datos relacionados
parcelas
con las parcelas.
47
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
5.2. Resultados de las Pruebas Aplicadas al Servicio Web
Prueba
Resultado
Comprobar el correcto visionado Esta prueba se fue realizando mientras se iba
desarrollando el servicio web y al finalizar el desarrollo
y funcionalidad
en los siguientes navegadores y dispositivos móviles:
 Google Chrome v27.0.1.
 Mozilla Firefox v21.0.
 Internet Explorer v10.0.
 Opera v12.15.
 Safari v5.1 (753.57).
 Sony Xperia (con los navegadores Google Chrome,
Mozilla Firefox y Opera).
El resultado de esta prueba fue correcto, ya que las
webs se veían de forma correcta (a excepción de los
elementos de HTML5 que no son compatibles,
indicados anteriormente, con dichos navegadores) y
toda la funcionalidad en todos los navegadores.
Comprobar el enlace con la Base Esta prueba se realizó una vez para cada tipo de
conexión para comprobar que el enlace entre el
de Datos
Servicio Web y la Base de Datos es correcto.
El resultado de esta prueba fue correcto, ya que se pudo
acceder a los datos almacenados en la Base de Datos y
realizar inserción, acceso, modificación y eliminación.
Comprobar el procesamiento de Esta prueba se realizo varias veces para verificar que
los datos se procesaban correctamente a partir de
datos meteorológicos
diferentes datos.
El resultado de esta prueba fue correcto.
Comprobar la correcta ejecución Esta prueba se realizo varias veces para verificar que
los datos obtenidos a partir del modelos eran correctos
del modelo predictivo
comparándolos con la ejecución del modelo en WEKA.
El resultado de esta prueba fue correcto.
Comprobar la generación de los Esta prueba se realizo varias veces para verificar que
los gráficos se generaban de forma correcta a partir de
gráficos
los datos meteorológicos y de los datos obtenidos a
partir del modelo predictivo.
El resultado de esta prueba fue correcto.
Comprobar el registro de Esta prueba se realizo varias veces, incluyendo el uso
de datos incorrectos, para verificar que el registro de
usuarios
usuarios se realizaba de forma correcta (incluyendo la
verificación de captcha, verificación de los datos,
inserción de los datos en la base de datos, envío y
recepción del mail de confirmación, etc.).
El resultado de esta prueba fue correcto.
Esta prueba se realizo varias veces, incluyendo el uso
Comprobar la gestión de sesión
de datos incorrectos, para verificar que el inicio y fin de
sesión se realizaba correctamente. También se verificó
que los usuarios no autentificados no pudieran acceder
a la parte privada de la web y los usuarios logueados si
pudieran acceder a dicha parte.
El resultado de esta prueba fue correcto.
48
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Comprobar la gestión de los Esta prueba se realizo varias veces para verificar que el
usuario pudiera acceder y modificar sus datos.
datos del usuario
El resultado de esta prueba fue correcto.
Comprobar la gestión de Esta prueba se realizo varias veces para verificar que el
usuario pudiera insertar, acceder, modificar y eliminar
parcelas
parcelas.
El resultado de esta prueba fue correcto.
49
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 6:
CONCLUSIONES
50
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
6. Conclusiones
En este apartado expondré las conclusiones a las que he llegado tras la finalización del proyecto:
6.1. Conclusión 1
La primera conclusión a la que he llegado es que la planificación estimada y la real no han
coincidido, ya que la real ha sido mayor que la estimada, por lo que se ha utilizado todo el
tiempo extra que se especificó en la planificación; tanto el asignado a cada tarea como el que
se dejo de forma independiente, aunque el proyecto finalizó en el plazo acordado.
En el siguiente gráfico veremos la distribución, en horas, de cada una de las diferentes tareas:
Horas
160
140
120
100
80
60
40
20
0
140
40
20
35
20
35
10
Figura 32.Distribución en Horas Real
A continuación, veremos el porcentaje de horas, de cada una de las diferentes tareas:
Definición y Planificación
Porcentajes
3%
7%
12%
Formación
13%
7%
Análisis del Sistema
Diseño
46%
Implementación
12%
Pruebas
Documentación
Figura 33. Distribución en Porcentaje Real
6.2. Conclusión 2
Una vez finalizado el desarrollo del proyecto he llegado a la conclusión que realizar un
proyecto de este alcance y desde cero conlleva un gran esfuerzo, además hay que cumplir los
plazos especificados y los requisitos definidos.
Ha sido interesante el desarrollar parte del proyecto en diferentes plataformas, software y/o
lenguajes de programación como HTML, CSS, PHP, MySQL, Java Script, Java, R, etc. y
combinarlas para formar un único proyecto.
A parte de los problemas encontrados, también he tenido la posibilidad de poner en práctica
los conocimientos adquiridos a lo largo de la carrera y de adquirir otros durante el desarrollo
de este proyecto, así como comprobar cómo se trabaja en un proyecto real.
51
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
6.3. Conclusión 3
Durante el desarrollo del proyecto fueron apareciendo nuevas funcionalidades que pueden
añadirse a una futura ampliación del mismo. Estas funcionalidades son:
 Añadir la captura de datos meteorológicos para que se vayan añadiendo de forma diaria y
automática, ya que actualmente sólo se dispone de los datos de los años 2007 a 2011.
 Poder almacenar los datos generados en las previsiones para cada parcela y que el usuario
pueda compararlos según se van añadiendo los nuevos datos meteorológicos.
 Permitir una mayor interacción con los gráficos, como puede ser realizar zoom sobre el
gráfico cambiar la distribución, ya que en la versión actual los gráficos relacionados con la
meteorología se agrupan por meses y los de la previsión por semanas.
52
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
CAPÍTULO 7:
BIBLIOGRAFÍA
53
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
7. Bibliografía
En este apartado se listará la bibliografía utilizada para el desarrollo del proyecto:
 [Tesis Doctoral] Fernández Martínez, Roberto. Utilización de Redes de Sensores
Inalámbricas y Técnicas de Aprendizaje Automático para la Obtención de Conocimiento
Útil en Entornos Vitivinícolas. Universidad de la Rioja. Febrero 2012.
 [Apuntes] Martínez De Pisón, Francisco Javier. Asignatura Ingeniería del Conocimiento.
Universidad de la Rioja. Curso 2012-2013.
 [Página Web] Worx Internacional INC - PHPMailer. http://phpmailer.worxware.com
 [Página Web] phpGrid. http://phpgrid.com
 [Página Web] Flot. http://www.flotcharts.org
 [Página Web] Secureimage. http://www.phpcaptcha.org
 [Página Web] MySQL Developer Zone. http://dev.mysql.com
 [Página Web] The Comprehensive R Archive Network. cran.r-project.org
 [Página Web] Weka Wiki. http://weka.wikispaces.com
 [Página Web] Weka Data Mining. http://www.cs.waikato.ac.nz/ml/weka
 [Página Web] PHP - Manual. http://www.php.net/manual
 [Página Web] w3schools. http://www.w3schools.com
 [Página Web] Desarrollo Web. http://www.desarrolloweb.com
 [Página Web] Wikipedia. http://es.wikipedia.org
 [Página Web] W3C España. http://www.w3c.es
 [Página Web] W3C. http://www.w3.org
54
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
55
OSCAR MEZQUITA DOMÍNGUEZ
INSTALACIÓN Y
DESPLIEGUE DEL
SERVICIO WEB
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
1. Requisitos
Los requisitos previos para la instalación y puesta en marcha de la Web son:
 Servidor Apache, con el protocolo SSL habilitado.
 Servidor MySQL.
 ODBC de MySQL.
 Instalación del programa R.
2. Instalación
Lo primero sería crear la base de datos “controlmaduracion” en MySQL y ejecutar el código
SQL contenido en el archivo “controlmaduracion.sql”, que contiene las tablas, relaciones, datos
y algún ejemplo (usuarios y parcelas) que son necesarias para el funcionamiento de la web.
Una vez creada la base de datos configuramos el ODBC de MySQL, con “local” como nombre
del conector (este nombre es obligatorio) y “controlmaduracion” como la base de datos con la
que se conectará. El resto de datos (servidor, puerto, usuario y contraseña) se configurarán en
función de los datos del servidor Apache y del servidor MySQL.
Un ejemplo sería el siguiente:
Una vez que tenemos la base de datos preparada podemos desplegar la web en el servidor
Apache, manteniendo la estructura de carpetas y realizando una serie de modificaciones.
Lo primero sería modificar el archivo “ProcesarDatos.bat”, que se encuentra en la raíz de la
web, y cambiarla la dirección que contiene por la dirección que corresponde a la instalación del
programa R, por ejemplo:
Por último, sería modificar el archivo “reg.php”, que se encuentra en “../cod/”, y cambiar el
usuario y contraseña que se utilizaran para el envío de los emails (debe usarse una cuenta de
Gmail, si no es así, se deberían modificar varios valores más como el host y el puerto), y el
resultado sería el siguiente:
2
OSCAR MEZQUITA DOMÍNGUEZ
WEB BASADA EN MODELOS PREDICTIVOS PARA EL CONTROL DE LA MADURACIÓN DE LA UVA
Una vez realizados los cambios anteriores ya se podría acceder a la web y utilizar todas sus
funcionalidades, para ello se accedería a través de la página de inicio (“index.php”).
3
OSCAR MEZQUITA DOMÍNGUEZ
Descargar