En el curso online ‘Construimos una app con AppInventor‘ planteamos la realización de una aplicación que dé respuesta a un problema social global o local. Este curso se basa en las experiencias desarrolladas en los proyectos Technovation Girls for a Change y mSchools App Education. Las primeras pruebas de utilización de la IA como ayuda a la programación se realizaron con el programa ChatGPT.
![Captura de pantalla 2024-03-26 a les 9.13.14](https://ciberespiral.org/wp-content/uploads/2024/03/Captura-de-pantalla-2024-03-26-a-les-9.13.14.png)
Diagramas de bloques en AppInventor
AppInventor es una aplicación online de programación por bloques, por lo que ChatGPT, de momento, no puede generar directamente programas en esta plataforma. Esto limita la utilización del programa para su uso directo, aunque no quiere decir que no sea posible beneficiarse de la participación de la IA en este entorno.
En concreto, en la primera fase del proyecto se pide a los alumnos que elijan uno de los problemas planteados en el documental Code Girls de Technovation y lo analicen para determinar los actores implicados, es decir, quién interaccionará con el programa y que acciones realizará cada actor y finalmente generar una lista de requerimientos indicando que se espera que haga el programa.
Pedir a una IA que lleve a cabo un análisis de requerimientos es una tarea sencilla, solo hay que generar un prompt del tipo:
Adopta el rol de un experto analista informático y realiza un análisis funcional y una lista de requerimientos para diseñar una aplicación móvil para solucionar el siguiente problema: «…» y enganchar la descripción del problema a analizar.
Ejemplo
Adopta el rol de un experto analista informático y realiza un análisis funcional y una lista de requerimientos para diseñar una aplicación móvil para solucionar el siguiente problema: «Las participantes viven en la ciudad de Drochia, Moldovia. Es un sitio deprimido, ya no tiene industria. Los parques están llenos de basura, hay perros abandonados por doquier y familias pobres. Saben que hay adolescentes que están dispuestos a prestar servicios a la comunidad y hay proyectos sociales que necesitan voluntarios. Se trata de actividades puntuales, por ejemplo, quedar a una hora en un parque para limpiarlo. El problema es que estos jóvenes no conocen estos proyectos y los organizadores de las actividades les cuesta llegar a los jóvenes que estarían dispuestos a ayudar.»
Resultado usando Perplexity con el modelo GPT-4 TURBO
Análisis Funcional de la Aplicación Móvil
Contexto y Necesidades
La ciudad de Drochia, Moldavia, enfrenta desafíos socioeconómicos significativos, incluyendo la falta de industria, parques descuidados, y problemas de abandono animal y pobreza. Existe un grupo de adolescentes dispuestos a participar en actividades de voluntariado para mejorar su comunidad, pero la conexión entre estos jóvenes y los proyectos sociales es ineficiente o inexistente. La solución propuesta es una aplicación móvil que facilite la comunicación y organización entre los organizadores de proyectos sociales y los voluntarios adolescentes.
Análisis Funcional de la Aplicación Móvil
Contexto y Necesidades
La ciudad de Drochia, Moldavia, enfrenta desafíos socioeconómicos relevantes, incluyendo la falta de industria, parques descuidados, y problemas de abandono animal y pobreza. Existe un grupo de adolescentes dispuestos a participar en actividades de voluntariado para mejorar su comunidad, pero la conexión entre estos jóvenes y los proyectos sociales es ineficiente o inexistente. La solución propuesta es una aplicación móvil que facilite la comunicación y organización entre los organizadores de proyectos sociales y los voluntarios adolescentes.
Objetivo Principal
Desarrollar una aplicación móvil que sirva como puente entre los organizadores de proyectos sociales y los adolescentes voluntarios en la ciudad de Drochia, Moldavia, para promover la participación en actividades comunitarias.
Requerimientos Funcionales
- Registro de Usuarios: La aplicación debe permitir a los usuarios registrarse como voluntarios o como organizadores de proyectos.
- Perfiles de Usuario: Los perfiles deben contener información relevante como intereses, habilidades, disponibilidad y contacto.
- Publicación de Actividades: Los organizadores deben poder publicar detalles de las actividades, incluyendo descripción, fecha, hora, lugar y requisitos específicos.
- Sistema de Notificaciones: La aplicación debe enviar notificaciones a los voluntarios sobre nuevas actividades que coincidan con sus intereses y disponibilidad.
- Búsqueda y Filtro de Actividades: Los voluntarios deben poder buscar y filtrar actividades por categoría, ubicación, fecha y otros criterios relevantes.
- Inscripción a Actividades: Los voluntarios deben poder inscribirse a actividades a través de la aplicación.
- Mapa Interactivo: Integrar un mapa que muestre la ubicación de las actividades y permita a los usuarios obtener direcciones.
- Sistema de Feedback: Después de cada actividad, los voluntarios y organizadores deben poder dejar comentarios y valoraciones.
- Foro Comunitario: Un espacio para que los usuarios discutan ideas, compartan experiencias y propongan nuevas iniciativas.
- Gestión de Eventos: Herramientas para que los organizadores gestionen las inscripciones, comuniquen cambios y coordinen con los voluntarios.
- Reportes y Estadísticas: La aplicación debe proporcionar a los organizadores datos sobre la participación y el impacto de las actividades.
- Soporte Multilingüe: La aplicación debe estar disponible en los idiomas locales y otros comunes para asegurar la accesibilidad.
- Compatibilidad con Dispositivos: La aplicación debe ser compatible con los sistemas operativos móviles más comunes.
- Privacidad y Seguridad: Protección de datos personales y cumplimiento de las normativas de privacidad.
Requerimientos No Funcionales
- Usabilidad: Interfaz intuitiva y fácil de usar para adolescentes y organizadores.
- Rendimiento: Respuestas rápidas y tiempos de carga mínimos, incluso con conexiones a internet limitadas.
- Escalabilidad: Capacidad para manejar un creciente número de usuarios y actividades.
- Disponibilidad: La aplicación debe estar operativa y accesible en todo momento.
- Mantenimiento: Actualizaciones periódicas para mejorar funcionalidades y corregir errores.
- Soporte Técnico: Asistencia disponible para usuarios con problemas o preguntas.
Consideraciones Adicionales
- Integración con Redes Sociales: Permitir compartir actividades y logros en plataformas sociales para aumentar la visibilidad.
- Incentivos y Reconocimientos: Implementar un sistema de recompensas para motivar la participación continua de los voluntarios.
- Accesibilidad: Asegurar que la aplicación sea accesible para usuarios con discapacidades.
- Colaboración con Entidades Locales: Establecer alianzas con el gobierno local, escuelas y otras organizaciones para promover la aplicación y las actividades de voluntariado.
Conclusión
La aplicación móvil propuesta tiene como objetivo conectar eficientemente a los jóvenes voluntarios con proyectos sociales en Drochia, Moldavia, fomentando la participación comunitaria y contribuyendo a la mejora de la calidad de vida en la ciudad. La implementación de esta aplicación debe considerar tanto los requerimientos funcionales y no funcionales, como las necesidades específicas de la comunidad local.
Citations: [1] https://dspace.ups.edu.ec/bitstream/123456789/22901/1/UPS-CT009870.pdf [2] https://leadgenapp.io/es/formulario-de-solicitud-de-voluntario/ [3] https://www.pixelgrafia.com/post/113_mas-de-25-ideas-de-aplicaciones-moviles-para-emprender-un-negocio-2020 [4] https://ddd.uab.cat/pub/trerecpro/2020/tfg_278574/TFMAplicacinMvilHappyGappMagdalenaEvgenievaMaraGonzlez.pdf [5] https://www.andromo.com/es/app-builder/non-profit-application/ [6] https://appmaster.io/es/blog/las-50-mejores-ideas-de-aplicaciones-para-startups-en-2022 [7] https://dialnet.unirioja.es/descarga/articulo/3056477.pdf [8] https://pasaportesolidario.com/apps-para-hacer-voluntariado/ [9] https://formacion.intef.es/mod/book/tool/print/index.php?id=2431 [10] https://www.uv.mx/mev/files/2014/10/Proyecto_castillos_sep2014.pdf [11] https://openaccess.uoc.edu/bitstream/10609/45222/7/mgarciacatTFM1215memoria.pdf [12] https://www.expoknews.com/10-apps-con-impacto-social/ [13] https://red.uao.edu.co/bitstream/handle/10614/10229/T08003.pdf;jsessionid=1AFCDEE1F8153750B673C2CAB724FBDE?sequence=4 [14] https://appdesign.dev/diseno-web-para-ongs-asociaciones-y-fundaciones-sin-fines-de-lucro/ [15] https://tangramconsulting.es/noticias/ideas-para-apps-que-no-existen-ejemplos-para-inspirarte [16] https://riunet.upv.es/bitstream/handle/10251/185368/Bellot%20-%20Desarrollo%20de%20una%20APP%20movil%20para%20compartir%20actividades%20de%20ocio.pdf?sequence=1 [17] https://www.cahf.org/Portals/29/Volunteer%20Engagement/How%20to%20Create%20a%20Robust%20Volunteer%20Program_Spanish%20Final.pdf?ver=2020-12-09-114915-253 [18] https://repository.universidadean.edu.co/bitstream/handle/10882/12699/MartinezLuis2023.pdf?isAllowed=y&sequence=1[19] https://oa.upm.es/76289/1/TFG_IRENE_GUILLO_MERINO.pdf [20] https://www.youtube.com/watch?v=rVeieVSe4LM
Análisis de los resultados
Los resultados obtenidos son bastante convincentes, aunque debemos estudiarlos en profundidad. Para el análisis de los resultados disponemos de los informes con las soluciones realizadas por humanos de forma previa a la utilización de la IA. Es decir, primero llevamos a cabo el trabajo nosotros y luego se lo pedimos a ChatGPT, para posteriormente comparar los resultados.
De la comparación entre las respuestas humano/IA en siete casos de estudio y en tres ediciones del curso obtenemos los siguientes aspectos destacables:
- En las pruebas realizadas no se han detectado soluciones claramente incorrectas, aunque hay problemas que le cuestan más que otros. El ejemplo que se muestra arriba corresponde a una solución bastante lograda.
- En ocasiones la IA hace listas de requerimientos donde varios de los requerimientos en realidad son el mismo con otras palabras.
- Se producen omisiones de requerimientos clave para el desarrollo de la aplicación.
- A veces las soluciones se enfocan obstinadamente a aspectos poco relevantes del problema.
- En algunas ocasiones la IA propone requerimientos interesantes que no habían sido contemplados por los humanos.
Conclusiones:
En el momento de realizar este artículo, la IA tiene el nivel que correspondería a un becario: Tiene conocimientos teóricos, tiene muchas ganas de quedar bien… aunque se equivoca en cosas que nos parecen evidentes, y tiene ideas geniales de tanto en tanto.
¿Qué pasará en el futuro? Es difícil de decir, la clave es el entrenamiento de las IA. Un buen entrenamiento dará lugar a IAs cada vez más efectivas. El peligro es que si se utiliza la web para entrenar las IA, estas se entrenen con resultados generados por las mismas IAs y se amplifiquen los errores. La endogamia nunca es buena y menos en el caso de las IA.
Por tanto, aconsejo el uso de la IA en el análisis informático como una segunda opinión, de momento es mejor analizar manualmente y contrastar los resultados, especialmente en una fase tan importante como es el análisis donde los errores se pagan muy caros.