Descargar

Clasificación basada en la detección de errores (página 2)

Enviado por Pablo Turmero


Partes: 1, 2, 3, 4
edu.red 11 Diseñar un sistema de aprendizaje de la programación (III) Usando y construyendo una base de conocimientos colaborativa Asocia información semántica a cada uno de los tipos de error. Recoge información contextualizada y derivada de la experiencia de los desarrolladores lo que permite que cualquier desarrollador pueda aprender de la experiencia de los demás. Se realimenta dinámicamente.

edu.red 12 Diseñar un sistema para mejorar la calidad del software (IV) Analizando en profundidad del código Elaborando estadísticas sobre los errores Construyendo una base de conocimiento colaborativamente Utilizando la experiencia acumulada de otros desarrollos Permitiendo el desarrollo en equipo de los proyectos

edu.red 13 Clasificación de usuarios basada en la detección de errores Caracterizar los errores que cometen los desarrolladores en distintos niveles de aprendizaje basándose en el sistema. Obtener un perfil de desarrollador dependiendo de su experiencia, utilizando los datos del análisis anterior.

edu.red 14 Metodología de trabajo (Gp:) Modelado del (Gp:) sistema

(Gp:) Desarrollo (Gp:) del sistema

(Gp:) Proyectos

(Gp:) Resultados del (Gp:) Análisis de error

(Gp:) Clasificación (Gp:) usuario (Gp:) basándose en (Gp:) los errores

Primer objetivo Segundo objetivo

edu.red 15 Distintas soluciones analizadas Sistemas de aprendizaje virtual de la programación Entornos para el aprendizaje de la programación Entornos de desarrollo comerciales Entornos colaborativos Gestores de prácticas avanzados Herramientas de detección de errores

edu.red 16 Sistemas de aprendizaje virtual de la programación Entornos analizados: Algorithms in action, JCAT, HalVis, KBS-Hyperbook Introduction to Java Programming, Curso interactivo de programación en Pascal, Exploring Computer Science Concepts with Scheme, ELM-ART, WWW-Based C++ Course, DSTool Ventajas Web como medio de comunicación entre el estudiante y el sistema. Carencias: Son demasiado teóricos. Muy pocos disponen de herramientas de programación. Los ejemplos de código alejados de los problemas reales.

edu.red 17 Entornos de desarrollo aprendizaje Entornos analizados: BlueJ [Kölling 2003], AnimPascal [Satratzemi 2001] Carencias No proporcionan ayuda: Sobre la interpretación de los errores cometidos, Sobre la solución de los mismos. Necesitan instalación y configuración por parte del usuario. Los estudiantes tienen problemas en la transición hacia entornos comerciales

edu.red 18 Entornos de desarrollo comerciales Entornos analizados: Eclipse, NetBeans, JBuilder Carencias Gestión de errores pobre. No señalan errores conceptuales. Es necesaria una experiencia para poder relacionar los síntomas de los defectos con sus verdaderas causas para poder repararlos. Información ambigua. No siempre la información del error es correcta. No proporcionan ayuda para solucionar errores. Complejos para programadores principiantes

edu.red 19 Entornos de colaboración Entornos analizados RECIPE, (Real-time Collabortive Interactive Programming Environment) [Shen 2000] COLLEGE [Bravo C. 2004], PlanEdit [Redondo 2002] Ventajas Facilita la revisión del código por personas distintas al autor lo que permite detectar y eliminar. Permiten realizar el trabajo de forma síncrona. Carencias No utilizan la información de los errores para generar conocimiento. Muchas veces es difícil aprovechar el conocimiento aportado por un usuario para reutilizarlo en un futuro.

edu.red 20 Gestores de prácticas avanzados Sistemas analizados: Sistema de entrega y evaluación de objetivos de aprendizaje [Huizinga 2001], Praktomat [Zeller 2000] Carencias: Informe sobre errores de compilación y prueba Información proporcionada no es muy reveladora de los verdaderos problemas Protocolo petición-respuesta Sistema sólo ayuda a corregir errores; pero no a evitarlos. No permite revisar del proceso de desarrollo que ha seguido el alumno.

edu.red 21 Técnicas de detección de errores Inspección manual Técnica muy eficiente. Consumen tiempo y se requiere práctica para aplicarlas correctamente. Técnicas dinámicas (pruebas y asertos) Técnica imprescindible para comprobar que se cumplen los requisitos. Es difícil construir un conjunto de prueba adecuado en programas complejos. Técnicas estáticas No están limitados a la calidad de los casos de prueba. El análisis no siempre es suficientemente preciso y exceciva cantidad de información poco relevante.

edu.red 22 Herramientas de análisis estático Herramientas que buscan errores / herramientas que comprueban el estilo. Distintas herramientas pueden complementarse.

edu.red 23 Resumen de la situación actual (I) Sistemas no sirven para las distintas etapas de experiencia de un programador Sistemas y entornos orientados al aprendizaje, están planteados para etapas iniciales de aprendizaje. Sistemas profesionales sólo accesible con cierto grado de experiencia. Importancia fundamental de utilizar la Web como interfaz; pero sólo se utiliza para proporcionar contenidos. Colaboración es fundamental, sin embargo se utiliza de forma limitada: Proceso de desarrollo: sistemas de control de versiones Pocos sistemas utilizan la colaboración para recoger la experiencia de los desarrolladores.

edu.red 24 Resumen de la situación actual (II) Gestión de errores Proporcionan poca ayuda para comprender cada mensaje de error Es difícil relacionar el mensaje con las causas del error. Carecen de un registro de las compilaciones que va realizando el desarrollador Análisis de errores sólo para generar código. Herramientas para la detección automática de errores Pueden ahorrar tiempo Generan gran cantidad de warnings que son difíciles de analizar para un usuario

edu.red 25 Detección automática de errores ¿Por qué no diseñamos un entorno activo que con la información sobre los errores guíe al estudiante para construir software sin errores? ¿Por qué no articular todo este proceso de mejora en la calidad del software en base a los errores detectados automáticamente en el código usando técnicas de procesadores de lenguaje?

edu.red 26 Definición de un modelo para el aprendizaje de la programación Características Búsqueda, almacenamiento y visualización de errores Análisis de los errores de programación Aprendizaje continuo con información de los propios desarrolladores Colaboración en el desarrollo

edu.red 27 Esquema del modelo del sistema Base de conocimiento sobre errores Búsqueda, almacenamiento y visualización de errores Fichero fuente Genera avisos para prevenir errores Errores Información semántica sobre el error Análisis de los errores de programación Aprendizaje continuo con información de los propios desarrolladores Colaboración en el desarrollo

edu.red 28 Definición de un modelo para el aprendizaje de la programación (I) Búsqueda, almacenamiento y visualización de errores Búsqueda de errores mediante técnicas de procesadores de lenguaje. Creación de una historia de compilación. Visualización de los errores. Todo se realiza en tiempo de escritura de código.

edu.red 29 Historia de compilación Para realizar una búsqueda exhaustiva de posibles errores se han combinado una serie de herramientas de análisis estático. Se invocarán cada vez que el desarrollador quiera compilar su código. Todos los avisos generados se guardan en un base de datos para formar la historia de compilación: Asociados a un desarrollador y a un proyecto. Clasificados por el tipo de error

edu.red 30 Definición del modelo (II) Análisis de los errores de programación Obtención de métricas de errores mediante el análisis de la historia de compilación. Análisis de evolución por tipo de errores. Análisis de frecuencias. Análisis comparados entre un usuario y el grupo. Generación de avisos personalizados adaptados al perfil de los desarrolladores.

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente