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: publicaciones@unirioja.es 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 (----@----.---). 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