Back to top

Ficha Proyecto I.E. 2024-2025



Introducción de una aproximación ágil basada en Scrum para la gestión y el desarrollo de un proyecto de ingeniería del software basado en agentes inteligentes

Coordinador(a): RICARDO IMBERT PAREDES
Centro: E.T.S. DE INGENIEROS INFORMÁTICOS
Nivel: Nivel 1. Proyectos promovidos por los Grupos de Innovación Educativa (GIEs)
Código: IE25.1005
... memoria no disponible
Línea: E2. Gamificación educativa
Miembros de la comunidad UPM que lo componen
Nombre y apellidos Centro Plaza *
JOSE MARIA BARAMBONES RAMIREZ E.T.S. DE INGENIEROS INFORMÁTICOS L.D. PRF.AYUD.DOCTOR
ANGELICA DE ANTONIO JIMENEZ E.T.S. DE INGENIEROS INFORMÁTICOS TITULAR UNIVERSIDAD
RICARDO IMBERT PAREDES E.T.S. DE INGENIEROS INFORMÁTICOS L.D. PRF.CONTR.DOCT.
JAIME RAMIREZ RODRIGUEZ E.T.S. DE INGENIEROS INFORMÁTICOS TITULAR UNIVERSIDAD
* La plaza que se muestra corresponde a la ocupada en el momento de la convocatoria
(para PDI/PAS de la UPM, en el resto de casos no se especifica).
DESCRIPCIÓN DEL PROYECTO

La asignatura Agent-Based Software Development impartida en la ETSI Informáticos, es una de las más demandadas del primer curso del Máster Universitario en Ingeniería del Software (European Master in Software Engineering, EMSE). Su atractivo radica en que enfoca el desarrollo de proyectos software usando como elemento conductor una tecnología propia de la Inteligencia Artificial, los sistemas software multi-agente.

Desde la asignatura siempre hemos apostado por la estrategia de aprender haciendo, y la hemos planteado como una oportunidad para que los alumnos revisen, a través de un proyecto, gran parte de los contenidos y técnicas que han visto a lo largo del primer semestre para construir un sistema software técnicamente complejo, pensando en situaciones cercanas a las que encontrarán en su vida profesional:

al que aportamos dosis de complejidad y similitud cercanos a los que encontrarán en su experiencia profesional: la complejidad de un sistema la combinación de Su dificultad reside en la complejidad de los conceptos y técnicas a aplicar en un proyecto cuya arquitectura software debe cumplir una serie de propiedades que permiten contemplar la utilidad de estos, a saber:

  • Una arquitectura software distribuida, propia de los sistemas software multi-agente.
  • Construcción de un único sistema software al que contribuyen múltiples stake-holders.
  • Definición de mecanismos de intercambio de información y reparto de tareas a través de la correcta coordinación y comunicación entre los agentes inteligentes.
  • Tolerancia a errores del sistema ante imprevistos en algún elemento del sistema.
  • Autonomía y proactividad del sistema para no depender del control inmediato del usuario.
  • Generación de estrategias y comportamientos colectivos (simulación social) de colaboración/confrontación.
  • Cambio y volatilidad de requisitos de usuario.

Si bien la teoría y terminología de la materia están bien consolidadas en la literatura, consideramos que la aproximación más básica de que los alumnos las implementen en un proyecto a pequeña escala (acorde a un grupo de prácticas) no permite abarcar y consolidar en su totalidad todas estas propiedades. Esto sumado a la heterogeneidad en la estrategia de desarrollo software por parte de cada grupo, dificulta enormemente el seguimiento y evaluación por parte de los profesores.

A todo esto, se suma la circunstancia de que nuestros estudiantes llegan a la asignatura con poca experiencia en la elaboración de proyectos software en equipo, por no hablar de carencias evidentes en la colaboración entre equipos de cara a la construcción de proyectos de una escala mayor, más acorde a la industria. Esto se da principalmente por la heterogeneidad en sus perfiles TIC con el que acceden al máster y su poca o inexistente experiencia laboral, entre otros.

La experiencia de más de 20 años impartiendo esta asignatura nos ha demostrado que la única manera de que los alumnos puedan encarar un proyecto de una magnitud suficiente como para que presente retos realistas es que tengan que comprometerse con pequeñas entregas de manera frecuente, de manera que la construcción del producto se vaya produciendo de manera incremental. Limitar a una única entrega final, o a una intermedia y otra final, como ya planteamos en el pasado, desembocaba en trabajos mediocres realizados en las últimas semanas previas a la entrega, lo que daba al traste con los objetivos educativos perseguidos y forzaba a reducir la manejar proyectos de una magnitud menor a la deseada.

Durante los últimos años, hemos rediseñado la asignatura para que los equipos comprometan entregas periódicas en los que el trabajo realizado por todos los equipos se va integrando, lo que ha aumentado el número de equipos que llegan al final de la asignatura con su proyecto completamente operativo y con una calidad notable.

Incidiendo en esta línea, se pretende mejorar aún más la gestión y desarrollo de este proyecto, con el objetivo de que los estudiantes adquieran habilidades extra en la asignatura:

  • Conocimiento y manejo de metodologías de desarrollo ágil para la gestión y ejecución de proyectos.
  • Mejorar las competencias de negociación para acordar soluciones de diseño.
  • Mejorar las competencias de planificación y estimación del trabajo.
  • Mejorar las competencias de análisis de resultados y formulación de acciones de mejora.
  • Mejorar las competencias de coordinación y trabajo en equipo.

Lo que se propone para el presente proyecto es que, a partir de una necesidad y un escenario que planteemos los profesores de la asignatura, los alumnos, agrupados en equipos, planteen una solución y la desarrollen elaborando un sistema multi-agente siguiendo una metodología ágil (Scrum). Con este fin, los profesores desempeñarán los roles de product owner y de scrum master, definidos por la metodología, mientras que los alumnos asumirán el de development team.  El planteamiento del proyecto será el siguiente:

  1. Descripción detallada de la necesidad a satisfacer por parte de los profesores. Se tratará de un escenario que favorezca la distribución de tareas entre unidades (agentes) que se comuniquen entre ellos para coordinarse e intercambiar información. Para motivar a los alumnos, se probará con un escenario que plantee un juego serio que incentive algún tipo de competición.
  2. Diseño una o varias sesiones de identificación de las metas del futuro sistema. Identificación de sus grandes funcionalidades. Identificación de los roles y agentes que habrá en el sistema. Definición de los productos Acuerdo de los productos Definition of Ready y Definition of Done propios de Scrum. Estas sesiones son facilitadas por los profesores, pero realizadas colaborativamente por todos los alumnos en clase utilizando técnicas como World Café.
  3. Diseño de una estrategia de desarrollo iterativo incremental del proyecto, acorde a una metodología ágil de desarrollo de software ampliamente utilizada en la industria (Scrum), que incorpore buenas prácticas y ceremonias como:
    • Elaboración y refinamiento de requisitos (historias de usuario) de distinto nivel de definición (talleres de historias de usuario) y mantenimiento en algún tipo de repositorio compartido (product backlog).
    • Estimación y planificación del desarrollo colaborativo a corto plazo (sprint planning) y almacenamiento en algún tipo de repositorio compartido (sprint backlog).
    • Seguimiento continuo del desarrollo (tablero scrum).
    • Revisión post-mortem iterativo (retrospectiva).

Lo más destacado de esta aproximación es que conservaremos nuestro enfoque de realizar el desarrollo completandohitos bien definidos en el corto plazo, aportando valor al cliente final (en este caso, los profesores) desde el inicio del proyecto. Y todo ello respetando en todo momento los requisitos mínimos y la calidad del desarrollo, a la vez que se van afrontando las diferentes situaciones de trabajo en equipo y entre equipos de forma controlada y éstos se resuelven de forma coordinada y participativa.

OBJETIVOS DEL PROYECTO

Este proyecto de innovación educativa tiene los siguientes objetivos principales:

  1. Desarrollar habilidades de desarrollo software distribuido, tanto técnicas como transversales.
  2. Mejora de la adquisición de los conocimientos más importantes de la asignatura mediante un enfoque eminentemente práctico.
  3. Desarrollo de la gestión y colaboración entre equipos, mediante técnicas de trabajo colaborativo.
  4. Preparación para la entrega de valor al cliente de forma iterativa e incremental.
CONTRIBUCIÓN A LA MEJORA DE LA CALIDAD

La propuesta pretende contribuir a la mejora de resultados académicos, así como contribuir a la satisfacción de los alumnos con la asignatura, a la vez que se optimiza la labor docente en la evaluación y retroalimentación proporcionada, acorde a las competencias de la asignatura:

  • CE13 - Tener una visión de los distintos aspectos específicos y emergentes de la ingeniería del software, y profundizar en algunos de ellos.
  • CE14 - Comprender lo que pueden y no pueden conseguir las prácticas actuales de ingeniería del software, y sus limitaciones y su posible futura evolución.
  • RA1 - Within an application field of Software Engineering, uses and designs the appropriate solution to solve some of its problems, describing the technical difficulties and the application limits.
  • RA2 - Facing a real problem, chooses an appropriate Software Engineering solution, analyzing its viability, what can and cannot be achieved from the current state of development of the selected solution, and what is expected to advance in the future.
  • RA3 - Explains which are the Software Engineering limits and frontiers, and the base of new tendencies and developments and advanced topics and their possible application.

 

En paralelo, la elaboración de este PIE permite a los profesores de la asignatura impartir el temario relevante con ejemplos y herramientas prácticas que permitan mejorar el seguimiento y evaluación de las prácticas de los alumnos. Todo esto asumiendo una situación de un gran número de matriculados en la asignatura evitando el detrimento de restringirles en su proceso creativo de sus propuestas de tema del proyecto.

FASES DEL PROYECTO Y ACCIONES QUE SE VAN A DESARROLLAR

FASE 1: PREPARACIÓN DE MATERIALES Y RECURSOS

DURACIÓN: enero-marzo 2025

DESCRIPCIÓN: Para que el proyecto pueda llevarse a cabo durante el segundo semestre del curso 2024-25, será necesario desarrollar previamente una serie de materiales y recursos que se facilitarán a los alumnos.

ACCIONES:

    1. Diseño del escenario de uso. Elaboración de la documentación de descripción de la necesidad y planteamiento de los criterios de evaluación.
    2. Preparación de la interfaz de usuario que permita la visualización de la ejecución del sistema y los resultados de la competición entre los distintos equipos. Si no fuese posible disponer de una interfaz gráfica, al menos un entorno textual descriptivo y claro.
    3. Creación de la infraestructura de control de versiones y desarrollo.
    4. Creación de la capa de integración de los desarrollos de los distintos equipos.
    5. Preparación de la plataforma de co-creación (inception, planificación, revisión…).
    6. Preparación de la infraestructura de soporte al backlog de producto, backlog del sprint y tablero scrum para el seguimiento iterativo del proyecto.
    7. Diseño de las intervenciones para la medición del progreso de los alumnos y su mejora en el aprendizaje.

FASE 2: EJECUCIÓN

DURACIÓN: marzo-junio 2025

DESCRIPCIÓN: Durante esta fase los alumnos matriculados en la asignatura realizarán la práctica siguiendo la metodología ágil propuesta, utilizando los materiales y recursos proporcionados, y guiados por el profesorado de la asignatura.

ACCIONES:

  1. Intervención: Realización de los hitos ágiles e iterativos de planificación, seguimiento e integración.
  2. Evaluación de la intervención y feedback a los alumnos
  3. Ejecución de la planificación.
  4. Análisis y presentación de resultados.

FASE 3: ANÁLISIS DE LOS RESULTADOS Y DIFUSIÓN

DURACIÓN: julio-septiembre 2025

DESCRIPCIÓN: Una vez finalizada la asignatura, el profesorado realizará un análisis de los resultados obtenidos, y se elaborarán artículos para la difusión de dichos resultados.

ACCIONES:

  1. Análisis del proceso, identificación de dificultades y propuesta de mejoras futuras
  2. Análisis de los resultados, impacto sobre el aprendizaje y satisfacción
  3. Redacción de artículos e informes para difusión de la experiencia
SEGUIMIENTO Y EVALUACION

Durante la fase de preparación de materiales y recursos, el seguimiento del proyecto se llevará a cabo mediante reuniones semanales de los integrantes del PIE y el alumno becado en las que se planteará el prototipado del juego serio, su capa de integración para los grupos de la práctica y la infraestructura de co-creación y desarrollo. El proceso será cíclico revisado por los profesores, hasta conseguir que los recursos y materiales elaborados tengan un nivel de calidad satisfactorio.

 

Durante la fase de ejecución del proyecto, se recogerán datos y evidencias que nos permitan después hacer un buen análisis de los resultados, a saber:

  • La planificación realizada por los alumnos, incluyendo tareas identificadas, su tamaño y asignación a cada miembro para cada iteración realizada.
  • La consecución de las tareas a través de la integración con otros equipos y la visualización del comportamiento en el videojuego.

 

Las evidencias de logro que se aportarán en la memoria final del proyecto son las siguientes:

  • Recursos y materiales elaborados.
  • Proceso/metodología de realización de un proyecto global competitivo subdividido en equipos.
  • Informe preliminar de análisis del proceso.

 

Otros resultados previstos posteriores a la finalización del PIE son los siguientes:

  • Análisis final de la completitud del proyecto y resultados.
  • Cuestionarios de satisfacción completados por los estudiantes.
  • Artículos e informes para difusión de la experiencia.
PRODUCTOS RESULTANTES

El producto resultante de esta propuesta de innovación educativa será la adaptación de una metodología ágil al desarrollo de sistemas multi-agente que permita a los alumnos de la asignatura Agent-Based Software Development mejorar en la adquisición de las competencias de la asignatura, así como la adquisición de otras transversales y profesionales indispensables para el profesional gestor de proyectos y que hasta la fecha no se están cubriendo en el máster en la medida deseada.

Para poder evaluar la validez de esta propuesta se pretenden recoger métricas que permitan comparar los resultados, tanto de adquisición de conocimientos como de satisfacción, de los estudiantes de este curso con los de ediciones anteriores.

MATERIAL DIVULGATIVO

La información sobre el proyecto se divulgará a través de varios canales:

  • Página web del laboratorio Madrid HCI Lab, sede del Grupo de Investigación en Interacción Persona Ordenador y Sistemas Interactivos Avanzados, al que pertenecen los profesores participantes en este PIE.
  • Noticia para su difusión en la UPM.
  • Presentación del proyecto en las Jornadas de Innovación Educativa de la UPM.

En lo que respecta a la difusión científica, se propone hacer una publicación de los resultados en alguna de las siguientes revistas JCR:

  1. COMPUTERS & EDUCATION : Q1 COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS
  2. IEEE TRANSACTIONS ON EDUCATION: Q2 EDUCATION, SCIENTIFIC DISCIPLINES
  3. IEEE TRANSACTIONS ON LEARNING TECHNOLOGIES: Q2 EDUCATION, SCIENTIFIC DISCIPLINES
COLABORACIONES

Este proyecto de innovación educativa nace en el seno del Grupo de Investigación en Interacción Persona Ordenador y Sistemas Interactivos Avanzados, al que pertenecen los profesores participantes. Los coordinadores del proyecto son, a su vez, los profesores de la asignatura.

Su desarrollo requiere de la colaboración activa de este grupo de investigación, dado que los recursos y componentes que se pretende elaborar para su uso por parte de los estudiantes derivan directamente del conocimiento técnico y experiencia de todos ellos.