PACA: Corrector Automático de Prácticas

Anuncio
PACA: Corrector Automático de Prácticas
Ingenierı́a Técnica en Informática de Gestión
Estructuras de Datos y de la Información
En la URL http://platon.escet.urjc.es/edi/correccion se encuentra
disponible la aplicación PACA (Plataforma de Agentes inteligentes aplicados
a la Corrección Automática). Básicamente, dicha aplicación permite corregir
automáticamente el código fuente de una práctica de la asignatura.
A continuación se describen la funcionalidad básica de la aplicación, la estructura de la evaluación, y algunas recomendaciones sobre su uso.
1
Funcionalidad de PACA
La herramienta ofrece al alumno dos tipos de funcionalidad: la evaluación de
los paquetes y programas principales pedidos en la práctica, y la entrega de
dicho código fuente. Por otra parte, los resultados de la evaluación automática
de la práctica mediante dicha herramienta serán tenidos en cuenta en la nota
definitiva de la práctica.
Para utilizar la herramienta el alumno deberá hacer un login donde el usuario
será su número de expediente, y utilizar un password que será facilitado al
alumno por los profesores de la asignatura. Dicha clave de acceso es individual,
y el alumno será responsable de su correcta utilización.
1.1
Evaluación de la Práctica
La evaluación de la práctica se encuentra estructurada en dos niveles principales.
En un primer nivel se consideran varios tests sobre las distintas partes de la
práctica. Por ejemplo, imaginemos que una parte diferenciada de la práctica
fuera la implementación del paquete Listas. En un segundo nivel se encuentran
los distintos casos de prueba seleccionados para corregir la parte correspondiente
a cada test.
La corrección de un test determinado conlleva la entrega a la aplicación por
parte del alumno de los ficheros fuente correspondientes a dicha parte. Por
ejemplo, en el caso del test sobre el paquete Listas, el alumno tendrı́a que
entregar únicamente los ficheros listas.ads y listas.adb. La aplicación compiları́a
dichos ficheros y los enlazarı́a con el resto de ficheros que hagan falta para probar
el paquete Listas. Pueden pasar dos cosas:
1. Se pudo generar un ejecutable para el test. En ese caso, dicho programa
será utilizado para ejecutar el conjunto de casos de prueba para la parte
correspondiente de la práctica.
1
2. Se produjeron errores de compilación. La causa más probable de dichos
errores será el incumplimiento de algún requisito de implementación descrito en el enunciado de la práctica.
Los casos de prueba se configuran en base a un conjunto de datos de entrada
y salida. Por ejemplo, un caso de prueba para el test del paquete Listas puede
consistir en una lista y un elemento a buscar. La ejecución del programa generado para un test con los datos de entrada de un determinado caso de prueba,
puede producir las siguientes salidas:
1. Un error de ejecución. Por ejemplo, una excepción del tipo CONSTRAINT
ERROR.
2. Un aborto de la ejecución. Actualmente el corrector está configurado para
no permitir un tiempo de ejecución para cada caso de prueba superior a
5 segundos (posibles bucles infinitos).
3. Una terminación correcta, pero con resultados incorrectos. Por ejemplo,
para el test del paquete Listas con un caso de prueba correspondiente a la
posición de un elemento en la lista, el programa podrı́a terminar, pero el
valor resultante podrı́a no coincidir con el correcto. La salida por pantalla
del error se corresponde con el resultado del comando diff de unix:
Esperado:
resultado correcto
--Obtenido:
resultado de la ejecución
4. Una terminación correcta, con resultados correctos.
1.2
Entrega de la Práctica
Además de la memoria de la práctica, será obligatorio realizar la entrega del
código fuente a través de la herramienta. Para ello, los alumnos deberán proporcionar al sistema su clave de acceso. Téngase en cuenta que el sistema sólo
permite una entrega por alumno, por lo que una vez entregada la práctica de
un grupo, ninguno de sus componentes podrán realizar una entrega adicional
(por separado, o con otro compañero de prácticas). La entrega de la práctica se
realizará solamente a través de uno de los componentes del grupo. Si el grupo
sólo es de una persona, se deberá dejar el usuario del segundo componente en
blanco (borrando el valor que aparece por defecto).
2
Ejemplo de Estructura de Evaluación de una
Práctica
Un ejemplo de tests diseñados para una páctica pueden ser los siguientes:
• Parte I. Prueba del paquete Listas.
• Parte II. Prueba del programa de prueba del paquete Listas.
• Parte III. Programa de aplicación del paquete Listas.
2
La herramienta ofrece la ventaja fundamental de poder probar las distintas
partes de la práctica de manera independiente. Por ejemplo, el test correspondiente a la implementación del programa de prueba del paquete Listas requiere
únicamente el fichero test listas.adb. Como la prueba de dicho paquete requiere
a su vez el paquete Listas, la herramienta utilizará la implementación realizada
por los profesores de la asignatura. De esa forma se consigue: (1) que los posibles errores cometidos por el alumno en la implementación del paquete Listas no
se propaguen a la prueba del programa test listas, (2) que los alumnos puedan
trabajar en paralelo sobre distintas partes de la práctica.
3
Recomendaciones de Uso
A continuación se ofrecen algunas recomendaciones sobre el uso de la herramienta:
• La corrección de cada práctica conlleva la compilación de los ficheros fuente
entregados para cada test, y la ejecución de todos sus casos de prueba. Con
el objetivo de no sobrecargar el servidor donde se ejecuta el corrector, y de
ofrecer unos tiempos de respuesta razonables, se recomienda no solicitar
la evaluación de más de un test al mismo tiempo.
• Releer el enunciado de la práctica cuando se produzcan errores de compilación en la generación del ejecutable de un test, ya que dichos errores se
deberán por lo general al incumplimiento de alguna especificación descrita
en el enunciado (nombres de procedimientos/funciones, orden/tipo de los
parámetros, ...).
• En cualquier caso, se recomienda el uso del foro para comunicar cualquier
posible problema que se haya encontrado a este respecto.
• Los datos de entrada/salida asociados a cada caso de prueba se encuentran
ocultos. El alumno tiene la obligación de configurar por su cuenta un conjunto de casos de prueba adecuado para probar por sı́ mismo la práctica.
Los casos de prueba de la aplicación se proporcionan, por tanto, como
ayuda y no como sustituto para la realización de las pruebas. Además,
tened en cuenta que la corrección final incluirá casos de prueba adicionales
a los actuales.
• Se recomienda no esperar al último dı́a para realizar la entrega definitiva
de la práctica, ya que el servidor puede estar sobresaturado ese dı́a, y más
tarde no podrá realizarse la entrega.
3
Descargar