scieee AI-readable full text Open interactive document viewer

Construcción de un sitio web para la realización de ejercicios IEEE 754

Carrión Baeza, Rubén

Abstract

El objetivo principal de este proyecto es realizar una aplicación Web que guíe en la resolución de ejercicios de representación IEEE754 de decimal a simple y doble precisión, y de simple y doble precisión a decimal así como preguntas en relación a la representación de dichos números para que el alumno pueda practicar dichos ejercicios y facilitar el aprendizaje. Además se realizará un seguimiento de los fallos y aciertos del usuario. Para el uso de la aplicación se requiere una conexión a Internet, navegador web y conocimientos de representación de números decimales en simple y doble precisión.

Full text

Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 1 Universidad Politécnica de Valencia Facultad de Informática Proyecto final de carrera: Construcción de un sitio web para la realización de ejercicios IEEE 754 Autor: Rubén Carrión Baeza Director: Antonio Martí Campoy Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 2 ÍNDICE 1. Introducción .......................................................................................................................... 5 1.1. Motivación .......................................................................................................................... 5 1.2. Objetivos y resumen del proyecto ............................................................................... 5 1.3. Contexto .............................................................................................................................. 5 1.4. Estructura del documento .............................................................................................. 5 2. Especificación de requisitos ............................................................................................ 6 2.1. Introducción ....................................................................................................................... 6 2.1.1. Propósito ......................................................................................................................... 6 2.1.2. Ámbito .............................................................................................................................. 6 2.1.3. Definición, siglas y abreviaturas ............................................................................... 6 2.1.4. Referencias ..................................................................................................................... 7 2.2. Descripción general ......................................................................................................... 7 2.2.1. Perspectiva del producto ............................................................................................ 7 2.2.2. Funciones del producto .............................................................................................. 7 2.2.3. Características del usuario ......................................................................................... 8 2.2.4. Restricciones generales .............................................................................................. 8 2.2.5. Supuestos y dependencias ........................................................................................ 8 2.3. Requisitos específicos .................................................................................................... 8 2.3.1. Requerimientos de interfaces externos .................................................................. 8 2.3.2. Requisitos funcionales ................................................................................................ 9 2.3.3. Requisitos de eficiencia ............................................................................................ 11 2.3.4. Restricciones de diseño ............................................................................................ 11 2.3.5. Atributos ........................................................................................................................ 11 2.3.6. Otros requerimientos ................................................................................................. 12 3. Análisis ................................................................................................................................. 12 3.1. Casos de uso ................................................................................................................... 12 3.1.1. Caso de uso: Actor Anónimo ................................................................................... 12 3.1.2. Caso de uso: Actor Alumno ..................................................................................... 13 4. Diseño ................................................................................................................................... 13 4.1. Arquitectura de 3 capas ................................................................................................ 13 4.1.1. Capa de presentación ................................................................................................ 13 4.1.2. Capa de lógica de negocio ....................................................................................... 15 4.1.3. Capa de persistencia .................................................................................................. 15 5. Implementación .................................................................................................................. 15 5.1. Tecnologías ...................................................................................................................... 15 5.1.1. Capa de presentación ................................................................................................ 15 5.1.2. Capa de lógica de negocio ....................................................................................... 16 5.1.3. Capa de persistencia .................................................................................................. 16 5.2. Descripción de la implementación............................................................................. 17 5.2.1. Parte pública ................................................................................................................. 17 5.2.2. Parte privada ................................................................................................................ 18 5.2.3. Otras páginas ............................................................................................................... 23 6. Evaluación ........................................................................................................................... 30 6.1. Prueba de validación de CSS ...................................................................................... 30 6.2. Prueba de validación de navegadores web ............................................................. 30 6.3. Prueba de seguridad de acceso ................................................................................. 31 7. Conclusiones ...................................................................................................................... 32 7.1. Trabajo realizado ............................................................................................................ 32 7.2. Valoración personal ....................................................................................................... 32 Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 3 7.3. Futuras mejoras .............................................................................................................. 33 8. Bibliografía .......................................................................................................................... 33 Anexos ...................................................................................................................................... 34 A. Anexo I (Herramientas usadas) ..................................................................................... 34 ArgoUML ................................................................................................................................... 34 Balsamiq Mockups ................................................................................................................. 34 Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 4 Ilustraciones Ilustración 1: Boceto de la interfaz ............................................................................................... 9 Ilustración 2: Diagrama de usuarios ............................................................................................ 12 Ilustración 3: Caso uso Anónimo ................................................................................................. 13 Ilustración 4: Caso uso Alumno ................................................................................................... 13 Ilustración 5: Diseño de la web ................................................................................................... 14 Ilustración 6: Cabecera ................................................................................................................ 14 Ilustración 7: Menú ..................................................................................................................... 14 Ilustración 8: Zona central ........................................................................................................... 15 Ilustración 9: login.html .............................................................................................................. 17 Ilustración 10: registro.html ........................................................................................................ 18 Ilustración 11: index.html ........................................................................................................... 18 Ilustración 12: decimal2simple.html ........................................................................................... 19 Ilustración 13: decimal2doble.html ............................................................................................ 20 Ilustración 14: simple2decimal.html ........................................................................................... 21 Ilustración 15: doble2decimal.html ............................................................................................ 22 Ilustración 16: preguntas.html .................................................................................................... 22 Ilustración 17: Validación CSS ..................................................................................................... 30 Ilustración 18: Validación navegador web Microsoft Internet Explorer ..................................... 30 Ilustración 19: Validación navegador web Mozilla Firefox ......................................................... 31 Ilustración 20: Validación navegador web Google Chrome ........................................................ 31 Ilustración 21: Validación de seguridad ...................................................................................... 32 Ilustración 22: Validación de seguridad (error de login) ............................................................. 32 Ilustración 23: ArgoUML ............................................................................................................. 34 Ilustración 24: Balsamiq Mockups .............................................................................................. 35 Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 5 1. Introducción Este documento es la memoria descriptiva del proceso de desarrollo de una aplicación Web como proyecto final de carrera de Ingeniería Técnica en Informática de Sistemas en la Universidad Politécnica de Valencia. 1.1. Motivación En la actualidad cada vez son más los alumnos que desean resolver ejercicios a través de la Web, pero el software que existe para la realización de estos ejercicios muestra el resultado final y no guía al alumno paso a paso durante la resolución indicándole donde se está equivocando. Por ello la finalidad de este proyecto es la creación de una aplicación Web para resolver los ejercicios de representación IEEE754. 1.2. Objetivos y resumen del proyecto El objetivo principal de este proyecto es realizar una aplicación Web que guíe en la resolución de ejercicios de representación IEEE754 de decimal a simple y doble precisión, y de simple y doble precisión a decimal así como preguntas en relación a la representación de dichos números para que el alumno pueda practicar dichos ejercicios y facilitar el aprendizaje. Además se realizará un seguimiento de los fallos y aciertos del usuario. Para el uso de la aplicación se requiere una conexión a Internet, navegador web y conocimientos de representación de números decimales en simple y doble precisión. 1.3. Contexto Para lograr estos objetivos es necesaria la existencia de un usuario identificado para registrar sus fallos y aciertos. Desde la aplicación se ofrecerán los pasos a seguir para la resolución de los ejercicios comprobando que el usuario los realiza correctamente para indicarle sus errores. Tras un determinado número de fallos se da por finalizado el ejercicio como fallido. 1.4. Estructura del documento Esta memoria está ordenada de forma que se pueda resumir cada una de las fases del ciclo de vida del proyecto. Se ha seguido como guía el estándar IEEE std 830-1998. Introducción: Capítulo de presentación del proyecto en el que se incluye motivación, objetivos y resumen del proyecto, contexto y estructura del documento. Especificación de requisitos: Capítulo en el que se recogen los requisitos básicos necesarios antes del inicio del proyecto. Análisis: Capítulo en el que se obtiene un modelo conceptual de la aplicación mediante la ayuda de diagramas UML. Diseño: Capítulo en el que se describen los diseños realizados para el proyecto así como la metodología utilizada en el proceso. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 6 Implementación: Capítulo en el que se describen las tecnologías y herramientas usadas durante esta fase. Se describirá el funcionamiento de los componentes implementados en la solución. Evaluación y pruebas: Capítulo en el que se exponen las técnicas usadas en la evaluación de la aplicación y el resultado obtenido. Conclusiones: Capítulo que contiene la valoración personal del desarrollo del proyecto y del trabajo realizado. Bibliografía: Capítulo en el que se muestra la documentación utilizada para el desarrollo del proyecto. 2. Especificación de requisitos 2.1. Introducción 2.1.1. Propósito El propósito de este apartado es reunir los requerimientos necesarios para el desarrollo correcto de la aplicación. Esta especificación va dirigida a toda persona interesada en el funcionamiento de la aplicación. Se seguirán las directrices IEEE std 830-1998, uno de los estándares más referenciados para la especificación de requisitos en proyectos Web. 2.1.2. Ámbito El producto software a describir es una aplicación web de resolución de ejercicios. Con todas las funcionalidades implementadas será posible realizar ejercicios de representación de formato IEEE754 comprobando los errores cometidos durante el proceso sin la necesidad de un profesor. 2.1.3. Definición, siglas y abreviaturas Apache: Tipo de servidor donde se almacena la aplicación, y que permite la gestión de las peticiones sobre la web. Autenticación o autentificación: Proceso de intento de verificar la identidad digital del remitente de una comunicación como una petición para conectarse. Decimal: Número decimal. Doble precisión: Número decimal representado en IEEE754 con 64 bits. Formulario (HTML): Servicio que permite introducir información para enviar a la web y ser procesada. Hardware: conjunto de elementos materiales que conforman una computadora. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 7 HTML (HyperText Mark Language): Lenguaje usado para cread documentos en la World Wide Web. IEEE (Institute of Electrical and Electronics Engineers): Asociación de profesionales norteamericanos que aporta criterios de estandarización de dispositivos eléctricos y electrónicos. IEEE754: Estándar de IEEE para aritmética en coma flotante. Define valores especiales como el cero, infinito, NaN y valores desnormalizados. También especifica modos de redondeo. JavaScript: Lenguaje de programación interpretado que se ejecuta en el lado del cliente (navegador). Navegador: Programa que permite ver e interactuar con varios tipos de recursos de Internet disponibles en la World Wide Web. Simple precisión: Número decimal representado en IEEE754 con 32 bits. Sistema de Gestión de Bases de Datos (SGBD): Software dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Sistema Operativo (SO): Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos. Software: Conjunto de los componentes necesarios para hacer posible la realización de una tarea específica. Soporte lógico de la computadora. WAMP: Aplicación para instalar Apache, PHP y MySQL de forma sencilla 2.1.4. Referencias  IEEE STD 830IEEE Guide to Software Requirements Specifications.  http://es.wikipedia.org 2.2. Descripción general 2.2.1. Perspectiva del producto Este producto software es independiente del sistema operativo utilizado, solo se necesitará un navegador web e Internet para poder usarlo. Para ello es necesario un servidor web para alojar la web y un dominio para su direccionamiento. 2.2.2. Funciones del producto Alumno:  Realizar ejercicios de conversión de decimal a simple precisión.  Realizar ejercicios de conversión de decimal a doble precisión.  Realizar ejercicios de conversión de simple precisión a decimal. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 8  Realizar ejercicios de conversión de doble precisión a decimal.  Responder preguntas acerca del estándar IEEE754. Anónimo:  Registrarse en la aplicación. Sistema:  Abrir sesión de alumno.  Cerrar sesión de alumno.  Registrar fallos y aciertos del alumno. 2.2.3. Características del usuario Se identifican como tipos de usuario: alumno y anónimo. Aunque para hacer uso de la aplicación hay que ser un usuario registrado (alumno), el usuario anónimo también existe ya que este puede registrarse para convertirse en un usuario registrado (alumno). El usuario alumno es el único que puede realizar ejercicios y responder preguntas. 2.2.4. Restricciones generales Para acceder a la Web se deberá disponer del hardware necesario para conectarse a Internet. Cualquier persona podrá visitar la Web mediante un navegador, aunque deberá autenticarse para hacer uso de ella. 2.2.5. Supuestos y dependencias La Web requiere que los usuarios utilicen un navegador web para acceder a ella. No será necesario el uso de un navegador específico, pero sí deberá ser compatible con el protocolo HTTP. Dicho navegador debe permitir la ejecución de código Javascript. 2.3. Requisitos específicos 2.3.1. Requerimientos de interfaces externos Interfaces de usuario Se pretende que la interfaz de la Web sea simple e intuitiva. Para ello se sigue un patrón general de muchas webs, un logo en la zona superior, un menú lateral y una zona central para resolver los ejercicios. Todo ello acompañado por la interacción de un teclado y un ratón por parte del usuario. A continuación se muestra el boceto de la interfaz web: Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 9 Ilustración 1: Boceto de la interfaz Interfaces hardware Los usuarios deben disponer de acceso Internet y de un navegador web que permita una resolución de al menos 1024x786. Interfaces software La aplicación web está desarrollada para ejecutarse en cualquier sistema operativo y navegador web estándar. Interfaz de comunicación La interfaz de comunicación entre cliente y servidor son los estándares TCP/IP a través del protocolo HTTP. 2.3.2. Requisitos funcionales Alumno Conversión de decimal a simple precisión:  Introducción: Esta función sirve para convertir un número decimal a simple precisión.  Entrada: Número decimal.  Proceso: Convierte un número decimal en simple precisión mostrándolo también en hexadecimal. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 16 “etiquetas”, rodeadas por corchetes angulares. HTML también puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un script (por ejemplo Javascript), el cual puede afectar el comportamiento de navegadores web y otros procesadores de HTML. El lenguaje HTML puede ser creado y editado con cualquier editor de textos básico, como puede ser el Bloc de Notas de Windows o cualquier otro editor que admita texto sin formato como Microsoft Wordpad, Notepad++, etc. Existen además, otras herramientas más complejas para la realización de sitios Web o edición de código HTML, como por ejemplo Microsoft FrontPage, Macromedia Dreamweaver, etc. CSS: El CSS, siglas de Cascading Style Sheets (u hojas de estilo en cascada), es el lenguaje formal usado para definir la presentación de los documentos estructurados escritos en HTML, XML y XHTML. El W3C, World Wide Web Consortium, es el organismo encargado de formular la especificación que servirán como estándar para los navegadores. La idea de CSS es separar la estructura de un documento de su presentación. Ventajas: -Aumento de la legibilidad del documento: Es más fácil de leer y editar puesto que no se mezcla contenido con presentación. -Disminución del tiempo necesario para cambiar el aspecto global del sitio. -Aumento de la disponibilidad: Una Web puede disponer de varias hojas de estilo según el dispositivo que la muestre o incluso a elección del usuario. Javascript: Javascript es un lenguaje interpretado, es decir, que no requiere compilación, utilizado principalmente en páginas web con una sintaxis semejante a la del lenguaje Java. A diferencia de Java, Javascript no es orientado a objetos sino que es más bien un lenguaje basado en prototipos. Todos los navegadores interpretan el código Javascript integrado dentro de las páginas web. Se ejecuta en el usuario al mismo tiempo que las sentencias van descargándose junto con el código HTML. 5.1.2. Capa de lógica de negocio PHP: PHP es un lenguaje de programación interpretado ejecutado en el servidor para la creación de contenidos dinámicos en páginas web. Cuando el usuario hace una petición al servidor para que le envíe una página web generada por un script PHP, el servidor ejecuta el intérprete de PHP el cual procesa el script solicitado que genera el contenido de forma dinámica, regresando el resultado al servidor, el cual lo enviará al cliente. 5.1.3. Capa de persistencia MySQL: MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario. Su popularidad como aplicación web está muy ligada a PHP. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 17 5.2. Descripción de la implementación Debido a que la aplicación está dirigida a los alumnos, esta es de acceso privado por lo que se debe estar identificado en todo momento. La única parte pública de la web será el login para permitir la identificación de los alumnos. 5.2.1. Parte pública La parte pública de la aplicación está formada por el fichero login.html. login.html: Es la página encargada de loggear a los alumnos, internamente crea una serie de cookies. Es necesario indicar el nombre, apellidos, dni y curso. Ilustración 9: login.html registro.html: Es la página encargada de registrar a los alumnos. Es necesario indicar el nombre, apellidos, dni y curso. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 18 Ilustración 10: registro.html 5.2.2. Parte privada La parte privada de la aplicación está formada por el resto de ficheros. index.html: Es la página inicial de la aplicación donde se describe brevemente el contenido y funciones de la aplicación web. Ilustración 11: index.html decimal2simple.html: Es la página en la que se realizan ejercicios en los que se convierte un número decimal a simple precisión siguiendo una serie de pasos que se verifican uno a uno. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 19 Estos pasos son: -Calcular la parte entera en binario. -Calcular la parte decimal en binario. -Magnitud sin normalizar. -Magnitud normalizada. -Exponente en entero. -Exponente con exceso en entero. -Exponente con exceso en binario. -Signo en binario. -Simple precisión en binario. -Simple precisión en hexadecimal. Pueden generarse números aleatorios para realizar el ejercicio o bien introducir uno manualmente. En cualquier momento durante el proceso puede pulsarse el botón de “Nuevo” para realizar un nuevo ejercicio, y también el botón “Ver solución” para mostrar todos los pasos resueltos. Ilustración 12: decimal2simple.html decimal2doble.html: Es la página en la que se realizan ejercicios en los que se convierte un número decimal a doble precisión siguiendo una serie de pasos que se verifican uno a uno. Estos pasos son: -Calcular la parte entera en binario. -Calcular la parte decimal en binario. -Magnitud sin normalizar. -Magnitud normalizada. -Exponente en entero. -Exponente con exceso en entero. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 20 -Exponente con exceso en binario. -Signo en binario. -Doble precisión en binario. -Doble precisión en hexadecimal. Pueden generarse números aleatorios para realizar el ejercicio o bien introducir uno manualmente. En cualquier momento durante el proceso puede pulsarse el botón de “Nuevo” para realizar un nuevo ejercicio, y también el botón “Ver solución” para mostrar todos los pasos resueltos. Ilustración 13: decimal2doble.html simple2decimal.html: Es la página en la que se realizan ejercicios en los que se convierte un número decimal representado en simple precisión (en hexadecimal) a decimal siguiendo una serie de pasos que se verifican uno a uno. Estos pasos son: -Simple precisión en binario. -Signo en binario. -Exponente con exceso en binario. -Exponente con exceso en entero. -Exponente en entero. -Magnitud normalizada. -Magnitud sin normalizar. -Decimal. Pueden generarse números hexadecimales aleatorios para realizar el ejercicio o bien introducir uno manualmente. En cualquier momento durante el proceso puede pulsarse el botón de “Nuevo” para realizar un nuevo ejercicio, y también el botón “Ver solución” para mostrar todos los pasos resueltos. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 21 Ilustración 14: simple2decimal.html doble2decimal.html: Es la página en la que se realizan ejercicios en los que se convierte un número decimal representado en doble precisión (en hexadecimal) a decimal siguiendo una serie de pasos que se verifican uno a uno. Estos pasos son: -Doble precisión en binario. -Signo en binario. -Exponente con exceso en binario. -Exponente con exceso en entero. -Exponente en entero. -Magnitud normalizada. -Magnitud sin normalizar. -Decimal. Pueden generarse números hexadecimales aleatorios para realizar el ejercicio o bien introducir uno manualmente. En cualquier momento durante el proceso puede pulsarse el botón de “Nuevo” para realizar un nuevo ejercicio, y también el botón “Ver solución” para mostrar todos los pasos resueltos. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 22 Ilustración 15: doble2decimal.html preguntas.html: Es la página en la que se realizan preguntas sobre el estándar IEEE 754 que deben ser respondidas por el alumno. Ilustración 16: preguntas.html Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 23 logout.php: Es la página que permite dejar de identificar al alumno destruyendo la cookie creada en el proceso de login. Código: <?php setcookie("nombre", ""); setcookie("apellidos", ""); setcookie("dni", ""); setcookie("curso", ""); header("Location: login.html?error=No%20esta%20autenticado"); ?> 5.2.3. Otras páginas Se compone por otras páginas web de la aplicación que ejecutan funcionalidad de forma oculta al usuario. config.php: Contiene los datos de conexión al SGBD MySQL para acceder a la base de datos y leer/escribir información. Se incluye en todas las páginas que requieren una conexión a la base de datos. Código: <?php $host = "host"; $user = "usuario"; $password = "contraseña"; $db_name = "base-de-datos"; ?> login.php: Realiza el proceso de login verificando los datos que se le pasan como parámetros (nombre, apellidos, dni y curso). Se ejecuta desde la página web login.html. Código: <?php include_once('config.php'); function CompararString($string1, $string2) { $string1 = strtolower($string1); $string1 = str_replace("á", "a", $string1); $string1 = str_replace("é", "e", $string1); $string1 = str_replace("í", "i", $string1); $string1 = str_replace("ó", "o", $string1); $string1 = str_replace("ú", "u", $string1); $string2 = strtolower($string2); $string2 = str_replace("á", "a", $string2); $string2 = str_replace("é", "e", $string2); $string2 = str_replace("í", "i", $string2); $string2 = str_replace("ó", "o", $string2); $string2 = str_replace("ú", "u", $string2); return $string1==$string2; Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 24 } function EsDni($string) { $permitidos = "0123456789"; if (strlen($string) != 8) return false; for ($i=0; $i<strlen($string); $i++) { if (strpos($permitidos, substr($string,$i,1))===false) { return false; } } return true; } $nombre = $_GET['nombre']; $apellidos = $_GET['apellidos']; $dni = $_GET['dni']; $curso = $_GET['curso']; if (!EsDni($dni)) { header("Location: login.html?error=El%20dni%20tiene%20caracteres%20incorrectos"); } $connection = mysql_connect($host, $user, $password) or die(mysql_error()); mysql_select_db($db_name, $connection) or die(mysql_error()); $data = mysql_query("SELECT * FROM alumnos WHERE dni='" . $dni . "'", $connection) or die(mysql_error()); mysql_close($connection) or die(mysql_error()); $login = false; echo mysql_num_rows($data); if (mysql_num_rows($data) == 1) { $row = mysql_fetch_array($data); if (CompararString($row['nombre'], $nombre) && CompararString($row['apellidos'], $apellidos) && ($row['curso'] == $curso)) { setcookie("nombre", $row['nombre'], time()+365*24*60*60); setcookie("apellidos", $row['apellidos'], time()+365*24*60*60); setcookie("dni", $row['dni'], time()+365*24*60*60); setcookie("curso", $row['curso'], time()+365*24*60*60); session_start(); $login = true; } } if ($login) { header("Location: index.html"); } else { header("Location: login.html?error=Datos%20incorrectos"); } ?> Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 25 registrarejercicio.php: Es el script encargado de registrar en la base de datos los resultados de los ejercicios realizados y preguntas resueltas por el alumno. Código: <?php include_once('config.php'); $ejercicio = $_POST['ejercicio']; $tipo = $_POST['tipo']; $resultado = $_POST['resultado']; $connection = mysql_connect($host, $user, $password); mysql_select_db($db_name, $connection) or die(mysql_error()); mysql_query("INSERT INTO ejercicios(`dni`,`resultado`,`tipo`,`ejercicio`)VALUES('" . $_COOKIE['dni'] . "','" . $resultado . "','" . $tipo . "','" . $ejercicio . "')", $connection); mysql_close($connection); ?> registro.php: Es el script encargado de registrar a un alumno en la base de datos para que posteriormente pueda identificarse en la aplicación web. Código: <?php include_once('config.php'); function CompararString($string1, $string2) { $string1 = strtolower($string1); $string1 = str_replace("á", "a", $string1); $string1 = str_replace("é", "e", $string1); $string1 = str_replace("í", "i", $string1); $string1 = str_replace("ó", "o", $string1); $string1 = str_replace("ú", "u", $string1); $string2 = strtolower($string2); $string2 = str_replace("á", "a", $string2); $string2 = str_replace("é", "e", $string2); $string2 = str_replace("í", "i", $string2); $string2 = str_replace("ó", "o", $string2); $string2 = str_replace("ú", "u", $string2); return $string1==$string2; } function EsNombreApellido($string) { $permitidos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúÁÉÍÓÚ "; if (strlen($string) != 8) return false; for ($i=0; $i<strlen($string); $i++) { if (strpos($permitidos, substr($string,$i,1))===false) { return false; } } return true; Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 32 Ilustración 21: Validación de seguridad Ilustración 22: Validación de seguridad (error de login) 7. Conclusiones 7.1. Trabajo realizado La aplicación responde a las expectativas y requerimientos recogidos en la especificación de requisitos. El trabajo realizado ofrece un alto nivel de cumplimiento de objetivos. La aplicación ofrece al usuario una interfaz intuitiva y de fácil manejo. La sencillez en los pasos durante la realización de los ejercicios facilitan el aprendizaje del alumno. 7.2. Valoración personal Durante el desarrollo del proyecto de final de carrera he podido apreciar cual es el proceso para la creación de una aplicación web: recabar la especificación de requisitos, planificación, implementación y pruebas. Ha sido un trabajo que me ha llevado más tiempo del que esperaba, pues parecía mucho más sencillo, y aunque no ha quedado perfecto estoy muy satisfecho con el resultado. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 33 Con este proyecto final de carrera he tenido que aprender Javascript a nivel básico, ampliando los lenguajes de programación y tecnologías conocidas previamente para el desarrollo de páginas web. 7.3. Futuras mejoras A continuación se expone un listado con posibles mejoras que podrían hacerse en el futuro: -Mejorar el aspecto visual de la aplicación. -Mejorar el proceso de resolución de ejercicios para que sea más eficaz y muestre mejor los errores cometidos por el alumno. 8. Bibliografía -IEEE Std 830 - IEEE Guide to Software Requeriments Specifications. IEEE Standards Board. 345 Eas 47 th Street. New York, NY 10017, USA. 1984. -Página oficial de WAMP: http://www.wampserver.com -Wikipedia: http://es.wikipedia.org Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 34 Anexos A. Anexo I (Herramientas usadas) ArgoUML ArgoUML es una aplicación de diagramado UML escrita en Java, por lo que está disponible en cualquier plataforma soportada por Java. Algunas características: -Multilenguaje. - Soporte para el lenguaje de generación de Código: Java, PHP, Python, C++ y C#. - Generación de ficheros PNG, GIF, JPG, SVG, EPS desde diagramas. Pero también tiene algunas desventajas: no tiene botón “deshacer” y los modelos a veces no pueden ser re-abiertos, entre otras. Ilustración 23: ArgoUML Balsamiq Mockups Balsamiq es una aplicación AIR que permite al usuario arrastrar y soltar elementos de la biblioteca de elementos comunes de diseño a un área de trabajo, permitiendo exportar el producto final en formato PNG. Proyecto final de carrera: IEEE754 Rubén Carrión Baeza 35 Ilustración 24: Balsamiq Mockups