Un Reto Integral en Ingeniería del Software (RIIS)
Co-coordinador(a): ALBERTO DIAZ ALVAREZ
memoria >>
Nombre y apellidos | Centro | Plaza * |
ALBERTO DIAZ ALVAREZ | E.T.S DE ING. DE SISTEMAS INFORMÁTICOS | L.D. PRF.CONTR.DOCT. |
ANGEL PANIZO LLEDOT | E.T.S DE ING. DE SISTEMAS INFORMÁTICOS | L.D. PRF.AYUD.DOCTOR |
CAROLINA GALLARDO PEREZ | E.T.S DE ING. DE SISTEMAS INFORMÁTICOS | L.D. PRF.CONTR.DOCT. |
JAVIER GARCIA MARTIN | E.T.S DE ING. DE SISTEMAS INFORMÁTICOS | TITULAR UNIVERSIDAD |
JORGE ENRIQUE PEREZ MARTINEZ | E.T.S DE ING. DE SISTEMAS INFORMÁTICOS | TITULAR UNIVERSIDAD |
JUAN MANUEL GARITAGOITIA MARTIN | E.T.S. DE INGENIEROS INFORMÁTICOS | L.D. PROF. ASOCIADO |
SERGIO ALEJANDRO D'ANTONIO MACEIRAS | E.T.S DE ING. DE SISTEMAS INFORMÁTICOS | L.D. PRF.CONTR.DOCT. |
JESSICA DIAZ FERNANDEZ | E.T.S DE ING. DE SISTEMAS INFORMÁTICOS | TITULAR UNIVERSIDAD |
(para PDI/PAS de la UPM, en el resto de casos no se especifica).
El aprendizaje basado en retos proporciona un marco eficiente y eficaz para un aprendizaje profundo y significativo mientras se resuelven retos del mundo real.
Es un hecho, constatado a través de la experiencia docente del profesorado que, los alumnos, finalizan sus estudios con la sensación de no tener las capacidades y habilidades necesarias para abordar un proyecto software del mundo real. Esto se debe en gran medida a que, en la mayoría de asignaturas de los respectivos grados y másteres, se abordan pequeños proyectos o prácticas que, si bien aíslan los aspectos relevantes para alcanzar unos determinados resultados de aprendizaje, pierden la perspectiva global de desarrollo y operación de un producto o servicio software.
Esta visión clásica de aprendizaje en ingeniería del software choca con culturas y prácticas ya consolidadas en la industria software como DevOps, que promueven una visión compartida e integral de la gestión del ciclo de vida de las aplicaciones.
Por tanto, los estudiantes precisan acometer diferentes aspectos del desarrollo, despliegue y mantenimiento de un producto software real, que resuelva un problema de la vida cotidiana y que suponga un reto a la hora de enfrentarse con dicho programa para realizar sobre dicho producto muy diversas actividades software que responden a muy variados objetivos y resultados de aprendizaje (enunciados y definidos por el equipo docente). Este mismo proyecto software puede ser utilizado en varias asignaturas lo que ofrece oportunidades para que los estudiantes pueden integrar sobre un mismo producto diferentes visiones y objetivos del desarrollo software. La unión de estas vistas complementarias permite obtener una visión holística de todo el proceso, desde las fases de adquisición de requisitos hasta la de despliegue en producción, mantenimiento y retirada.
Sin embargo, la implementación de ese proyecto software es costoso, en tiempo y esfuerzo. Por ello se propone acometer este proyecto con la participación del equipo docente indicado y de cuatro estudiantes de grado de la ETSISI.
El objetivo principal es el desarrollo y puesta en producción de un producto software que resuelva un reto del mundo real y que sirva de proyecto común para soportar algunos de los objetivos de aprendizaje de las asignaturas del grado de ingeniería del software en particular, aunque se podría extender a otros grados o másteres de la rama de la informática.
El aprendizaje de la disciplina de la ingeniería del software, desde el punto de vista de los currículums académicos, tradicionalmente se particiona en un conjunto de asignaturas que atacan de manera individual aspectos distintos de un proceso software: requisitos, arquitectura, diseño, codificación, pruebas, etc. Esta visión fragmentada de la disciplina (en sintonía con las tecnologías de desarrollo de hace décadas) choca frontalmente con las técnicas actuales de gestión de proyectos software en el que diferentes stakeholders tienen una visión holística del producto (puesto que son responsables del mismo). El proyecto que se presenta pretende paliar, en parte, estas deficiencias de aprendizaje, dotando a estudiantes y profesores de una herramienta que permite la inmersión en un producto software real, completo y en funcionamiento en el mercado. Esta inmersión se traduce en poder operar dicho producto desde diferentes perspectivas tal que el estudiante puede aunar esas diferentes visiones en una única visión global del producto y de la operación sobre el mismo. Se espera que esta herramienta influya notablemente en la comprensión que tienen los estudiantes sobre la gestión, desarrollo y operación de productos software, mejore sus habilidades para gestionarlos y potencie competencias claves como el trabajo en equipo, el liderazgo, la creatividad o el pensamiento crítico. Todo ello redundará en una mejor calidad del aprendizaje, concretado este en un aprendizaje significativo e integrador de la disciplina y que debe conducir a mejores resultados académicos.
Fase1: determinar un caso de estudio lo suficientemente complejo para resolver un reto del mundo real, al mismo tiempo que lo suficientemente acotado para que los alumnos puedan trabajar en el mismo en asignaturas semestrales. Esta fase ya se ha ejecutado y se ha seleccionado un proyecto para ayudar a población en riesgo de exclusión que requiere el desarrollo de una aplicación para móviles.
Fase 2: Análisis, desarrollo, prueba y puesta en producción de forma iterativa e incremental (aplicando prácticas DevOps como la Continuous Integration CI y Continuous Delivery CD) de un producto software.
En esta segunda fase son cruciales una serie de acciones para que el proyecto software pueda ser utilizado por la comunidad universitaria, estos es profesores y alumnos:
- Uso de repositorios de control de versiones accesibles a la comunidad universitaria y buenas prácticas de ramificación y versionado (ejemplo, GitFlow y Versionado Semántico 2.0.0), y actualización del mismo mediante políticas de pull request.
- Automatización del infraestructura (Infrastructure as Code) implementando conceptos como la inmutabilidad de la infraestructura y facilitando la re-creación de entornos de desarrollo, pruebas y producción.
- Automatización de pipelines de integración continua y entrega continua (CI & CD).
- Automatización de pruebas
- Automatización de monitorización de métricas de desarrollo y operación.
Fase 3: Implantación en asignaturas de grados de la rama de la informática y evaluación del impacto mediante la recogiendo de feedback tanto de docentes como de alumnos para la identificación de áreas de mejora.
El seguimiento del proyecto se realizará mediante una revisión constante de los avances en cada fase, en particular la fase 2 que es la más larga y que consta de múltiples iteraciones. Para tal fin, se utilizará una plataforma de gestión de proyectos para la monitorización de su progreso. El seguimiento de la fase 3 se soportará mediante la realización de encuestas a estudiantes y profesores sobre la oportunidad e idoneidad del uso de esta nueva herramienta de aprendizaje, análisis de resultados académicos y entrevistas a los principales actores de la propuesta. Para el análisis cualitativo de los datos se utilizará Grounded Theory.
Guías metodológica del uso del proyecto/reto del mundo real, entre las que caben:
- Guía del uso de las herramientas de gestión del proyecto así como de gestión de requisitos, planificación y seguimiento.
- Guía del uso de repositorio de control de versiones, ramificación, tagging de versiones, pull request, etc.
- Guía del uso de la automatización de infraestructura y recreación de entornos de desarrollo, pruebas y producción
- Guía del uso de pipelines de CI&CD
- Guía para la automatización de pruebas
- Guía para la automatización de métricas de desarrollo y operación
Los recursos educativos son el propio repositorio de código y toda la información contenida en él, los pipelines de CI & CD, los scripts de IaC, los scripts de pruebas, y los scripts de configuración de las herramientas de monitorización.
Informe de control sobre los resultados de la primera prueba piloto en el mes de abril/2024
Informe de control sobre los resultados de la segunda prueba piloto en el mes de septiembre/2024
Informe final sobre los resultados del proyecto
Informe (enero 2025) de los resultados de las propuestas a diferentes asignaturas de la UPM sobre la oportunidad de uso de esta herramienta.
Artículos en conferencias con foco en la Enseñanza Universitaria de la Informática como las JENUI.
Noticias y redes sociales para hacer partícipes a alumnos en últimos curso de grado en la mejora de este proyecto/reto.
En el desarrollo de la Fase1 se ha contactado con la Asociación Nuevo Futuro Sirio que atienden a poblaciones vulnerables y se ha acordado con ellos el desarrollo de una aplicación para ayudar a esta población.