PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf ·...

126
ESCUELA T ´ ECNICA SUPERIOR DE INGENIEROS INFORM ´ ATICOS UNIVERSIDAD POLIT ´ ECNICA DE MADRID PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA GENERACI ´ ON ALEATORIA DE ENUNCIADOS DE EXAMEN DE TIPO TEST Autor: Sandra Lima D´ ıez Director: Dr. Jaime Ram´ ırez Rodr´ ıguez Julio 2016

Transcript of PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf ·...

Page 1: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

ESCUELA TECNICA SUPERIOR DEINGENIEROS INFORMATICOS

UNIVERSIDAD POLITECNICA DE MADRID

PROYECTO FIN DE CARRERA

HERRAMIENTA PARA LAGENERACION ALEATORIA DEENUNCIADOS DE EXAMEN DE

TIPO TEST

Autor: Sandra Lima Dıez

Director: Dr. Jaime Ramırez Rodrıguez

Julio 2016

Page 2: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 3: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

A mis padres y mi hermana, por su apoyo incondicional en toda mi vida.A Alberto, por su paciencia y sus animos para seguir adelante.

I

Page 4: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 5: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Resumen

Las pruebas de evaluacion de algunas asignaturas en la Escuela Tecnica Superior deIngenieros Informaticos de la Universidad Politecnica de Madrid se realizan medianteexamenes de tipo test que contienen diferentes ejercicios relacionados con el temarioimpartido. Es habitual generar diferentes versiones del mismo examen que se repartenen un orden determinado entre todos alumnos con el fin de evitar la copia de resultadosy por ello se requiere que el mismo contenido de la prueba aparezca ordenado de formaaleatoria en cada una de las versiones del examen, conservando el mismo enunciado delexamen, numero de preguntas y respuestas.Hasta el momento, dentro del Departamento de Lenguajes y Sistemas e Ingenierıa delSoftware se ha estado utilizando una herramienta que permite la generacion de dife-rentes enunciados, combinando el orden de las respuestas de las distintas preguntasque componen el examen. Debido a una serie de limitaciones y nuevas necesidades de-rivadas de la experiencia con la herramienta anterior, se decide desarrollar una nuevaherramienta que mejore el formato de especificacion de los examenes y amplıe sus fun-cionalidades, reduciendo el tiempo de ejecucion y permitiendo que pueda ser ejecutadaen cualquier plataforma.Este proyecto fin de carrera analiza las limitaciones encontradas en la herramienta an-terior, determinando que tecnologıas pueden ayudar a satisfacer los objetivos identifi-cados, definiendo un nuevo formato de definicion de examenes y disenando y realizandoun nuevo componente software que permita conservar y ampliar las funcionalidades dela herramienta anterior, mejorando el rendimiento y asegurando que pueda ser ejecu-tado bajo cualquier sistema operativo.En primer lugar se realiza el estudio de la herramienta Barajador.sh, identificando lasfuncionalidades que ofrece y el lenguaje de especificacion definido. El resultado de esteestudio permite conocer los elementos que configuran un examen a partir de los cualesse definira un XSD que represente tanto la cabecera de un examen como los ejercicioscontenidos, soportando las nuevas funcionalidades solicitadas.En segundo lugar se disena y desarrolla una nueva herramienta siguiendo el paradig-ma de la orientacion a objetos, puesto que entre otras cosas, permite modularidad,mantenibilidad, fiabilidad y reusabilidad, caracterısticas necesarias para poder afron-tar las lıneas futuras identificadas. Se utiliza java como lenguaje de desarrollo y ası queconsigue disponer de una herramienta que puede ejecutarse en multiples plataformas,cumpliendo otro de los objetivos identificados.

III

Page 6: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 7: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Agradecimientos

A lo largo de mi carrera academica, personal y profesional, me he cruzado conmultitud de personas que me han acompanado y que me han servido de experienciay referencia en mi aprendizaje y evolucion, permitiendome llegando hasta donde estoyhoy en dıa.En primer lugar me gustarıa agradecer a Jaime la oportunidad de poder realizar esteproyecto fin de carrera, su paciencia, tiempo, consejos y seguimiento.Mi madre y mi hermana son mis incondicionales, mostrandome en todo momento suapoyo y confianza y animandome a seguir adelante y superar las metas pendientes. Megustarıa agradecerles todo lo que me aportan cada dıa y en concreto, el animo que mehan dado para continuar y finalizar este proyecto.No creo que hubiese tenido animos suficientes para finalizar esta carrera si no hubiesesido por Alberto, al que le debo su perseverancia para asegurarse de que finalizabaeste proyecto. Le agradezco su eterna paciencia, sus animos infinitos y que haya estadoahı siempre que he necesitado un empujon.Me gustarıa agradecer a mis amigos, en especial a Alfonso y Angela y a mi familia,su constante preocupacion y apoyo, sus animos y consejos y la confianza que handepositado en mi en todo momento.Por ultimo, me gustarıa agradecer a mi padre haber sido un referente al que seguir enmi vida, del que he intentado siempre tomar como ejemplo y gracias al que empece aestudiar esta carrera. Fue quien me acompano desde el primer dıa a matricularme y elque siempre confio en mi. Siento profundamente que no vaya a poder ver que finalmentehe conseguido cerrar esta etapa pero estoy segura de que confiaba en que serıa capazde retomar y finalizar mis estudios.

V

Page 8: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 9: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Indice general

Indice de Figuras XI

Indice de Tablas XII

Acronimos y abreviaturas 1

I Introduccion y Objetivos 3

Introduccion 51.1. Problematica y motivacion . . . . . . . . . . . . . . . . . . . . . . . . . 51.2. Objetivos y tareas a realizar . . . . . . . . . . . . . . . . . . . . . . . . 61.3. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . 7

II Estado de la Cuestion 9

LATEX 112.1. TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2. LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.1. Comandos LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2.2. Entornos LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Barajador script bash 153.1. Barajador.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2. Fichero de entrada examenItFlexible.tst . . . . . . . . . . . . . . . . . . 163.3. Fichero generado examenItFlexible.mix.tex . . . . . . . . . . . . . . . . 193.4. Fichero generado .key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.5. Fichero de configuracion opcionesItFlexible.tex . . . . . . . . . . . . . . 213.6. Fichero .tex examenItFlexible.tex . . . . . . . . . . . . . . . . . . . . . 223.7. Fichero de estilos ordinal.sty . . . . . . . . . . . . . . . . . . . . . . . . 233.8. Fichero de estilos configur.sty . . . . . . . . . . . . . . . . . . . . . . . 233.9. Fichero de estilos examennew.sty . . . . . . . . . . . . . . . . . . . . . 23

XML y XSD 294.1. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1.1. Estructura de un documento XML . . . . . . . . . . . . . . . . 294.1.2. Documentos XML bien formados y control de errores . . . . . . 30

VII

Page 10: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

VIII INDICE GENERAL

4.1.3. Partes de un documento XML . . . . . . . . . . . . . . . . . . . 304.2. XSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.2.1. ¿Para que sirve? . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2.2. Conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2.2.1. Como hacer referencia a un esquema XML SchemaDefinition (XSD) . . . . . . . . . . . . . . . . . . . . . 32

4.2.2.2. Validacion del XML usando XSD . . . . . . . . . . . . 324.2.2.3. Declaraciones y definiciones . . . . . . . . . . . . . . . 324.2.2.4. Estructura del esquema XSD . . . . . . . . . . . . . . 32

JAXB 375.1. Uso de JAXB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.2. Asociaciones de tipos de datos por defecto . . . . . . . . . . . . . . . . 38

III Diseno y Desarrollo de la Solucion 41

Especificacion de requisitos 436.1. Requisitos funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.2. Requisitos no funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . 456.3. Limitaciones del Barajador.sh . . . . . . . . . . . . . . . . . . . . . . . 45

Desarrollo 477.1. Diseno del xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.1.1. Elemento examen . . . . . . . . . . . . . . . . . . . . . . . . . . 477.1.1.1. Tipo examenType . . . . . . . . . . . . . . . . . . . . 497.1.1.2. Ejemplo xml del examen . . . . . . . . . . . . . . . . . 51

7.1.2. Elemento cabecera . . . . . . . . . . . . . . . . . . . . . . . . . 527.1.2.1. Ejemplo xml de la cabecera examen . . . . . . . . . . 61

7.1.3. Elemento ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 627.1.3.1. Ejemplo xml de los ejercicios del examen . . . . . . . . 69

7.2. Diseno orientado a objetos . . . . . . . . . . . . . . . . . . . . . . . . . 707.2.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

7.2.1.1. Diagrama de actividades . . . . . . . . . . . . . . . . . 717.2.1.2. Diagrama de paquetes . . . . . . . . . . . . . . . . . . 72

7.2.2. Modelo estatico . . . . . . . . . . . . . . . . . . . . . . . . . . . 747.2.2.1. Paquete entrada\salida . . . . . . . . . . . . . . . . . . 747.2.2.2. Paquete servicios . . . . . . . . . . . . . . . . . . . . . 757.2.2.3. Paquete modelo.elementosexamen . . . . . . . . . . . . 777.2.2.4. Paquete modelo.elementosexamenbarajado . . . . . . . 837.2.2.5. Paquete modelo.examenfichero . . . . . . . . . . . . . 837.2.2.6. Paquete modelo.elementosexamenlatex . . . . . . . . . 857.2.2.7. Paquete modelo.jaxb.modeloexamen . . . . . . . . . . 88

7.2.3. Modelo dinamico . . . . . . . . . . . . . . . . . . . . . . . . . . 907.2.3.1. Diagrama de secuencia - Leer XML . . . . . . . . . . . 907.2.3.2. Diagrama de secuencia - Validar contenido XML . . . 907.2.3.3. Diagrama de secuencia - Transformar contenido XML . 907.2.3.4. Diagrama de secuencia - Barajar contenido . . . . . . 987.2.3.5. Diagrama de secuencia - Generar fichero Latex . . . . 101

Page 11: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

INDICE GENERAL IX

7.2.3.6. Diagrama de secuencia - Generar fichero claves . . . . 1027.2.3.7. Diagrama de secuencia - Generar fichero PDF . . . . . 104

Conclusiones y lıneas futuras 1058.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058.2. Lıneas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Bibliografıa 109

Page 12: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 13: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Indice de figuras

3.1. Diagrama de documentos relacionados con Barajador.sh . . . . . . . . . 163.2. Etiquetas de un fichero .tst . . . . . . . . . . . . . . . . . . . . . . . . . 173.3. Etiqueta EXAMEN en fichero.tst . . . . . . . . . . . . . . . . . . . . . 173.4. Etiqueta EJERCICIO en fichero.tst . . . . . . . . . . . . . . . . . . . . 183.5. Etiqueta PREGUNTA en fichero.tst . . . . . . . . . . . . . . . . . . . . 193.6. Fichero de claves .key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.7. Partes configurables de la cabecera del examen . . . . . . . . . . . . . . 21

5.8. Diagrama de JAXB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7.9. Definicion XSD del elemento raız examen . . . . . . . . . . . . . . . . . 487.10. Tipo XSD complejo examenType . . . . . . . . . . . . . . . . . . . . . 497.11. Tipo XSD numEnunciadosType en examenType . . . . . . . . . . . . . 507.12. Tipo XSD barajaEnumType en examenType . . . . . . . . . . . . . . . 507.13. Tipo XSD tipoNumeracionType en examenType . . . . . . . . . . . . . 517.14. Definicion XSD del elemento cabecera de un examen . . . . . . . . . . 527.15. Elemento XSD infoUniversidad de la cabecera de un examen . . . . . . 537.16. Tipo XSD nombreType de la cabecera de un examen . . . . . . . . . . 537.17. Tipo XSD siglasType de la cabecera de un examen . . . . . . . . . . . 537.18. Elemento XSD infoFacultad de la cabecera de un examen . . . . . . . . 547.19. Elemento XSD infoDepartamento de la cabecera de un examen . . . . . 547.20. Elemento XSD infoAsignatura de la cabecera de un examen . . . . . . 557.21. Tipo XSD tipoAsignaturaType de la cabecera de un examen . . . . . . 557.22. Elemento XSD fechaexamen de la cabecera de un examen . . . . . . . . 567.23. Tipo XSD fechaLiteralType de la cabecera de un examen . . . . . . . . 567.24. Tipo XSD fechaSeparadoresType de la cabecera de un examen . . . . . 577.25. Elemento XSD tituloExamen de la cabecera de un examen . . . . . . . 577.26. Tipo XSD elementoSeleccionadoType de la cabecera de un examen . . 587.27. Elemento XSD subtituloExamen de la cabecera de un examen . . . . . 597.28. Elemento XSD textoCaratulaExamen de la cabecera de un examen . . 607.29. Elemento XSD prefacioDelExamen de la cabecera de un examen . . . . 607.30. Tipo XSD elementoPrefacioType de la cabecera de un examen . . . . . 607.31. Definicion XSD del elemento ejercicios de un examen . . . . . . . . . . 627.32. Elemento XSD ejercicio en los ejercicios de un examen . . . . . . . . . 627.33. Tipo XSD ejercicioType en los ejercicios de un examen . . . . . . . . . 637.34. Tipo XSD pesoEjercicioType en los ejercicios de un examen . . . . . . 637.35. Elemento XSD metadatos en los ejercicios de un examen . . . . . . . . 647.36. Definicion XSD del elemento preguntas de un examen . . . . . . . . . . 64

XI

Page 14: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

XII INDICE DE FIGURAS

7.37. Definicion XSD del elemento pregunta de un examen . . . . . . . . . . 657.38. Tipo XSD preguntaType en los ejercicios de un examen . . . . . . . . . 657.39. Tipo XSD pesoPreguntaType en los ejercicios de un examen . . . . . . 657.40. Tipo XSD respuestasType en los ejercicios de un examen . . . . . . . . 667.41. Elemento XSD respuestasUnica en los ejercicios de un examen . . . . . 667.42. Tipo XSD respuestaType en los ejercicios de un examen . . . . . . . . 677.43. Elemento XSD respuestasMultiple en los ejercicios de un examen . . . . 687.44. Diagrama de actividades . . . . . . . . . . . . . . . . . . . . . . . . . . 717.45. Diagrama de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.46. Diagrama de clases EntradaSalida . . . . . . . . . . . . . . . . . . . . . 747.47. Diagrama de clases Fachada del Servicio . . . . . . . . . . . . . . . . . 757.48. Diagrama de clases Servicio . . . . . . . . . . . . . . . . . . . . . . . . 757.49. Diagrama de clases ElementosExamen . . . . . . . . . . . . . . . . . . 777.50. Diagrama de clases Cabecera de ElementosExamen . . . . . . . . . . . 797.51. Diagrama de clases Contenido de ElementosExamen . . . . . . . . . . . 817.52. Diagrama de clases ElementosExamenBarajado . . . . . . . . . . . . . 837.53. Diagrama de clases ExamenFichero . . . . . . . . . . . . . . . . . . . . 847.54. Diagrama de clases ElementosExamenLatex . . . . . . . . . . . . . . . 867.55. Diagrama de clases Modelo JAXB . . . . . . . . . . . . . . . . . . . . . 897.56. Diagrama de secuencia-Leer XML . . . . . . . . . . . . . . . . . . . . . 917.57. Diagrama de secuencia-Validar contenido XML . . . . . . . . . . . . . 927.58. Diagrama de secuencia-Transformar contenido XML-Cabecera . . . . . 937.59. Diagrama de secuencia-Transformar contenido XML-Cabecera-Titulo . 947.60. Diagrama de secuencia-Transformar contenido XML-Cabecera-SubTitulo 947.61. Diagrama de secuencia-Transformar contenido XML-Cabecera-Texto . . 957.62. Diagrama de secuencia-Transformar contenido XML-Contenido . . . . . 967.63. Diagrama de secuencia-Transformar contenido XML-Contenido-Ejercicios 977.64. Diagrama de secuencia-Barajar contenido . . . . . . . . . . . . . . . . . 997.65. Diagrama de secuencia-Barajar contenido-Copia Ejercicios . . . . . . . 1007.66. Diagrama de secuencia-Barajar contenido-Copia Ejercicios . . . . . . . 1017.67. Diagrama de secuencia-Generar fichero Latex . . . . . . . . . . . . . . . 1027.68. Diagrama de secuencia-Generar fichero claves . . . . . . . . . . . . . . 1037.69. Diagrama de secuencia-Generar fichero PDF . . . . . . . . . . . . . . . 104

Page 15: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Indice de cuadros

4.1. Restricciones de tipos simples en XSD . . . . . . . . . . . . . . . . . . 344.2. Indicadores de orden en XSD . . . . . . . . . . . . . . . . . . . . . . . 344.3. Indicadores de ocurrencia en XSD . . . . . . . . . . . . . . . . . . . . . 344.4. Indicadores de grupo en XSD . . . . . . . . . . . . . . . . . . . . . . . 35

5.5. Asociacion de tipos de datos con JAXB . . . . . . . . . . . . . . . . . . 38

XIII

Page 16: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 17: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Acronimos y abreviaturas

DATSI Departamento de Arquitectura y Tecnologıa de Sistemas Informaticos.

DTD Definicion Tipo Documento.

JAXB Java Architecture for XML Binding.

PDF Portable Document Format.

SGML Standard Generalized Markup Language.

UML Unified Mmodeling Language.

UPM Universidad Politenica de Madrid.

W3C World Wide Web Consortium.

XML eXtensible Markup Language.

XSD XML Schema Definition.

1

Page 18: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 19: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Parte I

Introduccion y Objetivos

3

Page 20: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 21: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Introduccion

Este capıtulo presenta las motivaciones subyacentes al desarrollo de este proyec-to, ası como sus objetivos principales. Por ultimo, se dara una vision general de laestructura de este documento.

1.1. Problematica y motivacion

Las pruebas de evaluacion de algunas asignaturas en la Escuela Tecnica Superior deIngenieros Informaticos de la Universidad Politecnica de Madrid se realizan medianteexamenes de tipo test que contienen diferentes ejercicios relacionados con el temarioimpartido. La realizacion de las pruebas de evaluacion de este tipo requieren de undocumento que presente el enunciado de la prueba y de una plantilla de respuestas quesera procesada por un corrector automatico que obtendra la nota alcanzada por cadaalumno.Es habitual generar diferentes versiones del mismo examen, que se reparten en un ordendeterminado entre todos los alumnos, con el fin de evitar que los alumnos se copienentre ellos. Por ello, se requiere que el mismo contenido de la prueba aparezca ordenadode forma aleatoria en cada una de las versiones del examen conservando las mismaspreguntas y respuestas.En la actualidad, dentro del Departamento de Lenguajes y Sistemas Informaticos eIngenierıa de Software (DLSIIS) se dispone de una herramienta de generacion de enun-ciados de examenes de tipo test desarrollada por el profesor Francisco Rosales. Estaherramienta se emplea en la generacion de pruebas de tipo test mediante la configu-racion de varios ficheros de entrada que definen y contienen las normas de evaluaciony la redaccion de los diferentes problemas/ejercicios relacionados con el contenido deuna asignatura.Tras varios anos utilizando esta herramienta, se han identificado una serie de posiblesmejoras que han motivado el rediseno de la misma, que sera el objeto de este pro-yecto fin de carrera. Basicamente, se pretende mejorar el formato de especificacion delos examenes; reducir considerablemente el tiempo de ejecucion de la herramienta; yconseguir una herramienta multiplataforma.

5

Page 22: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

6 1.2. OBJETIVOS Y TAREAS A REALIZAR

1.2. Objetivos y tareas a realizar

Debido a un conjunto de limitaciones y nuevas necesidades derivadas de la experien-cia con la anterior herramienta de generacion de enunciados, surge la idea de desarrollaruna nueva herramienta que supere estas limitaciones y de respuestas a las nuevas ne-cesidades. Para ello se plantean los siguientes objetivos:

1. Crear un lenguaje de especificacion de examenes de tipo test para la nueva herra-mienta que permita configurar al menos los mismos parametros que el lenguajeutilizado por la herramienta anterior, pero que sea mas facilmente editable quedicho lenguaje.

2. El tiempo de ejecucion de la nueva herramienta debe ser mas bajo que el de laherramienta anterior.

3. La mantenibilidad de la nueva herramienta debe ser mejor que la de la herra-mienta anterior.

4. La nueva herramienta debe ser multiplataforma.

Para alcanzar los objetivos descritos se tendran que llevar a cabo las tareas que seenumeran a continuacion:

1. Tareas relacionadas con el primer objetivo:

• Se estudiara el sistema anteriormente desarrollado, tanto la definicion de susficheros de entrada como el funcionamiento de la herramienta. Sera necesa-rio conocer los elementos que forman parte de un examen, los parametrosde configuracion establecidos, las acciones seguidas durante el proceso degeneracion de los enunciados, los ficheros intermedios generados antes dela formacion del Portable Document Format (PDF) final y los ficheros deestilos utilizados.

• Se desglosara la informacion manejada durante el proceso para conservar laestructura del examen e intentar reutilizar en la medida de lo posible la ma-quetacion del fichero .tex generado, adaptandolo a los nuevos requerimientosy funcionalidades.

• Con el fin de cumplir el conjunto de requisitos que se recogen en este pro-yecto fin de carrera (detallados en el capıtulo III), sera necesario conocery profundizar en las diferentes tecnologıas que se presentan en el apartadoEstado de la cuestion.

• Se disenara un unico fichero de entrada con los contenidos del examen expre-sado en un formato de facil compresion, ampliamente conocido y facilmenteextensible. El contenido del fichero de entrada presentara toda la informaciondel examen, tanto los datos de la cabecera, como el conjunto de ejercicios,preguntas y respuestas, y al mismo tiempo, permitira establecer la configu-racion que determinara que elementos pueden aparecer en distinto orden encada version del enunciado, el numero de versiones a generar y el tipo denumeracion de los elementos contenidos.

2. Tareas asociadas al resto de objetivos:

Page 23: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 1. INTRODUCCION 7

• Se realizara un diseno siguiendo el paradigma de orientacion a objetos y seaplicaran patrones de diseno.

• Se implementara el diseno en un lenguaje de programacion orientado a ob-jetos y multiplataforma mas rapido que el lenguaje de script bash.

1.3. Estructura del documento

El actual documento se divide en tres partes que, a su vez, contienen varios capıtulosque estructuran la informacion presentada:La primera parte del documento esta constituida por esta introduccion.En la segunda parte del documento se presentaran las herramientas y tecnologıas masrelevantes que se han necesitado conocer para el desarrollo de la nueva herramienta:

• Se introducira el lenguaje LaTeX y los principales elementos que seran utilizadosen la generacion de un fichero .tex intermedio.

• Se describira la herramienta Barajador.sh utilizada hasta el momento para lageneracion de examenes de tipo test.

• Se presentara el lenguaje de marcado XML y los esquemas XSD.

• Por ultimo se explicara brevemente el framework JAXB que sera utilizado parael manejo y transformacion de ficheros XML.

La tercera parte del documento contendra el diseno y desarrollo de la solucion:

• Se recopila el conjunto de los diferentes requisitos del proyecto (tanto funcionalescomo no funcionales)

• Se detalla el diseno realizado previo al desarrollo de la nueva herramienta gene-rada:

• Se define el XSD creado para representar la estructura de un examen.

• Se presentan los diferentes diagramas realizados durante la fase de disenode la herramienta que permiten introducir una vision sobre su arquitectura,sus componentes y las acciones realizadas durante el proceso de generacionde examenes.

• Por ultimo se recogeran las conclusiones alcanzadas y se presentaran las lıneasfuturas que pueden acometerse de cara a la mejora o ampliacion del desarrollorealizado.

Page 24: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 25: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Parte II

Estado de la Cuestion

9

Page 26: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 27: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

LATEX

LATEX es un lenguaje de marcado utilizado para la creacion de documentos, espe-cialmente libros y documentos cientıfico-tecnicos. Esta formado por un gran conjuntode macros (u ordenes) del lenguaje TeX, de codigo abierto y que permite crear libros,tesis y artıculos tecnicos con una elevada calidad tipografica, comparable a la de unaeditorial cientıfica. En este capıtulo se introduce el lenguaje de programacion TeX yaquellos comandos de LaTex utilizados a lo largo del desarrollo de este proyecto.

2.1. TEX

TeX es un lenguaje de programacion de bajo nivel creado por Donald Knuth paracomponer documentos de forma atractiva y consistente. Knuth empezo a escribir elmotor de TeX en 1977 para explorar el potencial de los equipos de impresion digitalque comenzaban a infiltrarse en la industria editorial en ese momento, sobre todo, conla esperanza de que pudiese revertir la tendencia de deterioro de la calidad tipograficaque afectaba a sus propios libros y artıculos [LaT13a]. El nombre TeX, creado por sudesarrollador, se corresponde con τ ε χ, con la consonante final de loch o Bach. (DonaldE. Knuth, El TeXbook). Las letras del nombre tienen el proposito de representar a lasletras griegas tau, epsilon y chi, ası como TeX es una abreviatura de τ ε χ ν η (TEXNH-techne), del griego ”arte” y ”artesanal”, que es tambien la raız de la palabra ”tecnica”.

La programacion en TeX generalmente progresa a lo largo de una curva de aprendi-zaje muy gradual, lo que requiere una importante inversion de tiempo para construirmacros personalizadas para el formato de texto. Afortunadamente, los sistemas depreparacion de documentos basados en TeX, que consisten en colecciones de macrospre-construidas existen. Estas macros pre-construidas suponen un ahorro de tiempo,automatizan ciertas tareas repetitivas y ayudan a reducir los errores introducidos por elusuario; sin embargo, esta comodidad viene a costa de sacrificar parte de la flexibilidadde diseno. Uno de los paquetes de macros mas populares se llama LaTeX.

2.2. LATEX

LaTeX (pronunciado ya sea ”Lah− tech” o ”Lay− tech”) es un paquete de macrosbasado en TeX creado por Leslie Lamport. Su proposito es simplificar la composicion

11

Page 28: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

12 2.2. LATEX

tipografica TeX, especialmente para los documentos que contengan formulas matemati-cas. Dentro del sistema de composicion, su nombre esta formateado como LATEX. Mu-chos autores posteriores han contribuido extensiones para LaTeX, llamados paqueteso estilos. Algunos de estos se incluyen con la mayorıa de las distribuciones de softwareTeX / LaTeX.

Desde que LaTeX comprende un grupo de comandos TeX, la edicion de documen-tos LaTeX es un ejercicio de programacion. Ası, se puede crear un archivo de textocon el marcado LaTeX, que posteriormente sera procesado/compilado para producir eldocumento final. Este enfoque tiene algunas desventajas en comparacion con un WY-SIWYG (What You See Is What You Get, o lo que ves es lo que obtienes) como el quese aplica en Openoffice.org o Microsoft Word. En LaTeX:

• Por lo general no se vera la version final del documento durante la edicion de lamisma.

• Previamente se deben conocer los comandos necesarios para el marcado LaTeX.

• A veces puede ser difıcil obtener una vision completa del documento.

El documento LaTeX es un archivo de texto plano con el contenido del documento ymarcas adicionales, de forma que cuando el archivo de origen es procesado por el pa-quete de macros se pueden producir documentos en varios formatos. LaTeX soporta deforma nativa DVI y PDF, pero utilizando software adicional se puede crear facilmen-te PostScript, PNG, JPEG, etc. Tambien posee capacidades graficas para representarformulas complejas, ecuaciones, notacion cientıfica, etc., y permite estructurar de unamanera muy sencilla el documento, con capıtulos, secciones, generacion automatica deındices, etc. Para la creacion de un documento con LaTeX se puede utilizar un editorde texto para crear los archivos fuente, con las macros y el contenido adecuado, paraposteriormente procesarlo, compilarlo y generar la salida, normalmente en PDF. Parala generacion del presente documento, se ha utilizado LaTeX, usando como editor detextos TeXnicCenter, el cual es un editor de software libre para sistemas Windows queproporciona las herramientas necesarias para la composicion y compilacion de textosescritos en LaTeX.En la siguiente seccion se especifican las macros [LaT13b] mas utilizadas y relevantesen la generacion del documento .tex que representa el contenido de un examen.

2.2.1. Comandos LaTeX

LaTeX permite crear comandos o sobreescribir otros ya existentes. Para distinguirlos comandos (tambien llamados secuencias de control) del texto plano, estos comienzancon \. El nombre de un comando es una secuencia de letras finalizada por un espacioen blanco o un caracter que no representa una letra (como un punto, coma, corchete,etc.). Si el nombre del comando termina en espacio, este es ”consumido” por LaTeX yno aparece en la salida. Tambien hay comandos que consisten en una barra invertidaseguida de un caracter que no representa una letra. A menudo, este tipo de comandosse utilizan para poner un sımbolo especial en el texto, por ejemplo\$ imprime un $(que no se puede introducir directamente porque LaTeX los usa para iniciar el modode matematicas). LaTeX es case-sensitive y la mayorıa de sus comandos se escribenen minusculas. Algunos comandos tienen un argumento, que se situa entre llaves a

Page 29: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 2. LATEX 13

continuacion del nombre del propio comando. Los argumentos pueden ser de dos tipos,obligatorios u opcionales:

• Argumento obligatorio: proporciona informacion requerida por un comandopara ser ejecutado. Los argumentos obligatorios se representan entre dos llaves:{ }.

• Argumento opcional: son permitidos en algunos comandos y son representadosentre dos corchetes [ ].

La definicion de un nuevo comando tiene la siguiente estructura:

\newcomand {nombre} [num] {definicion}

Basicamente, un comando requiere de dos argumentos: el nombre del comando que sedesea crear y la definicion del comando. El nombre del comando puede ir o no encerradoentre llaves, mientras que el argumento num entre corchetes es opcional y especifica elnumero de argumentos que el nuevo comando toma (hasta un maximo de 9). Si no seindica este numero, por defecto sera 0, es decir, ningun argumento.Para referir a los argumentos dentro de la descripcion del comando se utilizara lanotacion #N, siendo N el numero de argumento del comando.LaTeX no permite crear un nuevo comando que sobreescriba a otro ya existente, peroexiste un comando especial para el caso de que se quiera dar una nueva definicion aun comando ya existente: \renewcommand, que utiliza la misma sintaxis que la orden\newcommand.Con LaTeX2e1, tambien es posible anadir un parametro por defecto a un comandosiguiendo la siguiente sintaxis:

\newcomand {nombre} [num] [predeterminado] {definicion}

En caso de que se indique el valor predeterminado, el primer argumento del conjuntoespecificado por num es opcional, con un valor por defecto establecido por el valorpredeterminado, y a continuacion, todos los argumentos son obligatorios.

2.2.2. Entornos LaTeX

Los entornos en LaTeX son bloques de texto que reciben un procesamiento especial.Al igual que con la orden \newcommand, hay un comando para crear un entorno propio.El comando \newenvironment utiliza la siguiente sintaxis:

\newenvironment {nombre} [num] [predeterminado] {defEntrada} {defSalida}

La orden \newenvironment admite argumentos (hasta 9) opcionalmente con el primerode ellos optativo. La diferencia con los comandos \newcommand reside principalmenteen que en el argumento defEntrada se indican las ordenes que se deben ejecutar antesde entrar en el entorno, y en el argumento defSalida las que se deben ejecutar al salirdel entorno. Una vez definido el nuevo entorno, se debe utilizar de la siguiente forma:

\begin {nombre} {Arg1} ... {ArgN} Texto y comandos \end {nombre}

1LaTeX2e es el nombre asignado a la version de LaTeX 2.09

Page 30: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

14 2.2. LATEX

Es importante tener en cuenta que los argumentos de un entorno solo pueden utilizarseen la definicion de entrada (defEntrada).Los entornos pueden anidarse, es decir, el primero que comienza es el ultimo en termi-nar.

Page 31: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Barajador script bash

Durante el ano 2004, en el Departamento de Arquitectura y Tecnologıa de SistemasInformaticos (DATSI), el profesor Francisco Rosales desarrollo un proceso que automa-tiza la generacion de combinaciones de contenido, llamado Barajador.sh. La ejecucionde dicho proceso lleva a cabo la lectura de un fichero de entrada con un formato es-pecıfico, el procesamiento de su contenido y la redireccion a un fichero de salida conextension ’.mix.tex’ en formato latex.

3.1. Barajador.sh

El script bash Barajador.sh se crea para dar solucion a la necesidad de generar di-ferentes enunciados de examenes de tipo test con las mismas preguntas. Se trata deun script que puede ser ejecutado en la mayorıa de los sistemas operativos de tipo Unix.

El script realiza la lectura y procesamiento de un fichero de entrada con extension’.tst’:

• examenItFlexible.tst: Fichero en un formato especıfico definido que contienela definicion inicial del examen que se desea combinar. Ver apartado 3.2.

Y genera diferentes combinaciones del contenido del examen, alterando el orden delas respuestas de cada pregunta. Como resultado, el script genera dos ficheros de salida:

• examenItFlexible.mix.tex: Fichero en formato latex, que contendra el cuerpodel examen con las posibles combinaciones que han sido realizadas a partir delcontenido del fichero de entrada. Ver apartado 3.3.

• .key: Fichero de texto plano con la informacion necesaria para el corrector au-tomatico de examenes. Ver apartado 3.4.

Una vez generados los ficheros resultantes, el usuario tendra que configurar las opcionesde la cabecera del examen en el fichero definido para ello:

• opcionesItFlexible.tex: Fichero en formato latex con la configuracion de loselementos de la cabecera del examen, que seran comunes a todas las combinacio-nes generadas. Ver apartado 3.5

La creacion del PDF final se realizara a partir del fichero examenFlexibleIt.tex que im-portara el fichero examenItFlexible.mix.tex, la configuracion de la cabecera del examen

15

Page 32: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

16 3.2. FICHERO DE ENTRADA EXAMENITFLEXIBLE.TST

en opcionesItFlexible.tex y una serie de ficheros de estilos y parametros de configura-cion:

• examenItFlexible.tex: Fichero principal en formato latex que importa el restode ficheros necesarios para la generacion del PDF. Ver apartado 3.6

• ordinal.sty: Fichero de estilos que realiza la conversion de un numero a suformato ordinal. Ver apartado 3.7

• configur.sty: Fichero de estilos que da soporte a la definicion de parametrosconfigurables. Ver apartado 3.8

• examennew.sty: Fichero de estilos que define la maquetacion y generacion deldocumento pdf final. Ver apartado 3.9.

A continuacion se muestra un diagrama que presenta el conjunto total de ficherosnecesarios durante la generacion del examen:

Figura 3.1: Diagrama de documentos relacionados con Barajador.sh

3.2. Fichero de entrada examenItFlexible.tst

El fichero con extension .tst sera la entrada del Barajador.sh. El contenido de estefichero debe componerse siguiendo una estructura acordada que representa tanto laconfiguracion de la combinatoria que se quiere realizar como el contenido del examen.Se definen para ello unas plantillas de texto que representan el comienzo y final de cadaelemento, siendo diferentes en cada grupo de informacion (figura 3.2):

Los elementos contenidos dentro de la etiqueta ’EXAMEN’ se utilizaran para con-figurar las opciones de generacion del examen (ver figura 3.3), que seran consultadasdurante el proceso de realizacion de los diferentes enunciados que pueden generarsecombinando el orden de las respuestas de las preguntas de cada ejercicio.

Page 33: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 3. BARAJADOR SCRIPT BASH 17

ETIQUETA DESCRIPCIONEXAMEN < <-’::’ Comienzo de la configuracion del examen:: Fin de configuracion del examenEJERCICIO codigoEj <<-’:::’

Comienzo de la configuracion de un ejercicioidentificado con el texto codigoEj

ENUNCIADO < <-’:’ Comienzo de la definicion del enunciado del ejercicio: Fin de la definicion del enunciado

APARTADO ESCOGE nPREGUNTA codigoPr

Comienzo de la definicion del apartado del ejercicio conel numero de preguntas contenidas (n) y el codigo dela/s pregunta/s que lo componen (codigoPr)

::: Fin de la configuracion del ejercicio

PREGUNTA codigoPrComienzo de la definicion de una pregunta de unejercicio del examen

: Fin de la definicion de la preguntaENUNCIADO < <-’::’ Comienzo del enunciado de la pregunta:: Fin del enunciado de la pregunta

SELECCION < <-’::’Comienzo del listado de respuestas seleccionablesdentro de la pregunta

:: Fin del listado de seleccion de la pregunta

Figura 3.2: Etiquetas de un fichero .tst

Figura 3.3: Etiqueta EXAMEN en fichero.tst

Donde:

• NUMERO ENUNCIADOS: se trata un numero comprendido entre el 1 yel 31, que se corresponde con el numero de enunciados/combinaciones diferentesdel examen que se desean obtener. La codificacion de los diferentes examenespodra realizarse por la aparicion o no de los primeros 5 caracteres del abecedario(a-e) y esto condicionara la generacion de hasta un maximo de 25 − 1 codigosdiferentes, al quedar excluida la combinacion vacıa.

• NUMERO SOLUCIONES: indica como escoger las respuestas de cada PRE-GUNTA de cara a componer el EXAMEN, indicando:

• −1: solucion multiple pero como mınimo una.

Page 34: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

18 3.2. FICHERO DE ENTRADA EXAMENITFLEXIBLE.TST

• 0: solucion multiple y puede que sin solucion.

• 1: solucion unica.

• NUMERO RESPUESTAS: indica el numero de respuestas alternativas quese desea que tenga cada PREGUNTA en el EXAMEN, y debe ser:

• 0: todas las posibles

• [2..5]: un numero exacto

• NUMERO RANDOMSEED: indica cual sera la semilla del generador denumeros aleatorios para la obtencion de combinaciones de examenes, donde 0representara la opcion de no realizar combinaciones diferentes.

• INCLUIR EJERCICIO codigoEj: incluye el ejercicio etiquetado por codi-goEj dentro de todo el conjunto de ejercicios definidos dentro del fichero, dejandofuera de la generacion aquellos que no se configuren mediante este mandato.

Una vez se han establecido las caracterısticas para la combinatoria, a continuacion sedefinen los ejercicios del examen mediante la etiqueta ’EJERCICIO’ (ver figura 3.4).

Figura 3.4: Etiqueta EJERCICIO en fichero.tst

Donde:

• PESO REL: indica el peso relativo del ejercicio respecto al peso total del exa-men.

Page 35: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 3. BARAJADOR SCRIPT BASH 19

• ENUNCIADO: contiene el texto del enunciado del ejercicio en formato latex.

• APARTADO: indica el comienzo de un contenido dentro del ejercicio.

• ESCOGE n PREGUNTA codigoPr : contiene la referencia a la pregunta delejercicio, etiquetada con codigoPr dentro del fichero de texto.

Cada pregunta de un ejercicio aparecera identificada por la etiqueta ’PREGUNTA’junto a un codigo unico que la identifique respecto al resto de preguntas que se definenen el fichero. Una pregunta contendra un enunciado y un conjunto de respuestas, dondecada respuesta debera identificarse por una letra, el valor de verdad correspondiente(TRUE—FALSE) y el texto asociado a la misma (ver figura 3.5).

Figura 3.5: Etiqueta PREGUNTA en fichero.tst

Donde:

• ENUNCIADO TF: contiene el texto del enunciado de la pregunta en formatolatex.

• SELECCION TF: representa la unica seccion valida en la pregunta y debecontener una fila por respuesta alternativa, definiendo cada respuesta en trescolumnas:

• Identificador: letra que identifica a la respuesta en el conjunto selecciona-ble.

• TRUE—FALSE: valor de verdad de la respuesta.

• Texto: texto de la respuesta.

3.3. Fichero generado examenItFlexible.mix.tex

Una vez procesado el fichero de entrada examenItFlexible.tst, el Barajador.sh generaun fichero en formato latex con el contenido del examen definido bajo una estructura

Page 36: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

20 3.4. FICHERO GENERADO .KEY

de comandos y entornos que agrupan las diferentes combinaciones de enunciados ba-rajados.Cada enunciado del examen se define dentro el entorno \begin {ENUNCIADOS} {var-num-enunciados}, donde var-num-enunciados indica el numero total de enunciados con-tenidos.Un enunciado representa una combinacion de ejercicios y se identifica por una clavegenerada (que sera la clave mostrada en la cabecera del examen) mediante el entorno\begin {ENUNCIADO} {var-clave-enunciado}. El conjunto de ejercicios del enunciadose agrupan bajo el entorno \begin {EJERCICIOS} {var-num-ejercicios}, donde var-num-ejercicios toma el valor del total de ejercicios contenidos.Cada ejercicio del enunciado se representa por el entorno \begin {EJERCICIO} {var-num-ejercicio} {var-puntos-ejercicio} {var-id-ejercicio}, cuyo var-num-ejercicio sera in-terpretado por el paquete ordinal.sty para generar el tıtulo del ejercicio en funcion de laposicion que ocupa en el listado, el valor de var-puntos-ejercicio sera mostrado junto altexto del ejercicio en caso de que se encuentre informado y el valor de var-id-ejercicio seutilizara para identificar al ejercicio con el fin de aplicarle un estilo particular, en casode haberlo definido previamente en el fichero de configuracion opcionesItFlexible.tex.Un ejercicio contiene varios apartados que presentan su contenido, de modo que, tantoel enunciado de un ejercicio como el listado de sus preguntas se encuentran dentro dediferentes apartados definidos por \begin {APARTADO} [var-nombre-apartado] {var-id-apartado}. El apartado que contiene el enunciado del ejercicio contendra un textoen formato latex, mientras que el apartado de preguntas tendra un entorno \begin{ELEMENTOS} {var-num-elementos}, donde var-num-elementos represente el nume-ro de elementos contenidos.Los elementos de un ejercicio seran preguntas representadas por \begin {PREGUNTA}{var-num-pregunta} {var-puntos-pregunta} {var-id-pregunta} cuyo var-num-preguntasera interpretado por el paquete ordinal.sty para generar el tıtulo de la pregunta enfuncion del ordinal informado, el valor de var-puntos-pregunta sera mostrado juntoal texto de la pregunta en caso de que se encuentre informado y el valor de var-id-pregunta se utilizara para identificar a la pregunta con el fin de aplicarle un estiloparticular, en caso de haberlo definido previamente en el fichero de configuracion op-cionesItFlexible.tex. El texto de la pregunta se encontrara dentro del entorno definidoen formato latex, mientras que el conjunto de posibles respuestas se definira en elentorno \begin {RESPUESTAS} {var-num-respuestas}, donde var-num-respuestas re-presenta el numero total de elementos contenidos.Cada respuesta se representa por \RESPUESTA [0F/1T] {var-char-respuesta}, co-mando a partir del cual se indica el texto de la respuesta. La opcion de verdad de larespuesta viene definida en el primer argumento del comando, representando con un0F el valor falso y con 1T el valor verdad. El caracter mostrado en el segundo argu-mento var-char-respuesta sera el utilizado para identificar a la respuesta en el examen(caracter comprendido en el rango A-Z).

3.4. Fichero generado .key

El Barajador.sh genera un segundo fichero que representa las diferentes combinacio-nes del examen y que, a su vez, sera la entrada para el proceso automatico de correccionde examenes (ver figura 3.6).

Page 37: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 3. BARAJADOR SCRIPT BASH 21

Figura 3.6: Fichero de claves .key

Por cada enunciado se crea una lınea en el fichero de texto plano con el siguienteformato:

0,,var-clave-enunciado var-id-pregunta,listadoRespuestas,var-char-respuesta

Donde:

• var-clave-enunciado: es la clave definida para representar de forma unıvoca alenunciado generado, compuesta por una combinacion de letras de forma ordenadaen el rango a-e.

• var-id-pregunta: es el identificador unico de la pregunta en el enunciado.

• listadoRespueta: es un listado de caracteres que representa al conjunto de res-puestas respecto al orden inicial (por ejemplo acbd).

• var-char-respuesta: es el caracter asociado a la respuesta correcta en el listado.

3.5. Fichero de configuracion opcionesItFlexible.tex

La cabecera de cada enunciado generado se define a traves de la modificacion delfichero opcionesItFlexible.tex, que establece el contenido y la presencia de cada partehaciendo uso de los comandos de configuracion definidos en el fichero de estilos 3.8.La cabecera de un examen se estructura en los siguientes apartados (ver figura 3.7):

Figura 3.7: Partes configurables de la cabecera del examen

Page 38: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

22 3.6. FICHERO .TEX EXAMENITFLEXIBLE.TEX

El contenido de la caratula se generara segun la configuracion definida en la opcionLaCaratula, que recibira como parametros de entrada las siguientes opciones:

• CUADRO DE IDENTIDAD DEL ALUMNO: configuracion relaciona-da con la parte de la cabecera que muestra la informacion de identificacion delalumno. El cuadro de identidad del alumno formara parte de la cabecera segun seespecifique en el fichero de configuracion, de modo que la apariencia y contenidodel mismo podran verse modificados a traves de la opcion CuadroDeIdentidad-DelAlumno.

• TITULO DEL EXAMEN: texto que compone el tıtulo del examen. El tıtulopuede parametrizarse configurando la opcion TituloDelExamen, que recibe comoparametros:

• NombreDeLaUniversidad: nombre de la universidad.

• NombreDeLaFacultad: nombre de la facultad.

• NombreDelDepartamento: nombre del departamento.

• SiglasDeLaUniversidad: siglas de la universidad.

• SiglasDeLaFacultad: siglas de la facultad.

• SiglasDelDepartamento: siglas del departamento.

• SUBTITULO DEL EXAMEN: texto que compone el subtıtulo del examen.El subtıtulo puede parametrizarse configurando la opcion SubtituloDelExamen,que recibe como parametros:

• NombreDeLaAsignatura: nombre de la asignatura.

• SiglasDeLaAsignatura: siglas de la asignatura.

• TipoDeAsignatura: tipo de asignatura.

• TipoDeExamen: tipo del examen.

• FechaDelExamen: fecha de celebracion del examen.

• TEXTO DE LA CARATULA: texto con las normas de evaluacion del exa-men, que contendra informacion sobre la estructura, revision, duracion del exa-men, etc. a traves de la configuracion de las opciones TextoDeLaCaratula y Pre-facioDelExamen.

3.6. Fichero .tex examenItFlexible.tex

El fichero examenItFlexible.tex en formato latex, contiene la importacion de todosaquellos ficheros necesarios para la generacion del pdf final, incluyendo todos los ficherosde estilos comentados, las opciones de la cabecera y el resultado del barajador conextension .mix.tex.

Page 39: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 3. BARAJADOR SCRIPT BASH 23

3.7. Fichero de estilos ordinal.sty

La generacion del valor ordinal de un numero se realiza mediante los comandosdefinidos en este fichero de estilos, que sera utilizado para la creacion de los tıtulos deejercicios y preguntas en el examen.

3.8. Fichero de estilos configur.sty

El fichero de estilos configur.sty da soporte a parametros configurables del examen,definiendo tanto mandatos que representan metodos de invocacion como la configura-cion del cuerpo de cada uno de ellos. Se definen los siguientes mandatos:

• \noCONFIGURARXL{name body}: mandato que no hace nada.

• \noCONFIGURAR{name body}: version monoparrafo del anterior.

• \CONFIGURARXL{name body}: mandato que redefine \@@x@@.

• \CONFIGURAR{name body}: version monoparrafo del anterior.

• \CONFIGURABLEXL{name argv head body tail}: mandato que define\@x@ (metodo de invocacion) y \@@x@@ (cuerpo re-configurable).

• \CONFIGURABLE{name argv head body tail}: version monoparrafo delanterior.

• \OPCIONAL{x}: mandato monoparrafo como mecanismo para usar el cuerpore-configurable de la opcion x que haya podido ser configurada sin haber sidodeclarada explıcitamente como CONFIGURABLE.

3.9. Fichero de estilos examennew.sty

El fichero examennew.sty establece el conjunto de estilos utilizados para la presen-tacion de examenes tipo test barajados. En el se definen las opciones de configuracion,presentando los comandos de cada elemento del examen y estableciendo su conteni-do por defecto y los estilos del pdf resultante. Las opciones declaradas aportaran lacaracterıstica de configuracion a elementos generales, elementos relacionados con laidentidad, partes de la caratula y encolumnado del examen. A continuacion se presen-tan algunos de ellos:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%% Generales %%%%%%%%%

\@CONFIGURABLE{CentrarLosTextosDe} {0} {}{#1}{} % 0 o 1

\@CONFIGURABLE{CopyRight}%

{%% Recibira

\copyright

{\the\year}

Page 40: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

24 3.9. FICHERO DE ESTILOS EXAMENNEW.STY

{\uppercase\expandafter{\romannumeral\year}}

\@NombreDeLaUniversidad@

\@NombreDeLaFacultad@

\@NombreDelDepartamento@

\@SiglasDeLaUniversidad@

\@SiglasDeLaFacultad@

\@SiglasDelDepartamento@

}{% HEAD

\begin{footnotesize}

}{% BODY

{Copyright #1 #3, \sc#4.}%

}{% TAIL

\end{footnotesize}

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%% Identidad %%%%%%%%%

\@CONFIGURABLE{IdentidadSobreEnunciado} {1} {}{#1}{} % 0 o 1

\@CONFIGURABLE{IdentidadSobreCuestiones}{1} {}{#1}{} % 0 o 1

\@CONFIGURABLE{CuadroDeIdentidadDelAlumno}%

{%% Void

}{% HEAD

\begin{normalsize}%

\noindent

}{% BODY

{\bf

Apellidos,~{}Nombre:\hspace{\stretch{5}}%

No~{}Matrıcula:\hspace{\stretch{1}}%

D.N.I.:\hspace{\stretch{1}}%

}%

}{% TAIL

\end{normalsize}%

\vspace{2ex}%

\hrule height0.1pt%---------------------

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%% Caratula %%%%%%%%%

\@CONFIGURABLE{NombreDeLaUniversidad} {{Universidad Politecnica de Madrid}}

{}{#1}{}

\@CONFIGURABLE{NombreDeLaFacultad} {{Facultad de Informatica}} {}{#1}{}

\@CONFIGURABLE{NombreDelDepartamento} {{Departamento de Arquitectura y

Tecnologıa de Sistemas Informaticos}} {}{#1}{}

\@CONFIGURABLE{SiglasDeLaUniversidad} {{UPM}} {}{#1}{}

\@CONFIGURABLE{SiglasDeLaFacultad} {{F\/I}} {}{#1}{}

\@CONFIGURABLE{SiglasDelDepartamento} {{DATSI}} {}{#1}{}

Page 41: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 3. BARAJADOR SCRIPT BASH 25

\@CONFIGURABLE{TituloDelExamen}%

{%% Recibira:

\@NombreDeLaUniversidad@

\@NombreDeLaFacultad@

\@NombreDelDepartamento@

\@SiglasDeLaUniversidad@

\@SiglasDeLaFacultad@

\@SiglasDelDepartamento@

}{% HEAD

}{% BODY

{\rm #1. #2.}%

\\

{\rm #3.}%

}{% TAIL

}

\@CONFIGURABLE{NombreDeLaAsignatura} {{\@NECESARIO[Nombre~{}De~{}La~{}

Asignatura]{NombreDeLaAsignatura}}} {}{#1}{}

\@CONFIGURABLE{SiglasDeLaAsignatura} {{\@NECESARIO[Siglas~{}De~{}La~{}

Asignatura]{SiglasDeLaAsignatura}}} {}{#1}{}

\@CONFIGURABLE{TipoDeAsignatura} {{\@NECESARIO[Tipo~{}De~{}Asignatura]

{TipoDeAsignatura}}} {}{#1}{}

\@CONFIGURABLE{TipoDeExamen} {{\@NECESARIO[Tipo~{}De~{}Examen]

{TipoDeExamen}}} {}{#1}{}

\@CONFIGURABLE{FechaDelExamen} {{\@NECESARIO[dd--Mmm--aaaa]

{FechaDelExamen}}} {}{#1}{}

\@CONFIGURABLE{SubtituloDelExamen}%

{%% Recibira:

\@NombreDeLaAsignatura@

\@SiglasDeLaAsignatura@

\@TipoDeAsignatura@

\@TipoDeExamen@

\@FechaDelExamen@

}{% HEAD

}{% BODY

{\rm #4 de #1. #5.}%

\\

}{% TAIL

}

\@CONFIGURABLE{FechaDePublicacion} {{\@NECESARIO[dd--Mmm--aaa]

{FechaDePublicacion}}} {}{#1}{}

\@CONFIGURABLE{FechaDeRevision} {{\@NECESARIO[dd--Mmm--aaa]

{FechaDeRevision}}} {}{#1}{}

\@CONFIGURABLE{CuantosEnunciados} {{\@NECESARIO[??]

{CuantosEnunciados}}} {}{#1}{}

\@CONFIGURABLE{PesoTotalDelEnunciado} {{\@NECESARIO[??]

Page 42: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

26 3.9. FICHERO DE ESTILOS EXAMENNEW.STY

{PesoTotalDelEnunciado}}} {}{#1}{}

\@CONFIGURABLE{DuracionDelExamen} {{\@NECESARIO[??]

{DuracionDelExamen}}} {}{#1}{}

\@CONFIGURABLE{TextoDeLaCaratula}%

{%% Recibira:

\@FechaDePublicacion@

\@FechaDeRevision@

\@PesoTotalDelEnunciado@

\@DuracionDelExamen@

}{% HEAD

\begin{footnotesize}%

}{% BODY

El peso total de este examen son #3 puntos.

Para su realizacion dispone de #4.

\\

Las notas se publicaran el #1.

La revision se realizara el #2.

}{% TAIL

\end{footnotesize}%

}

\@CONFIGURABLEXL{PrefacioDelExamen}%

{%% Recibira:

}{% HEAD

~{}\\

\hrule height0.1pt%---------------------

\begin{flushleft}%

\begin{footnotesize}%

}{% BODY

}{% TAIL

\end{footnotesize}%

\end{flushleft}%

}

\@CONFIGURABLEXL{LaCaratula}%

{%% Recibira:

\@TituloDelExamen@

\@SubtituloDelExamen@

\@TextoDeLaCaratula@

\@PrefacioDelExamen@

}{% HEAD

\begin{center}%

\begin{normalsize}%

}{% BODY

#1\par

#2\par

#3\par

#4%

}{% TAIL

Page 43: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 3. BARAJADOR SCRIPT BASH 27

\end{normalsize}%

\end{center}%

}

El fichero de estilos del examen no solo define las opciones de configuracion sino tambienverifica la estructura de los elementos del examen (navegando por niveles de anidamien-to); se ocupa de validar si se encuentran todos los elementos necesarios en la generaciondel pdf; usa la conversion de numeros por el ordinal correspondiente en los tıtulos deejercicios y preguntas; y establece los estilos del documento resultante (tamano de letra,margen, paginacion, etc..).

Page 44: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 45: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

XML y XSD

Un esquema XML, conocido comunmente como una definicion de esquema XML(XSD), describe formalmente lo que un documento XML puede contener. El esquemaXML define la forma o estructura de un documento XML junto con las reglas rela-cionadas con los datos contenidos y la semantica que define lo que un elemento puedecontener, ası como los sub-elementos y cuales deben estar presentes. Tambien se puedendescribir los tipos y valores que pueden asignarse a cada elemento o atributo [XML13a].

4.1. XML

XML, siglas en ingles de eXtensible Markup Language (XML), es un lenguaje demarcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almace-nar datos de forma legible. Deriva del lenguaje SGML2 y permite definir la gramaticade lenguajes especıficos para estructurar documentos grandes. A diferencia de otroslenguajes, XML da soporte a bases de datos, siendo util cuando varias aplicacionesdeben comunicarse entre sı o integrar informacion.XML no ha nacido solo para su aplicacion en Internet, sino que se propone como unestandar para el intercambio de informacion estructurada entre diferentes plataformas.Se puede usar en bases de datos, editores de texto, hojas de calculo, etc.XML es una tecnologıa sencilla que tiene a su alrededor otras que la complementan yla hacen mucho mas grande y con unas posibilidades mucho mayores. Tiene un papelmuy importante en la actualidad ya que permite la compatibilidad entre sistemas paracompartir informacion de una manera segura, fiable y facil.

4.1.1. Estructura de un documento XML

La tecnologıa XML busca dar solucion al problema de expresar informacion es-tructurada de la manera mas abstracta y reutilizable posible. Que la informacion seaestructurada quiere decir que se compone de partes bien definidas y que esas partes secomponen, a su vez, de otras partes. Entonces se tiene un arbol de partes de informa-cion. Estas partes se llaman elementos y se senalan mediante etiquetas.Una etiqueta consiste en una marca hecha en el documento que senala una porcion deeste documento como un elemento. Un pedazo de informacion con un sentido claro y

2Standard Generalized Markup Language (SGML) o Lenguaje de Marcado Generalizado Estandar.Consiste en un sistema para la organizacion y etiquetado de documentos

29

Page 46: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

30 4.1. XML

definido. Las etiquetas tienen la forma < nombre >, donde nombre es el nombre delelemento que se esta senalando.Los bloques basicos de construccion de esquemas XML son los elementos y atributos,cuyo contenido viene definido por los tipos de datos definidos. Al crear un esquemaXML se definen los elementos individuales, los atributos y los tipos de datos validospara ellos. Los elementos describen datos, mientras que los atributos son las propieda-des de un elemento, ya que proporcionan una definicion mas precisa sobre la forma enla que se describen las caracterısticas de los objetos y clases.

4.1.2. Documentos XML bien formados y control de errores

Los documentos denominados considerados bien formados son aquellos que cumplencon todas las definiciones basicas de formato que se enumeran a continuacion:

• Los documentos han de seguir una estructura estrictamente jerarquica en lo querespecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estarcorrectamente incluida en otra, es decir, las etiquetas deben estar correctamenteanidadas. Los elementos con contenido deben estar correctamente cerrados.

• Los documentos XML solo permiten un elemento raız del que todos los demassean parte, es decir, solo puede tener un elemento inicial.

• Los valores de los atributos en XML siempre deben estar encerrados entre comillassimples o dobles.

• El XML es sensible a mayusculas y minusculas. Existe un conjunto de caracteresllamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos delınea) que los procesadores XML tratan de forma diferente en el marcado XML.

• Es necesario asignar nombres a las estructuras, tipos de elementos, entidades,elementos particulares, etc.

• Las construcciones como etiquetas, referencias de entidad y declaraciones se deno-minan marcas, y son partes del documento que el procesador XML espera poderreconocer.

4.1.3. Partes de un documento XML

Un documento XML esta formado por el prologo y por el cuerpo del documento:

• Prologo: aunque no es obligatorio, los documentos XML pueden empezar conunas lıneas que describen la version XML, el tipo de documento y otras cosas.El prologo de un documento XML contiene:

• Una declaracion XML. Es la sentencia que declara al documento como undocumento XML.

• Una declaracion de tipo de documento. Enlaza el documento con su DTD3

3Definiciøn Tipo Documento (DTD) (siglas en ingles de document type definition) es una descrip-cion de estructura y sintaxis de un documento XML o SGML.

Page 47: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 4. XML Y XSD 31

o el DTD puede estar incluido en la propia declaracion o ambas cosas almismo tiempo.

• Uno o mas comentarios e instrucciones de procesamiento.

• Cuerpo: A diferencia del prologo, el cuerpo no es opcional en un documentoXML, y debe contener solo un elemento raız, caracterıstica indispensable tambienpara que el documento este bien formado.

• Elementos: Los elementos XML pueden tener contenido (mas elementos, carac-teres o ambos), o bien ser elementos vacıos.

• Atributos: Los elementos pueden tener atributos, que son una manera de incor-porar caracterısticas o propiedades a los elementos de un documento. Se trata depares nombre/valor que aparecen a continuacion del nombre del elemento, dentrode las etiquetas de comienzo y fin, y cuyo valor debe ir entre comillas.

• Entidades predefinidas: Entidades para representar caracteres especiales paraque de esa forma no sean interpretados como marcado en el procesador XML.

• Secciones CDATA: Es una construccion XML para especificar datos utilizandocualquier caracter sin que se interprete como marcado XML.

4.2. XSD

XSD es un lenguaje de esquema utilizado para describir la estructura y las restric-ciones de los contenidos de los documentos XML de una forma muy precisa [XML13a],mas alla de las normas sintacticas impuestas por el propio lenguaje XML. Se consigueası una percepcion del tipo de documento con un mayor nivel de abstraccion que el deun documento XML sin restricciones. Fue desarrollado por el W3C y alcanzo el nivelde recomendacion en mayo de 2001.

4.2.1. ¿Para que sirve?

Un esquema XSD sirve para definir la correcta estructura de los elementos del do-cumento XML (al igual que un DTD):

• Define los elementos que pueden aparecer en el documento XML.

• Define los atributos de los elementos que pueden aparecer en el documento XML.

• Define que elementos son hijos de los elementos principales del documento XML.

• Define la secuencia en la cual los hijos de los elementos pueden aparecer en eldocumento XML.

• Define el numero de hijos de los elementos.

• Define cuando un elemento es vacıo o puede incluir texto.

• Define el tipo de datos para los elementos y sus atributos.

• Define los valores predeterminados para algunos elementos y atributos.

Page 48: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

32 4.2. XSD

Si el documento XML no concuerda con la estructura definida en el archivo XSD alque referencia, entonces el documento XML sera erroneo.

4.2.2. Conceptos

4.2.2.1. Como hacer referencia a un esquema XSD

Una vez escrita una especificacion XSD, podemos escribir un documento XMLy hacer constar en el mismo que debe ser confirme a dicha especificacion. Esto sehace anadiendo algunos atributos al elemento raız del documento XML: el atributoxsi:schemaLocation indica la ubicacion del esquema XSD contra el que se debe validarel documento XML.

4.2.2.2. Validacion del XML usando XSD

La validacion es el proceso por el cual se comprueba que una instancia de un docu-mento XML se ajusta a la definicion de un esquema XML, es decir, que el documentose encuentra en el formato esperado. Un esquema XSD se utiliza para:

• Validar el contenido de un documento XML.

• Determinar si el documento XML es una instancia valida del vocabulario expre-sado por el XSD.

• Define los elementos que pueden aparecer dentro de un documento XML y losatributos que pueden ser asociados con un elemento.

• Define si un elemento debe estar vacıo o si por el contrario, puede contener texto.

• Define el valor por defecto de un atributo.

• Define que elementos pueden contener elementos hijos.

• Define la secuencia en que los elementos hijos pueden aparecer en un elementopadre.

• Define el numero permitido de elementos hijo.

4.2.2.3. Declaraciones y definiciones

• Declaracion: Las declaraciones describen los modelos de contenido (la estruc-tura) de elementos y atributos dentro de las instancias de un documento XML.

• Definicion: Las definiciones crean nuevos tipos de datos (simples o complejos).

4.2.2.4. Estructura del esquema XSD

En el esquema se definen los elementos de los que puede constar el documento XMLy los tipos de datos que pueden contener mediante lineas de la forma:

Page 49: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 4. XML Y XSD 33

<xs : element name=” nombre del e lemento ” type=” t i p o d e d a t o s ” />

Los tipos de datos simples mas comunes son:

• xs:string

• xs:decimal

• xs:integer

• xs:boolean

• xs:date

• xs:time

Los elementos tambien pueden tener atributos, que se definen de igual manera quelos elementos, pero reemplazando xs:element por xs:attribute:

<xs : a t t r i b u t e name=” nombre de l a t r ibuto ” type=” t i p o d e d a t o s ”use=” requer ido / opc iona l ” d e f a u l t=” v a l o r d e f e c t o ”/>

Tambien se pueden crear nuevos tipos de datos, estableciendo restricciones sobrelos valores posibles de un tipo de datos predefinido. A continuacion se presentan lasrestricciones aplicables a tipos de datos simples (ver cuadro 4.1).Se pueden definir tipos de datos compuestos mediante elementos <xs:complexType>.Los tipos de datos compuestos contienen un conjunto de tipos de datos simples ocompuestos. Estos se pueden agrupar mediante indicadores de orden y tambien sepueden emplear indicadores de ocurrencia. A continuacion se presentan los diferentestipos de indicadores aplicables:

1. Indicadores de orden: (ver cuadro 4.2).

2. Indicadores de ocurrencia: Por defecto los elementos definidos como parte de untipo compuesto deben aparecer exactamente una vez. Los atributos maxOccursy minOccurs modifican este requisito (ver cuadro 4.3).

3. Indicadores de grupo: (ver cuadro 4.4)

Page 50: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

34 4.2. XSD

RESTRICCION DESCRIPCIONenumeration Define un listado de valores aceptados

fractionDigitsEspecifica el numero maximo de decimales permitidos.Debe ser igual o mayor que cero.

lengthEspecifica el numero exacto de caracteres o lista deelementos permitido. Debe ser igual o mayor que cero.

maxExclusiveEspecifica los lımites superiores de valores numericos(el valor debe ser menor a este valor).

maxInclusiveEspecifica los lımites superiores de valores numericos(el valor debe ser menor o igual a este valor).

maxLengthEspecifica el numero maximo de caracteres o lista deelementos permitido. Debe ser igual o mayor que cero.

minExclusiveEspecifica los lımites inferiores de valores numericos (elvalor debe ser mayor a este valor).

minInclusiveEspecifica los lımites inferiores de valores numericos (elvalor debe ser mayor o igual a este valor).

minLengthEspecifica el mınimo numero de caracteres o lista deelementos permitido. Debe ser igual o mayor que cero.

patternDefine la secuencia exacta de caracteres que esaceptada.

totalDigitsEspecifica el numero exacto de dıgitos permitidos.Debe ser mayor que cero.

whiteSpaceEspecifica como se manejan los espacios en blanco(tabulaciones, espacios, retornos de carro).

Cuadro 4.1: Restricciones de tipos simples en XSD

INDICADOR DESCRIPCION

<xs:all>...</xs:all>Los elementos que contiene pueden aparecer encualquier orden.

<xs:choice>...</xs:choice>Solo puede aparecer uno de los elementos contenidos.

<xs:sequence>...</xs:sequence>

Los elementos que contiene deben aparecerexactamente en el mismo orden en que estan definidos.

Cuadro 4.2: Indicadores de orden en XSD

INDICADOR DESCRIPCION

maxOccurs = ”n”

Atributos que indica que el elemento puede aparecer variasveces, hasta un maximo de ”n” veces. Si especificamosmaxOccurs= ”unbounded”, el elemento puede aparecer unmaximo indefinido de veces.

minOccurs = ”n”Atributo que indica que el elemento debe aparecer unmınimo de ”n” veces.

minOccurs = ”0” Significa que el elemento es opcional y puede o no aparecer.

Cuadro 4.3: Indicadores de ocurrencia en XSD

Page 51: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 4. XML Y XSD 35

INDICADOR DESCRIPCION

<xs:groupname= ”nombre− grupo”> ...</xs:group>

Podemos definir y asignar un nombre a un grupo deelementos. Una vez definido, en la declaracion de untipo de datos compuesto podemos hacer referencia almismo utilizando la sintaxis <xs:groupref= ”nombre− grupo” />.

<xs:attributeGroupname= ”nombre− grupo”>... </xs:attributeGroup>

De la misma forma, podemos definir y asignar unnombre a un grupo de atributos. Una vez definido,podemos hacer referencia a dicho grupo con la sintaxis<xs:attributegroup ref = ”nombre− grupo” />

Cuadro 4.4: Indicadores de grupo en XSD

Page 52: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 53: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

JAXB

Java Architecture for XML Binding (JAXB) permite a los desarrolladores Javaasignar clases de Java a representaciones XML. JAXB proporciona dos caracterısticasprincipales: la capacidad de serializar4 las referencias de objetos Java a XML y a lainversa, es decir, deserializar XML en objetos Java. En otras palabras, JAXB permitealmacenar y recuperar datos en memoria en cualquier formato XML, sin necesidad deimplementar un conjunto especıfico de rutinas que se encarguen de ello.JAXB es particularmente util cuando la especificacion es compleja y cambiante, ya queen tal caso cambiar regularmente las definiciones del XSD para mantenerlas sincroni-zadas con las definiciones de Java puede llevar mucho tiempo y ser propenso a errores.JAXB [JAX14a] es una parte de la plataforma Java SE5 y una de las APIs de la pla-taforma Java EE7, y es parte del Java Web Services Development Pack (JWSDP8).JAXB esta disponible desde la version 1.6 SE.

Figura 5.8: Diagrama de JAXB

4En ciencias de la computacion, la serializacion (o marshalling en ingles [Ser14]) consiste en unproceso de codificacion de un objeto en un medio de almacenamiento con el fin de trasmitirlo a travesde una conexion de red como una serie de bytes o en un formato humanamente mas legible como XMLo JSON

5Java Platform, Standard Edition o Java SE es una coleccion de APIs6 del lenguaje de programacionJava utiles para muchos programas de la Plataforma Java

7Java Platform, Enterprise Edition o Java EE es una plataforma de programacion que permiteutilizar arquitecturas de N capas distribuidas y se apoya ampliamente en componentes de softwaremodulares ejecutandose sobre un servidor de aplicaciones

8Java Web Services Development Pack es el paquete de desarrollo de servicios web de java.

37

Page 54: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

38 5.2. ASOCIACIONES DE TIPOS DE DATOS POR DEFECTO

5.1. Uso de JAXB

La herramienta ”xjc” se puede utilizar para convertir un XSD y otros tipos de archi-vo de esquemas (en Java 1.6, XML DTD, WSDL son compatibles experimentalmente)a representacion de clases. Las clases son marcadas usando anotaciones del espaciode nombres javax.xml.bind.annotation.∗, por ejemplo, @XmlRootElement y @XmlEle-ment. Las secuencias de listas XML se representan con atributos de tipo java.util.List.Los serializadores y deserializadores se crean a traves de una instancia de JAXBCon-text. Ademas JAXB incluye la herramienta ”schemagen” que en esencia puede llevar acabo la inversa de ”xjc”, creando un XSD a partir de un conjunto de clases anotadas.

5.2. Asociaciones de tipos de datos por defecto

La siguiente tabla muestra las asignaciones de tipos de datos XSD a tipos de datosJava en JAXB:

Tipo XSD Tipo de dato Javaxsd:string java.lang.Stringxsd:positiveInteger java.math.BigIntegerxsd:int intxsd:long longxsd:short shortxsd:decimal java.math.BigDecimalxsd:float floatxsd:double doublexsd:boolean booleanxsd:byte bytexsd:QName javax.xml.namespace.QNamexsd:dateTime javax.xml.datatype.XML.GregorianCalendarxsd:base64Binary byte[]xsd:hexBinary byte[]xsd:unsignedInt longxsd:unsignedShort intxsd:unsignedByte shortxsd:unsignedLong java.math.BigDecimalxsd:time javax.xml.datatype.XML.GregorianCalendarxsd:date javax.xml.datatype.XML.GregorianCalendarxsd:g javax.xml.datatype.XML.GregorianCalendarxsd:anySimpleType (paraxsd:element de ese tipo)

java.lang.Object

xsd:anySimpleType (paraxsd:attribute de ese tipo)

java.lang.String

xsd:duration javax.xml.datatype.Durationxsd:NOTATION javax.xml.namespace.QName

Cuadro 5.5: Asociacion de tipos de datos con JAXB

Page 55: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 5. JAXB 39

Page 56: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 57: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Parte III

Diseno y Desarrollo de la Solucion

41

Page 58: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 59: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Especificacion de requisitos

La situacion que motiva el desarrollo de este proyecto es, en esencia, disponer deuna herramienta para la generacion de examenes de tipo test que, cumpliendo conlas funcionalidades proporcionadas por la herramienta anterior, amplıe y mejore lausabilidad, funcionalidad, ejecucion y formato de salida del documento resultante. Conel fin de estandarizar el formato de entrada de la herramienta, se requiere el uso deun lenguaje que permita estructurar informacion en un documento de forma intuitivay comprensible. Dicho documento de entrada debe ser procesado por una herramientaque pueda ser ejecutada sin limitaciones en cuanto a la arquitectura de la plataformay que mejore los tiempos de respuesta de la herramienta anterior. El documento desalida se presentara en formato pdf, cuyo contenido se ajuste a los estilos definidos enun fichero de estilos de LaTeX. Al mismo tiempo se desea reducir tanto el numero deficheros a configurar por el usuario como el numero de pasos a seguir para obtener lasalida en formato pdf.

6.1. Requisitos funcionales

Manteniendo la funcionalidad proporcionada por el sistema anterior, se desea ob-tener una serie de mejoras y ampliaciones que faciliten la escritura del contenido delexamen y que presenten mayor configurabilidad:

1. Se desea estructurar la informacion del examen de entrada en un formato conoci-do, intuitivo y ampliable que permita organizar los contenidos de forma jerarquicay que su vez permita definir tanto el contenido de la cabecera del examen, comolos ejercicios, preguntas y respuestas del mismo y al mismo tiempo refleje lasopciones de combinatoria deseados.

2. Se necesita que cada ejercicio y pregunta del examen puedan identificarse para:

• Poder seleccionar que ejercicios de todos los definidos se desean utilizar.

• Poder conocer el orden de combinacion en el resultado de las preguntas yrespuestas asociadas a la misma.

3. Se necesita configurar el tipo de numeracion asignada a cada elemento del examensegun el siguiente listado, y que a su vez tengan una configuracion por defectoen caso de no indicar una concreta:

• Decimal : Se identificaran con numeros decimales los elementos del examensegun su posicion en el conjunto al que pertenecen.

43

Page 60: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

44 6.1. REQUISITOS FUNCIONALES

• Los ejercicios se representaran como: Ejercicio 1

• Las preguntas se representaran como: Pregunta 1

• Las respuestas se representaran como: 1

• Ordinal literal : Se identificaran con literales que representen el ordinaldel elemento del examen respecto al orden establecido en el conjunto al quepertenecen.

• Los ejercicios se representaran como: Primer Ejercicio

• Las preguntas se representaran como: Primera Pregunta

• Las respuestas se representaran como: Primera

• Ordinal numerico : Se identificaran con el numero ordinal los elementosdentro del conjunto al que pertenecen.

• Los ejercicios se representaran como: 1er Ejercicio

• Las preguntas se representaran como: 1a Pregunta

• Las respuestas se representaran como: 1a

• Caracteres minusculas : Se identificaran con una letra minuscula delalfabeto los elementos dentro del conjunto al que pertenecen.

• Los ejercicios se representaran como: Ejercicio a

• Las preguntas se representaran como: Pregunta a

• Las respuestas se representaran como: a

• Caracteres mayusculas : Se identificaran con una letra mayuscula delalfabeto los elementos dentro del conjunto al que pertenecen.

• Los ejercicios se representaran como: Ejercicio A

• Las preguntas se representaran como: Pregunta A

• Las respuestas se representaran como: A

4. Se desea definir el numero maximo de combinaciones de examenes diferentes agenerar.

5. Se desea tener la opcion de establecer un orden estatico y predefinido de losejercicios del examen en todos los examenes resultantes.

6. Se desea poder seleccionar que ejercicios de todos los contenidos en el fichero deentrada son aquellos que deben seleccionarse para configurar el examen de salida.

7. Un examen puede contener un listado de ejercicios.

8. Cada ejercicio del examen tendra un enunciado y un listado de preguntas.

9. A cada ejercicio podran asociarse una serie de metadatos que puedan explotarseen un futuro.

10. Una pregunta podra contener un texto y un listado de respuestas.

Page 61: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 6. ESPECIFICACION DE REQUISITOS 45

11. En cada respuesta se podra establecer su valor de verdad y el texto que la describe.

12. Tanto a nivel de ejercicio, pregunta y respuesta podra determinarse el numero decolumnas en las que dividir su contenido en el fichero resultante.

13. El texto contenido en cada elemento del examen no tendra por que ser unicamentetexto plano.

6.2. Requisitos no funcionales

A continuacion se numeran los requisitos no funcionales del sistema:

1. La definicion del contenido del examen debera basarse en un formato conocidoque facilite su generacion.Para cumplir con las necesidades de este requisito se decide definir un documentode definicion de esquema XML que estructure la informacion de un examen ypermita validar y componer el XML asociado.XML Schema es un lenguaje de esquema escrito en XML, basado en la gramaticay pensado para proporcionar una mayor potencia expresiva que las DTD9, menoscapaces al describir los documentos a nivel formal.

2. El proceso de generacion de examenes debera poder ejecutarse en cualquier pla-taforma (independiente del sistema operativo) y mejorar el tiempo de procesa-miento y respuesta.El sistema se implementara en java, por tratarse de un lenguaje de programacionorientado a objetos. La idea de Java es que pueda realizarse programas con la po-sibilidad de ejecutarse en cualquier contexto, en cualquier ambiente, siendo ası suportabilidad uno de sus principales logros, cumpliendo con uno de los aspectosde este requisito.Ademas java es rapido, seguro y fiable, permitiendo mejorar el tiempo de res-puesta en el procesamiento de informacion si se compara con un script bash.

6.3. Limitaciones del Barajador.sh

Tras varios anos utilizando la herramienta de generacion automatica de examenesBarajador.sh se han identificado una serie de posibles mejoras que han motivado elrediseno de esta herramienta, por lo que se desea el desarrollo de una nueva herramientaque ademas de mantener las funcionalidades de la anterior, mejore y amplıe una seriede aspectos operativos de la misma:

• Mantenibilidad: El Barajador.sh es un script bash desarrollado en un unico ficherode casi 3.000 lıneas, lo que lo hace difıcilmente mantenible y ampliable.

• Usabilidad: El formato del fichero .tst de entrada dificulta la validacion del con-tenido que se esta escribiendo y requiere que el usuario conozca en profundidadel lenguaje definido (sin seguir ninguna estructura estandar). Al mismo tiempo,

9Definicion de Tipo de Documento

Page 62: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

46 6.3. LIMITACIONES DEL BARAJADOR.SH

la caratula del examen se define en un fichero .tex, con un formato distinto al delcuerpo del examen y donde aparecen comandos latex propios.

• Funcionalidad: Se identifican algunas limitaciones en la herramienta:

• No se puede configurar el tipo de elementos que pueden combinarse en elexamen (ejercicios, preguntas y/o respuestas)

• No se puede modificar/configurar el tipo de numeracion utilizado en cadaelemento del examen.

• No es posible introducir fragmentos de codigo en las respuestas del examen,puesto que no se visualiza correctamente en el documento final.

• No se puede ejecutar en cualquier plataforma.

• Tiempo de ejecucion: El numero de pasos necesarios para obtener el resultadofinal (documento pdf con los diferentes enunciados del examen) y el tiempo deejecucion del script bash hace que se requiera de mas tiempo del deseado a la horade componer el examen ya que en determinadas situaciones, se necesita realizardiferentes ejecuciones de la herramienta, alterando el orden de los ejercicios, conel fin de minimizar el numero de paginas del documento final.

Page 63: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Desarrollo

En este capıtulo se describe el diseno y desarrollo realizado a partir del analisis de losrequisitos que determinan este proyecto fin de carrera. Como se ha mencionado en losanteriores capıtulos, los objetivos son disenar una estructura de datos que represente lainformacion relacionada con un examen y desarrollar una aplicacion multiplataformaque permita validar y procesar el contenido de dicho examen, generando a su salidaficheros en diferentes formatos que presentan una combinacion aleatoria del contenidoinicial en funcion de unos atributos definidos.Para la definicion inicial del examen se decide utilizar XML por tratarse de un estandarinternacionalmente conocido que permite representar informacion estructurada, facil-mente procesable, extensible y validada. El usuario tendra que completar un unicodocumento XML de entrada que contendra todos los elementos y atributos identifi-cados en los requisitos recogidos y al mismo tiempo asegurara que su contenido seestructura de forma correcta, respetando la tipologıa, secuencialidad y anidamientode todos sus elementos. Se disenara un documento XSD que defina la estructura deldocumento XML y permita validar el formato y contenido del examen definido.La generacion de diferentes enunciados de un examen se disenara bajo el paradigma dela programacion orientada a objetos. Se realizara un diseno detallado de los distintoscomponentes, modelando el sistema como un grupo de objetos que interactuan entresı.

7.1. Diseno del xml

En este apartado se detalla la definicion del documento XSD elaborado para repre-sentar la estructura e informacion asociada a un examen. Se detallaran los distintoselementos que componen el documento, los tipos de datos definidos, los atributos aso-ciados y las validaciones relacionadas con cada uno de ellos.

7.1.1. Elemento examen

Se trata del elemento raız de esquema XSD definido, donde se especifica la infor-macion asociada a la numeracion de los ejercicios, preguntas y respuestas contenidasy donde se indican las posibilidades de combinatoria de estos. El examen se declaracomo un elemento de tipo examenType con dos sub-elementos contenidos: cabecera yejercicios.

47

Page 64: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

48 7.1. DISENO DEL XML

Figura 7.9: Definicion XSD del elemento raız examen

Page 65: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 49

7.1.1.1. Tipo examenType

Se trata de un tipo de datos complejo que contiene los atributos asociados a unexamen.

Figura 7.10: Tipo XSD complejo examenType

Los atributos de un elemento de tipo examenType determinan la configuracion de

Page 66: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

50 7.1. DISENO DEL XML

combinatoria de los posibles enunciados a generar y el tipo de numeracion de los ele-mentos del examen:

1. numEnunciados: Este atributo indica el numero de combinaciones diferentesque se desean obtener del contenido del examen. Si no se informa, por defectotomara valor 1, siendo este su valor mınimo.El atributo numEnunciados es de tipo numEnunciadosType: que representa untipo simple de valores enteros mayores o iguales a 1:

Figura 7.11: Tipo XSD numEnunciadosType en examenType

2. barajaEjercicios: Este atributo indica la intencion de que se realicen combi-naciones en los enunciados a nivel de ejercicios. Si su valor es ((true)), el ordende los ejercicios variara en los diferentes enunciados que se generen; en caso detomar valor ((false)), todos los enunciados del examen presentaran los ejerciciosen el mismo orden.La combinacion de elementos del examen puede realizarse en todos los niveles(ejercicios, preguntas y respuestas) segun el valor de los atributos barajaEjerci-cios, barajaPreguntas y barajaRespuestas.El atributo barajaEjercicios es de tipo barajaEnumType: que representa un tiposimple de valores dentro de un conjunto enumerado [true/false]:

Figura 7.12: Tipo XSD barajaEnumType en examenType

3. barajaPreguntas: Este atributo indica la intencion de que se realicen combina-ciones en los enunciados a nivel de preguntas. Si su valor es ((true)), el orden delas preguntas dentro de los ejercicios variara en los diferentes enunciados que segeneren; en caso de tomar valor ((false)), todos los enunciados del examen presen-taran las preguntas dentro de los ejercicios en el mismo orden.El atributo barajaPreguntas es de tipo barajaEnumType: que representa un tiposimple de valores dentro de un conjunto enumerado [true/false] (vease 7.12).

4. barajaRespuestas: Este atributo indica la intencion de que se realicen combi-naciones en los enunciados a nivel de respuesta. Si su valor es ((true)), el orden delas respuestas de cada pregunta dentro de un ejercicio variara en los diferentesenunciados que se generen; en caso de tomar valor ((false)), todos los enunciadosdel examen presentaran el mismo orden de respuestas dentro de las preguntasasociadas a los ejercicios.

Page 67: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 51

El atributo barajaRespuestas es de tipo barajaEnumType: que representa un tiposimple de valores dentro de un conjunto enumerado [true/false] (vease 7.12).

5. ordenEjercicios: Este atributo es opcional y representa un listado de codigosde ejercicios separados por comas que indica el orden por defecto en el que vana aparecer en todos los enunciados del examen. El valor de este atributo solosera procesado si el atributo barajaEjercicios tiene valor ((false)). El atributo or-denEjercicios es de tipo string.

6. tipoNumeracionEjercicios: Este atributo indica el tipo de numeracion que se-guiran los ejercicios en el examen.El atributo tipoNumeracionEjercicios es de tipo tipoNumeracionType: que repre-senta un tipo simple de valores dentro de un conjunto enumerado [decimal / ca-racteres minusculas / caracteres mayusculas / ordinal literal / ordinal numerico]:

Figura 7.13: Tipo XSD tipoNumeracionType en examenType

7. tipoNumeracionPreguntas: Este atributo indica el tipo de numeracion queseguiran las preguntas de cada ejercicio en el examen.El atributo tipoNumeracionPreguntas es de tipo tipoNumeracionType (vease 7.13).

8. tipoNumeracionRespuestas: Este atributo indica el tipo de numeracion queseguiran las respuestas de las preguntas en el examen.El atributo tipoNumeracionRespuestas es de tipo tipoNumeracionType (vease7.13).

7.1.1.2. Ejemplo xml del examen

La definicion de un examen en el documento xml presentara la siguiente estructurade etiquetas:

<?xml version="1.0" encoding="UTF -8"?>

<p:examen barajaEjercicios="false"

barajaPreguntas="false"

barajaRespuestas="true"

numEnunciados="1"

ordenEjercicios=""

tipoNumeracionEjercicios="decimal"

tipoNumeracionPreguntas="caracteres_minusculas"

tipoNumeracionRespuestas="decimal"

xmlns:p="barajador_examen.modelo.jaxb.modeloexamen"

xmlns:xsi="http ://www.w3.org /2001/ XMLSchema -instance"

xsi:schemaLocation="barajador_examen.modelo.jaxb.modeloexamen modeloExamen.xsd

">

<cabecera >

</cabecera >

<ejercicios numEjercicios="4">

</ejercicios >

</p:examen >

Page 68: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

52 7.1. DISENO DEL XML

Listing 7.1: Ejemplo xml del elemento examen

7.1.2. Elemento cabecera

La cabecera de un examen contiene informacion general relacionada con la asigna-tura, facultad, universidad, normas de evaluacion, etc. La informacion de la cabeceradel examen se mostrara en la primera pagina de un enunciado y sera comun a todaslas combinaciones que se generen del mismo.El elemento cabecera se compone de diferentes sub-elementos:

Figura 7.14: Definicion XSD del elemento cabecera de un examen

Los elementos contenidos en una cabecera tienen una relacion 1 a 1, lo que indicaque siempre deben encontrarse informados:

1. infoUniversidad: Este sub-elemento contiene informacion relacionada con elcentro adjunto donde se realiza el examen.La informacion de la universidad se compone del nombre completo y las siglas

Page 69: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 53

que lo representan, tomando los siguientes valores por defecto ((Universidad Po-litecnica de Madrid)) y ((UPM)) respectivamente:

Figura 7.15: Elemento XSD infoUniversidad de la cabecera de un examen

• nombre: Este elemento contiene el nombre completo del centro universita-rio. Solo podra definirse un nombre asociado a la universidad (por tratarsede una relacion 1..1) y su longitud debera ser mayor que 1.El elemento nombre es de tipo nombreType: que define una secuencia decaracteres:

Figura 7.16: Tipo XSD nombreType de la cabecera de un examen

• siglas: Este elemento contiene las siglas del nombre del centro universitario.Solo podra definirse unas siglas asociadas a la universidad (por tratarse deuna relacion 1..1) y su longitud debera ser mayor que 1.El elemento siglas es de tipo siglasType: que define una secuencia de ca-racteres a partir del tipo base string. El tipo simple siglasType define unarestriccion basada en una expresion regular que especifica los posibles va-lores contenidos, en este caso limita el contenido a caracteres alfabeticos,dando error en caso de introducirse valores que no cumplan con el patrondefinido:

Figura 7.17: Tipo XSD siglasType de la cabecera de un examen

2. infoFacultad: Este sub-elemento contiene informacion relacionada con la facul-tad donde se realiza el examen.La informacion de la facultad se compone del nombre completo y las siglas quelo representan, tomando los siguientes valores por defecto ((Escuela Tecnica Su-perior de Ingenieros Informaticos)) y ((ETSIINF)) respectivamente:

Page 70: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

54 7.1. DISENO DEL XML

Figura 7.18: Elemento XSD infoFacultad de la cabecera de un examen

• nombre: Este elemento contiene el nombre completo de la facultad. Solopodra definirse un nombre asociado a la facultad (por tratarse de una rela-cion 1..1) y su longitud debera ser mayor que 1.El elemento nombre es de tipo nombreType: que define una secuencia decaracteres (vease 7.16).

• siglas: Este elemento contiene las siglas del nombre de la facultad. Solopodra definirse unas siglas asociadas a la facultad (por tratarse de una re-lacion 1..1) y su longitud debera ser mayor que 1.El elemento siglas es de tipo siglasType(vease 7.17).

3. infoDepartamento: Este sub-elemento contiene informacion relacionada con eldepartamento que publica el examen.La informacion del departamento se compone del nombre completo y las siglasque lo representan, tomando los siguientes valores por defecto ((Departamentode Lenguajes y Sistemas Informaticos e Ingenierıa del Software)) y ((DLSIIS))respectivamente:

Figura 7.19: Elemento XSD infoDepartamento de la cabecera de un examen

• nombre: Este elemento contiene el nombre completo del departamento. Solopodra definirse un nombre asociado al departamento (por tratarse de unarelacion 1..1) y su longitud debera ser mayor que 1.El elemento nombre es de tipo nombreType: que define una secuencia decaracteres (vease 7.16).

• siglas: Este elemento contiene las siglas del nombre del departamento. Solopodra definirse unas siglas asociadas al departamento (por tratarse de unarelacion 1..1) y su longitud debera ser mayor que 1.El elemento siglas es de tipo siglasType: que define una secuencia de ca-racteres a partir del tipo base string. El tipo simple siglasType define una

Page 71: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 55

restriccion basada en una expresion regular que especifica los posibles va-lores contenidos, en este caso limita el contenido a caracteres alfabeticos,dando error en caso de introducirse valores que no cumplan con el patrondefinido (vease 7.17).

4. infoAsignatura: Este sub-elemento contiene informacion relacionada con la asig-natura del examen.La informacion de la asignatura se compone del nombre completo, las siglas quelo representan y el tipo de asignatura segun el plan de estudios:

Figura 7.20: Elemento XSD infoAsignatura de la cabecera de un examen

• nombre: Este elemento contiene el nombre completo de la asignatura. Solopodra definirse un nombre asociado a la asignatura (por tratarse de unarelacion 1..1) y su longitud debera ser mayor que 1.El elemento nombre es de tipo nombreType: que define una secuencia decaracteres (vease 7.16).

• siglas: Este elemento contiene las siglas del nombre de la asignatura. Solopodra definirse unas siglas asociadas a la asignatura (por tratarse de unarelacion 1..1) y su longitud debera ser mayor que 1.El elemento siglas es de tipo siglasType: que define una secuencia de ca-racteres a partir del tipo base string. El tipo simple siglasType define unarestriccion basada en una expresion regular que especifica los posibles va-lores contenidos, en este caso limita el contenido a caracteres alfabeticos,dando error en caso de introducirse valores que no cumplan con el patrondefinido (vease 7.17).

• tipo: El elemento tipo es de tipo tipoAsignaturaType: que define un tipode asignatura dentro de un tipo enumerado: [Troncal / Optativa / Libreeleccion]:

Figura 7.21: Tipo XSD tipoAsignaturaType de la cabecera de un examen

Page 72: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

56 7.1. DISENO DEL XML

5. tipoExamen: Este sub-elemento contiene una descripcion del tipo del itinerariodel examen. El tipo base de elemento tipoExamen es un string.

6. fechaexamen: Este sub-elemento contiene informacion relacionada con la fechade celebracion del examen, que podra informarse en dos formatos diferentes.La fecha de un examen puede definirse en un elemento de texto libre (fechaLiteral)o en un elemento que cumple con el patron dd/MM/yyyy (fechaSeparadores):

Figura 7.22: Elemento XSD fechaexamen de la cabecera de un examen

Para completar la fecha del examen se debera elegir entre uno de estos dos sub-elementos:

• fechaLiteral: Este elemento contiene un texto libre donde se podra infor-mar la fecha del examen. El tipo complejo asociado al elemento es fecha-LiteralType que, a su vez, contiene un atributo tipo que tomara el valor((literal )):

Figura 7.23: Tipo XSD fechaLiteralType de la cabecera de un examen

• fechaSeparadores: Este elemento permite representar una fecha que debecumplir con un patron determinado. El tipo complejo asociado es fechaSe-paradoresType que a su vez contiene un atributo tipo que tomara el valor((separadores)). Con el fin de validar y asociar un formato al contenido deeste elemento, se crea el tipo base validadorFechaSeparadoresType de tipostring, donde se define el patron 2. − 2. − 4. que validara que el valor de lafecha contiene una serie de dıgitos (dos dıgitos para representar los dıas,dos dıgitos para representar el mes y cuatro dıgitos para representar el ano)separados por guiones. En caso de necesitar presentar la fecha en un formatodistinto a este, se completara una fecha en texto libre, utilizando el elementofechaLiteral.

Page 73: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 57

Figura 7.24: Tipo XSD fechaSeparadoresType de la cabecera de un examen

7. tituloExamen: Este sub-elemento representa el contenedor de informacion apartir del cual se compondra el tıtulo del examen. Se podra configurar la informa-cion mostrada en el tıtulo indicando la seleccion de cada uno de los sub-elementoscontenidos.Dentro del tıtulo del examen se podran seleccionar el nombre de la universidad,las siglas de la universidad, el nombre de la facultad, las siglas de la facultad, elnombre del departamento y las siglas del departamento.

Figura 7.25: Elemento XSD tituloExamen de la cabecera de un examen

Cada uno de los sub-elementos contenidos son de tipo elementoSeleccionadoTy-pe, pudiendo tomar el valor ((true)) o ((false)), a partir del cual se seleccionarandeterminados elementos como parte del texto del tıtulo:

Page 74: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

58 7.1. DISENO DEL XML

Figura 7.26: Tipo XSD elementoSeleccionadoType de la cabecera de un examen

• nombreUniversidad: Este elemento indica la seleccion del nombre de launiversidad como parte del tıtulo del examen. Solo en caso de que su va-lor sea ((true)), el sub-elemento nombre del elemento infoUniversidad (7.15)formara parte del tıtulo del examen. El valor por defecto de este elementoes ((false)).

• nombreFacultad: Este elemento indica la seleccion del nombre de la facul-tad como parte del tıtulo del examen. Solo en caso de que su valor sea ((true)),el sub-elemento nombre del elemento infoFacultad (7.18) formara parte deltıtulo del examen. El valor por defecto de este elemento es ((false)).

• nombreDepartamento: Este elemento indica la seleccion del nombre deldepartamento como parte del tıtulo del examen. Solo en caso de que su valorsea ((true)), el sub-elemento nombre del elemento infoDepartamento (7.19)formara parte del tıtulo del examen. El valor por defecto de este elementoes ((true)).

• siglasUniversidad: Este elemento indica la seleccion de las siglas de launiversidad como parte del tıtulo del examen. Solo en caso de que su valorsea ((true)), el sub-elemento siglas del elemento infoUniversidad (7.15) for-mara parte del tıtulo del examen. El valor por defecto de este elemento es((true)).

• siglasFacultad: Este elemento indica la seleccion de las siglas de la facultadcomo parte del tıtulo del examen. Solo en caso de que su valor sea ((true)),el sub-elemento siglas del elemento infoFacultad (7.18) formara parte deltıtulo del examen. El valor por defecto de este elemento es ((true)).

• siglasDepartamento: Este elemento indica la seleccion de las siglas deldepartamento como parte del tıtulo del examen. Solo en caso de que su valorsea ((true)), el sub-elemento siglas del elemento infoDepartamento (7.19)formara parte del tıtulo del examen. El valor por defecto de este elementoes ((false)).

8. subtituloExamen: Este sub-elemento representa el contenedor de informaciona partir del cual se compondra el subtıtulo del examen. Se podra configurar lainformacion mostrada en el subtıtulo, indicando la seleccion de cada uno de lossub-elementos contenidos.Dentro del subtıtulo del examen se podra seleccionar el nombre de la asignatura,las siglas de la asignatura, el tipo de asignatura, el tipo de examen y la fecha delexamen.

Page 75: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 59

Figura 7.27: Elemento XSD subtituloExamen de la cabecera de un examen

Cada uno de los sub-elementos contenidos son de tipo elementoSeleccionadoTy-pe, pudiendo tomar el valor ((true)) o ((false)), a partir del cual se seleccionarandeterminados elementos como parte del texto del subtıtulo (vease 7.26).

• nombreAsignatura: Este elemento indica la seleccion del nombre de laasignatura como parte del subtıtulo del examen. Solo en caso de que suvalor sea ((true)), el sub-elemento nombre del elemento infoAsignatura (7.20)formara parte del subtıtulo del examen. El valor por defecto de este elementoes ((true)).

• siglasAsignatura: Este elemento indica la seleccion de las siglas de la asig-natura como parte del subtıtulo del examen. Solo en caso de que su valorsea ((true)), el sub-elemento siglas del elemento infoAsignatura (7.20) for-mara parte del subtıtulo del examen. El valor por defecto de este elementoes ((false)).

• tipoAsignatura: Este elemento indica la seleccion del tipo de asignaturacomo parte del subtıtulo del examen. Solo en caso de que su valor sea ((true)),el sub-elemento tipo del elemento infoAsignatura (7.20) formara parte delsubtıtulo del examen. El valor por defecto de este elemento es ((false)).

• tipoExamen: Este elemento indica la seleccion del tipo de examen comoparte del subtıtulo del examen. Solo en caso de que su valor sea ((true)),el sub-elemento tipoExamen del elemento cabecera (7.14) formara parte delsubtıtulo del examen. El valor por defecto de este elemento es ((true)).

• fechaExamen: Este elemento indica la seleccion de la fecha de celebraciondel examen como parte del subtıtulo del examen. Solo en caso de que su

Page 76: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

60 7.1. DISENO DEL XML

valor sea ((true)), el sub-elemento fechaExamen del elemento cabecera (7.14)formara parte del subtıtulo del examen. El valor por defecto de este elementoes ((true)).

9. textoCaratulaExamen: El texto de la caratula informara sobre los detallesde celebracion del examen, criterios de puntuacion, publicacion de notas, etc.El elemento textoCaratulaExamen podra contener un texto libre o un elementocontenedor de sub-elementos que compondran el prefacio del examen en forma delistado. Solo se podra definir el texto de la caratula con un tipo de sus elementoscontenidos:

Figura 7.28: Elemento XSD textoCaratulaExamen de la cabecera de un examen

• textoLibre: Este elemento contiene un texto libre con informacion rela-cionada con el examen. Para evitar que el contenido de este elemento seainterpretado como un lenguaje de etiquetado, debera englobarse en una sec-cion CDATA.

• prefacioDelExamen: Este elemento agrupa un conjunto de sub-elementos(al menos uno) que formaran parte del listado del prefacio.

Figura 7.29: Elemento XSD prefacioDelExamen de la cabecera de un examen

En el listado del prefacio, cada sub-elemento de tipo elementoPrefacioTypetiene un atributo nombreElemento de tipo string (que sera el utilizado comotıtulo de cada concepto que se quiera mostrar en el listado) y un valorasociado con texto que describe el concepto indicado:

Figura 7.30: Tipo XSD elementoPrefacioType de la cabecera de un examen

Page 77: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 61

7.1.2.1. Ejemplo xml de la cabecera examen

La definicion de la cabecera un examen en el documento xml presentara la siguienteestructura de etiquetas:

<cabecera >

<infoUniversidad >

<nombre >Universidad Politecnica de Madrid </nombre >

<siglas >UPM</siglas >

</infoUniversidad >

<infoFacultad >

<nombre >Escuela Tecnica Superior de Ingenieros Informaticos </nombre >

<siglas >ETSIINF </siglas >

</infoFacultad >

<infoDepartamento >

<nombre >Departamento de Lenguajes y Sistemas Informaticos e Ingenierıa del

Software </nombre >

<siglas >DLSIIS </siglas >

</infoDepartamento >

<infoAsignatura >

<nombre >ProgramaciOn II</nombre >

<siglas >PII</siglas >

<tipo>Troncal </tipo>

</infoAsignatura >

<tipoExamen >Itinerario Flexible </tipoExamen >

<fechaExamen >

<fechaSeparadores tipo="separadores">13 -12 -2014</fechaSeparadores >

</fechaExamen >

<tituloExamen >

<nombreUniversidad >false</nombreUniversidad >

<nombreFacultad >false </nombreFacultad >

<nombreDepartamento >true</nombreDepartamento >

<siglasUniversidad >true</siglasUniversidad >

<siglasFacultad >true</siglasFacultad >

<siglasDepartamento >false</siglasDepartamento >

</tituloExamen >

<subtituloExamen >

<nombreAsignatura >true</nombreAsignatura >

<siglasAsignatura >false</siglasAsignatura >

<tipoAsignatura >false </tipoAsignatura >

<tipoExamen >true</tipoExamen >

<fechaExamen >true</fechaExamen >

</subtituloExamen >

<textoCaratulaExamen >

<prefacioDelExamen >

<elemento nombreElemento="Realizacion "><![CDATA[El test se realizara en la hoja

de respuesta. Es \textbf{importante} que no olvideis rellenar vuestros datos

personales y el codigo clave de vuestro enunciado. Se pueden utilizar hojas

aparte en sucio.]]>

</elemento >

<elemento nombreElemento="Duracion"> La duracion total del test sera de \textbf

{30 minutos }.

</elemento >

<elemento nombreElemento="Puntuacion ">El test se valora sobre \textbf {10 puntos

}. Las preguntas tipo test solo pueden tener una unica respuesta. Cada

pregunta respondida correctamente vale 2 punto , e incorrectamente

respondida resta 2/3 puntos. Si en una pregunta se selecciona mas de una

respuesta , la pregunta se puntuara con 0 puntos. Las preguntas no

contestadas suman 0 puntos en cualquier caso.

</elemento >

<elemento nombreElemento="Calificaciones">Las calificaciones se publicaran en

moodle como muy tarde el dıa \textbf {11~de~enero de ~2013}

</elemento >

<elemento nombreElemento="Revision">Las revisiones seran el dıa \textbf {14~de~

enero de ~2013}.

</elemento >

</prefacioDelExamen >

</textoCaratulaExamen >

</cabecera >

Listing 7.2: Ejemplo xml del elemento cabecera

Page 78: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

62 7.1. DISENO DEL XML

7.1.3. Elemento ejercicios

El contenido de un examen estara compuesto por un listado de ejercicios que apa-receran agrupados bajo el elemento ejercicios de tipo ejerciciosType. El componenteejercicios tendra un unico atributo numerico que informara del numero de ejerciciosdefinidos en el examen:

Figura 7.31: Definicion XSD del elemento ejercicios de un examen

Por cada ejercicio se define un elemento ejercicio que presenta toda la informacionasociada a una prueba del examen:

1. ejercicio: Cada ejercicio del examen tendra una serie de atributos propios here-dados del tipo ejercicioType y tres sub-elementos (enunciado, preguntas y meta-datos):

Figura 7.32: Elemento XSD ejercicio en los ejercicios de un examen

• ejercicioType: Se trata de un tipo complejo con informacion relacionadacon el ejercicio del examen. Cada elemento de tipo ejercicioType tendra tresatributos asociados, que opcionalmente pueden aparecer informados:

Page 79: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 63

Figura 7.33: Tipo XSD ejercicioType en los ejercicios de un examen

• peso: Este atributo representa el peso relativo de un ejercicio en elexamen. El peso de un ejercicio es de tipo pesoEjercicioType y su valorpodra ser un numero entero (0 a 99) o una fraccion:

Figura 7.34: Tipo XSD pesoEjercicioType en los ejercicios de un examen

• numColumnas: Este atributo representa el numero de columnas enque puede presentarse un ejercicio. Si su valor es mayor que uno, elcontenido del ejercicio aparecera formateado en tantas columnas comoindica el valor de este atributo. Solo podra tomar valores enteros.

• etiqueta: La etiqueta de un ejercicio identifica de forma unıvoca alejercicio en el examen. El valor informado en esta propiedad permi-tira ordenar el ejercicio de forma explıcita en el examen (en el atributo((ordenEjercicios)) del elemento raız ((examen))). Al mismo tiempo, sepodra referenciar el ejercicio en el texto de otros ejercicios o preguntasdel examen mediante la expresion \emph{valorEtiqueta}, donde valo-rEtiqueta sera el codigo identificativo de un ejercicio (correspondienteal texto de su atributo etiqueta).

• metadatos: Este elemento permite asociar metainformacion a un ejerciciode un examen que puede ser explotada en un futuro. El conjunto de me-tadatos asociados a un ejercicio se formara por al menos un sub-elementometadato de tipo metadatoType que tendra un atributo que defina el codigo(dentro del conjunto [materia / dificultad] del tipo enumerado codigoMeta-datoType) y un valor en formato string:

Page 80: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

64 7.1. DISENO DEL XML

Figura 7.35: Elemento XSD metadatos en los ejercicios de un examen

• enunciado: El enunciado de un ejercicio estara formado por un texto con lainformacion descriptiva sobre el problema planteado. El elemento enunciadoes de tipo string.

• preguntas: Este elemento contiene el listado de preguntas (de tipo pregun-tasType) asociadas al ejercicio. El componente preguntas tendra un unicoatributo numerico que informara del numero de preguntas definidos en elejercicio:

Figura 7.36: Definicion XSD del elemento preguntas de un examen

• pregunta: Cada una de las preguntas del ejercicio seran definidas comoelementos de tipo preguntaType y contendra dos sub-elementos: textode la pregunta y listado de respuestas:

Page 81: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 65

Figura 7.37: Definicion XSD del elemento pregunta de un examen

• preguntaType: Se trata de un tipo complejo con informacion re-lacionada con una pregunta del ejercicio. Cada elemento de tipopreguntaType tendra dos atributos asociados, que opcionalmentepueden aparecer informados:

Figura 7.38: Tipo XSD preguntaType en los ejercicios de un examen

• peso: Este atributo representa el peso relativo de una preguntadentro de un ejercicio del examen. El peso de una pregunta es detipo pesoPreguntaType y su valor podra ser un numero entero (1a 9) o una fraccion:

Figura 7.39: Tipo XSD pesoPreguntaType en los ejercicios de un examen

• codigo: El codigo de una pregunta la identifica de forma unıvocadentro del examen.

• texto: El texto de una pregunta contendra una informacion descrip-tiva sobre la pregunta del problema planteado. El elemento texto es

Page 82: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

66 7.1. DISENO DEL XML

de tipo string.

• respuestas: Una pregunta tendra asociado un listado de respuestas,donde solo exista una respuesta correcta o donde se encuentre masde una respuesta valida. En funcion del numero de respuestas ciertasse definen los sub-elementos respuestasUnica y respuestasMultiple,ambos de tipo respuestasType.

• respuestasType: Las respuestas de una pregunta podran mos-trarse en una o dos columnas, por ello se define este tipo de dato,comun a los diferentes listados de respuestas que presenta el atri-buto numColumnas de tipo numColumnasType, que podra tomarun valor entero entre 1 y 2:

Figura 7.40: Tipo XSD respuestasType en los ejercicios de un examen

• respuestasUnica: Este elemento de tipo respuestasSimpleTypeagrupa un listado de al menos una respuesta correcta. Contienecuatros atributos con informacion general del conjunto de res-puestas contenidas:

Figura 7.41: Elemento XSD respuestasUnica en los ejercicios de un examen

Page 83: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 67

• numSoluciones: Solo habra una respuesta correcta en el con-junto de respuestas de la pregunta, por ello este atributo solopodra tomar valor ((unica)). El numero de soluciones de este con-junto de respuestas es del tipo enumerado solucionUnicaType.

• pesoRespuestaCorrecta: El peso de la unica respuesta co-rrecta se define en este atributo del listado de respuestas, pu-diendo tomar un valor entero entre 1 y 9 o estar representadopor una fraccion.

• pesoRespuestaIncorrecta: El peso de las respuestas inco-rrectas se define en este atributo del listado de respuestas, pu-diendo tomar un valor entero entre 1 y 9 o estar representadopor una fraccion.

• numColumnas: Este atributo viene heredado por el tipo res-puestasType e indica el numero de columnas en las que se mos-traran las respuestas de la pregunta.

El elemento respuestasUnica contendra al menos un sub-elementorespuesta:

• respuesta: Este elemento de tipo respuestaType representa unarespuesta del conjunto de respuestas de la pregunta. Tiene unatributo que indica la certeza de la afirmacion (pudiendo tomarvalor [true / false] definido en un tipo enumerado) y un textoasociado:

Figura 7.42: Tipo XSD respuestaType en los ejercicios de un examen

• respuestasMultiple: Este elemento de tipo respuestasMultipleTy-pe agrupa un listado donde no tiene por que existir una unicarespuesta correcta. Contiene cuatros atributos con informaciongeneral del conjunto de respuestas contenidas:

Page 84: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

68 7.1. DISENO DEL XML

Figura 7.43: Elemento XSD respuestasMultiple en los ejercicios de un examen

• numSoluciones: En el listado de respuestas multiple, cabe laposibilidad de que en una pregunta no haya ninguna respuestacorrecta o que por el contrario, haya mas de una respuestacierta, por ello este atributo podra tomar valor ((multiple0)) o((multiple1)) respectivamente (siendo este ultimo, el valor pordefecto). El numero de soluciones de este conjunto de respuestases del tipo enumerado solucionMultipleType.

• pesoRespuestaCorrecta: El peso de cada respuesta correctase define en este atributo del listado de respuestas, pudiendotomar un valor entero entre 1 y 9 o estar representado por unafraccion.

• pesoRespuestaIncorrecta: El peso de las respuestas inco-rrectas se define en este atributo del listado de respuestas, pu-diendo tomar un valor entero entre 1 y 9 o estar representadopor una fraccion.

• numColumnas: Este atributo viene heredado por el tipo res-puestasType e indica el numero de columnas en las que se mos-traran las respuestas de la pregunta.

El elemento respuestasMultiple contendra al menos un sub-elementorespuesta:

• respuesta: Este elemento de tipo respuestaType representa una

Page 85: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 69

respuesta del conjunto de respuestas de la pregunta. Tiene unatributo que indica la certeza de la afirmacion (pudiendo tomarvalor [true / false] definido en un tipo enumerado) y un textoasociado (vease figura 7.42).

7.1.3.1. Ejemplo xml de los ejercicios del examen

La definicion de los ejercicios de un examen en el documento xml presentara lasiguiente estructura de etiquetas:

<ejercicios >

<ejercicio etiqueta="ej1">

<enunciado ><![CDATA[

Dada las siguientes definiciones de clase:

\begin{lstlisting} [language=Java , basicstyle =\small , linewidth =\textwidth ,

showstringspaces=true]

public class Fecha {

private int day ,month ,year;

public Fecha (int dia , int mes , int anio){

day=dia;

month=mes;

year=anio;

}

public void setDay(int dia){

day = dia;

}

public boolean equals(Object o){

Fecha f = (Fecha)o;

return day==f.day && month==f.month && year==f.year ;

}

}

\end{lstlisting}

]]>

</enunciado >

<preguntas >

<pregunta peso="2" codigo="100">

<texto>

Indicar cual es la salida por consola del siguiente codigo.

\begin{lstlisting} [language=Java , basicstyle =\small , linewidth =\textwidth ,

showstringspaces=true]

public class Prueba {

public static void main (String args []){// main

Fecha fecha1 = new Fecha (7 ,11 ,2012);

Fecha fecha2 = new Fecha (7 ,11 ,2012);

Fecha fecha3 = fecha2;

fecha3.setDay (10);

System.out.print(fecha1.equals(fecha2) + " ");

System.out.print(fecha1.equals(fecha3) + " ");

System.out.print(( fecha1 == fecha2) + " ");

System.out.print(( fecha2 == fecha3) );

}// main

} // class

\end{lstlisting}

\underline {\ textbf{Solo una respuesta es {\bf correcta }}}.

</texto>

<respuestasUnica numColumnas="1" numSoluciones="unica" pesoRespCorrecta="2"

pesoRespIncorrecta="2/3">

<respuesta correcta="false">

<texto> El codigo no compila porque se intenta acceder (dentro en el

metodo equals de la Fecha) \\

a atributos de tipo private

</texto >

</respuesta >

Page 86: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

70 7.2. DISENO ORIENTADO A OBJETOS

<respuesta correcta="true">

<texto><![CDATA[\begin{lstlisting} [language=Java , basicstyle =\small ,

linewidth =\textwidth , showstringspaces=true]

public class Prueba {

public static void main (String args[]){// main

Fecha fecha1 = new Fecha (7 ,11 ,2012);

Fecha fecha2 = new Fecha (7 ,11 ,2012);

Fecha fecha3 = fecha2;

fecha3.setDay (10);

System.out.print(fecha1.equals(fecha2) + " ");

System.out.print(fecha1.equals(fecha3) + " ");

System.out.print(( fecha1 == fecha2) + " ");

System.out.print(( fecha2 == fecha3) );

}// main

} // class

\end{lstlisting}

]]>

</texto >

</respuesta >

<respuesta correcta="false">

<texto>true false false true

</texto >

</respuesta >

<respuesta correcta="false">

<texto>false false false false

</texto >

</respuesta >

</respuestasUnica >

</pregunta >

</preguntas >

<metadatos >

<metadato codigo="materia">Programacion orientada a objetos

</metadato >

</metadatos >

</ejercicio >

</ejercicios >

Listing 7.3: Ejemplo xml del elemento ejercicios

7.2. Diseno orientado a objetos

El diseno orientado a objetos modela un sistema como un grupo de objetos que in-teractuan entre sı, representando un dominio en terminos de conceptos que se clasificande acuerdo a su dependencia funcional.En este apartado se presentara un conjunto de modelos utilizando la notacion UnifiedMmodeling Language (UML) que tienen como objetivo el modelado del sistema y desu arquitectura para dar respuesta a los requisitos identificados.

7.2.1. Arquitectura

La arquitectura del software define de manera mas abstracta los componentes, susinterfaces y la comunicacion entre ellos. En este apartado se presentan los disenosrealizados a alto nivel de las diferentes estructuras de software que satisfacen la fun-cionalidad y requerimientos de sistema.

Page 87: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 71

7.2.1.1. Diagrama de actividades

El diagrama de actividades permite describir como un sistema implementa su fun-cionalidad, modelando el comportamiento dinamico de un procedimiento, transacciono caso de uso haciendo enfasis en el proceso que se lleva a cabo. Las acciones y flujosidentificados en la generacion de diferentes enunciados de un examen se presentan enel siguiente diagrama de actividades:

Figura 7.44: Diagrama de actividades

1. Leer XML: Esta actividad llevara a cabo la lectura del fichero XML con la infor-macion del examen, procesara su contenido y lo representara en una estructurade objetos.

• En caso de que la estructura del XML no cumpla con lo definido en el XSD,el sistema devolvera un error y el proceso de generacion de enunciados delexamen finalizara.

Page 88: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

72 7.2. DISENO ORIENTADO A OBJETOS

• Si la lectura y procesamiento del XML es correcta, se continuara con elproceso realizando la verificacion de su contenido.

2. Validar contenido XML: Una vez procesado el XML de entrada se tendra quevalidar que la informacion es correcta. En esta actividad se llevaran a cabo verifi-caciones que no pueden realizarse en la definicion de un XSD, tales como que noexisten ejercicios con codigos repetidos, que al menos hay una respuesta correctaen cada una de las preguntas, etc.

• En caso de que no se cumplan todas las verificaciones realizadas, el sistemadevolvera un error y el proceso de generacion de enunciados del examenfinalizara.

• Si la informacion contenida en el examen es correcta, se continuara con elproceso realizando la transformacion de su contenido.

3. Transformar contenido XML: Despues de validar el contenido XML del exa-men, este se traducira a una estructura de datos apropiada para el posteriorproceso de generacion de combinaciones de los diferentes enunciados.

4. Barajar Contenido: De acuerdo con el valor de los elementos de configuraciondel examen, se generaran tantos enunciados como se haya indicado originalmenteen el XML inicial.

5. Generar fichero latex: El conjunto de enunciados del examen se transfor-mara en una estructura de informacion que represente el contenido de un ficherolatex, que sera almacenado en un fichero con extension .tex.

6. Generar fichero de claves: Se generara un fichero de claves de correccion conun formato especıfico que sera almacenado en un fichero .key.

7. Generar fichero PDF: Siempre y cuando se hayan definido los ficheros de estilonecesarios para la maquetacion del examen, el sistema generara un fichero conformato PDF a partir del fichero .tex.

7.2.1.2. Diagrama de paquetes

En este apartado se define el diagrama de paquetes, mostrando la division del sistemaen agrupaciones logicas y las dependencias entre las mismas.

Page 89: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 73

Figura 7.45: Diagrama de paquetes

1. servicios: El paquete de servicios agrupa aquellos componentes necesarios paracomenzar y coordinar el proceso de generacion de enunciados del examen.

• fachada: En la fachada del servicio se encontrara la entrada al proceso degeneracion de examenes, y a partir de la misma se hara uso del servicio ydel resto de paquetes del sistema.

2. entrada salida: En este paquete se encontraran los elementos responsables deprocesar la entrada\salida a\desde el sistema.

3. modelo: El modelo del sistema contendra diferentes estructuras de datos defini-das para representar la informacion asociada a un examen en los distintos pasosdel proceso.

• jaxb.modeloexamen: Bajo este paquete se encontrara la representaciondel examen asociada al XML de entrada. Los elementos contenidos en estepaquete tendran una correspondencia directa con la tranformacion de datosdefinida por JAXB segun la tabla 5.2 del apartado 4.2.2.4.

• elementosexamen: Este paquete agrupara clases de utilidades para la va-lidacion funcional del contenido del examen y un conjunto de elementosadaptados a una nueva estructura de informacion que proporcione mayorfuncionalidad e informacion para ser procesada. La informacion asociada aun examen se dividira en los siguientes sub-paquetes:

Page 90: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

74 7.2. DISENO ORIENTADO A OBJETOS

• cabecera: En este paquete se agruparan aquellos elementos que formanparte y componen la cabecera de un examen. La cabecera del examensera comun a todos los enunciados generados.

• contenido: En este paquete se definen los elementos necesarios para re-presentar el contenido de un examen, entendiendo como contenido todoaquello que tiene una implicacion directa en el proceso de generacion dedistintos enunciados del mismo.

• elementosexamenbarajado: En este paquete se encontrara la estructurafinal de un examen combinado.

• examenfichero: En este paquete se definira la factorıa abstracta que permi-te y representa la generacion de diferentes formatos de salida de un fichero.

• elementosexamenlatex: Este paquete agrupara los posibles elementos ycomposiciones necesarias para representar estructuras de informacion de do-cumentos en formato Latex.

7.2.2. Modelo estatico

Los diagramas de clases muestran las diferentes clases que componen un sistema ycomo se relacionan unas con otras. Se trata de diagramas ((estaticos)) donde se muestranlas clases (junto con sus metodos y atributos) ası como las relaciones estaticas entreellas (asociativas, de herencia, de uso y de contenido). En este apartado se presentaranlos diagramas de clases de los diferentes paquetes identificados en el sistema.

7.2.2.1. Paquete entrada\salida

El siguiente diagrama de clases contiene las clases responsables de procesar la infor-macion de entrada y de generar los ficheros de salida en un formato especıfico.

Figura 7.46: Diagrama de clases EntradaSalida

• LectorXML: Esta clase contiene los metodos necesarios para procesar el examende entrada en formato XML. Las principales responsabilidades seran la lecturadel fichero XML y la creacion de un contexto JAXB que permita generar un arbol

Page 91: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 75

de contenido del XML en una estructura de informacion definida (devolviendoun objeto de la clase Examen).

• GeneradorPDF: Esta clase se encarga de gestionar los ficheros de estilos ne-cesarios y de invocar al proceso ((pdflatex)) con el fin de obtener y almacenar eldocumento PDF con los distintos enunciados del examen.

7.2.2.2. Paquete servicios

Los siguientes diagramas de clases contienen las clases que se encargan de comenzary coordinar el proceso de generacion de examenes.

Figura 7.47: Diagrama de clases Fachada del Servicio

Figura 7.48: Diagrama de clases Servicio

Page 92: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

76 7.2. DISENO ORIENTADO A OBJETOS

• Barajador: Esta interfaz publica el metodo de entrada al proceso de generacionde examenes.

• BarajadorImpl: Esta clase implementa el metodo ((generaCombinacionesExamen)),que coordina el proceso de generacion de examenes, cuyos distintos pasos se de-legan en otras clases del modelo, ası como gestiona las posibles excepciones quepuedan ocurrir.

• BarajadorExamen: Se trata de una clase de utilidades que incluye la logica dela combinatoria de los elementos de un examen. Los diferentes enunciados gene-rados por el metodo de esta clase seran unicos, puesto que se comprobara que nose repiten las mismas secuencias de elementos.Para obtener las diferentes secuencias de elementos de un mismo examen se rea-lizaran los siguientes pasos:

1. En caso de que solo se quiera generar un enunciado (barajaEjercicios, bara-jaPreguntas y barajaRespuestas tienen valor falso):

a) Si el atributo numEnunciados del examen es 1 o vacıo, se generara unenunciado unico y se completaran los tıtulos de cada uno de los elemen-tos del examen (ejercicios, preguntas y respuestas) segun la posicion queocupan.

b) Si el atributo numEnunciados del examen es mayor a 1, se lanzara unaexcepcion indicando que no es posible obtener el enunciado.

2. En caso de que se quieran generar varios enunciados del mismo examen:

a) Se asignara un codigo a cada elemento del examen.

b) Se construiran tantas permutaciones de los elementos del examen comoindique el atributo numEnunciados del examen, utilizando los codigosasignados a los diferentes elementos, y se comprobara que no se guardaninguna permutacion repetida:

1) Si barajaEjercicios es verdadero, se generaran diferentes permutacio-nes de los codigos de los ejercicios para cada secuencia de ejerciciosdel examen.

2) Si barajaPreguntas es verdadero, se generaran diferentes permutacio-nes de los codigos de las preguntas para cada secuencia de preguntasde un ejercicio.

3) Si barajaRespuestas es verdadero, se generaran diferentes permu-taciones de los codigos de las respuestas para cada secuencia derespuestas de una pregunta.

c) Se crearan tantos enunciados como permutaciones de codigos se hayangenerado. Por cada enunciado se recorreran y copiaran sus elementos(ejercicios, preguntas y respuestas) siguiendo el orden que presentan enla permutacion generada.

d) Por ultimo se completaran los tıtulos de cada uno de los elementos delexamen (ejercicios, preguntas y respuestas) segun la posicion final queocupan dentro del enunciado.

Page 93: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 77

7.2.2.3. Paquete modelo.elementosexamen

Los siguientes diagramas de clases contienen las clases que representan la informacionde un examen y las utilidades necesarias para su transformacion y validacion.

Figura 7.49: Diagrama de clases ElementosExamen

• ExamenUtil: Se trata de una clase de utilidades que presenta metodos quepermiten validar funcionalmente el contenido de un examen y transformar la in-formacion en estructuras de clases definidas en los sub-paquetes contenidos en elpaquete ((elementosexamen)).Se transformara y adaptara la informacion de un objeto de la clase Examen (di-rectamente vinculada con la definicion del XSD) a una estructura de informacionque divida el contenido y la cabecera del examen, y le aporte la funcionalidadnecesaria con el fin de facilitar su posterior procesamiento.El contenido de un examen sera valido si se cumplen las siguientes condiciones:

1. El atributo numEnunciados del examen no supera el valor 31. No podrangenerarse mas de 31 enunciados diferentes, puesto que cada enunciado seidentifica por una secuencia de hasta 5 letras (a-e). Las posibles combina-ciones con estos elementos son 2n - 1, donde se descarta la opcion vacıa,quedando por lo tanto (32 - 1).

2. En caso de que se haya seleccionado el nombre de la universidad como partedel tıtulo, este valor debe estar especificado en la informacion asociada a launiversidad.

3. En caso de que se hayan seleccionado las siglas de la universidad como partedel tıtulo, este valor debe estar especificado en la informacion asociada a launiversidad.

4. En caso de que se haya seleccionado el nombre de la facultad como partedel tıtulo, este valor debe estar especificado en la informacion asociada a lafacultad.

5. En caso de que se hayan seleccionado las siglas de la facultad como partedel tıtulo, este valor debe estar especificado en la informacion asociada a lafacultad.

6. En caso de que se haya seleccionado el nombre del departamento como partedel tıtulo, este valor debe estar especificado en la informacion asociada aldepartamento.

Page 94: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

78 7.2. DISENO ORIENTADO A OBJETOS

7. En caso de que se hayan seleccionado las siglas del departamento como partedel tıtulo, este valor debe estar especificado en la informacion asociada aldepartamento.

8. En caso de que se haya seleccionado el nombre de la asignatura como partedel subtıtulo, este valor debe estar especificado en la informacion asociadaa la asignatura.

9. En caso de que se hayan seleccionado las siglas de la asignatura como partedel subtıtulo, este valor debe estar especificado en la informacion asociadaa la asignatura.

10. En caso de que se haya seleccionado el tipo de la asignatura como parte delsubtıtulo, este valor debe estar especificado en la informacion asociada a laasignatura.

11. En caso de que se haya seleccionado la fecha del examen como parte delsubtıtulo, este valor debe estar especificado en la informacion de la cabecera.

12. En caso de que se haya seleccionado el tipo del examen como parte delsubtıtulo, este valor debe estar especificado en la informacion de la cabecera.

13. Debe existir al menos un ejercicio en el examen.

14. El atributo numEjercicios debe coincidir con la longitud del conjunto deejercicios.

15. No puede haber dos ejercicios en el examen con la misma etiqueta.

16. Dentro de un ejercicio al menos debe encontrarse una pregunta.

17. El atributo numPreguntas del ejercicio debe coincidir con la longitud delconjunto de preguntas.

18. No puede haber dos preguntas con el mismo codigo identificativo.

19. En el conjunto de respuestas deben existir al menos dos respuestas.

20. En el conjunto de respuestas de tipo respuestaUnica solo puede haber unaverdadera.

21. En el conjunto de respuestas de tipo respuestaMultiple, si el tipo es multiple1se validara que al menos debe haya una verdadera.

22. Si se ha especificado el ordenEjercicios :

• Se comprobara que tiene un formato correcto (elementos separados porcomas).

• No podra contener codigos de ejercicios repetidos.

• Se verificara que todos los codigos incluidos se corresponden con ejerci-cios que existen en el examen.

Page 95: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 79

Figura 7.50: Diagrama de clases Cabecera de ElementosExamen

Page 96: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

80 7.2. DISENO ORIENTADO A OBJETOS

A continuacion se detallan las clases del diagrama ((Diagrama de clases Cabecera deElementosExamen)):

• CabeceraExamen: Se trata de una clase contenedora de la informacion asociadaa la cabecera del examen.

• InfoUniversidad: Esta clase representa y contiene la informacion asociada auna universidad.

• InfoFacultad: Esta clase representa y contiene la informacion asociada a lafacultad.

• InfoDepartamento: Esta clase representa y contiene la informacion asociada aun departamento.

• InfoAsignatura: Esta clase representa y contiene la informacion asociada a unaasignatura.

• TipoAsignatura: Tipo enumerado con los posibles valores que puede tomar untipo de asignatura.

• InfoTitulo: Clase que representa la aparicion o no de un elemento en el tıtulode un examen.

• InfoDatoTitulo: Tipo enumerado con los nombres de los elementos que puedecontener el tıtulo de un examen.

• InfoSubtitulo: Clase que representa la aparicion o no de un elemento en elsubtıtulo de un examen.

• InfoDatoSubtitulo: Tipo enumerado con los nombres de los elementos que pue-de contener el subtıtulo de un examen.

• TextoCaratula: Clase que contiene el texto de la caratula de un examen enforma de texto libro o en un listado de elementos del prefacio.

• ElementoPrefacio: Esta clase representa un elemento del prefacio en la caratulade un examen.

Page 97: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 81

Figura 7.51: Diagrama de clases Contenido de ElementosExamen

Page 98: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

82 7.2. DISENO ORIENTADO A OBJETOS

A continuacion se detallan las clases del diagrama ((Diagrama de clases Contenidode ElementosExamen)):

• ContenidoExamen: Se trata de una clase contenedora de la informacion aso-ciada al contenido del examen.

• TipoNumeracion: Tipo enumerado con los distintos modos de numeracion deelementos. Este tipo enumerado sera utilizado en la generacion del tıtulo de cadaelemento del examen segun la posicion que ocupan en el enunciado a traves de lallamada al metodo getTextoPosicion. Es necesario distinguir el genero del tipo denumeracion puesto que los ejercicios tendran numeraciones en masculino, mien-tras que para las preguntas y respuestas se obtendran numeracion en femenino.Cada elemento del tipo enumerado tendra asociado dos metodos que devolveranel correspondiente literal dado un numero entero que representa una posicion(podra informarse el genero (MASCULINO o FEMENINO), tomando el valorMASCULINO por defecto, en caso de no indicarse) :

• DECIMAL: Representacion decimal de un numero. El metodo getTextoPo-sicion devolvera un numero entero.

• CARACTERES MINUSCULAS: Representacion en caracteres minusculasde un numero. El metodo getTextoPosicion devolvera la letra asociada adicha posicion en el abecedario (comenzando por la ’a’). En caso de informaruna posicion superior al numero 27 este metodo devolvera una excepcion.

• CARACTERES MAYUSCULAS: Representacion en caracteres mayusculasde un numero. El metodo getTextoPosicion devolvera la letra asociada adicha posicion en el abecedario (comenzando por la ’A’). En caso de informaruna posicion superior al numero 27 este metodo devolvera una excepcion.

• ORDINAL LITERAL: Representacion en texto del valor ordinal de un nume-ro. El metodo getTextoPosicion devolvera el nombre ordinal del numerodado, permitiendo numero de un maximo de 3 dıgitos.

• ORDINAL NUMERICO: Representacion del valor ordinal de un numero,anadiendo un sufijo a la forma entera de dicho numero.

• TipoGenero: Tipo enumerado denifido dentro de TipoNumeracion con dos va-lores que representan el genero (FEMENINO o MASCULINO).

• EjercicioExamen: Esta clase contiene la informacion asociada a un ejercicio delexamen.

• MetadatoExamen: Esta clase representa metainformacion asociada a un ejer-cicio del examen.

• PreguntaExamen: Esta clase contiene la informacion asociada a una preguntade un ejercicio.

• RespuestaExamen: Esta clase contiene la informacion asociada a una respuestade una pregunta.

Page 99: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 83

7.2.2.4. Paquete modelo.elementosexamenbarajado

El siguiente diagrama contienen las clases que representan la informacion de unexamen con diferentes enunciados asociados.

Figura 7.52: Diagrama de clases ElementosExamenBarajado

• ExamenBarajado: Clase que representa un examen con su contenido barajado,presentando una unica cabecera comun a todos los enunciados y el conjunto deenunciados asociados.

• EnunciadoExamen: Clase que representa un enunciado del examen. Tendra uncodigo que identifique univocamente al enunciado generado y un listado de ejer-cicios.

7.2.2.5. Paquete modelo.examenfichero

El siguiente digrama de clases contiene las clases que modelan una factorıa abstractapara la generacion del texto asociado a los enunciados de un examen en diferentesformatos.

Page 100: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

84 7.2. DISENO ORIENTADO A OBJETOS

Figura 7.53: Diagrama de clases ExamenFichero

Page 101: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 85

• ExamenFicheroFactory: Esta clase representa una factorıa abstracta de obje-tos, encargada de instanciar y devolver una factorıa concreta (que implemente elinterfaz FicheroFactory), en funcion del tipo TipoFicheroExamenEnum indicado:

1. Si el valor del tipo de fichero es LATEX: se creara una instancia de la factorıaExamenFicheroLatexFactory

2. Si el valor del tipo de fichero es CLAVES: se creara una instancia de lafactorıa ExamenFicheroLatexClaves

• TipoFicheroExamenEnum: Tipo enumerado que representa los posibles for-matos del contenido que se desea generar (LATEX o CLAVES).

• FicheroFactory: Interfaz que publica el metodo generarContenidoFichero, obte-niendo como argumento un ExamenBarajado que sera procesado y transformadoen un listado de ficheros de tipo ExamenFichero.

• ExamenFichero: Interfaz que publica dos metodos:

• getContenido: que devolvera un array de bytes con el contenido del fichero.

• getNombre: que devolvera el nombre del fichero con la extension correspon-diente.

• ExamenFicheroLatexFactory: Factorıa de un tipo de fichero concreto. Estafactorıa se encargara de generar un array de bytes con el contenido del examen enformato latex, asignar la extension correspondiente al nombre del examen (.tex)y crear uno o mas objetos de la clase ExamenFicheroLatex con la informacionobtenida.

• ConstantesLatex: Clase de constantes utilizadas durante la generacion del con-tenido del documento en formato latex.

• ExamenFicheroLatex: Clase que implementa los metodos del interfaz Examen-Fichero y contiene informacion de un examen en formato latex.

• ExamenFicheroClavesFactory: Factorıa de un tipo de fichero concreto. Estafactorıa se encargara de generar un array de bytes con el contenido del examen enformato latex, asignar la extension correspondiente al nombre del examen (.key)y crear uno o mas objetos de la clase ExamenFicheroClaves con la informacionobtenida.

• ExamenFicheroClaves: Clase que implementa los metodos del interfaz Exa-menFichero y contiene informacion del fichero de claves de un examen.

7.2.2.6. Paquete modelo.elementosexamenlatex

El siguiente diagrama de clases contiene las clases que implementan el patron Com-posite para representar la estructura de un examen en un documento latex y poderobtener el texto asociado al examen en este formato.

Page 102: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

86 7.2. DISENO ORIENTADO A OBJETOS

Figura 7.54: Diagrama de clases ElementosExamenLatex

Page 103: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 87

• Elemento: Interfaz que publica el metodo toText() que devolvera un string conel contenido de un elemento.

• ElementoDocLatex: Clase abstracta que sera la clase padre de la jerarquıa deelementos en un documento latex. Implementa la interfaz Elemento.

• ContenedorElementoDocLatex: Se trata de un contenedor de elementos Ele-mentoDocLatex, que permite agrupar elementos de distinto tipo u otros conte-nedores de elementos. Su metodo toText() llamara de forma recursiva al mismometodo de todos sus elementos contenidos.

• ElementoSimpleLatex: Esta clase representa un elemento simple de texto.

• ElementoCompuestoLatex: Es una clase abstracta que representa un elemen-to compuesto (environment o command) en latex que tendra un listado de argu-mentos, una lista de etiquetas asociadas, un nombre y un conjunto de elementoscontenidos (de tipo ContenedorElementoDocLatex ).

• EtiquetaTituloBean: Representa la relacion del tıtulo asociado a un elementoetiquetado. Cada etiqueta del listado de etiquetas sera utilizada para reemplazarel codigo por el tıtulo del elemento (por ejemplo, si un ejercicio del examen tienela etiqueta ej1 y esta se encuentra referenciada en cualquier texto del examen con\emph{ej1}, este texto sera reemplazado por el tıtulo asignado al elemento en elenunciado (segun la posicion que ocupa) por \emph{Ejercicio 3}).

• ElementoSeccionLatex: Esta clase representa una seccion (environment) enun documento latex. Su metodo toText() se encargara de comenzar la definiciondel elemento con \begin{nombre}, llamar al metodo toText() de cada uno de susargumentos, invocar al metodo toText() del contenedor de elementos incluido,realizar el reemplazo de etiquetas de todo el texto generado hasta el momento ypor ultimo cerrar la clausula begin con \end{nombre}.

• ElementoComandoLatex: Esta clase representa un comando en un documentolatex. Su metodo toText() se encargara de comenzar la definicion del elemento con\{nombre}, llamar al metodo toText() de cada uno de sus argumentos e invocaral metodo toText() del contenedor de elementos incluido.

• ElementoArgumentoLatex: Esta clase representa un argumento de un elemen-to compuesto, que a su vez puede contener un elemento ElementoDocLatex (enmacros). Segun el tipo de argumento, el metodo toText() devolvera una salida:

• Argumento OBLIGATORIO: Un argumento obligatorio en latex se repre-senta entre corchetes, por ello el metodo toText() en este tipo de argumen-tos, abrira un [, invocara al metodo toText() del elemento contenido en elargumento y por ultimo cerrara la declaracion con ].

• Argumento OPCIONAL: Un argumento opcional en latex se representa en-tre llaves, por ello el metodo toText() en este tipo de argumentos, abrira una{, invocara al metodo toText() del elemento contenido en el argumento ypor ultimo cerrara la declaracion con }.

Page 104: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

88 7.2. DISENO ORIENTADO A OBJETOS

7.2.2.7. Paquete modelo.jaxb.modeloexamen

El siguiente diagrama de clases contiene las clases que representan fielmente el exa-men definido en el fichero XSD de entrada. Se trata de clases autogeneradas por laherramienta xjc de JAXB segun la correspondencia entre tipos de clases y elementosde un fichero XSD.La clase ObjectFactory sera la responsable de generar todas las instancias de cada unade las clases a las que se encuentra asociada, donde Examen representa la clase prin-cipal (correspondiente al elemento raız del XSD).

Page 105: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 89

Figura 7.55: Diagrama de clases Modelo JAXB

Page 106: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

90 7.2. DISENO ORIENTADO A OBJETOS

7.2.3. Modelo dinamico

El modelo dinamico esta constituido por los aspectos de un sistema relacionadoscon el tiempo y con los cambios en los objetos y sus relaciones a lo largo del tiempo.Se describen por lo tanto, las secuencias de operaciones que ocurren como respuesta aestımulos externos, sin tener en cuenta lo que hacen las operaciones, sobre que operano como se implementan.En este apartado se presentan los diagramas de secuencia de las diferentes actividadesidentificadas en el diagrama 7.2.1.1 (Diagrama de actividades).

7.2.3.1. Diagrama de secuencia - Leer XML

El primer paso del sistema sera la lectura y procesamiento del fichero XML de entra-da que contiene la definicion del examen que se desea barajar. Para ello, se accedera alcontenido del XML y se realizara la deserializacion en una estructura de clases Java (apartir de la clase Examen) (ver figura 7.56).

7.2.3.2. Diagrama de secuencia - Validar contenido XML

Una vez se ha procesado el contenido del documento XML, se realizaran una seriede validaciones funcionales (vease el apartado 7.2.2.3) que verifiquen si la informaciones correcta, con el fin de continuar o no con el proceso de generacion de diferentesenunciados del examen (ver figura 7.57).

7.2.3.3. Diagrama de secuencia - Transformar contenido XML

La informacion relacionada con el examen se almacenara en una estructura de in-formacion independiente de la definicion del XSD, que le aportara la funcionalidad ylos atributos necesarios para acometer el resto de pasos del proceso de generacion depermutaciones del examen.Se extraera, por un lado, la informacion relacionada con la cabecera del examen (comuna todos los enunciados), y por otro lado, la informacion necesaria para la generacionde enunciados.Se creara un objeto de tipo CabeceraExamen que contendra la configuracion del tıtu-lo y subtıtulo del examen y un conjunto de atributos que contienen la informacion amostrar (ver figuras 7.58, 7.59, 7.60 y 7.61).El contenido del examen sera almacenado en un objeto de tipo ContenidoExamen don-de se guardaran las propiedades relacionadas con la generacion de diferentes enunciadosy el listado de ejercicios del examen. En este momento, solo en el caso de que el ordende los ejercicios se encuentre especificado, se realizara la copia de los mismos en el ordenestablecido en el atributo ordenEjercicios del XML y esta ordenacion se conservara enel resto del proceso (ver figuras 7.62 y 7.63).

Page 107: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 91

Figura 7.56: Diagrama de secuencia-Leer XML

Page 108: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

92 7.2. DISENO ORIENTADO A OBJETOS

Figura 7.57: Diagrama de secuencia-Validar contenido XML

Page 109: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 93

Figura 7.58: Diagrama de secuencia-Transformar contenido XML-Cabecera

Page 110: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

94 7.2. DISENO ORIENTADO A OBJETOS

Figura 7.59: Diagrama de secuencia-Transformar contenido XML-Cabecera-Titulo

Figura 7.60: Diagrama de secuencia-Transformar contenido XML-Cabecera-SubTitulo

Page 111: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 95

Figura 7.61: Diagrama de secuencia-Transformar contenido XML-Cabecera-Texto

Page 112: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

96 7.2. DISENO ORIENTADO A OBJETOS

Figura 7.62: Diagrama de secuencia-Transformar contenido XML-Contenido

Page 113: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 97

Figura 7.63: Diagrama de secuencia-Transformar contenido XML-Contenido-Ejercicios

Page 114: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

98 7.2. DISENO ORIENTADO A OBJETOS

7.2.3.4. Diagrama de secuencia - Barajar contenido

Una vez se ha transformado y dividido la informacion relacionada con un examen,se combinaran los elementos de su contenido en funcion del numero de enunciadosdeseado y los elementos cuyo orden se desea poder alterar (ejercicios, preguntas y/orespuestas):

1. Se creara un objeto de tipo ExamenBarajado donde se almacenara el listado delos distintos enunciados generados durante este proceso.

2. La cabecera del examen se copiara en el nuevo objeto creado, siendo unica paratodos los enunciados generados.

3. Se asignara un codigo a cada elemento que lo identifique unıvocamente.

4. Se realizaran tantas combinaciones distintas como numero de enunciados se hayansolicitado, intercambiando el orden de los elementos (segun los valores de bara-jaEjercicios, barajaPreguntas y barajaRespuestas). Cada combinacion tendra unasecuencia de codigos de elementos que permita crear un nuevo enunciado reco-rriendo los elementos segun la posicion que ocupan en dicha secuencia de codigos.

5. Cada enunciado generado tendra una clave unica (compuesta por una combina-cion de los 5 primeros caracteres del abecedario).

6. El contenido de cada enunciado se generara a partir de la copia de los ejercicios,preguntas y respuestas indicado en una de las permutaciones del punto 4.

7. Por ultimo, el enunciado sera incluido en el listado de enunciados del examen.

A continuacion se presentan dos diagramas de secuencia:

• En el primero se puede ver la secuencia de pasos que deben llevarse a cabo en lageneracion de un objeto ExamenBarajado (ver figura 7.64).

• En el segundo, se detalla la secuencia de pasos seguidos en el metodo copiaEjer-cicios (en color rojo en el diagrama de secuencia de la figura 7.64) (ver figura7.65).

Page 115: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 99

Figura 7.64: Diagrama de secuencia-Barajar contenido

Page 116: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

100 7.2. DISENO ORIENTADO A OBJETOS

Figura 7.65: Diagrama de secuencia-Barajar contenido-Copia Ejercicios

Page 117: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 101

Figura 7.66: Diagrama de secuencia-Barajar contenido-Copia Ejercicios

7.2.3.5. Diagrama de secuencia - Generar fichero Latex

Los distintos enunciados generados se guardaran en formato Latex (a partir del cualse creara el pdf final). Para ello se utilizara una fachada abstracta capaz de instanciaruna factorıa de contenido latex (ExamenFicheroLatexFactory).La factorıa de contenido Latex creara una estructura de informacion a partir de unContenedorElementoDocLatex. El contenedor de elementos latex contendra una repre-sentacion de la informacion del examen en secciones y comandos latex, permitiendo lageneracion recursiva del texto en dicho formato (implementando el metodo toText() delinterfaz Elemento). Posteriormente se creara un objeto de la clase ExamenFicheroLa-tex, que inicializara su atributo ((contenido)) con los bytes asociados al texto devueltopor el metodo toText() del contenedor de elementos latex y su atributo ((nombre)) conel nombre original del examen junto con la extension .tex.Con el contenido y nombre del documento, el barajador generara un nuevo fichero fısicoque almacenara en disco.

Page 118: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

102 7.2. DISENO ORIENTADO A OBJETOS

Figura 7.67: Diagrama de secuencia-Generar fichero Latex

7.2.3.6. Diagrama de secuencia - Generar fichero claves

Los distintos enunciados generados se guardaran en un formato de claves que sera usa-do para la correccion automatica de cada uno de ellos. Para ello se utilizara una fa-chada abstracta capaz de instanciar una factorıa de contenido de claves del examen(ExamenFicheroLatexFactory). La factorıa de contenido de claves creara un objeto dela clase ExamenFicheroClaves, que inicializara su atributo ((contenido)) con la secuencia

Page 119: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 7. DESARROLLO 103

de codigos de elementos que faciliten la correccion automatica de cada enunciado y suatributo ((nombre)) con el nombre .key. Con el contenido y nombre del documento, elbarajador generara un nuevo fichero fısico que almacenara en disco.

Figura 7.68: Diagrama de secuencia-Generar fichero claves

Page 120: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

104 7.2. DISENO ORIENTADO A OBJETOS

7.2.3.7. Diagrama de secuencia - Generar fichero PDF

El ultimo paso del sistema sera la generacion del documento pdf (a partir del fichero.tex creado) y la visualizacion del mismo.

Figura 7.69: Diagrama de secuencia-Generar fichero PDF

Page 121: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Conclusiones y lıneas futuras

En este capıtulo se reunen las conclusiones finales obtenidas durante el desarrollode este proyecto fin de carrera, ası como los hitos alcanzados y las lıneas futuras quepueden ampliar o mejorar el trabajo realizado.

8.1. Conclusiones

Al inicio de este proyecto fin de carrera se analizo la herramienta de generacion deexamenes de tipo test utilizada hasta el momento con el fin de identificar sus limita-ciones, relacionadas fundamentalmente con sus funcionalidades y la mantenibilidad desu codigo. Seguidamente, se han especificado los requisitos de la nueva herramientateniendo en cuenta las limitaciones identificadas.El comienzo del trabajo se centro en el estudio de la herramienta en explotacion, loque requirio un gran esfuerzo por la falta de documentacion y el desconocimiento dellenguaje LaTeX utilizado en la representacion del fichero intermedio (.tex), la confi-guracion de estilos y la generacion de las opciones de la cabecera del examen. Por locual, el trabajo inicial consistio en la revision y comprension de los ficheros .tst (ficherode entrada de la herramienta), .tex (ficheros en formato LaTeX) y .sty (ficheros deestilos) con el fin de definir un esquema XSD que representara todos los elementos deun examen que se habıan estado considerando hasta el momento ası como los nuevoselementos que se deseaban incorporar en la nueva herramienta.El resultado de este analisis y los requisitos proporcionados completaron la definicionde tipos y la estructura del esquema XSD. Para la lectura e interpretacion del ficheroXML de entrada al sistema se decidio utilizar el framework JAXB por el conocimientoprevio que ya tenıamos de el y las facilidades que proporciona para el tratamiento delos elementos XML, que son convertidos directamente en objetos de clases previamentegeneradas automaticamente a partir del esquema XSD.Durante la fase de diseno de la nueva herramienta se aplicaron patrones de diseno en lasdistintas fases de generacion del documento en formato LaTeX. Asimismo, se abordo eldiseno del algoritmo de generacion de las distintas versiones del enunciado.Ası que una vez finalizado el diseno y desarrollo de la nueva herramienta de generacionde examenes tipo test, se evaluo el grado de cumplimiento de los requisitos planteadosy las mejoras conseguidas respecto a la herramienta anterior:

• La definicion de un esquema XSD de informacion para la generacion de los datosde entrada al sistema mejora la utilizacion y requiere menor grado de conocimien-to por parte del usuario final, puesto que los elementos estan expresados en un

105

Page 122: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

106 8.2. LINEAS FUTURAS

lenguaje ampliamente conocido como es XML, y al mismo tiempo existen herra-mientas que permiten construir plantillas XML de forma automatica y ayudan acompletar la informacion validando la estructura generada.

• Aumenta la operativa de combinatoria, ya que se permite generar diferentes ver-siones del mismo examen en las que se puede variar el orden de una mayorvariedad de elementos (ejercicios, preguntas y/o respuestas).

• Se permite la division en columnas del contenido de los distintos elementos delexamen, permitiendo minimizar el numero de paginas del documento final.

• Se incorpora la posibilidad de configurar el tipo de numeracion de cada elementodel examen mediante nuevos parametros (que se corresponden con atributos delXSD).

• El contenido de cada elemento del examen puede ser tanto texto plano comotexto en formato latex, al no existir limitaciones ni diferencias en el tratamientodel mismo.

• Se minimiza el numero de pasos en los que tiene que intervenir el usuario, puestoque la definicion de la cabecera del examen se encuentra en el mismo fichero dedeclaracion del examen, y por tanto no hay que editar un segundo fichero, y lallamada a pdflatex se encuentra integrada en la nueva herramienta.

• El desarrollo de la herramienta en un lenguaje multiplataforma elimina la limi-tacion de utilizacion bajo un sistema operativo concreto.

• La nueva herramienta es mucho mas rapida que la anterior herramienta.

• Se mejora la mantenibilidad del codigo al tratarse de un desarrollo siguiendo elparadigma de la orientacion a objetos.

8.2. Lıneas futuras

El trabajo realizado puede servir de base para la generacion de un sistema de cons-truccion de examenes mas complejo, aportando mas funcionalidades y enriqueciendoel proceso de composicion del examen. A continuacion se enumeran algunas de ellas:

• Catalogo de examenes: Durante el proceso de generacion de los diferentes enun-ciados del examen se puede incorporar una nueva funcionalidad que permitapersistir esta informacion en una base de datos con el fin de crear un catalogo delos diferentes examenes creados.

• Tratamiento del resultado del examen: Se puede incorporar un nuevo proceso ala herramienta que permita conocer el numero de aciertos de cada uno de losejercicios del examen a partir del resultado obtenido por el corrector automaticoy ası poder generar diferentes informes del grado de complejidad de la prueba.

• Generacion automatica de examenes: Aprovechando la creacion del catalogo deexamenes, se puede ampliar la definicion del XSD creado durante el desarrollo deeste proyecto fin de carrera e incorporar una nueva etiqueta que indique la nece-sidad de completar el examen con otros ejercicios catalogados previamente. Para

Page 123: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

CAPITULO 8. CONCLUSIONES Y LINEAS FUTURAS 107

ello se podra hacer uso de los metadatos de los ejercicios con el fin de seleccionaraquellos relacionados con la materia y asignatura que se esta evaluando.

• Generacion automatica de examenes con un determinado grado de complejidad:Utilizando la generacion automatica de examenes y el tratamiento del resulta-do del examen, se puede incorporar al catalogo de examenes el porcentaje deaciertos/fallos cosechados por una pregunta/ejercicio cada vez que se ha usadoesa pregunta/ejercicio, para ası dotar al sistema del conocimiento del grado dedificultad de esa pregunta/ejercicio (basado en los resultados obtenidos en otrasevaluaciones). De esta manera, se podrıa solicitar la incorporacion automatica deejercicios/preguntas de un determinado grado de complejidad para completar ladefinicion final del examen.

Page 124: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi
Page 125: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

Bibliografıa

[BB04] Dutoit Allen Bernd Bruegge. Object-Oriented Software Engineering: UsingUML, Patterns, and Java. Prentice Hall, 2 edition, 2004.

[Cat] Lage F. Pessacq R. y Garcıa Martınez R. Cataldi, Z. Ingenierıa de softwareeducativo. Facultad de Ingenierıa. Universidad de Buenos Aires, 1.

[JAV14a] http://es.wikipedia.org/wiki/Java_EE, Enero 2014.

[JAV14b] http://es.wikipedia.org/wiki/Java_SE, Enero 2014.

[JAX14a] http://es.wikipedia.org/wiki/JAXB, Abril 2014.

[JAX14b] https://jaxb.java.net/, Abril 2014.

[LaT13a] http://en.wikibooks.org/wiki/LaTeX, Marzo 2013.

[LaT13b] http://en.wikibooks.org/wiki/LaTeX/Macros, Marzo 2013.

[LaT13c] http://www.unc.edu/depts/econ/egsa/LaTeX.pdf, Marzo 2013.

[Mic02] Sun Microsystems. J2EE Patterns Student Guide. Sun Microsystems, 1edition, 2002.

[Pro14] https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_

de_aplicaciones, Enero 2014.

[RC] Andres Yie Ruby Casallas. Ingenierıa de software: Ciclos de vida y meto-dologıas. Facultad de Ingenierı.

[Ser14] https://es.wikipedia.org/wiki/Serializaci%C3%B3n, Abril 2014.

[SGM13] http://es.wikipedia.org/wiki/SGML, Julio 2013.

[SP01] Roger S. Pressman. Ingenierıa del Software: Un enfoque practico. S.A.MCGRAW-HILL, 3 edition, 2001.

[Tip13] https://es.wikipedia.org/wiki/Definici%C3%B3n_de_tipo_de_

documento, Julio 2013.

[XML13a] http://blog.openalfa.com/introduccion-a-xsd-xml-schema-

definition, Julio 2013.

[XML13b] http://es.wikipedia.org/wiki/XML_Schema, Julio 2013.

[XSD13a] http://www.tic2.org/WebTecnica/Programacion/XSD/

XSDDocEstructura/XSDDocEstructura.htm, Julio 2013.

109

Page 126: PROYECTO FIN DE CARRERA HERRAMIENTA PARA LA …oa.upm.es/43349/1/PFC_SANDRA_LIMA_DIEZ.pdf · terior, determinando qu e tecnolog as pueden ayudar a satisfacer los objetivos identi

[XSD13b] http://www.w3schools.com/schema/, Julio 2013.

110