Academic Theses

Explore doctoral, master, and graduation theses developed and directed within our research laboratory.

PhD
Completed

Métodos y herramientas de desarrollo y evaluación de refactorings para la mejora de la experiencia de usuario en aplicaciones web

Timeline:2018 – 2023
Student:Juan Cruz Gardey
Director:Alejandra Garrido
Co-Director:Gustavo Rossi - Julián Grigera

La experiencia de usuario (UX) es un factor crucial que determina el ´exito de las aplicaciones web. Si bien actualmente se reconoce la importancia de proveer una experiencia de usuario ´optima, las pr´acticas de evaluaci´on y mejora de la UX suelen postergarse. M´as all´a de los recursos necesarios como expertos en UX y usuarios para hacer pruebas, el tiempo requerido por estas pr´acticas es el principal motivo por el cual resulta dif´ıcil integrarlas en los m´etodos ´agiles ampliamente utilizados hoy en d´ıa. Para facilitar la evaluaci´on de la UX, se han desarrollado m´etodos autom´aticos para detectar y solucionar problemas de interacci´on. Uno de los m´etodos propuestos es la t´ecnica de refactoring de usabilidad, la cual se basa en aplicar peque˜nas transformaciones (refactorings) a trav´es scripts ejecutados en el navegador que sin alterar la funcionalidad de la aplicaci´on pretenden mejorar la UX. Sin embargo, esta t´ecnica fue propuesta como una soluci´on autom´atica, en la que los refactorings aparecen como soluciones definitivas sin antes poder validar c´omo impactan en los usuarios. En esta tesis se desarrolla un conjunto de m´etodos y herramientas para dar soporte a los expertos en UX en las tareas de evaluaci´on y mejora de la experiencia de usuario. En primer lugar se presenta un m´etodo para explorar alternativas de dise˜no haciendo uso de la t´ecnica de refactoring. Este m´etodo se desarrolla en una herramienta llamada UX-Painter, mediante la cual un dise˜nador puede crear distintas versiones de una aplicaci´on web utilizando los refactorings para generar los cambios de dise˜no, sin la necesidad de codificarlos. De esta manera, es posible visualizar, validar y evaluar cambios de dise˜no en la misma aplicaci´on web sin que ´estos tengan que ser implementados. Respecto a la evaluaci´on de los dise˜nos, no solo es importante determinar el impacto de un cambio de dise˜no en la experiencia del usuario, sino que adem´as resulta fundamental poder comparar distintas alternativas. Sobre todo porque los refactorings en ciertos casos ofrecen m´as de una soluci´on posible para un mismo problema. Por este motivo, en esta tesis tambi´en se desarrolla una m´etrica denominada esfuerzo de interacci´on que permite evaluar y comparar dise˜nos alternativos en p´aginas web. Se trata de un puntaje asignado por expertos en UX sobre los distintos widgets de una p´agina web, que son aquellos elementos que se ven modificados por los refactorings. Para calcularlo autom´aticamente, se desarrollaron modelos de predicci´on que toman como entrada diferentes logs de interacci´on de usuario que reciben el nombre de micro-medidas. El hecho que la m´etrica sea transparente a los usuarios hace que pueda ser utilizada para evaluar dise˜nos con m´ultiples usuarios en experimentos online como A/B testing o similares. Como prueba de concepto, se implementa UX-Analyzer, una herramienta web que permite calcular y visualizar el esfuerzo de interacci´on de distintas versiones de una aplicaci´on web. Finalmente, una vez que se verifica que ciertos refactorings mejoran la UX, deben ser implementados en la aplicaci´on bajo an´alisis. Para facilitar esta tarea a los desarrolladores, se presenta un mecanismo para generar una implementaci´on preliminar de los refactorings usando como base los frameworks y librer´ıas utilizados actualmente para el desarrollo de interfaces web. El trabajo incluye distintas validaciones que comprueban la aplicabilidad de los desarrollos propuestos para facilitar la mejora de la UX.

#human-computer interaction
#software engineering
PhD
90% Progress

HIVE: Modelo de memoria distribuida compartida basada en Cloud y Edge Computing

Timeline:2017 – 2022
Student:Matias Teragni
Director:Claudia Pons

Los sistemas distribuidos cuentan con múltiples desafíos, clásicamente centrados sobre la capacidad de garantizar la disponibilidad manejando efectivamente el gran conjunto de situaciones adversas y errores que pueden surgir, y aunque existen amplios estudios en el área, estos tienden a centrarse en la construcción de grandes sistemas empresariales ignorando dificultades y posibilidades modernas como el cambio de rol del usuario, y el surgimiento de internet de las cosas (IoT). La construcción de este tipo de sistemas está fuertemente ligada a las limitaciones impuestas por el teorema de Brewer (CAP), y a la hora de diseñarlos se tiende a reducir su complejidad mediante la imposición de limitaciones, tanto de hardware (clústeres homogéneos, redes controladas, etc.) como de software (utilizar lenguajes de programación en particular, limitar el uso de estado, etc.) excluyendo inadvertidamente en el proceso a un creciente número de dispositivos con capacidad de cómputo que se encuentran situadas en los bordes de la red (Edge Computing). Esta tesis describe el diseño, desarrollo, implementación, y validación de un modelo de memoria compartida distribuida integrada de forma transparente a un entorno de ejecución estándar de JavaScript. Para definir dicho modelo se formalizaron construcciones existentes de JavaScript, las cuales posteriormente se extendieron brindando nueva semántica. El modelo extendido facilita el funcionamiento en navegadores modernos sin la necesidad de modificarlos, lo que permite incorporar a los sistemas distribuidos una enorme cantidad de nodos actualmente disponibles (como teléfonos y computadoras personales). El modelo garantiza la sincronización eventual de los datos, y da la posibilidad de aumentar la consistencia en base a tecnologías y estándares preexistentes permitiéndole al programador garantizar la semántica de la aplicación que desea construir. Sobre estas formalizaciones se construyó un prototipo funcional que demuestra empíricamente las características buscadas y su viabilidad técnica, permitiendo vislumbrar los beneficios de esta propuesta. El cambio paradigmático propuesto a la hora de utilizar los abundantes recursos presentes en los bordes de la red permite simplificar la construcción de sistemas de Edge Computing mientras dota de concurrencia a un entorno clásicamente marcado por manejar un único hilo de ejecución. A su vez la viabilidad técnica de la propuesta quedó empíricamente demostrada al mantener tiempos de propagación bajos y lograr integrarse a códigos existentes sin requerir esfuerzos adicionales.

#industry 4.0

Page 8 of 16