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

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

Estos son algunos de los temas que te proponen los investigadores del LIFIA; si alguno te resulta interesante, podés contactarte con el investigador responsable para entablar conversación.

Investigador: Dr. Matías Urbieta

<mailto: matias.urbieta@lifia.info.unlp.edu.ar >

Líneas de investigación que dirige:

Aplicación de reconocimiento de objetos y tecnicas de ML en planos de construcciones para la generación de momdelos

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

Evaluación de patrones de diseño para walllets

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).

Tareas

Diseñar un experimento para ser realizado condesarrolladores. 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.

  • 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

<mail: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

<mail: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

<mail: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

<mail: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 en C++ para controladores compatibles con el ecosistema Arduino.

  • HCI + genómica

A partir de los desarrollos científicos y tecnológicos que permiten disponer con mayor facilidad de datos genómicos de una persona, existen numerosos desafíos vinculados con la interacción con esos datos, tanto desde el punto de vista de los profesionales de la salud como desde los propios pacientes o involucrados finales,  

Investigamos estrategias para el desarrollo de sistemas que permitan el análisis, interpretación y visualización de información genómica para pacientes y profesionales de salud.

Investigador: Mg. Luis Mariano Bibbó

<mail: 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

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

Toma de decisiones, colaborativa, basada en información/evidencia

Propongo estudiar formas y herramientas de “soporte para la colaboración en la toma de decisiones”. Eso puede verse como “¿cómo nos ayudamos a tomar mejores decisiones (por ejemplo, compartimos datos para que cada uno pueda tomar sus decisiones mas informado)?”, ó “¿como tomamos decisiones entre todos (por ejemplo, discutimos, valoramos las posturas y nos quedamos con la mejor valorada, etc.)?”. Se busca priorizar formas de tomar decisiones que pongan la información, racionalidad, evidencia por sobre otras cosas (por ejemplo, se prefiere valorar en base a criterios explícitos cada uno con su peso, antes que limitarse a votar y que gane el que tenga más votos) – de alguna forma, el foco está puesto en procesos en los que los criterios de decisión se hacen explícitos.

El dominio de aplicación tiene mucho que ver en el tipo de decisiones que tomamos, y en cómo las tomamos. Nos interesa particularmente la horticultura (en situaciones parecidas a esta: https://www.lifia.info.unlp.edu.ar/gap-a-farm ), el comercio electrónico (en situaciones como esta: https://ruc-aps.eu/logikos-augmenting-the-web-with-decision-support/ ), y la participación ciudadana (por ejemplo, en forma de ciencia ciudadana o Smart cities). La problemática de los fake-news juega acá un rol interesante (¿como tomamos decisiones cuando no podemos confiar la información que obtenemos?).

Pensando en el espacio de las soluciones a esos desafíos, me interesan especialmente propuestas que vengan del lado del diseño de estrategias de colaboración y herramientas que le den soporte, de la web semántica y datos enlazados, la visualización de información y la inteligencia artificial.

Investigador: Dr. Julián Grigera

<mail: 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)

Investigador: Dr. Diego Torres

<mail: 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.

Investigador: Dra. Alejandra Garrido

<mailto: garrido@lifia.info.unlp.edu.ar

Palabras claves de su línea de investigación: Refactoring; Métodos Agiles; Usabilidad; Experiencia del Usuario; Patrones de Diseño

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

Agile + UX

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.

Investigador: Dra. Cecilia Challiol

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

Área de trabajo: Co-diseño, prototipo y evolución dinámica de Aplicaciones Móviles Sensibles al Contexto

Sublíneas de investigación actuales:

  • Co-diseño in-situ Aplicaciones Móviles Sensibles al Contexto usando técnicas de Design Thinking.
  • Co-diseño de Aplicaciones Móviles orientadas a niños/jóvenes con CEA (Condición del Espectro Autista) usando técnicas de Design Thinking.
  • Evolución dinámica en Aplicaciones Móviles Sensibles al Contexto.

Palabras Claves: Aplicaciones Móviles, Aplicaciones Móviles Sensibles al Contexto, Co-diseño in-situ, Design Thinking, Co-diseño con Equipos Multidisciplinarios, Modelos Dinámicos, Herramientas de Autor

Las Aplicaciones Móviles Sensibles al Contexto son aquellas aplicaciones que utilizan datos del entorno que rodea al usuario para brindar diversos tipos de servicios o información. Si bien este tipo de aplicaciones vienen siendo objeto de estudio desde hace más de veinte años, actualmente los adelantos tecnológicos han permitido poner en práctica el potencial de las mismas. Más aún, surge el desafío de que estas aplicaciones sean realmente útiles para las personas. Es por esto, que el co-diseño y sobre todo la participación de los usuarios finales se ha vuelto fundamental en la etapa inicial de diseño de este tipo de aplicaciones; lo cual se puede abordar, por ejemplo, usando técnicas de Design Thinking. 

El co-diseño de las aplicaciones sensibles al contexto requiere de herramientas de soporte que ayuden a usuarios no expertos a poder definir y crear este tipo de aplicaciones. De esta manera, los usuarios no expertos pueden crear y definir sus propias aplicaciones en diferentes ámbitos de aplicación. Lograr este tipo de herramientas implica poder abstraer conceptos sin perder toda la funcionalidad, por ejemplo, de los sensores.

Dada las características contextuales de estas aplicaciones el co-diseño de las mismas se puede realizar en el mismo lugar donde luego estas se utilizarán, esto se conoce como co-diseño in-situ. Este tipo de co-diseño requiere recorrer el espacio físico, e ir identificando los lugares relevantes donde luego se brindará información o servicios a los usuarios finales. El co-diseño in-situ permite tener una visión más realista de cómo van a vivenciar la experiencia de uso los usuarios finales, y en base a esto ajustar el diseño. Esto conlleva diferentes desafíos en relación al tipo de diseño tradicional.

Otro aspecto a tener en cuenta en relación a estas aplicaciones es la demanda actual del mercado, donde todo el tiempo surgen nuevos requerimientos. Es decir, contar con soporte para la adaptación y la evolución es fundamental. Poder anticiparse a los cambios no es una tarea trivial y debe ser considerado desde una etapa temprana de diseño.

Investigador: Dr. Federico Balaguer

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

Mailto: federico.balaguer@difusionlifia

Investigador: Dr. Sergio Firmenich

Extensibilidad de navegadores Web basada en P2P: apropiación, producción y
consumo de servicios y contenidos por parte de usuarios finales en el marco de la
aumentación Web.

El objetivo de esta línea de trabajo es investigar, desarrollar, y evaluar métodos y herramientas innovadoras que permitan transformar al navegador web en una plataforma para la construcción de aplicaciones P2P que permitan a los usuarios crear, servir, consumir y apropiarse de servicios y contenidos sin depender de una arquitectura centralizada, considerando la creación de estructuras externas como principio básico para la colaboración, potenciando las capacidades actuales de este tipo de software y habilitando la creación de nuevos tipos de aplicaciones basadas en la extensibilidad del navegador y la colaboración P2P

Alumnos de grado buscando tema de tesina o PPS pueden encontrar mas detalle aquí

E-mail: sfirmenich@lifia.info.unlp.edu.ar