Skip to content

Commit 9ade9ba

Browse files
Documentacion 20/06
1 parent a7c13bd commit 9ade9ba

27 files changed

+15573
-4292
lines changed

plantillaLatex-master/anexos.tex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
% Rutas de fichero / paquete
2424
\newcommand{\ruta}[1]{{\sffamily #1}}
25+
% Euros
26+
\usepackage{eurosym}
2527

2628
% Párrafos
2729
\nonzeroparskip
@@ -340,7 +342,7 @@
340342
% Datos de portada
341343
\title{Conversión de la aplicación docente Thoth a JavaScript\\Documentación Técnica}
342344
\author{Francisco Javier Páramo Arnáiz}
343-
\tutor{Dr. Cesar Ignacio García Osorio y D. Álvar Arnaiz González}
345+
\tutor{Dr. César Ignacio García Osorio y D. Álvar Arnaiz González}
344346
\date{\today}
345347

346348
\begin{document}

plantillaLatex-master/bibliografia.bib

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,15 @@ @article{bortolot2005
4747
publisher={Elsevier}
4848
}
4949

50+
51+
@article{jute2017,
52+
title={Herramienta docente en l{\'\i}nea para facilitar la enseñanza de teor{\'\i}a de aut{\'o}matas},
53+
author={Arnaiz-Gonz{\'a}lez, {\'A}lvar and Francisco D{\'i}ez-Pastor, Jos{\'e} and Ramos-P{\'e}rez, Ismael and Garc{\'\i}a-Osorio, C{\'e}sar},
54+
journal={Jornadas Universitarias de Tecnolog{\'\i}a Educativa },
55+
year={2017}
56+
57+
}
58+
59+
60+
61+
7.8 KB
Loading
5.15 KB
Loading

plantillaLatex-master/memoria.tex

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,15 @@
420420
% Abstract en castellano
421421
\renewcommand*\abstractname{Resumen}
422422
\begin{abstract}
423-
En este primer apartado se hace una \textbf{breve} presentación del tema que se aborda en el proyecto.
423+
La teoría de autómatas y lenguajes formales es uno de los campos más antiguos en el ámbito de la informática, que a pesar de los constantes avances, sus principales conceptos continúan siendo de referencia para el estudio teórico y práctico de la informática. Esto es la base sobre la que nació el mundo de las tecnologías que conocemos hoy en día.
424+
425+
Thoth es un antiguo proyecto de fin de grado que cuenta con varias versiones realizado por alumnos de la Universidad de Burgos y que sirve, precisamente, como herramienta de ayuda en la docencia de la teoría de autómatas y lenguajes formales. Este proyecto pretende llevar a Thoth a la web, sumando nuevas funcionalidades propias de este tipo de aplicaciones, como el registro de usuarios o inicio de sesión, que la harán más útil y completa.
426+
427+
428+
Para ello se hace un estudio sobre las posibles tecnologías que ayudarán a conseguir el objetivo. De esta forma se determina como herramienta para lograr este cambio el <<framework>> denominado Google Web Toolkit, que consigue traducir parte del código escrito en Java a código JavaScript. GWT, según sus siglas, es una tecnología algo antigua pero muy útil para este proyecto, que combina código del lado del cliente y código del lado del servidor, cada uno con una funcionalidad, y que se comunican entre ellos vía RPC.
429+
430+
El trabajo fundamental es adaptar el código Java para que el framework logre interpretarlo y traduzca lo necesario para que la aplicación se ejecute en cualquier navegador. Se trata de aprender los entresijos de GWT, sacando partido de la dualidad cliente-servidor y conservando todo lo bueno, que es mucho, realizado en la aplicación de escritorio de Thoth.
431+
424432
\end{abstract}
425433

426434
\renewcommand*\abstractname{Descriptores}

plantillaLatex-master/tex/1_Introduccion.aux

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
\relax
22
\providecommand\hyper@newdestlabel[2]{}
33
\citation{garcia2007ensenanza}
4+
\citation{garcia2007ensenanza}
5+
\citation{jute2017}
46
\citation{ecma:versiones}
57
\@writefile{toc}{\contentsline {chapter}{Introducci\IeC {\'o}n}{1}{chapter*.4}}
68
\@setckpt{./tex/1_Introduccion}{
@@ -10,7 +12,7 @@
1012
\setcounter{enumii}{0}
1113
\setcounter{enumiii}{0}
1214
\setcounter{enumiv}{0}
13-
\setcounter{footnote}{0}
15+
\setcounter{footnote}{1}
1416
\setcounter{mpfootnote}{0}
1517
\setcounter{@memmarkcntra}{0}
1618
\setcounter{storedpagenumber}{1}
@@ -52,15 +54,15 @@
5254
\setcounter{bsm@mctr}{0}
5355
\setcounter{workm@mctr}{0}
5456
\setcounter{sheetsequence}{13}
55-
\setcounter{lastsheet}{31}
56-
\setcounter{lastpage}{21}
57+
\setcounter{lastsheet}{32}
58+
\setcounter{lastpage}{22}
5759
\setcounter{figure}{0}
5860
\setcounter{lofdepth}{1}
5961
\setcounter{table}{0}
6062
\setcounter{lotdepth}{1}
6163
\setcounter{PWSTtable}{0}
6264
\setcounter{Item}{0}
63-
\setcounter{Hfootnote}{0}
65+
\setcounter{Hfootnote}{1}
6466
\setcounter{memhycontfloat}{0}
6567
\setcounter{Hpagenote}{0}
6668
\setcounter{bookmark@seq@number}{4}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
\capitulo{1}{Introducción}
22

3-
Este proyecto nació con el objetivo de llevar Thoth, un antiguo proyecto escrito en Java, a la web usando para ello tecnologías adaptadas y que puedan ser utilizadas en diferentes dispositivos haciéndolo accesible a todo el mundo. Con ayuda de la herramienta conocida como GWT o Google Web Toolkit según su denominación inglesa, traduciré la aplicación a Javascript en el lado del cliente haciendo posible la utilización de la aplicación en la web, algo que antes era imposible.
3+
Este proyecto nació con el objetivo de llevar Thoth\cite{garcia2007ensenanza}, un antiguo proyecto escrito en Java, a la web. Para ello se utilizará tecnologías web, que puedan ser utilizadas en diferentes dispositivos haciéndolo accesible a todo el mundo. Con ayuda de la herramienta conocida como GWT o Google Web Toolkit\footnote{\url{http://www.gwtproject.org/}} según su denominación inglesa, traduciré la aplicación a Javascript en el lado del cliente haciendo posible la utilización de la aplicación directamente desde un navegador, algo que antes era imposible.
44

5-
Thoth \cite{garcia2007ensenanza}
6-
es un antiguo proyecto enfocado a la actividad docente y relacionado con los procesadores de lenguaje, que fue realizado por varios alumnos de la Universidad de Burgos como trabajo de fin de carrera. Esta aplicación cuenta con dos versiones hasta la fecha y con otros desarrollos como Web Thoth.
5+
Thoth\cite{garcia2007ensenanza}
6+
es un antiguo proyecto enfocado a la actividad docente y relacionado con los procesadores de lenguaje, que fue realizado por varios alumnos de la Universidad de Burgos como trabajo de fin de carrera. Esta aplicación cuenta con dos versiones hasta la fecha y con otros desarrollos como Web Thoth\cite{jute2017}.
77

88
Una de las principales preguntas que nos podemos hacer al ver este proyecto es el por qué traducir la aplicación al lenguaje JavaScript.
99
En primer lugar todos los navegadores actuales son capaces de interpretar el código escrito en JavaScript y soportan al menos alguna de las versiones ECMAScript \cite{ecma:versiones}, siendo la última la séptima edición disponible desde 2016. Con ayuda de la tecnología AJAX, entre otras, este lenguaje es capaz de establecer comunicación cliente-servidor, algo que al principio de su desarrollo no lograba hacer.
1010

11-
Utilizo GWT para este proyecto como herramienta para desarrollar la aplicación. Pese a que actualmente no es el mejor <<framework>> para desarrollar si es una de las bases de otros mucho más modernos y potentes. La forma de trabajar con GWT es creando el código en Java y el compilador hará una traducción a los lenguajes JavaScript y HTML.
11+
Utilizo GWT para este proyecto como herramienta para transformar la aplicación de escritorio a entornos web. Pese a que actualmente no es el mejor <<framework>> para desarrollar, sí es una de las base de otro mucho más moderno y potente. Hablo de Vaadin, que se encuentra más actualizado y con más librerías para un aspecto visual más moderno, pero que para poder hacer disfrutar de él se necesita una licencia bajo pago. La forma de trabajar con GWT es creando el código en Java y el compilador hará una traducción a los lenguajes JavaScript y HTML.
1212

13-
La elección surgió como un desafío para nosotros ya que otras herramientas el esfuerzo era mínimo. Este desafío consiste en que GWT no es capaz de admitir todas las librerías de Java y por eso debimos reescribir el código adaptándolo a las capacidades de este <<framework>>. Si, encontramos otras opciones, de las que posteriormente hablaré, que son capaces de hacer la traducción completa de Thoth en Java a JavaScript de una forma muchísimo más sencilla y directa sin necesidad si quiera de esforzarse demasiado. Pero ese no es el objetivo de un trabajo de fin de grado, sino el de plantear un desafió suficientemente grande con el que el alumno pueda hacer uso del conjunto de muchos de los conocimientos aprendidos a lo largo de grado.
13+
Una de las cuestiones más importantes de este frameworks es que GWT no es capaz de admitir todas las librerías de Java y por eso debimos reescribir el código adaptándolo a las capacidades de este <<framework>>. Si, encontramos otras opciones, de las que posteriormente hablaré, que son capaces de hacer la traducción completa de Thoth en Java a HTML5 de una forma muchísimo más sencilla y directa sin necesidad si quiera de esforzarse demasiado. Pero ese no es el objetivo de un trabajo de fin de grado, sino el de plantear un desafió suficientemente grande con el que el alumno pueda hacer uso del conjunto de muchos de los conocimientos aprendidos a lo largo de grado.

plantillaLatex-master/tex/2_Objetivos_del_proyecto.aux

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
\setcounter{enumii}{0}
99
\setcounter{enumiii}{0}
1010
\setcounter{enumiv}{0}
11-
\setcounter{footnote}{0}
11+
\setcounter{footnote}{1}
1212
\setcounter{mpfootnote}{0}
1313
\setcounter{@memmarkcntra}{0}
1414
\setcounter{storedpagenumber}{1}
@@ -50,15 +50,15 @@
5050
\setcounter{bsm@mctr}{0}
5151
\setcounter{workm@mctr}{0}
5252
\setcounter{sheetsequence}{15}
53-
\setcounter{lastsheet}{31}
54-
\setcounter{lastpage}{21}
53+
\setcounter{lastsheet}{32}
54+
\setcounter{lastpage}{22}
5555
\setcounter{figure}{0}
5656
\setcounter{lofdepth}{1}
5757
\setcounter{table}{0}
5858
\setcounter{lotdepth}{1}
5959
\setcounter{PWSTtable}{0}
6060
\setcounter{Item}{0}
61-
\setcounter{Hfootnote}{0}
61+
\setcounter{Hfootnote}{1}
6262
\setcounter{memhycontfloat}{0}
6363
\setcounter{Hpagenote}{0}
6464
\setcounter{bookmark@seq@number}{5}

plantillaLatex-master/tex/2_Objetivos_del_proyecto.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
Consiste pues, en desarrollar una página web dinámica que sea capaz de hacer las mismas funcionalidades sobre gramáticas formales y sus algoritmos que en Thoth, poniendo a prueba mis propios conocimientos sobre Java así como otros lenguajes sobre tecnologías web como son HTML, CSS o JavaScript.
66

7-
La motivación principal es la tendencia actual de desarrollar este tipo de aplicaciones web, que resultan más accesibles a los usuarios ya que no necesitan requisitos adicionales a los de acceder, por ejemplo, a otros web como son Facebook o LinkeIn. No es necesario instalar o descargar material para poderla utilizar, simplemente algunos conocimientos básicos sobre gramáticas del lenguaje. Por lo tanto Aporta una clara ventaja con respecto a aplicaciones denominadas <<de escritorio>> como es el Thoth original sobre el que nos basamos en este proyecto.
7+
Pero el porque pretendemos pasar de una aplicación de escritorio a otra que se ejecuta en el navegador es básicamente porque no es necesario instalar o descargar material para poderla utilizar Thoth, simplemente algunos conocimientos básicos sobre gramáticas formales. Por lo tanto aporta una clara ventaja con respecto a aplicaciones denominadas <<de escritorio>> como es el Thoth original sobre el que nos basamos en este proyecto.
88

9-
Además pretendemos aportar alguna mejora con respecto al anterior proyecto en base a que al ser una aplicación web podemos hacer un registro de los usuarios, con inicio de sesión, registro de actividades, etc.
9+
La conversión de Thoth a GWT es necesaria porque amplía las posibilidades de mejora de las anteriores versiones. Pretendemos aportar mayor funcionalidad debido a que al ser una aplicación web podemos hacer un registro de los usuarios, con inicio de sesión, registro de actividades, inicio de sesiones, etc.
1010

11-
De hecho uno de los puntos fuertes de este proyecto consiste en aprovechar la mayor parte de utilidad de las aplicaciones web. Aunque en las anteriores versiones la pretensión era sobre todo didáctica en materia relacionada con el estudio de los procesos del lenguaje, ahora a demás de eso también queremos llegar a poder saber la utilidad que se la da a Thoth gracias al ya mencionado registro de información sobre los usuarios, eso si, siempre manteniendo la privacidad del usuario.
11+
De hecho, uno de los puntos fuertes de este proyecto consiste en aprovechar la mayor parte de utilidad de las aplicaciones web. Aunque en las anteriores versiones la pretensión era sobre todo didáctica en materia relacionada con el estudio de los procesos del lenguaje, ahora a demás de eso también queremos llegar a poder saber la utilidad que se le da a Thoth. Para ello gracias al registro de información sobre los usuarios podremos saber cuando se ha registrado alguien, o iniciado sesión, que gramáticas ha usado y más funcionalidades que puedan surgir. Eso si, siempre manteniendo la privacidad del usuario.
1212

13-
Para lograr además que el acceso sea sencillo y cómodo para el usuario final, pretendemos alojar el programa en un servidor, con lo que el rango de alcance sería como menos que de el mundo entero, independientemente del país o el idioma ya que cuenta con la propiedad de poder traducir los textos a algunos de los idiomas más comunes. El objetivo es siempre que el usuario se sienta cómodo usando la aplicación.
13+
Por último objetivo está el de experimentar con herramientas que no conocemos, y de esta forma ir aprendiendo a solucionar problemas nuevos. Al fin y al cabo lo que se trata de aprender en la universidad es a aprender a superar estos retos por uno mismo, aplicando las técnicas que se nos enseñan.

plantillaLatex-master/tex/3_Conceptos_teoricos.aux

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,25 @@
22
\providecommand\hyper@newdestlabel[2]{}
33
\citation{aho1986compilers}
44
\@writefile{toc}{\contentsline {chapter}{Conceptos te\IeC {\'o}ricos}{5}{chapter*.6}}
5-
\@writefile{toc}{\contentsline {section}{\numberline {3.1}\IeC {\textquestiondown } Qu\IeC {\'e} es una gram\IeC {\'a}tica y para qu\IeC {\'e} sirve?}{5}{section.3.1}}
6-
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Cifrado de contrase\IeC {\~n}as y seguridad en Thoth Web}{7}{section.3.2}}
7-
\@writefile{toc}{\contentsline {subsection}{Funcionamiento del algoritmo hash}{7}{section*.7}}
8-
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Aplicaci\IeC {\'o}n de la funci\IeC {\'o}n hash a diferentes datos introducidos.}}{8}{figure.3.1}}
9-
\newlabel{fig:3.1}{{\M@TitleReference {3.1}{Aplicaci\IeC {\'o}n de la funci\IeC {\'o}n hash a diferentes datos introducidos.}}{8}{Aplicación de la función hash a diferentes datos introducidos}{figure.3.1}{}}
10-
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Ejemplo de ataque con tablas de b\IeC {\'u}squeda.}}{9}{figure.3.2}}
11-
\newlabel{fig:3.2}{{\M@TitleReference {3.2}{Ejemplo de ataque con tablas de b\IeC {\'u}squeda.}}{9}{Ejemplo de ataque con tablas de búsqueda}{figure.3.2}{}}
12-
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Resultado de aplicar tablas de b\IeC {\'u}squeda al cifrado hash con semilla.}}{9}{figure.3.3}}
13-
\newlabel{fig:3.3}{{\M@TitleReference {3.3}{Resultado de aplicar tablas de b\IeC {\'u}squeda al cifrado hash con semilla.}}{9}{Resultado de aplicar tablas de búsqueda al cifrado hash con semilla}{figure.3.3}{}}
5+
\@writefile{toc}{\contentsline {section}{\numberline {3.1}\IeC {\textquestiondown }Qu\IeC {\'e} es una gram\IeC {\'a}tica y para qu\IeC {\'e} sirve?}{5}{section.3.1}}
6+
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Tipos de gram\IeC {\'a}ticas }{7}{section.3.2}}
7+
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Cifrado de contrase\IeC {\~n}as y seguridad en Thoth Web}{9}{section.3.3}}
8+
\@writefile{toc}{\contentsline {subsection}{Funcionamiento del algoritmo hash}{9}{section*.7}}
9+
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Aplicaci\IeC {\'o}n de la funci\IeC {\'o}n hash a diferentes datos introducidos. \url {https://blog.kaspersky.com.mx/que-es-un-hash-y-como-funciona/2806/}}}{10}{figure.3.1}}
10+
\newlabel{fig:3.1}{{\M@TitleReference {3.1}{Aplicaci\IeC {\'o}n de la funci\IeC {\'o}n hash a diferentes datos introducidos. \url {https://blog.kaspersky.com.mx/que-es-un-hash-y-como-funciona/2806/}}}{10}{Aplicación de la función hash a diferentes datos introducidos. \url {https://blog.kaspersky.com.mx/que-es-un-hash-y-como-funciona/2806/}}{figure.3.1}{}}
11+
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Ejemplo de ataque con tablas de b\IeC {\'u}squeda. Imagen sacada de \url {https://crackstation.net/}}}{11}{figure.3.2}}
12+
\newlabel{fig:3.2}{{\M@TitleReference {3.2}{Ejemplo de ataque con tablas de b\IeC {\'u}squeda. Imagen sacada de \url {https://crackstation.net/}}}{11}{Ejemplo de ataque con tablas de búsqueda. Imagen sacada de \url {https://crackstation.net/}}{figure.3.2}{}}
13+
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Resultado de aplicar tablas de b\IeC {\'u}squeda al cifrado hash con semilla. Imagen sacada de \url {https://crackstation.net/}}}{11}{figure.3.3}}
14+
\newlabel{fig:3.3}{{\M@TitleReference {3.3}{Resultado de aplicar tablas de b\IeC {\'u}squeda al cifrado hash con semilla. Imagen sacada de \url {https://crackstation.net/}}}{11}{Resultado de aplicar tablas de búsqueda al cifrado hash con semilla. Imagen sacada de \url {https://crackstation.net/}}{figure.3.3}{}}
1415
\citation{wiki:latex}
1516
\citation{koza92}
16-
\@writefile{toc}{\contentsline {subsection}{Subsecciones}{10}{section*.8}}
17-
\@writefile{toc}{\contentsline {subsubsection}{Subsubsecciones}{10}{section*.9}}
18-
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Referencias}{10}{section.3.3}}
19-
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Im\IeC {\'a}genes}{10}{section.3.4}}
20-
\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces Aut\IeC {\'o}mata para una expresi\IeC {\'o}n vac\IeC {\'\i }a}}{11}{figure.3.4}}
21-
\newlabel{fig:escudoInfor}{{\M@TitleReference {3.4}{Aut\IeC {\'o}mata para una expresi\IeC {\'o}n vac\IeC {\'\i }a}}{11}{Autómata para una expresión vacía}{figure.3.4}{}}
22-
\@writefile{toc}{\contentsline {section}{\numberline {3.5}Listas de items}{11}{section.3.5}}
23-
\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Herramientas y tecnolog\IeC {\'\i }as utilizadas en cada parte del proyecto}}{12}{table.3.1}}
24-
\newlabel{tabla:herramientasportipodeuso}{{\M@TitleReference {3.1}{Herramientas y tecnolog\IeC {\'\i }as utilizadas en cada parte del proyecto}}{12}{Herramientas y tecnologías utilizadas en cada parte del proyecto}{table.3.1}{}}
25-
\@writefile{toc}{\contentsline {section}{\numberline {3.6}Tablas}{12}{section.3.6}}
17+
\@writefile{toc}{\contentsline {subsection}{Subsecciones}{12}{section*.8}}
18+
\@writefile{toc}{\contentsline {subsubsection}{Subsubsecciones}{12}{section*.9}}
19+
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Referencias}{12}{section.3.4}}
2620
\@setckpt{./tex/3_Conceptos_teoricos}{
2721
\setcounter{page}{13}
2822
\setcounter{equation}{0}
29-
\setcounter{enumi}{2}
23+
\setcounter{enumi}{0}
3024
\setcounter{enumii}{0}
3125
\setcounter{enumiii}{0}
3226
\setcounter{enumiv}{0}
@@ -37,7 +31,7 @@
3731
\setcounter{book}{0}
3832
\setcounter{part}{0}
3933
\setcounter{chapter}{3}
40-
\setcounter{section}{6}
34+
\setcounter{section}{4}
4135
\setcounter{subsection}{0}
4236
\setcounter{subsubsection}{0}
4337
\setcounter{paragraph}{0}
@@ -72,18 +66,18 @@
7266
\setcounter{bsm@mctr}{0}
7367
\setcounter{workm@mctr}{0}
7468
\setcounter{sheetsequence}{23}
75-
\setcounter{lastsheet}{31}
76-
\setcounter{lastpage}{21}
77-
\setcounter{figure}{4}
69+
\setcounter{lastsheet}{32}
70+
\setcounter{lastpage}{22}
71+
\setcounter{figure}{3}
7872
\setcounter{lofdepth}{1}
79-
\setcounter{table}{1}
73+
\setcounter{table}{0}
8074
\setcounter{lotdepth}{1}
8175
\setcounter{PWSTtable}{0}
82-
\setcounter{Item}{2}
76+
\setcounter{Item}{0}
8377
\setcounter{Hfootnote}{1}
8478
\setcounter{memhycontfloat}{0}
8579
\setcounter{Hpagenote}{0}
86-
\setcounter{bookmark@seq@number}{12}
80+
\setcounter{bookmark@seq@number}{10}
8781
\setcounter{parentequation}{0}
8882
\setcounter{section@level}{1}
8983
}

0 commit comments

Comments
 (0)