Skip to content

Commit f5213fe

Browse files
Written conclusions and future lines of work + added license #225
1 parent 97e7c8f commit f5213fe

File tree

7 files changed

+90
-3
lines changed

7 files changed

+90
-3
lines changed

docs/anexos.pdf

31.1 KB
Binary file not shown.

docs/anexos.tex

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,4 +465,20 @@
465465
\bibliographystyle{plain}
466466
\bibliography{bibliografiaAnexos}
467467

468+
\newenvironment{bottompar}{\par\vspace*{\fill}}{\clearpage}
469+
470+
\begin{bottompar}
471+
\begin{figure}[h]
472+
\centering
473+
\includegraphics[width=0.55\textwidth]{license}
474+
\end{figure}
475+
476+
477+
\begin{center}
478+
Este obra está bajo una licencia Creative Commons Atribución - No Comercial - Sin Derivadas - 4.0 Internacional
479+
(\href{https://creativecommons.org/licenses/by-nc-nd/4.0/}{CC BY-NC-ND 4.0}).
480+
\end{center}
481+
\end{bottompar}
482+
483+
468484
\end{document}

docs/bibliografia.bib

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,4 +541,6 @@ @misc{ISPyPI
541541

542542
@misc{SSLPyPI, title={Semi-Supervised Learning PyPI}, author={Daniel Puente Ramírez}, year={2022}, url={https://pypi.org/project/SemiSupervisedLearningDNX/}, note={https://pypi.org/project/SemiSupervisedLearningDNX/}}
543543

544-
@misc{UBUMLaaSDocker, title={Contenedor Docker con UBUMLaaS desplegado.}, author={Daniel Puente Ramírez}, year={2022}, url={https://is.gd/cVe0DP}, note={https://is.gd/cVe0DP}}
544+
@misc{UBUMLaaSDocker, title={Contenedor Docker con UBUMLaaS desplegado.}, author={Daniel Puente Ramírez}, year={2022}, url={https://is.gd/cVe0DP}, note={https://is.gd/cVe0DP}}
545+
546+
@inbook{shvets2021, place={Kyiv, Kyiv}, edition={3rd}, title={Behavioral Design Patterns}, booktitle={Dive Into Design Patterns}, publisher={Refactoring.Guru}, author={Shvets, Alexander}, year={2021}, pages={381–392}}

docs/img/license.png

49.9 KB
Loading

docs/memoria.pdf

60.8 KB
Binary file not shown.

docs/memoria.tex

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,4 +509,19 @@
509509
\bibliographystyle{plain}
510510
\bibliography{bibliografia}
511511

512+
\newenvironment{bottompar}{\par\vspace*{\fill}}{\clearpage}
513+
514+
\begin{bottompar}
515+
\begin{figure}[h]
516+
\centering
517+
\includegraphics[width=0.55\textwidth]{license}
518+
\end{figure}
519+
520+
521+
\begin{center}
522+
Este obra está bajo una licencia Creative Commons Atribución - No Comercial - Sin Derivadas - 4.0 Internacional
523+
(\href{https://creativecommons.org/licenses/by-nc-nd/4.0/}{CC BY-NC-ND 4.0}).
524+
\end{center}
525+
\end{bottompar}
526+
512527
\end{document}
Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,58 @@
11
\capitulo{7}{Conclusiones y Líneas de trabajo futuras}
22

3-
Todo proyecto debe incluir las conclusiones que se derivan de su desarrollo. Éstas pueden ser de diferente índole, dependiendo de la tipología del proyecto, pero normalmente van a estar presentes un conjunto de conclusiones relacionadas con los resultados del proyecto y un conjunto de conclusiones técnicas.
4-
Además, resulta muy útil realizar un informe crítico indicando cómo se puede mejorar el proyecto, o cómo se puede continuar trabajando en la línea del proyecto realizado.
3+
En esta última sección se exponen las conclusiones finales recuperadas del proyecto realizado. Además, se añaden las líneas futuras que se pueden seguir para continuar con el desarrollo de las bibliotecas, y/o de \texttt{UBUMLaaS}.
4+
5+
\section{Conclusiones}
6+
Conclusiones a las que se llega posterior al desarrollo del proyecto.
7+
8+
\begin{itemize}
9+
\item Los objetivos del proyecto han sido cumplidos satisfactoriamente.
10+
\begin{itemize}
11+
\item \texttt{IS-SSL}. Ahora se cuenta con dos bibliotecas las cuales proporcionan aquellos algoritmos más comúnmente utilizados en la literatura. Estas son públicas permitiendo que cualquier persona pueda utilizarlas.
12+
\item \texttt{UBUMLaaS.} La aplicación cuenta con soporte para algoritmos de aprendizaje semi-supervisado. Además dispone de una <<parte>> de administración la cuál va a permitir a los usuarios con el rol de administrador ser capaces de no solo conocer el estado del sistema, sino también administrar usuarios y poseer estadísticas en tiempo real, todo ello sin necesidad de acceder a la base de datos <<a mano>>.
13+
\end{itemize}
14+
\item La lectura de artículos científicos ha sido algo totalmente nuevo, siendo necesarias numerosas horas para su interpretación (sobretodo en los primeros), se debe destacar que según se avanzaba en el desarrollo del proyecto, la familiarización con éstos ha sido satisfactoria, permitiendo asimilar e implementar los algoritmos deseados con mayor facilidad.
15+
\item El haber desarrollado los algoritmos de \texttt{IS-SSL} en Python posee las ventajas de poseer multitud de librerías orientadas a operaciones vectoriales y con \textit{DataFrames}, su portabilidad, posee una baja curva de aprendizaje, y que se trata de un lenguaje de alto nivel.
16+
\item Las bibliotecas poseen una estructura la cual permite su escalabilidad, permitiendo que no sea un trabajo cerrado sino que se puedan ampliar y seguir evolucionando.
17+
\item El desarrollo de \texttt{UBUMLaaS} ha permitido ampliar el número de tecnologías conocidas, en un inicio se habían utilizado muy poco la mayor parte de las tecnologías utilizadas para el desarrollo del \textit{frontend}. Pero a la hora de finalizar el trabajo ya se está familiarizado con ello y se posee una confianza y capacidades de desarrollar garantizando una calidad dada.
18+
\item A lo largo del desarrollo del proyecto se han utilizado diferentes herramientas \emph{cloud}, éstas han permitido aumentar la calidad del producto final que se iba obteniendo en sucesivas iteraciones. Se deberían de haber definido en un primer momento antes de comenzar a desarrollar el proyecto, pero algunas de ellas eran desconocidas. Cabe destacar que el esfuerzo extra que ha tenido que ser invertido, en futuros proyectos resultará útil.
19+
\end{itemize}
20+
21+
Como \textbf{conclusión final}, destacar la oportunidad de \emph{aprendizaje} que el desarrollo de este proyecto ha supuesto. Desde el minuto uno se ha requerido dominar ciertas tecnologías vistas (y nuevas) a lo largo de todo el Grado, incluso a la hora de escribir la documentación. El número de horas que el proyecto iba a requerir se conocía desde un primer momento pero el razonamiento inicial de \emph{<<quedan 8 meses por delante, hay tiempo para todo>>}, si bien se ha cumplido (el proyecto se ha terminado antes de las fechas de entrega), la disciplina de trabajo como si fuera un entorno laboral ha sido necesaria.
22+
23+
\section{Líneas de trabajo futuras}
24+
25+
\textbf{\texttt{UBUMLaaS}}, dada la morfología y arquitectura de la aplicación, existen numerosas opciones de mejora o líneas de trabajo futuras.
26+
\begin{itemize}
27+
\tightlist
28+
\item Migración de la aplicación a \texttt{Kubernetes}, permitiendo el despliegue sobre \textit{clusters}. Dada la naturaleza de la aplicación, es una evolución lógica.
29+
\item Aumentar el número de algoritmos soportados, incluyendo su implementación en diferentes lenguajes (actualmente soportados \texttt{IS-SSL}, \texttt{Scikit-Learn} y \texttt{Weka}).
30+
\item Aumentar el conjunto de pruebas de forma que abarquen tanto \textit{backend} como \textit{frontend}.
31+
\item Realizar un proceso de refactorización (únicamente en caso de que el proyecto vaya aumentar sus funcionalidades).
32+
\item Mejoras de \textit{backend}:
33+
\begin{itemize}
34+
\tightlist
35+
\item Soporte de parseo de ficheros mediante URL.
36+
\item Soporte de parseo de ficheros personalizados (separadores, saltos de línea, etc.).
37+
\item Detección de entrenamientos idénticos repetidos con el fin de evitar repetir procesos demasiado largos en CPU.
38+
\item Migración de la ejecución de los entrenamientos a ejecución en GPUs.
39+
\item Proporcionar soporte de ejecución paralela sobretodo en aquellos procesos con validación cruzada.
40+
\end{itemize}
41+
\item Mejoras de \textit{frontend}:
42+
\begin{itemize}
43+
\tightlist
44+
\item Añadir un modo oscuro a la aplicación.
45+
\item Soportar la descarga de históricos y estadísticas, tanto del estado del sistema como de los experimentos en ejecución.
46+
\item Separar el perfil del usuario con sus estadísticas personales, de los conjuntos de datos y experimentos asociados al mismo.
47+
\item Permitir el auto-refresco de la vista cuando un usuario se quede <<esperando>> a que el experimento finalice.
48+
\end{itemize}
49+
\end{itemize}
50+
51+
\textbf{\texttt{IS-SSL}}, el propio diseño de ambas bibliotecas sugiera una posible unión en el futuro, en caso de que se acaben comenzando a utilizar de forma conjunta y facilite su uso.
52+
53+
Para facilitar la aportación de la comunidad a las bibliotecas, se van a definir las convenciones, buenas prácticas, \ldots de forma que la evolución de las bibliotecas mantenga una estructura y un código limpio y sobretodo, \emph{fácil} de mantener. En esta misma línea se va a aplicar el método plantilla~\cite{shvets2021} con el fin de re-estructurar las bibliotecas, permitiendo crear un \texttt{core} común y desacoplar ciertas funcionalidades.
54+
55+
Una de las mejoras que se plantean para realizar a corto/medio plazo es la migración de los algoritmos a \texttt{Cython}, de manera que haya un aumento considerable del rendimiento. Otra opción que se propone es la modificación de los algoritmos para, en aquellas partes soportadas, corran en paralelo tanto mediante hilos, como mediante procesadores lógicos o reales.
56+
57+
\textbf{Investigación.} La investigación no está ni cerca de estar terminada. El campo es muy amplio y quedan muchas preguntas por responder. Una de las principales mejoras que se puede realizar es hacer uso de \textit{Random Forests} en lugar de árboles de decisión, evitando que queden hojas con una única instancia y afecten a la clasificación en el aprendizaje semi-supervisado.
58+

0 commit comments

Comments
 (0)