Sin miedo al éxito. Gemini te ayuda a desarrollar software.


Imagen generada con gemini Pro 2.5

En la actualidad, la inteligencia artificial está transformando rápidamente el campo de la ingeniería de software. Como educadores, nuestra responsabilidad es preparar a nuestros estudiantes para este nuevo panorama, equipándolos con las herramientas y habilidades necesarias para prosperar. Gemini,el conjunto de modelos de IA de Google, se presenta como un colaborador indispensable en este proceso, ofreciendo capacidades que abarcan todo el ciclo de vida del desarrollo de software (SDLC). Los últimos meses han sido de aprendizajes y desaprendizaje que nos han ayudado a desmitificar el uso de la inteligencia artificial en estas tareas. en cada momento del proceso.

He abordado con mis estudiantes las múltiples posibilidades de emplear estas herramientas como un apoyo y no como un reemplazo de sus habilidades. Cuando Gemini con la opcion Canva se obtuvieron resultados interesantes, al igual que Gems para ejecutar tareas repetitivas. 

1. Fase de Requisitos: Del Caos a la Claridad

La fase de recopilación y análisis de requisitos es crucial, pero a menudo compleja. Gemini puede actuar como un asistente inteligente para estructurar y refinar las necesidades del cliente. En este sentido, mis estudiantes han desarrollado a partir del uso de Notebook LM, instrumentos para validar el contenido de las SRS, que a su vez han sido empleados para generar prompts que son la base de Gems que les han ayudado en la construcción y revisión de sus documentos.

Cómo usar Gemini en esta fase:

  • Análisis y Resumen de Entrevistas: Mis estudiantes cargaron transcripciones de entrevistas con los stakeholders de sus sistemas en Gemini. La IA resumió los puntos clave, identificó inconsistencias o ambigüedades, y extrajo funcionalidades principales.

  • Generación de Historias de Usuario: Gemini ayudó en la redacción de  historias de usuario claras y concisas basadas en la información recopilada. 

  • Elaboración del Documento de Requisitos (SRS): Gemini contribuyó en la creación de la estructura y el formato a los documentos de requisitos de software, como se ha señalado a partir de Gems. Mis estudiantes ingresaron los requisitos identificados y solicitar a Gems que generará secciones estándar del SRS, como el alcance, las restricciones y los casos de uso.


Gema para generar y revisar documentos SRS

2. Diseño y Arquitectura: Optimizando la Estructura


Una vez establecidos los requisitos, la fase de diseño es donde Gemini puede acelerar la toma de decisiones y la creación de prototipos.

Cómo usar Gemini en esta fase:

  • Diseño de Arquitectura: Mis estudiantes describieron la aplicación y sus objetivos, y Gemini  sugirió patrones de arquitectura adecuados, enfatizando las ventajas y desventajas de cada uno.

  • Generación de Diagramas: Aunque Gemini no dibuja diagramas directamente, puede generar la descripción en lenguaje natural o en formato Mermaid (una herramienta para crear diagramas a partir de texto) para modelos como diagramas de clases, diagramas de secuencia o diagramas de flujo. 


Diagrama generado para la aplicación


3. Codificación y Prototipos: De la Idea al Código Funcional


La codificación es quizás el área donde Gemini tiene el impacto más visible. Más allá de la simple generación de código, se trata de utilizarlo como un programador par inteligente. Mis estudante emplearon esta posibilidad ejecutando algunas de las siguientes acciones. 

Cómo usar Gemini en esta fase:

  • Generación de Código: Describir una función o un módulo y Gemini puede generar el código base. Esto es particularmente útil para tareas repetitivas, configuración de frameworks o la implementación de algoritmos estándar.

  • Refactorización y Optimización: Solicitaron a Gemini analizar código existente y sugerir mejoras para aumentar la legibilidad, la eficiencia o la adherencia a las mejores prácticas.

  • Explicación de Código Complejo: Pidieron a Gemini explicar la lógica de secciones complejas de grandes segmentos de código, lo que acelera el aprendizaje y la comprensión.

  • Creación de Prototipos Ejecutables: Se generaron algunos  prototipos funcionales a partir de una descripción de alto nivel con ayuda de Gemini. Posteriormente iterar sobre estos ejemplos con la ayuda de Gemini.


Código generado para la aplicación


4. Pruebas y Revisión: Asegurando la Calidad del Software

La calidad del software es fundamental. Gemini no solo ayuda a escribir código, sino también a probarlo de manera rigurosa.

Cómo usar Gemini en esta fase:

  • Generación de Pruebas Unitarias: Gemini generó automáticamente casos de prueba unitarios para funciones y métodos existentes, lo que ahorró tiempo y garantizó una cobertura básica.

  • Depuración Asistida por IA: Mis estudiantes usaron Gemini para pegar el código y el mensaje de error cuando fueron detectados para analizar el contexto y sugerir posibles soluciones o identificar la causa raíz del problema.

  • Revisión de Código (Code Review): Con ayuda de Gemini realizaron revisiones iniciales de código , identificando errores potenciales, vulnerabilidades de seguridad y áreas de mejora en el estilo de codificación.

Prototipo de la alicación generada por Gemini



El Rol del Educador en la Era de la IA

Es crucial enfatizar particularmente a los estudiantes de ingeniería de software y de sistemas que Gemini es una herramienta, no un reemplazo para el pensamiento crítico ni para sus habilidades de programación. El rol de nosotros como educadores cambia de ser el único proveedor de conocimiento a ser un facilitador que enseña a los estudiantes a colaborar eficazmente con la IA.

Al integrar Gemini a sus actividades cotidianas como desarrolladores, estamos preparando a la próxima generación de ingenieros de software para un futuro donde la capacidad de trabajar con herramientas de IA será tan fundamental como la comprensión de los algoritmos.

¿Cómo están utilizando la IA en sus propios programas de ingeniería de software?








Comentarios

Entradas más populares de este blog

Experiencias y aprendizajes de mi labor docente (parte 1)

¿Qué tipo de docente soy? Conociendo Nuestro Mapa Epistémico con Google Workspace. (Primera entrega)

🚀 Sin código, con propósito: Jóvenes que diseñan soluciones con AppSheet + Google Workspace