32 Base de conocimientos colaborativa La importancia no es su estructuración Facilidad para llegar hasta la información relevante Sistema crea hiperenlaces automáticamente. Creación de índices que relacionan contenidos. Facilidad para introducir nuevos contenidos: Cualquier desarrollador puede hacerlo en cualquier momento sin necesidad de herramientas extra. Con este modelo la información crece constantemente Se va enriqueciendo con la experiencia de los desarrolladores. El conocimiento se realimenta.
33 Definición del modelo (IV) Colaboración en el desarrollo de aplicaciones Características del entorno para permitir este objetivo: Entorno integrado. Entorno orientado hacia código real. Entorno fácil y disponible en cualquier sitio. Soporte para trabajo en grupo. Seguimiento mediante una historia de trabajo.
34 Entorno de desarrollo colaborativo e historia de trabajo La historia de trabajo permite hacer una navegación por la evolución del proyecto de forma asíncrona: Permite buscar el origen de un problema Permite estudiar el trabajo de cada desarrollador Entorno de desarrollo que requiera la mínima instalación y configuración. Herramientas de comunicación y coordinación entre los desarrolladores.
35 PBA: Sistema de análisis de errores de los programas IDEWeb: Entorno Integrado de desarrollo en Web COLLDEV: Entorno de colaboración en el desarrollo Historia de compilación Base de conocimientos Colaborativa Ficheros del proyecto / historia de trabajo Añadir nuevos conocimientos Crear nuevas páginas Avisos e Informe análisis errores Lanza la compilación Mensajes error Envío y Recepción De mensajes Mecanismo De toma de decisiones Intercambio ficheros dir compartido
36 COLLDEV: Entorno para la colaboración en el desarrollo de aplicaciones Sistema colaborativo asíncrono que facilita la coordinación y colaboración de grupos para trabajar sobre un proyecto software. Facilita la comunicación, coordinación y toma de decisiones conjunta por parte de los usuarios. Gestiona los espacios de trabajo compartidos para los proyectos y permite el trabajo simultáneo de varios usuarios con los archivos. Permite realizar un seguimiento del proceso de desarrollo mediante una historia activa de trabajo.
37 IDEWeb: Entorno Integrado de desarrollo en Web COLLDEV: Entorno de colaboración en el desarrollo Historia de compilación Base de conocimientos Colaborativa PBA: Sistema de análisis de errores de los programas Ficheros del proyecto / historia de trabajo Añadir nuevos conocimientos Crear nuevas páginas Avisos e Informe análisis errores Lanza la compilación Mensajes error Envío y Recepción De mensajes Mecanismo De toma de decisiones Intercambio ficheros dir compartido
38 IDEWeb: Entorno de desarrollo integrado en Web Entorno de desarrollo sobre Web El usuario puede ponerse a programar sin necesidad de instalar nada Arquitectura Web permite centralizar la información sobre el proceso de desarrollo Independencia del lugar de trabajo Permite la creación, modificación y compilación de programas Es un entorno abierto que permite la programación en distintos lenguajes
39 IDEWeb: Base de conocimiento colaborativa Los desarrolladores pueden: Consultar ayuda sobre los errores: Descripción Contexto Causas según contexto Forma de solucionarlo Introducir experiencia sobre los errores El prototipo lo implementa sobre un Wiki Información introducida manualmente por los desarrolladores. Sistema enlaza automáticamente la información del error con cada de los avisos procedentes del análisis de errores
40 Ficheros del proyecto / historia de trabajo IDEWeb: Entorno Integrado de desarrollo en Web COLLDEV: Entorno de colaboración en el desarrollo Historia de compilación Base de conocimientos Colaborativa PBA: Sistema de análisis de errores de los programas Añadir nuevos conocimientos Crear nuevas páginas Avisos e Informe análisis errores Lanza la compilación Mensajes error Envío y Recepción De mensajes Mecanismo De toma de decisiones Intercambio ficheros dir compartido
41 PBA: Sistema de análisis de errores de programas Sistema de gestión de errores utilizando compiladores y herramientas de análisis estático El tratamiento incluye: Captura, clasificación, almacenamiento y análisis de los errores. El sistema genera estadísticas sobre los errores Crea documentos HTML con los datos y las gráficas. Objetivo resaltar errores más importantes del usuario para que trate de evitarlos
42 Ficheros del proyecto / historia de trabajo IDEWeb: Entorno Integrado de desarrollo en Web COLLDEV: Entorno de colaboración en el desarrollo Historia de compilación Base de conocimientos Colaborativa PBA: Sistema de análisis de errores de los programas Consultar / Añadir nuevos conocimientos Crear nuevas páginas Avisos e Informe análisis errores Lanza la compilación Mensajes error Envío y Recepción De mensajes Mecanismo De toma de decisiones Intercambio ficheros dir compartido Inicio de sesión Edición proyecto Pide compilación
43 Objetivos Analizar los errores de programación con los que se encuentran los estudiantes cuando realizan un proyecto software. Proyectos reales realizados por los alumnos en asignaturas de distintos cursos de ingeniería informática. Análisis estático de los proyectos ya finalizados. Obtener los errores más frecuentes en cada curso. Comparar los errores entre distintos niveles de experiencia y analizar su evolución. Establecer los errores que caracterizan a los usuarios para su clasificación.
44 Precedentes Huizinga [Huizinga 2001] realizan un estudio sobre los problemas encontrados en una práctica de una asignatura de programación. Define objetivos de cada proyecto y los relaciona con características de la entrega. Herramienta de entrega automática de prácticas. Datos estadísticos sobre el comportamiento del conjunto de los alumnos al presentar una práctica. Satratzemi [Satratzemi 2001] estudia evolución de los errores según los alumnos realizan una determinada práctica. Herramienta AnimPascal Registro de acciones de AnimPascal se hace un seguimiento.
45 Características de nuestro trabajo Los proyectos analizados son todos relativamente grandes: Proyectos realizados en Java Proyectos más pequeños: 14 ficheros java con más de 4KB cada uno. No se limita a una práctica de una única asignatura: cinco asignaturas cada una de un curso 14377 ficheros en Java. Se utiliza el sistema diseñado en esta tesis: SICODE Detectar errores en el código fuente Análisis estático más profundo que el que realiza un simple compilador.
46 Fases Recopilación de proyectos de distintos niveles (cursos) a partir de los proyectos entregados por los alumnos en cada asignatura. Análisis de los mismos utilizando nuestro sistema SICODE. Comparación de los datos de los proyectos en distintas etapas de aprendizaje de la programación. Caracterización de los errores en relación a los niveles de experiencia de los desarrolladores.
47 Elección de muestras 689 proyectos / 14.377 ficheros Java Tamaño mínimo del proyecto: 14 ficheros de código fuente
48 Búsqueda de errores Herramientas que utiliza el prototipo Sistema de análisis de errores de programas (PBA) para realizar el análisis: Javac, compilador comercial, Sun Microsystems Antic [Knizhnik 2003], verificación sintáctica. Jlint [Knizhnik 2003], verificación semántica. FindBugs [Hovemeyer 2004a], detección de errores basándose en patrones de error PMD [Copeland], detección de posibles errores mediante la comprobación de reglas
49 Tipos de errores buscados Errores lógicos: comparaciones, estructuras de control, inicialización. Problemas de ocultación o ámbito de nombres. Tratamiento de excepciones. Código innecesario o no utilizado. Mejoras en el diseño ? refactorización. Se han eliminado los avisos correspondientes al incumplimiento de convenios de nombres y de código.
50 Resultados generales Distribución de los avisos detectados: 1er y 2º cursos: bastantes avisos que afectan a más del 75% de los proyectos. 3º, 4º un único aviso poco significativo. PFC ningún error afecta a más del 50% de los proyectos. Existen errores exclusivos para cada curso ? nivel de experiencia del programador. Hay errores que permanecen a lo largo de todos los cursos: Información importante para los profesores, pueden significar lagunas de conocimiento. Errores que evolucionan a lo largo de los cursos: Desaparecen por el incremento de la experiencia Aparecen por los nuevos temas tratados en las asignaturas
Página anterior | Volver al principio del trabajo | Página siguiente |