LibRed Red para la implantación de software libre en algunas asignaturas de Informática Rafael Molina, Rosana Satorre, Francisco J. Gallego, Francisco Mora, Carlos Villagrá, Lorenzo Carbonell, Juan A. Puchol
introducción Experiencia para sustituir herramientas de software propietario por otras de software libre: Cuatro asignaturas optativas de Informática Apoyo al movimiento de software libre y conocimiento abierto Sustitución del software con costosas licencias Constatar las ventajas del software libre Integración de las herramientas y uso en todas las etapas del desarrollo del proyecto
objetivos Objetivos específicos de la red Identificar las tareas Determinar lenguaje de programación, compilador e IDE Determinar herramientas de gestión de proyectos Potenciar ABP-Forja para comunicación y planificación Proporcionar herramientas de documentación Implantar herramientas durante el curso Evaluar resultados, opiniones y conclusiones Promover estas herramientas en otras asignaturas
contexto 4 asignaturas optativas de Informática: Modelos de Fabricación Asistida por Computador (MFAC) Razonamiento (RAZ) Gráficos Avanzados y Animación (GAA) Juegos y Realidad Virtual (JRV) Características: 6 créditos (3+3) Alumnos de cursos avanzados Alrededor de 20 matriculados por asignatura 7 profesores Aprendizaje Basado en Proyectos Videojuego
contexto Curso 2005/2006: Asignaturas independientes MFAC RAZ GAA JRV Desarrollo A elegir por el alumno Prolog, CLIPS Builder C++ DevCpp/Allegro Gestión y comunicación A elegir por el alumno A elegir por el alumno A elegir por el alumno A elegir por el alumno Análisis y documentación A elegir por el alumno (MSWord) A elegir por el alumno (MSWord) A elegir por el alumno (MSWord, Doxygen) A elegir por el alumno (MSWord, Doxygen) Curso 2006/2007: Asignaturas agrupadas Aprendizaje Basado en Proyectos Necesidad de gestionar mejor y mayor comunicación ABP-Forja Herramientas a elección del alumno, recomendación de SW libre. Curso 2007-2008: Asignaturas agrupadas Aprendizaje Basado en Proyectos Herramientas de software libre en todas las facetas LibRed
estudio Estudio de las herramientas disponibles que faciliten las siguientes facetas: Análisis del problema y diseño de una propuesta conceptual de solución Desarrollo e implementación de la solución Comunicación entre los miembros del equipo Intercambio de información actualizada y consistente Gestión del equipo Documentación del proceso
análisis y diseño Ayuda de herramientas CASE (Computer Aided Software Engineering) UML (Unified Modeling Language) estandariza de forma gráfica la especificación Diagramas más utilizados: Casos de uso Diagramas de clases Diagramas de objetos Diagramas de secuencia ArgoUML Dia StarUML Ventajas Multiplataforma (Java) Instalación sencilla Genera código para Java, C++, C# y PHP Exporta a varios formatos gráficos Plugin para OpenOffice y Eclipse Muy sencillo de utilizar Exporta a varios formatos gráficos La utilidad Dia2Code genera código en varios lenguajes (C++) Linux/Windows Muy completo Gran variedad de Diagramas UML Genera código para C++, C# y Java. Genera documentación en varios formatos Importa diagramas de Rational Rose (ideal para migrar a SW libre) Inconvenientes Interfaz complicado Capacidades limitadas Sólo disponible para Windows
desarrollo Requisitos del lenguaje de programación Polivalente y flexible Eficiente (visualización en tiempo real) Compatible con las bibliotecas que se utilizarán (OpenGL, Allegro, SDL ) Componentes del IDE (Integrated Development Environment): Editor de texto Compilador o intérprete Herramientas de automatización Depurador Deseable Control de Versiones
desarrollo Eclipse EasyEclipse Code::Blocks Ventajas Muy completo Configurable mediante plugins Pensado para Java pero adaptable a otros lenguajes Versiones preparadas para C/C++ Plugins para Subversion y Doxygen Las mismas que Eclipse pero más sencillo de instalar Instalados ya los plugins para C/C++, Subversion y Doxygen Es muy sencillo Ocupa muy poco espacio Configurable mediante plugins Inconvenientes Instalación compleja Tiempo de aprendizaje algo elevado Instalación del compilador C/C++ aparte Tiempo de aprendizaje algo elevado Instalación del compilador C/C++ aparte Sólo disponible para C/C++ Menos plugins disponibles que para Eclipse No incorpora control de versiones DevCpp Es muy sencillo Ocupa muy poco espacio Sólo disponible para C/C++ No incorpora control de versiones
comunicación y gestión Groupware: herramientas integradas para la comunicación, intercambio de información y gestión de los miembros de un grupo Requisitos: Diferentes funcionalidades de comunicación Integración de las distintas herramientas (proceso de registro único) Fácil administración y monitorización de los grupos Incorporado un sistema de control de versiones (CVS o Subversion)
comunicación y gestión BSCW egroupware Moodle SourceForge Gforge (ABP-Forja) Google Ventajas Accesible mediante servidor Web Accesible mediante servidor web Incorpora gestor de proyectos Interfaz agradable Fácil de configurar. Permite la instalación en un servidor propio y modificar su aspecto Muy utilizado por la comunidad de software libre. Entorno muy probado Los alumnos se apuntan ellos mismos y forman sus propios grupos Similar a SourceForge Permite montar un servidor interno y gestionarlo uno mismo Los alumnos se apuntan ellos mismos y forman sus propios grupos Facilita la labor del profesor y le deja acceder a las prácticas de los alumnos Muy aceptado y utilizado. Con una misma cuenta se puede acceder a las diferentes funcionalidades Servicio fiable Ofrece un servidor de Subversion Inconvenientes Orientado a compartir ficheros y eventos en la agenda No permite utilizar repositorios No está orientado a trabajos software No ofrece control de versiones Orientado a encuestas y ejercicios No permite trabajar con sistema de versiones Servidor externo La interfaz no es muy amigable La interfaz no es muy amigable. El profesor debe darse de alta en cada grupo El espacio que ofrece es de libre acceso
control de versiones Permiten el intercambio consistente de la información, con acceso a los archivos de forma concurrente Aumenta mucho el rendimiento en trabajos donde muchas personas tienen que manejar los mismos ficheros Elegimos Subversion (SVN), con un cliente: TortoiseSVN Para Windows Fácil de instalar Integrado con el explorador Funcionalidades: logs, diferencias entre ficheros, puede crear ramas RapidSVN Multiplataforma Mismas funcionalidades que TortoiseSVN Manejo algo más complicado que TortoiseSVN
documentación Tipos de documentación: Documentación de arquitectura y diseño: Visión general, a alto nivel, del sistema Documentación técnica: Código, clases, objetos, funciones Más detallada y debe ser escrita mientras se escribe el código Documentación de usuario: Describe como usar los programas y herramientas Editores UML: - ArgoUML - Dia - StarUML Documentación de arquitectura y diseño Documentación técnica Documentación automática: - Doxygen - NaturalDocs Editores de texto: - OpenOffice - Latex Documentación de usuario
recomendación Ventajas Inconvenientes Eclipse C/C++ + Subclipse + Eclox 72,2 Mb IDE muy completo Manejo de Subclipse (plugin de Subversion) muy sencillo e integrado en el IDE Eclox (plugin de Doxygen) para generar automáticamente la documentación Dificultad inicial de uso Subeclipse y Eclox por separado Doxygen por separado Compilador de C/C++ por separado Eclipse C/C++ + Doxygen + Cliente de Subversion 79,7 Mb EasyEclipse + plugin para C++ (CDT) EasyEclipse C/C++ 100 Mb 100 Mb Code::Blocks + Doxygen + Cliente de Subversion 28,9 Mb IDE muy completo Compilador de C/C++, Doxygen y cliente de Subversion para otras aplicaciones Más sencillo de instalar que eclipse No se pierde la funcionalidad con Java Subclipse y Eclox ya instalado Más sencillo de instalar que eclipse Subclipse y Eclox ya instalado Muy fácil de instalar Muy fácil de utilizar Compilador de C/C++, Doxygen y cliente de Subversion para otras aplicaciones Dificultad inicial de uso. Compilador de C/C++ por separado Doxygen por separado Cliente de Subversion por separado Dificultad inicial de uso. Plugin de C++ por separado. Compilado de C/C++ r por separado Doxygen por separado Se pierde la funcionalidad con Java Dificultad inicial de uso Compilador de C/C++ por separado Doxygen por separado Doxygen por separado Cliente de Subversion por separado
conclusiones Hemos identificado las tareas principales en un proyecto que son susceptibles de utilizar herramientas de software libre Hemos analizado las aplicaciones existentes para cada etapa, detectando sus principales características Hemos determinado cuáles son las herramientas más adecuadas para cada etapa, recomendándolas según las necesidades de los alumnos Hemos implantado las herramientas estudiadas en cada asignatura durante el curso
conclusiones Encuesta cuantitativa a los alumnos (06-07) Dificultad, interés y satisfacción (entre 1 y 5) ABP-Forja + Subversion Opiniones ABP-Forja 4 3,5 3 2,5 2 1,5 1 0,5 0 Foros Notícias Listas Correo Registros Tareas Docum. Encuestas Subversion Uso general Forja Dificultad 2,125 2,125 2,165 2,22 2,275 2,575 2,31 2,47 2,42 Interés 2,125 2,21 2,41 2,445 2,98 3,215 3,225 3,77 3,2 Satisfacción 2,335 2,32 2,465 2,3 2,945 3,11 3,17 3,8 3,395
conclusiones Encuesta cuantitativa a los alumnos (06-07) Interés y satisfacción por cada herramienta superior a su dificultad Herramientas peor valoradas las de menor uso (encuestas, foros, noticias y listas de correo) Alto interés y satisfacción por el gestor de tareas y los registros Las herramientas más valoradas son el gestor de documentos y SubVersion. También han sido las de mayor uso y dificultad Uso general de ABP-Forja ligeramente superior a la media de las herramientas por separado.
conclusiones Encuesta cualitativa a los alumnos (06-07) Valoración de ABP-Forja con opiniones muy variadas: algunos alumnos no la han usado en absoluto y el resto ha usado sobre todo el SubVersion y el gestor de documentos Mayor uso en los grupos en los que no se conocían los miembros o había una mayor distancia geográfica
conclusiones Encuesta a los profesores (06-07) Las herramientas nuevas necesitan de un proceso de aprendizaje por parte de los alumnos y los profesores (4 horas) Los recursos empleados ayudan mucho en la comunicación entre profesores y alumnos, y entre los grupos de alumnos (tutorías a distancia y disponibilidad de todo el material actualizado) Valoración de los recursos empleados muy positiva, indispensables para la gestión de los proyectos
conclusiones Percepción sobre el resto de las herramientas (07-08) Los alumnos agradecen disponer de herramientas de software libre, de fácil acceso y actualizadas Los profesores se liberan de la necesidad de conseguir licencias El software libre tiene grandes ventajas: Puede usarse para con cualquier propósito sin coste económico y distribuir sus copias Puede adaptarse a las necesidades de cada usuario y mejorarse Pueden hacerse públicas las mejoras para que toda la comunidad se beneficie En ocasiones tiene mejores características que el software bajo licencia, tanto en funcionalidad como en actualizaciones.
trabajos futuros Realizar nuevas encuestas a los alumnos, durante el curso 07-08 En cursos sucesivos, incorporar nuevas herramientas para otras etapas del desarrollo, o sustituir por otras mejores Incorporación de estas herramientas en otras asignaturas con necesidades similares