Temas de investigación para tesis, tesinas y prácticas

¿Estás buscando un tema de investigación para tu tesina de fin de carrera, tu tesis de maestría o doctorado, o para tu práctica profesional?

Aquí te presentamos brevemente algunos de los temas que te proponen los investigadores del LIFIA, podrás visualizar el nombre del tema y su responsable. Debajo, está ampliada la descripción del mismo. Si alguno te resulta interesante, podes contactarte con el investigador responsable para entablar conversación.

Incluso si un tema puntual no te convence, pero si te interesa un área en general, contactate. Seguro que se puede definir algo de interés mutuo.

Dr. Matías Urbieta

Título
Aplicación de reconocimiento de objetos y técnicas de ML en planos de construcciones para la generación de modelos
Estudio de wallets non-custodian de criptomonedas
IAgro: Soporte a la toma de decisiones (identificación de plagas y enfermedades con redes neuronales en dispositivos móviles)
Lambda a Monolith: Migración semi-automática desde AWS Lambda a microservicios usando LLM
Mocks 2 BPM: Derivación de modelos de procesos de negocio a partir de anotaciones sobre mockups
Single-Page Apps Arch Issues: Problemas arquitectónicos en SPAs (React, Angular, Vue.js)
Refactoring to Lambda: Migración de soluciones monolíticas a arquitecturas lambda

Dr. Leandro Antonelli

Título
Aplicación de NLP e IA para analizar y mejorar la calidad de especificaciones de requerimientos (LEL, Scenarios, User Stories, SRS)

Dr. Sergio Firmenich

Título
Programación por usuarios finales para adaptar, integrar y aumentar aplicaciones web mediante artefactos de client-side adaptation (CSA), sin conocimiento de JavaScript

Dra. Claudia Pons

Título
Técnicas de IA basadas en integración de lógica simbólica y no-simbólica (neuro-simbólica)
IA como asistente en ingeniería de software: reconocimiento de patrones, errores y sugerencias de mejora en diseño/código

Dr. Andrés Rodriguez

Título
HCI-UX + Métodos ágiles: Relación entre diseño de experiencia de usuario y desarrollo ágil de software
HCI + Interacciones hápticas: Diseño de Experiencia Háptica del Usuario (HxD), modelado, prototipado y evaluación de experiencias vibrotáctiles

Mg. Luis Mariano Bibbó

Título
Sistemas colaborativos: Groupware, procesos colaborativos, awareness, coordinación
Modelado – Metamodelado: MDE, transformación de modelos, niveles de abstracción
Derivación de código: Obtención de código a partir de modelos (MDD, rapid development)

Dr. Alejandro Fernandez

TítuloDocentes guía
Ingeniería de software cuántico en la era NISQ: gestión de recursos cuánticos, copilotos IA para desarrollo cuántico, educación en computación cuánticaAlejandro Fernandez, Luis Mariano Bibbó

Dr. Julián Grigera

Título
Detección y reparación automatizada de problemas de usabilidad en aplicaciones web (análisis de logs, refactoring, IA)
Estudio y detección de Dark Patterns en la web

Dr. Diego Torres

Título
Agro-Knowledge Integration: Knowledge graphs, ontologías e interoperabilidad semántica para el dominio agrícola
Gamification and Adaptive Gamification in Collaborative Ecosystems (Crowdsourcing, Citizen Science)
Cientópolis: Observatorio de ciencia ciudadana en Argentina y Latinoamérica

Dra. Alejandra Garrido

Título
AI for Software Engineering (AI4SE): AI-4-Refactoring, AI-generated Technical Debt, Human-centered AI4SE, Developer Experience (DEX)
UX-Driven Development: Monitorización continua de UX en desarrollo ágil, UX Debt, métricas de interacción

Dra. Cecilia Challiol

Título
Abordaje ágil para el diseño empático de software: Design Thinking aplicado a ingeniería de software, técnicas de empatización y prototipado

Dr. Federico Balaguer

Título
Code Caption: Revisiones de código no intrusivas, online/offline con soporte Git
Refactoring hacia Reactive Programming: Catálogo de transformaciones
GIT Inmersivo: Integración de servicios Git en IDEs (tareas, actions/pipelines)
Migración entre Frameworks utilizando Generación de Código Fuente



Investigador: Dr. Matías Urbieta

matias.urbieta@lifia.info.unlp.edu.ar >

Líneas de investigación que dirige:

Aplicación de reconocimiento de objetos y técnicas de ML en planos de construcciones para la generación de modelos

Debido a la extensión de los temas, el detalle de los mismos se encuentra en el siguiente documento:
https://docs.google.com/document/d/1NUsCE3Cmb5Urx–z3IsD-Hm9_BnUUgG_z64OPrnleqc/edit?usp=sharing

Estudio de wallets non-custodian de criptomonedas

Objetivo

Estudiar la aplicabilidad de los patrones de diseño para wallets non-custodian de criptomonedas mediante un estudio empirico. Las wallets non custodian son aquellas que almacenan las claves en el dispositivo y sincronizan las cadenas los bloques localmente a diferencia de wallets custodian que realian estas operaciones en un servidor de terceros.

En este experimento vamos a estudiar la aplicabilidad de ciertos patrones de diseño en diferente tipos de arquitecturas de billeteras electronicas (mobile, o desktop).

Temas

  • Identificación de patrones de UI en wallets. Muchos flujos de interacción se repiten en diferentes wallets. Su análisis y documentación permitirán reutilizar esa experiencia en nuevas wallets que maximicen la experiencia del usuario y reduzcan los riesgos asociados a las mismas (por ejemplo, perdida de claves o transferencias erróneas). Ademas un sitio Web donde se encuentren publicados los patrones va a ayudar a la promoción de los mismos.
  • Diseñar un experimento para ser realizado con desarrolladores. El experimento deberá respetar los protocolos de Wholin o Juristo de buenas prácticas de experimentación.
    Llevar adelante el experimento con al menos 20 alumnos
    Estudiar la correctitud de la utilización de los patrones en una aplicación tipo wallet. Para ello se deberán aplicar tecnicas quantitativas y qualitativas de análisis de datos.

Tecnologias a utilizar

El experimento sera realizado con Zcash, monero y Bitcoin. El lenguaje de programación para el experimento probablemente sea Java.

  • Soporte a la toma de decisiones

IAgro: En el contexto de la asistencia a la toma de decisiones en el agro, nos encontramos estudiando formas de dar soporte al negocio. Puntualmente, estamos trabajando en la identificación de plagas y enfermedades utilizando reconocimiento de objetos con redes neuronales que corren en dispositivos móviles.

Objetivo:

1 – Estudiar la problemática de analizar distintos tipos de vegetales. No es lo mismo procesar enfermedades en un tomate ya que el contraste del tomate con el daño sobre el fruto es muy alto que procesar una lechuga.

2 – Analizar de forma similar distintos tipos de plagas y enfermedades.

Punto de partida: Actualmente ya disponemos de una plataforma que resuelve los casos básicos mencionados anteriormente.

  • Lambda a Monolith

El uso sin control de expresiones lambda en soluciones basadas en arquitecturas cloud puede llevar a incurrir altos costos de infraestructura. A partir del estudio de comportamiento de este tipo de servicios Function As A Service (FASS), hemos encontrado que existe un punto de quiebre en donde resulta económicamente conveniente el uso de una solución basada en servidores dedicados. Los resultados se encuentran publicados en esta tesis (link) del alumno Casaburi
Temas:

  • Se propone replicar las pruebas reportadas en la tesis sobre infraestructura Azure y/o Google Cloud para confirmar el punto de inflexión de costos.
  • A partir de un framework de refactoring basado en LLM poder realizar migraciones semi-automáticas desde código AWS Lambda (Javascript) a microservicios (u otro tipo de solución) que sea basada en Infrastructure as Service (por ejemplo servidores dedicados como S2) .
  • Mocks 2 BPM

El concepto proceso de negocio está estrechamente vinculado a la forma en la que una organización gestiona sus operaciones. Conocer y comprender las operaciones de una organización es un punto clave que se debe tener presente dentro del proceso de desarrollo de software. A su vez, las metodologías ágiles proponen la captura de requerimientos usando prototipos de interfaz de usuario denominados Mockups. Los usuarios finales pueden comprender fácilmente dichos prototipos y realizar anotaciones sobre los mismos.  Existe una brecha entre la formalidad de los modelos de procesos de negocio y la captura de requerimientos utilizando Mockup.

Bajo la  idea de que los mockups representan parte de un proceso de negocio, en esta línea trabajaremos en cómo reducir esa brecha utilizando anotaciones sobre mockups y procesamiento de lenguaje natural para derivar modelos de procesos de negocio.

  • Single-Page apps arch issues

Como bien saben las SPA (basadas en React, Angular o Vue.js) son aplicaciones que instancian una arquitectura cliente (navegador) y servidor (el que expone los microservicios). Dado que existen requerimientos que es conveniente implementarlos en la interfaz de usuario, tal como la validación de campos en formularios, el mismo requerimiento debe ser implementado en el servidor. Si esto no fuese así, es decir la validación solo se presenta en la vista, se podrían realizar request al servidor por fuera de la interfaz y manipular los datos de la base de datos.

1- estudiar el estado del arte respecto al problema.

2- relevar casos de la vida real.

3- plantear una solución al problema.

  • Refactoring to lambda

Hoy en dia, los grandes prestadores de infraestructura web brindan diferentes tipos de alternativas para alojar soluciones que van desde servidores dedicados a la combinación API manager mas expresiones lambda. Aunque el servicio de expresiones lambda es mas costoso, la realidad es que los servidores privados son raramente utilizados mas de un 10%. En este trabajo se analizará como migrar soluciones monoliticas (spring, Django,etc.) a una solución lambda.

Investigador: Dr. Leandro Antonelli

<lanto@lifia.info.unlp.edu.ar>

Palabras claves de su línea de investigación: Requerimientos, procesamiento del lenguaje natural, LEL y Scenarios.

Descripción de su líneas de investigación:

La ingenieria de requerimientos es un area clave que vincula dos mundos: el mundo de usuarios / expertos y el mundo del desarrollo de software. Ambos mundos tienen su lenguaje y su dinámica. Para que el software a desarrollar cumpla su objetivo, la especificación de requerimientos (sea un documento formal como una SRS o productos mas light como User Stories) debe ser precisa y entendible por estos dos mundos. Sin embargo, no es una tarea sencilla. Además, los errores en la especificación se pagan caros. Cualquier error requiere de un esfuerzo adicional para corregirlo. Es por eso que es importante dedicarle tiempo y esfuerzo a producir especificaciones de calidad.  

LEL y Scenarios son dos productos que se complementan. El LEL es un glosario que define el lenguaje del dominio, mientras que los Scenarios describen la dinámica del dominio. El LEL define el lenguaje que los Scenarios utilizan, y en los Scenarios surgen necesidades de definir o aclarar ciertas expresiones. 

Las herramientas de IA en particular de procesamiento de lenguaje natural han desarrollado grandes capacidades que se pueden aplicar a las especificaciones (nuevamente, pueden ser SRS completas o User Stories individuales) para analizar su calidad, estructurar la información, inferir dudas o falta de precision, etc… 

Investigador: Dr. Sergio Firmenich

<sergio.firmenich@lifia.info.unlp.edu.ar >

Palabras claves de su línea de investigación: Augmentación, Adaptación del lado del cliente; Programación por parte de usuarios finales.

Descripción de su líneas de investigación:

 La Web es una plataforma natural para la programación por parte de usuarios finales, dada la relevancia que tienen las aplicaciones Web en la vida diaria de los usuarios y también por diferentes muestras de cómo las aplicaciones existentes pueden no satisfacer sus requerimientos. Frente a esta situación, ha emergido una nueva tendencia a partir de la cual los usuarios pueden utilizar software externo para adaptar las aplicaciones Web existentes y de terceros, cuando estas no cumplen sus requerimientos. Esto es conseguido, generalmente, alterando el DOM (Document Object Model) de las páginas cargadas en el cliente mediante la ejecución de scripts. 

Actualmente grandes comunidades de usuarios desarrollan y/o utilizan este tipo de artefactos para mejorar su experiencia en la Web en algún sentido. Como técnica, CSA puede ser aplicada con diversos objetivos. Esta linea de trabajo se enfoca en mecanismos que permitan a los usuarios finales generar sus propios artefactos de adaptación, integración o augmentación, aumentando su independencia respectos los desarrolladores que colaboran en las comunidades existentes. En este sentido, se propone tomar como base los resultados obtenidos hasta el momento para potenciar a los usuarios finales para que, sin conocimiento de lenguajes de programación como JavaScript, puedan crear los artefactos que satisfagan distintos tipos de requerimientos. 

Investigadora:  Dra. Claudia Pons

<cpons@info.unlp.edu.ar>

Líneas de investigación que dirige:

  • Técnicas de Inteligencia artificial basadas en una integración de la lógica simbólica y no-simbólica

Objetivo general: El objetivo general es contribuir a la evolución de la inteligencia artificial  a través de la combinación de los conceptos y métodos de dos enfoques predominantes pero muy diferentes entre sí: la IA simbólica, que está inspirada en la lógica matemática y se basa en la  manipulación de representaciones lingüísticas abstractas, por un lado y la IA no simbólica, que se centra en la construcción de  modelos matemáticos predictivos a partir de grandes conjuntos de datos de muestra, por otro lado.

Significativamente, las deficiencias de cada uno de estos enfoques se alinean con las fortalezas del otro, lo que sugiere que una integración entre ellos sería beneficiosa. Una síntesis satisfactoria de inteligencia artificial  simbólica y no- simbólica nos daría las ventajas de ambos mundos.

Objetivo específico: Definir y construir una estructura conceptual capaz de incorporar ideas relevantes de la lógica simbólica en un marco de aprendizaje automático. En particular esta estructura contribuirá a soportar los  conceptos de composicionalidad, generalización e interpretabilidad.

  • Inteligencia Artificial como asistente en la ingeniería de software

Objetivo: Aplicar técnicas de IA, en particular machine learning y lógica para desarrollar herramientas que asistan en la construcción de software.

Por ejemplo para las siguientes tareas:

  • reconocimiento de patrones de diseño/código.
  • reconocimiento de errores o fallas en un diseño/código.
  • sugerencias de mejoras en un diseño/código.

Investigador: Dr. Andres Rodriguez

<andres.rodriguez@lifia.info.unlp.edu.ar >

Palabras claves de su línea de investigación: Interacción Humano-Computador (HCI); Experiencia de Usuario (UX), Diseño de Interacciones Hápticas.

Líneas de investigación:

  • HCI-UX + Métodos ágiles

Buscamos conocer y caracterizar las relaciones que se establecen entre los procesos y métodos para el diseño de la Experiencia de Usuario (basado fundamentalmente en el pensamiento de diseño y el desarrollo centrado en las personas) y la organización de construcción de software según el manifiesto ágil. 

  • HCI +  Interacciones hápticas

La interacción háptica es aquella que ofrece al usuario algún tipo de estimulación programada sobre sus capacidades táctiles y de movimiento, como las vibraciones incluidas en dispositivos móviles o controladores de juegos.  En LIFIA estamos investigando sobre el diseño de la Experiencia Háptica del Usuario (HxD). Buscamos comprender el proceso de diseño UX cuando incluye efectos hápticos (generalmente como parte de estímulos multisensoriales) y generar herramientas que den soporte a las tareas de modelado, prototipado y evaluación de experiencias vibrotáctiles. 

Para realizar Prácticas Profesionales Supervisadas ofrecemos proyectos de construcción de dispositivos de instrumental de bajo costo con software y hardware open source para realizar experimentos y soportar actividades de cátedra sobre háptica. En algunos casos es necesaria una adaptación del diseño original a los componentes disponibles en nuestro ámbito y la programación de librerías para controladores compatibles con el ecosistema Arduino.

Investigador: Mg. Luis Mariano Bibbó

lmbibbo@gmail.com >

Líneas de investigación que dirige:

  • Sistemas colaborativos

Palabras claves: Groupware, Procesos Colaborativo, Awareness, Protocolos, Coordinación, Colaboración.

Descripción: Los sistemas colaborativos permiten que un conjunto de usuarios se comuniquen, compartan información y coordinen actividades. Estos sistemas no contemplan a un usuario en particular sino que atiende las necesidades del grupo. En la actualidad estamos viviendo una exploción de herramientas de trabajo colaborativo por el tema de la Pandemia de Covid-19. 

Estos sistemas se caracterizan por controlar tres conceptos principales. Por un lado, soportan la comunicación entre los participantes, ya que los usuarios pueden estar en diferentes sitios y necesitan comunicarse. Por otro, soportan la colaboración que implica que el sistema mantiene un conjunto de datos compartidos y que los usuarios pueden modificar. Finalmente, la coordinación, donde se define el orden en que los usuarios pueden participar. 

La coordinación se describe a través de procesos colaborativos, que determinan en qué orden se llevan adelante las actividades colaborativas, y los protocolos para definir qué acciones concretas pueden realizar los roles dentro de cada actividad. Para lograr una efectiva colaboración los usuarios tienen que estar informados sobre las acciones que los otros participantes realizan en el ambiente y cómo esas acciones afectan el entorno de trabajo. Esa información que brinda el sistema, se llama: “awareness”.

Impacto de esta investigación: El estudio de los sistemas colaborativos se aplica a diversas áreas disciplinas. Tengamos en cuenta que se aplican a diversas disciplinas que van desde: Trabajo Colaborativo (por ejemplo los que se utilizan en Home Office), Educación a Distancia (Entornos para Enseñar y Aprender), Juegos en Red, Aplicaciones para la toma de decisiones.

  • Modelado – Metamodelado (Diferentes Dominios):

Palabras Claves: Modelado, Transformación de Modelos, Niveles de Abstracción, MDE (Ingeniería dirigida por Modelos), Metamodelado

Descripción: Desde el punto de vista de la ingeniería de software, las herramientas que los diseñadores usan para construir sistemas complejos, deben permitir describirlos de manera precisa, concisa y amigable. En esta línea, existen paradigmas que ponen el foco en la construcción de modelos que expresan las características de los sistemas y que tienen una vinculación con la implementación en distintas plataformas. Este es el caso de MDE (Model Driven Engineering) que apunta a mejorar la productividad a través del reuso de modelos estandarizados y que a través de transformaciones de modelos, permite obtener otros modelos o versiones ejecutables de los modelos iniciales.

Una de las principales ventajas del paradigma MDE es la mejora en la productividad en los proyectos de desarrollo de software, ya que el foco está en el desarrollo de un modelo abstracto y a partir de él se obtienen los modelos más concretos que son generados a través de transformaciones. Por supuesto, es necesario que alguien defina la transformación, que es una tarea difícil y especializada. Pero esa transformación necesita ser definida sólo una vez, y puede ser aplicada en el desarrollo de muchos sistemas.

Impacto de esta investigación: El estudio de la construcción de Modelos y Metamodelos es muy útil para la construcción de una Factoría de Software para dominios específicos. Por ejemplo el caso de Juegos en Red, Software para Salud, Bancos o Educación.

  • Derivación de Código

Palabras Claves: Rapid Development, Transformación de Modelos, Derivación de Modelo a Modelo, Transformación de Modelo a Texto. MDD (Desarrollo dirigido por Modelos).

Descripción: EL objetivo es el de producir sistemas de alta calidad con rapidez, principalmente mediante el uso obtención de código a partir de Modelos. Esto se traduce en la construcción de prototipos y promueve el uso de herramientas de desarrollo computarizadas. Estas herramientas pueden incluir constructores de Interfaz gráfica de usuario (GUI), Computer Aided Software Engineering (CASE), los sistemas de gestión de bases de datos (DBMS), lenguajes de programación de cuarta generación, generadores de código, y técnicas orientada a objetos.

Impacto de esta investigación: Esta investigación mejora la producción de software, mejora el mantenimiento del software. También alienta la producción de prototipos y la construcción evolutiva de software.

Investigador: Dr. Alejandro Fernandez

(en conjunto con el Dr. Luis Mariano Bibbo)

<alejandro.fernandez@lifia.info.unlp.edu.ar>

Ingeniería de software cuántico

La ingeniería de software cuántico es un área emergente que busca aplicar los principios y métodos de la ingeniería de software al desarrollo de programas que se ejecutan en computadoras cuánticas. A diferencia del software clásico, el desarrollo de software cuántico se enfrenta a desafíos particulares: los dispositivos actuales son limitados y ruidosos (la llamada era NISQ, Noisy Intermediate-Scale Quantum), existen múltiples tecnologías de hardware con características muy diferentes, y las herramientas de desarrollo evolucionan rápidamente. Esto plantea nuevos desafíos relacionados con el diseño de algoritmos cuánticos, la gestión de recursos del hardware, la verificación y depuración de programas cuánticos, así como la integración entre componentes clásicos y cuánticos en sistemas híbridos. En este contexto, la ingeniería de software cuántico busca desarrollar metodologías, herramientas y buenas prácticas que permitan construir software cuántico más robusto, reutilizable y mantenible.

Los temas que se propondrán como trabajos finales de licenciatura, tesis de maestría o tesis doctorales se enmarcarán en las líneas centrales del proyecto de investigación “Ingeniería de Software Cuántico en la Era NISQ: Recursos, Copilotos y Educación”. En particular, el proyecto se organiza alrededor de tres ejes principales: (1) gestión de recursos cuánticos en la era NISQ, que estudia cómo caracterizar y utilizar eficientemente los recursos disponibles en dispositivos cuánticos actuales; (2) copilotos basados en inteligencia artificial para el desarrollo de software cuántico, orientados a asistir tareas como generación, explicación, migración y refactorización de código cuántico; y (3) soporte a los procesos de enseñanza y aprendizaje de la computación cuántica, mediante el desarrollo de herramientas, materiales y entornos que faciliten la formación de nuevos investigadores y profesionales en el área. Estas líneas combinan investigación conceptual con el desarrollo de prototipos de software y su validación experimental.

El trabajo en este proyecto requiere y desarrolla un conjunto de capacidades centrales provenientes de distintas áreas de la informática. Entre ellas se destacan el álgebra y las bases matemáticas de la computación cuántica, la ingeniería de software (arquitectura, diseño, refactorización, calidad de software), el análisis y diseño de algoritmos, el análisis de complejidad, y el uso de técnicas de inteligencia artificial aplicadas a la generación y análisis de código. En consecuencia, se espera que los estudiantes interesados en realizar su tesis en estas líneas hayan cursado (y tengan interés en profundizar) asignaturas relacionadas con estas áreas, ya que constituyen la base conceptual y técnica sobre la cual se desarrollarán los distintos trabajos de investigación.

Investigador: Dr. Julián Grigera

julian.grigera@lifia.info.unlp.edu.ar

Descripción de sus líneas de investigación:

Detección y reparación automatizada de problemas de usabilidad en aplicaciones web

Esta línea de investigación consiste en detectar problemas de usabilidad web a través del análisis de logs de interacción, y también en sugerir y aplicar soluciones para estos mediante refactoring. Si bien existen trabajos que ya abordan este problema (referencia1referencia2), se abren a partir de ellos diferentes líneas para extenderlos o superar actuales limitaciones:

  •  Análisis de perfiles de usuario mediante logs de interacción (referencia3referencia4)
  •  Uso de Inteligencia Artificial como alternativa para predecir aspectos de usabilidad/UX (referencia5)
  •  Incorporar la detección anticipada de problemas de usabilidad en los procesos de desarrollo ágiles (referencia6)
  • Estudio y detección de Dark Patterns en la web

Investigador: Dr. Diego Torres

diego.torres@lifia.info.unlp.edu.ar >

Palabras claves de su línea de investigación: Gamification, Sistemas Colaborativos, Semantic Web, Knowledge Graphs, Knowledge Graph Embedding, Citizen Science, Interoperabilidad.

Descripción de su líneas de investigación:

Línea 1: Agro-Knowledge Integration

Teniendo en cuenta la heterogeneidad de las fuentes de datos y el carácter multidisciplinario de los dominios, propondremos una formalización calculable de los modelos. Ampliaremos los lenguajes formales existentes, las herramientas de modelización matemática y del conocimiento. Uno de los enfoques seleccionados para alcanzar el objetivo propuesto es el uso del marco de análisis de conceptos formales (FCA). El FCA es una herramienta útil y poderosa para describir formalmente los vínculos entre los objetos y los atributos que comparten (representados en una tabla binaria llamada “contexto formal”), en particular entre los objetos portadores de conocimiento. Este método se basa en la Teoría de Redes, que puede utilizarse para resolver problemas de reutilización del conocimiento entre los sistemas de los actores.

La heterogeneidad de los dominios implica el uso de las técnicas de evaluación de la interoperabilidad semántica para que el intercambio de conocimientos sea coherente.

Objetivos específicos:

  • Diseñar y definir una representación formal de las reglas y restricciones. La solución ontológica parece ser el mejor camino a elegir debido a los diferentes recursos formales existentes.
  • Un gráfico de conocimiento agrícola que permite estructurar, almacenar, visualizar y explorar los datos, la información y los conocimientos procedentes de fuentes diferentes y heterogéneas. Entre esas fuentes figuran, por ejemplo, los datos de los agricultores, los depósitos de datos abiertos proporcionados por el proyecto y los depósitos de datos adicionales que se han de identificar.
  • Definir un conjunto de reglas para extraer automáticamente la base de conocimientos semánticos de recursos heterogéneos como documentos semiestructurados, bases de datos o redes sociales.
  • Desarrollar y desplegar algoritmos de alineación ontológica para las regulaciones y restricciones en diferentes dominios de conocimiento, basados en el enfoque de análisis de concepto relacional.
  • Proporcionar una representación gráfica del conocimiento que permita alineaciones semánticas de diferentes dominios de conocimiento
  • Proponer un modelo para la detección y caracterización de regulaciones contradictorias e incoherentes
  • Proponer y diseñar mecanismos para consultar las alineaciones semánticas
  • El metamodelismo que se aplica a las reglas propone interfaces de información de visualización según las preferencias del usuario
  • Desarrollar y desplegar mecanismos para interactuar con el modelo de conocimiento a través de la consulta y el descubrimiento de conocimientos
  • Desarrollar un meta-modelo para las regulaciones para usar como una guía formal para los dominios específicos modelos formales
  • Estimular la colaboración entre los equipos que participan en este proyecto, que son complementarios.
  • Proponer interfaces de información de visualización según las preferencias del usuario
  • Un Marco de Interoperabilidad Agrícola (MIA) normalizado que define un marco normalizado, habilitadores y medios para lograr un alto nivel de interoperabilidad de los diferentes sistemas. Los agricultores y otros interesados pertinentes pueden entonces elegir la combinación más apropiada de instrumentos de diferentes proveedores.
  • Módulo de intercambio de conocimientos. Proporciona el intercambio de conocimientos e información sobre actividades agrícolas entre las actividades anteriores.

Línea 2: Gamification and Adaptive Gamification in Collaborative Ecosystem (e.g. Crowdsourcing, Citizen Science, Social Machines)

El objetivo general de este proyecto es generar herramientas que adapten el juego en proyectos de crowdsourcing.

A medida que se plantean objetivos específicos:

  • Desarrollar una herramienta de software que permita insertar mecanismos de ludificación a una aplicación de crowdsourcing u otro tipo de sistemas de colaboración.
  • Desarrollar un mecanismo para adaptar y personalizar la experiencia de juego previa a cada persona, teniendo en cuenta el perfil, la interacción con la herramienta y el contexto de uso.
  • Las líneas están diseñadas para utilizar descripciones y perfiles de comunidades y ecosistemas de colaboración, la interoperabilidad entre comunidades, la interferencia de los conocimientos en los ecosistemas y el uso de la máquina de aprendizaje.
  • Gamificación y gamificación adaptativa en ecosistemas de colaboración (por ejemplo, crowdsourcing, ciencia ciudadana, máquinas sociales) [editar]
  • El objetivo general de este proyecto es generar herramientas que adapten el juego en proyectos de crowdsourcing.

Línea 3: Cientópolis

Cientopolis es un observatorio de proyectos de ciencia ciudadana en Argentina y en Latinoamérica. En este sentido, los objetivos del proyecto están relacionados con el estudio de las comunidades de ciencias ciudadanas, en el que aparecen varias cuestiones relacionadas con la colaboración, el crowdsourcing, el intercambio de conocimientos, los desafíos de la gobernanza y también aspectos de la gamificación.

Dado que el proyecto se enmarca en la investigación en ciencias de la computación y específicamente en la ingeniería de software, invitamos a los candidatos a tesis de posgrado a desarrollar sus proyectos en algunos, pero no limitados a, aspectos:

  • la gamificación en la ciencia ciudadana.
  • perfil de usuario en comunidades complejas.
  • conservación de datos
  • perfil de las comunidades
  • detección de patrones y buenas prácticas en el conocimiento científico en una red de colaboración.

Investigadora: Dra. Alejandra Garrido

garrido@lifia.info.unlp.edu.ar

Palabras claves de su línea de investigación: Software Evolution; Refactoring; User Experience (UX); UX Refactoring; Technical Debt (TD); UX Debt; Human-Centered Software Engineering; Artificial Intelligence for Software Engineering (AI4SE); Software Repository Mining; Agile Methods; Design Patterns; Accessibility.

Descripción de sus líneas de investigación:

Línea: Artificial Intelligence for Software Engineering (AI4SE)

Esta línea de investigación tiene como objetivo explorar las ventajas y desventajas de la integración de técnicas de inteligencia artificial generativa en el desarrollo de software, con especial énfasis en la evolución del software. 

Dentro de esta línea encontramos:

1- AI in Software evolution: utilización de grandes modelos de lenguaje y su relación con diferentes atributos de calidad del software y su evolución.

  • AI-4-Refactoring: desarrollar sistemas de recomendación inteligente de refactorings que sean robustos, coherentes y seguros. Esto implica poder medir y analizar diferentes aspectos de las recomendaciones como el grado de alucinación, la validez semántica, la utilidad, y la seguridad en términos de preservación del comportamiento.
  • AI-generated-TD: cuando se utilizan grandes modelos de lenguaje (LLMs) para la generación automática de código, si los modelos fueron entrenados con código de baja calidad, existe una probabilidad bastante alta de que el código generado replique malas decisiones de diseño y contenga gran cantidad de code smells. Esto redundará en la acumulación de Deuda Técnica (TD) y un grado de mantenibilidad decreciente en los sistemas. Resulta necesario entonces cuantificar y analizar la  TD del código generado por diferentes modelos de lenguaje.

2- Human-centered AI4SE: cómo pueden los miembros de un equipo de desarrollo trabajar de manera sinérgica con agentes de IA. Análisis y mejora de la UX desde el punto de vista de los desarrolladores. La investigación se desarrolla en conjunto con el Dr. Juan Cruz Gardey y el Dr. Andrés Rodriguez.

  •  Developer Experience (DEX): UX de los desarrolladores como usuarios de ambientes de desarrollo (IDEs). Cómo se define la DEX en IDEs potenciadas con IA. Cómo debe ser la DEX que lleve al desarrollar hacia un rol de mayor nivel cognitivo, es decir, enfocado en la toma de decisiones arquitectónicas, la ética y calidad del software, y la comprensión del dominio del negocio.
  • Medición de DEX: cómo identificar atributos de DEX y cuantificar problemas relacionados a la DEX en el contexto de IA Generativa. 
  • Mejora de DEX: así como hemos definido en el pasado el concepto de “UX refactoring”, es decir, cómo aplicar refactoring en aplicaciones web para mejorar la UX, queremos estudiar la posibilidad de aplicar refactoring para mejorar la DEX.
  • Team-wide DEX: resulta interesante estudiar cómo la IA Generativa puede ayudar a potenciar no solo a los individuos sino a equipos completos de desarrollo, mejorando la comunicación, la toma de decisiones, la transmisión de estas decisiones, y el trabajo colaborativo.
Línea: UX-Driven Development

Esta línea de investigación es financiada por la Agencia I+D+i a través del proyecto PICT “UX-Driven Development: Monitorización continua de la experiencia del usuario durante el desarrollo y mantenimiento ágil de aplicaciones interactivas”. La investigación se desarrolla en conjunto con el Dr. Julián Grigera, el Dr. Juan Cruz Gardey y el Dr. Andrés Rodriguez.

En esta línea de investigación se exploran tanto los aspectos humanos como los aspectos técnicos de la integración entre el desarrollo de software ágil y a su vez, centrado en el usuario; es decir, el desarrollo de software que no deja de lado los aspectos relacionados a la experiencia del usuario (UX), y se puede ajustar a los tiempos y costos restringidos de los métodos ágiles.  

El objetivo general de esta línea es mejorar la capacidad de un equipo de diseño y desarrollo de software ágil para atender los requerimientos de experiencia del usuario desde etapas tempranas y durante todo el desarrollo y mantenimiento de un sistema, de manera sistemática y controlada.
Este objetivo involucra 3 objetivos específicos:

1- Incorporar la especificación y evaluación temprana de la UX en un proceso de desarrollo ágil

Temas de investigación en pos de este objetivo son: (i) Evaluación temprana de UX desde el maquetado de interfaces gráficas utilizando maquetas y storyboards. (ii) Especificación de decisiones de diseño de interfaces mediante la aumentación de storyboards. (iii) Herramientas de comunicación y sincronización entre diseñadores y desarrolladores. (iv) Evaluación del proceso de diseño de UX y la comunicación de decisiones.

2- Definir estrategias de medición y remediación de la deuda técnica que se genere por problemas de UX, para un adecuado seguimiento y control de esta deuda.

Temas de investigación en pos de este objetivo son: (i) Definición y caracterización de la UX Debt (Deuda de UX). (ii) Análisis de los aspectos sociales que manifiestan la aparición de UX Debt. (iii) Análisis de los aspectos técnicos que determinan la existencia de UX Debt. (iv) Definición de métricas que permitan cuantificar la UX Debt y mecanismos de medición asociados. (v) Uso de Procesamiento de Lenguaje Natural (NLP) y Modelos Grandes de Lenguaje (LLM) para identificar ítems de UX Debt.
(vi) Mecanismos semi-automáticos de priorización de los ítems de UX Debt.

3- Proponer e implementar mecanismos de medición automatizada de la interacción del usuario, que se adapten a las distintas etapas de desarrollo y post-producción, y que permitan determinar el esfuerzo de interacción que conlleva cada elemento de una interfaz de usuario.

Temas de investigación en pos de este objetivo son: (i) Definición de métricas que permitan evaluar y comparar el grado de UX de interfaces web, como el esfuerzo de interacción. (ii) Uso de IA en la medición de diferentes aspectos de UX que van desde la interacción de usuario a la estética de la interfaz. (iii) Identificación de problemas de UX en interfaces móviles. (iv) Evaluación e identificación automática de problemas de accesibilidad relacionados a la interacción de usuario.

Investigador: Dra. Cecilia Challiol

<cecilia.challiol@lifia.info.unlp.edu.ar>

Descripción de su líneas de investigación:

Abordaje ágil para el diseño empático de software

El objetivo es contar con un proceso de empatización ágil, es decir, establecer técnicas y recursos que permitan identificar, en un tiempo acotado (time-boxed), las necesidades reales de las personas para diseñar soluciones de software innovadoras mediante la ideación y prototipado dinámico e iterativo, acorde con un abordaje ágil de desarrollo de software.

Para definir este proceso de empatización ágil, se toma de base la visión que tiene Design Thinking (Pensamiento de Diseño), este es un enfoque de diseño centrado en las personas, que busca empatizar con sus necesidades a la hora de innovar productos o servicios. Más allá de cómo se implemente Design Thinking, se identifican tres momentos en su puesta en práctica: recolectar datos, generar ideas y realizar prototipos (que en algunos casos incluye testearlos). En particular, la recolección de datos en Design Thinking implica tener una mirada empática para descubrir y comprender las necesidades reales de las personas.

En el contexto de la Ingeniería de Software, Design Thinking permite comprender las necesidades reales de los potenciales usuarios para los que se está diseñando, un aspecto crítico para el éxito de cualquier solución de software. Sin embargo, todavía hay muchos aspectos a explorar para que Design Thinking se incorpore como una práctica habitual en la Ingeniería de Software. Esto motiva la exploración de destinos temas de investigación, por ejemplo:

  • Identificar y/o definir técnicas, métodos y herramientas adecuadas para empatizar con las necesidades reales de los potenciales usuarios en el contexto de la Ingeniería de Software.
  • Poner en práctica y/o evaluar técnicas/métodos/herramientas de empatización en dominios concretos para diseñar soluciones de software innovadoras.

Investigador: Dr. Federico Balaguer

<federico.balaguer@lifia.info.unlp.edu.ar>

Palabras claves: análisis de código fuente, herramientas del programador, code smells, refactoring

Descripción de las líneas de investigación:

Existe una creciente necesidad de hacer más eficiente el trabajo de las personas que desarrollan software y de equipos que conforman. Las responsabilidades se ven cruzadas por diferentes Lenguajes, Herramientas, Tecnologías y Procesos, y la mayoría giran alrededor de compartir, analizar, mantener, y refactorizar código fuente.
La piedra fundamental es el analisis de código fuente (parsing) que se utiliza para generar un modelo de un programa que luego puede ser utilizado para: documentar codigo, buscar code smells, implementar refactorings o transformaciones en general entre otros.

  • Code Caption : Revisiones de Código (Code Reviews) de programas: no intrusivas, online/offline y que soportan versiones en Git.
  • Refactoring Hacia Reactive Programming: Catalogo de transformaciones para implementar Reactive Programming
  • GIT Inmersivo: Integración de servicios Git en las herramientas de desarrollos (IDEs) como por ejemplo manejo de tareas, actions/pipelines, etc.
  • Migración entre Frameworks utilizando Generación de Código Fuente: Crear modelos de la instanciacion de un Framework como base para generar el código que instancia otro framework