Equa ion Chap e 1 Sec ion 1
T abajo Fin de G ado
G ado en Ingenie ía de Tecnologías de Telecomunicación
In ensi icación Telemá ica
Sis ema de cali icaciones con ges ión web
Au o : F ancisco José Pé ez Díaz
Tu o : Ra ael Ma ía Es epa Alonso
Depa amen o de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2015
3
T abajo Fin de G ado
G ado en Ingenie ía de Tecnologías de Telecomunicación
In ensi icación Telemá ica
Sis ema de cali icaciones con ges ión web
Au o :
F ancisco José Pé ez Díaz
Tu o :
Ra ael Ma ía Es epa Alonso
P o eso i ula
Depa amen o de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2015
5
T abajo Fin de G ado: Sis ema de cali icaciones con ges ión web
Au o :
F ancisco José Pé ez Díaz
Tu o :
Ra ael Ma ía Es epa Alonso
El ibunal nomb ado pa a juzga el P oyec o a iba indicado, compues o po los siguien es miemb os:
P esiden e:
Vocales:
Sec e a io:
Acue dan o o ga le la cali icación de:
Se illa, 2015
El Sec e a io del T ibunal
7
Sob e el au o
F ancisco José Pé ez Díaz
G ado en Ingenie ía de Tecnologías de Telecomunicación
In ensi icación Telemá ica
Uni e sidad de Se illa
ape [email protected]
Ag adecimien os
Quie o ag adece a los p o eso es, a odos los encon ados a lo la go de es e camino, po habe me enseñado
odo lo necesa io pa a es a hoy aquí.
G acias a mis pad es, F ancisca y José, quienes apa e de da me nomb e, me han dado algo que ellos no
ecibie on en su ju en ud: o ien ación. A mi mad e, po ese empuje que nos da cada día, en el ex emo opues o
a aquellas amilias que no quisie on una ida mejo pa a sus hijos. A mi pad e, po que odos sabemos que su
g an in eligencia y su capacidad de sac i icio nunca se ie on eclipsadas po la escasa o una de iempos
pasados.
A mi he mana pequeña, Ma ina, po us siemp e necesa ios deseos de sue e an es de los exámenes más
du os que he enido, muy impo an e pa a que es e momen o haya llegado an p on o como lo ha hecho.
No puede al a una mención a mi abuela Ge udis, quien siemp e se ha aleg ado de mis log os incluso
cuando no he enido iempo ni pa a i a isi a la. Tampoco puedo deja me a mi di un o abuelo F ancisco, que
an o ayudó (y ayuda) a mi amilia pese a e se odeado de pe sonas dañinas.
G acias a Ma i Ca men, que me lle a su iendo dos cu sos y medio ya, po sabe escucha me y
comp ende me, y b inda me su apoyo cuando no lo he encon ado en mí mismo. Fundamen al su compañía y
acogida en su casa mien as elabo aba es e documen o.
A mis amigos de la escuela, Ja ie , Miguel, F ancisco, Daniel, Rica do, Ad ián y Jai o, po que es a
a en u a en soli a io hubie a sido imposible.
A José Manuel y Alejand o, mejo es amigos desde la ESO y po siemp e con oda segu idad.
F ancisco José Pé ez Díaz
Se illa, 2015
9
Resumen
El p opósi o p incipal de es e p oyec o es la consecución, po pa e del p o eso , de una hoja de cálculo con
las cali icaciones de los alumnos p esen ados a una con oca o ia de una asigna u a, gene ando la misma
di ec amen e desde las hojas de examen de los alumnos.
Dicha solución es desa ollada a pa i del so wa e lib e ImageMagick Con e , que es una sui e pa a
c eación, edición, composición y con e sión de imágenes disponible pa a sis emas Linux. Su uncionalidad es
p esen ada median e línea de comandos, y pe mi e lee y esc ibi imágenes en más de 200 o ma os (PNG,
JPEG, GIF y TIFF, en e muchos o os).
También se implemen a una pla a o ma web que p esen a á la uncionalidad al p o eso ado. Ap o echando
que los exámenes han de se escaneados pa a el uso de nues a he amien a, dicha pla a o ma web pe mi i á a
los alumnos ma iculados en las dis in as asigna u as accede (bajo usua io y con aseña) al sis ema y e las
hojas de sus exámenes escaneadas jun o a su cali icación.
17
2 ESTADO DEL ARTE
l econocimien o óp ico de ma cas [1] se de ine como el p oceso de cap u a da os de ma cas desde
documen os. No es algo no edoso, pues sus o ígenes da an de la década de 1930 [2]. Es ampliamen e
u ilizado en co ección de exámenes a los que se p esen an muchos candida os, ales como oposiciones,
ni eles de idiomas o pe misos de conduci . Su uso ambién se ex iende al p ocesamien o de encues as,
pa icipaciones de lo e ías, e incluso p ocesos elec o ales [3].
2.1 Reconocimien o óp ico de ma cas (OMR)
Los o mula ios OMR es án diseñados pa a se leídos po una unidad lec o a óp ica de ma cas, y dicho
diseño a unido con su uncionamien o.
En los o mula ios OMR se dis inguen es ipos de elemen os: clocks, columnas y casillas de ma ca [4].
Casillas de ma ca: campos donde el in e esado ealiza las ma cas que con o man su espues a.
Clocks: ma cas ec angula es si uadas en uno de los bo des e icales de la hoja, que señalan una
línea ho izon al de lec u a. Si la lec o a de ec a un clock, in e p e a á que el es o de la línea ho izon al
puede con ene casillas de ma ca. Mien as no se de ec e ningún clock, no se ealiza á lec u a alguna
en línea ho izon al.
Columnas: se de ine como el máximo núme o de casillas de ma ca que puede exis i en una línea
ho izon al de inida po un clock. También se denominan como canales de lec u a [4].
El pa clock-columna de ine a una casilla de ma ca.
A con inuación se mues a la imagen de una hoja de espues as de un examen de ni el de idiomas de la
Uni e sidad de Camb idge (a modo de ejemplo), ex aída de un lib o [5], sob e la que se de allan los
concep os an e io es.
E
«No bas a ene buen ingenio; lo p incipal es aplica lo
bien».
- René Desca es -
Es ado del a e
18
Figu a 5.- Casillas de ma ca, clocks y columnas
2.2 His o ia
La p ime a consecución en cuan o a econocimien o óp ico de ma cas ino de la mano de IBM y su 805
Tes Sco ing Machine [1] [2], come cializada en 1937.
Figu a 6.- IBM 805 Tes Sco ing Machine [2]
Poseía 750 con ac os eléc icos, los cuales se p esionaban con a la hoja de espues a. Las ma cas se debían
ealiza con lápiz, de modo que, si una casilla es aba ma cada, la conduc i idad del g a i o pe mi i ía el paso
de co ien e en e ambos con ac os.
La IBM 805 ue e i ada del me cado en 1963, dejando paso en el me cado a la IBM 1230 op ical ma k
sco ing eade , que ue come cializada el año an e io . Es e nue o modelo ya hacía uso de la nue a ecnología
óp ica, dejando a ás el uso de los con ac os eléc icos, y pudiendo p ocesa has a 1200 hojas po ho a [6].
19
19
Sis ema de cali icaciones con ges ión web
A pa i de es e momen o o as compañías se unie on al me cado, des acando Scan on Co po a ion [7],
que en o no a 1967 comenzó a o ece se icios de dis ibución de unidades lec o as y en a de o mula ios de
espues as pa a exámenes. Hoy en día sigue en ac i o, o eciendo ambién se icios de ecolección de da os a
di e sas ins i uciones.
2.3 Se icios ía so wa e
El cos e económico de los disposi i os necesa ios y de la gene ación de o mula ios en papel desencadenó
la apa ición de so wa e que solo eque ía escáne es con encionales pa a la lec u a de o mula ios. Los
mismos ambién o ecen la posibilidad de diseña los o mula ios según las necesidades, e imp imi los sin
u iliza ampoco ningún ha dwa e ex a.
Ejemplos de so wa e de es e ipo son los siguien es:
queXF [8]
Udai OMR ool [9]
Ogami OMR [10]
2.4 Conclusiones sob e el es ado del a e
El p oyec o que se de alla en los p óximos capí ulos del p esen e ex o pod ía ca aloga se de la misma
o ma que los ejemplos so wa e an e io es: u ilizando equipos con encionales de escaneo e imp esión,
gene a o mula ios a ellena po alumnos y/o p o eso es pa a su pos e io p ocesado en o ma de iche os de
imagen.
21
3 PREVIO A LA AUTOMATIZACIÓN
n es de comenza con el desa ollo de la u ilidad en sí, con iene acla a di e sos concep os que el
so wa e debe maneja .
3.1 Tipos de exámenes
Como se ha indicado en el p ime capí ulo (In oducción), se an a dis ingui en e exámenes ipo es y
exámenes de solución abie a.
Los exámenes ipo es es a án o mado po el núme o de p egun as que se indique, las cuales con a án
con un núme o de opciones de espues a ( ambién a indica ), de las cuales solamen e hab á una opción álida.
En cada p egun a el alumno puede o no ma ca alguna de las opciones. La secuencia de espues a dada po el
alumno se compa a á con la secuencia que de ine a la solución co ec a del examen, ob eniendo así el núme o
de acie os, el núme o de allos, y el núme o de “no con es adas”.
La no a inal se calcula á en unción de los acie os y los allos, no in luyendo las p egun as que no se han
con es ado. Es e cálculo se ealiza á u ilizando la siguien e exp esión:
𝑁𝑂𝑇𝐴 𝐹𝐼𝑁𝐴𝐿 𝑇𝐸𝑆𝑇= (𝑁𝐴−𝑁𝐹
𝑁𝑂−1)10
𝑁𝑃
Donde,
NA es el núme o de acie os que ha enido el alumno,
NF es el núme o de allos que ha come ido el alumno,
NO es el núme o de opciones con el que cuen a cada p egun a,
NP es el núme o de p egun as que con o man el examen,
NOTA FINAL TEST es la no a ob enida po el alumno sob e un o al de 10 pun os.
El mo i o de es a o mulación es que la no a espe ada en un alumno que con es a al aza sea de 0 pun os.
A
«La ciencia puede di e i nos y ascina nos, pe o es la
ingenie ía la que cambia el mundo».
- Isaac Asimo -
P e io a la au oma ización
22
Po o o lado, los exámenes de solución abie a equie en el juicio del p o eso pa a se pun uados. Se án
exámenes de es e ipo los que cons en de p egun as de desa ollo, cues iones co as y/o esolución de
p oblemas.
El p o eso cali ica á cada una de las pa es (p egun as, secciones, p oblemas,…) sob e un o al de 10
pun os, y la no a inal se á la suma de odas ellas mul iplicando cada una po un ac o de ponde ación, el cual
se almacena á en la base de da os de la he amien a en o ma de an o po cien o.
𝑁𝑂𝑇𝐴 𝐹𝐼𝑁𝐴𝐿 𝐶𝐴𝐿𝐼𝐹𝐼𝐶𝐴𝐵𝐿𝐸=∑ 𝑝𝑖
100𝑐𝑖
𝑖
Donde,
pi es la ponde ación de la pa e i sob e el o al del examen exp esada en an o po cien o,
ci es la cali icación o o gada al alumno en la pa e i del examen sob e 10 pun os,
NOTA FINAL CALIFICABLE es la no a ob enida po el alumno sob e un o al de 10 pun os.
Es e iden e que la suma de odas las ponde aciones que con o man el examen debe se el 100%.
En es e caso, el alumno esponde á al examen en los huecos des inados a al in con lo que se pida en cada
una de las pa es. Pos e io men e, se á el p o eso quien ellene la cabece a con la cali icación que se le o o ga
al alumno en cada una de las pa es (po ello, de aho a en adelan e denomina emos a es os exámenes como
cali icables). El sis ema se á capaz de lee las cali icaciones y almacena las jun o a la no a inal calculada
haciendo uso de las ponde aciones.
3.2 Pa áme os de in e és
Nues a he amien a p e ende o ece ges ión sob e las cali icaciones que ob ienen los alumnos en una
con oca o ia de una asigna u a. O ien ándonos a dicho in, se an a enuncia una se ie de pa áme os que la
lógica de la he amien a debe maneja :
Asigna u a: es a he amien a pod á se u ilizada pa a abaja sob e a ias asigna u as, y es po es e
mo i o po el que con iene iden i ica las de o ma uní oca. Se u iliza á como iden i icado de
asigna u a el p opo cionado po la Uni e sidad de Se illa. También con iene almacena el nomb e de
la asigna u a y la i ulación y el cu so donde se impa e.
Figu a 7.- P og ama de la asigna u a Redes Mul ise icio, con iden i icado esal ado
23
23
Sis ema de cali icaciones con ges ión web
Examen: cada examen egis ado en el sis ema end á una e e encia uní oca, la cual consis i á en un
núme o en e o posi i o au oinc emen al (cada ez que se añade un examen, su iden i icado se á
supe io en una unidad al úl imo examen gua dado). También se almacena á un nomb e pa a el
examen, que en p incipio ha á e e encia a la con oca o ia de la asigna u a a la que es é asociado. Po
mo i os de uncionalidad que más adelan e se desa olla án, ambién se a a almacena la u a ela i a
al luga donde se almacene la cabece a de co ección del examen, el núme o de páginas, y el ipo de
examen ( es o cali icable).
Pa a el ipo de examen se ienen, además, dos nue as en idades, con cie os pa áme os de in e és:
Tes : es a en idad es una especialización [11] de Examen, y además del iden i icado
co espondien e, almacena á el núme o de p egun as que con o ma el es , el núme o de
opciones posibles que iene cada p egun a, y la secuencia co ec a de espues a
co espondien e a la solución del mismo. Incluye además campos de con igu ación de
isualización, que u iliza á el p o eso pa a especi ica qué in o mación se le o ece al
alumno al momen o de consul a su no a (secuencia de espues a co ec a, secuencia de
espues a dada, núme o de acie os, núme o de e o es, no a inal, desca ga de examen
comple o y desca ga de cabece a de su examen).
Cali icable: es a especialización almacena á dos nue os alo es; el núme o de pa es
cali icables que iene el examen, y las ponde aciones que end án cada una de las pa es sob e
el o al. Incluye además campos de con igu ación de isualización, que u iliza á el p o eso
pa a especi ica qué in o mación se le o ece al alumno al momen o de consul a su no a
(cali icaciones de cada pa e del examen, cali icación inal del examen, desca ga de examen
comple o y desca ga de cabece a de su examen).
Con oca o ia: se p e enden ges iona las cali icaciones ob enidas po los alumnos en una
con oca o ia, po an o las mismas deben queda iden i icadas uní ocamen e. El iden i icado de una
con oca o ia end á la es uc u a
idASIGNATURA_AÑO_CONVOCATORIA
donde AÑO iden i ica al año na u al en el que inaliza el cu so (2016 si hablamos del cu so
académico 2015-2016), y con oca o ia se e ie e a si es p ime a (1), segunda (2) o e ce a (3).
Además de es e iden i icado , con iene almacena el iden i icado del examen que con o ma a la
con oca o ia, y una lis a de alumnos que igu an en el ac a de la con oca o ia.
Alumno: la en idad alumno almacena á núme o de DNI, apellidos, nomb e, usua io i ual de la
Uni e sidad de Se illa (UVUS) y g upo, de cada uno de los alumnos con enidos en alguna de las
ac as de con oca o ia de alguna asigna u a. Pa a inicia sesión un alumno en el sis ema se le
eque i án su DNI y su UVUS, que se án comp obados di ec amen e con la in o mación que se enga
sob e ellos.
P o eso : se iden i ica án ambién po su DNI, y se almacena á su nomb e y apellidos. A di e encia
de los alumnos, el acceso al sis ema se ha á median e una cla e que les p opo cione el adminis ado
del mismo, en luga de u ilizando UVUS.
Alumno y P o eso se oma án como especializaciones de la en idad Usua io, que almacena DNI, Nomb e
y Apellidos (campos comunes de ambas en idades).
Pa a el manejo de las cali icaciones de los alumnos, se han de desa olla en idades in e medias que
elacionen alumno-examen y almacenen la cali icación. Teniendo en cuen a que exis en dos ipos de
exámenes, es as en idades almacena án dis in a in o mación pa a cada caso:
Si se a a de exámenes ipo es , se almacena á la secuencia de espues a que da el alumno, el núme o
de acie os, el núme o de allos y la no a inal calculada según lo indicado en el pun o 3.1.
Pa a el caso de los exámenes cali icables, esul a de in e és almacena la no a ob enida en cada pa e y
la no a inal calculada aplicando las ponde aciones co espondien es.
En ambos casos, se almacena á ambién la u a en la que se dispond á de las hojas del examen del alumno
escaneadas, así como de la cabece a co espondien e al examen del alumno, a donde se accede á pa a lanza la
desca ga de las mismas desde el na egado en el que inicia sesión el alumno.
P e io a la au oma ización
24
Finalmen e, se almacena á ambién el alo de la ole ancia de co ección, que más adelan e se explica á
en de alle.
3.3 Esquema de la base de da os
Se p esen a a con inuación un diag ama de base de da os ealizado con el so wa e Da a Base Designe 4.
El mismo es á diseñado pa a el abajo con bases de da os SQL. No obs an e, nues a implemen ación inal no
se ealiza á median e SQL, sino median e iche os de ex o, de modo que, sal ando las dis ancias exis en es
en e ambas o mas, se oma á como álido el siguien e diag ama acompañado de la pos e io explicación.
Figu a 8.- Diag ama En idad-Relación de la base de da os del sis ema
En p ime luga , la lis a de alumnos asociada a una con oca o ia consis i á en un iche o en o ma o XLS,
el cual es p opo cionado a los p o eso es de las asigna u as po la Uni e sidad de Se illa, y se ca ga á al
sis ema sin modi icación alguna. Se end á un iche o de lis a po cada una de las con oca o ias c eadas en el
sis ema. Las mismas se almacena án en un di ec o io llamado lis as con el nomb e
idASIGNATURA_AÑO_CONVOCATORIA.xls. Pa a el inicio de sesión po pa e de un alumno, la
búsqueda de c edenciales de acceso se ealiza á sob e odos los iche os con enidos en dicho di ec o io.
Igualmen e exis i á un di ec o io llamado no as, que almacena á iche os en o ma o CSV ( alo es
sepa ados po coma, comma sepa a ed alues), los cuales almacena án las cali icaciones de los alumnos en un
examen de e minado. El nomb e de cada uno de los iche os se á el de un iden i icado de examen, y los
campos que almacena á se án los co espondien es pa a e e i la cali icación ob enida po cada alumno en el
mismo examen (los campos a ia án dependiendo de si se a a de un examen ipo es o un examen
cali icable). En el diag ama E-R es os iche os se co esponden con las en idades ALUMNO_has_TEST y
ALUMNO_has_CALIFICABLE.
25
25
Sis ema de cali icaciones con ges ión web
A con inuación se mues an dos CSV de ejemplo, co espondien es a los exámenes con iden i icado 1 y 2
espec i amen e. El examen con iden i icado 1 es de ipo es , y el examen con iden i icado 2 es de ipo
cali icable.
Figu a 9.- Cali icaciones de los alumnos p esen ados al examen con iden i icado 1 ( es )
Figu a 10.- Cali icaciones de los alumnos p esen ados al examen con iden i icado 2 (cali icable)
Puede obse a se que los campos coinciden con los mos ados en el diag ama de la Figu a 8.
El es o de en idades se almacena án cada una en un iche o CSV ubicado en el di ec o io aíz de la
aplicación (en el que se si úan no as y lis as). Se mues a a con inuación la co espondencia:
asigna u as.cs : en idad ASIGNATURA.
con oca o ias.cs : en idad CONVOCATORIA.
p o eso .cs : en idad PROFESOR.
cali icables.cs : en idad CALIFICABLE.
examenes.cs : en idad EXAMEN.
es s.cs : en idad TEST.
Po úl imo, la ole ancia de co ección (no debe conside a se una en idad como al, al se un alo que se
sob eesc ibi á cada ez que se modi ique) se almacena á en un iche o llamado ole ancia.cs , ambién en el
di ec o io aíz de la he amien a.
Au oma ización pa a exámenes ipo es
32
Figu a 15.- En ecuad o ojo, la zona a la cual se limi a la búsqueda de los es igos
Pa a es a delimi ación se u iliza el comando con e con la opción -ex ac , de la siguien e o ma:
con e -ex ac ANCHOxALTO+POS_X+POS_Y examen_escaneado.jpg
ex ae _ es igo.jpg
ANCHO: medida en píxeles co espondien e al lado ho izon al que end á el á ea ex aída.
ALTO: medida en píxeles co espondien e al lado e ical que end á el á ea ex aída.
POS_X y POS_Y: coo denada en píxeles inicial del á ea a ex ae .
examen_escaneado.jpg: imagen o iginal de la que se ex ae el á ea indicada.
ex ae _ es igo.jpg: imagen que se c ea con el á ea ex aída.
Pos e io a es a ex acción, se ealiza la búsqueda (compa e -subimage-sea ch) desc i a an e io men e,
pe o no sob e la hoja del examen escaneada, sino sob e la ex acción que acabamos de ealiza . Po úl imo,
una ez ealizada la búsqueda, se elimina el iche o de imagen que almacena la ex acción, pues no se
necesi a á en ningún o o momen o.
Cabe des aca que es a búqueda de es igos se ealiza á an o pa a el es igo izquie do (cí culo hueco) como
pa a el es igo de echo (cí culo compac o). Pa a que la búsqueda sea e ec i a, es necesa io que la aplicación
enga gua dado de alguna o ma el aspec o que ienen los es igos al se escaneados con el ha dwa e
u ilizado. No se puede u iliza el aspec o gené ico de los es igos, pues se co e el iesgo de que el aspec o que
ienen en los exámenes escaneados no enga apenas coincidencia con las imágenes u ilizadas pa a su
búsqueda. Como se e á en la pla a o ma web, se á a ea del adminis ado del sis ema la ca ga de es igos
escaneados eco ados, y solo pod án ealiza se co ecciones u ilizando el escáne al que co espondan las
imágenes de los es igos.
Figu a 16.- Tes igo izquie do escaneado en
mul i unción Epson S ylus SX130
Figu a 17.- Tes igo de echo escaneado en
mul i unción Epson S ylus SX130
33
33
Sis ema de cali icaciones con ges ión web
4.2.2 Equilib ado de imagen
Como ya se ha comen ado, la inalidad de la búsqueda de es igos es la de ob ene en qué medida se
encuen a un olio de examen gi ado, pa a que el p og ama sea capaz de compensa dicha des iación en el
sen ido con a io.
Una ez se ienen las posiciones de los es igos, es ácil saca el ángulo de gi o aplicando elaciones
igonomé icas. Según se ep esen a en la siguien e igu a, esul a sencillo deduci una exp esión pa a nues o
in.
Figu a 18.- T igonome ía aplicada al cálculo de la o ación de la hoja de examen
X1 e Y1: coo denadas en las que se ha localizado el es igo izquie do.
X2 e Y2: coo denadas en las que se ha localizado el es igo de echo.
𝛼=−a an(|𝑌1−𝑌2|
|𝑋1−𝑋2|)
De es a o ma, de inimos α como el ángulo que es necesa io gi a la imagen posicionándonos en las
coo denadas del p ime es igo pa a que los dos esul en si uados al mismo ni el ho izon al. Así, al
aplica dicho gi o, la imagen del examen queda á comple amen e ende ezada.
Figu a 19.- Posiciones de los es igos una ez aplicado el ángulo de gi o ( 𝒀𝟏
′=𝒀𝟐
′ ).
Compu acionalmen e es o se consigue g acias al comando con e y la opción -dis o SRT, de la
siguien e o ma:
con e examen_escaneado.jpg -dis o SRT "${ es 1_X},${ es 1_Y} 1
${anguloGi o} 0,0" examen_escaneado_gi ado.jpg
examen_escaneado.jpg: hoja de examen escaneada o iginal.
examen_escaneado_gi ado.jpg: hoja de examen escaneada as aplica el gi o.
${ es 1_X} y ${ es 1_Y}: a iables que almacenan la posición en la que ha sido encon ado el p ime
es igo.
${anguloGi o}: a iable que almacena el ángulo α.
Au oma ización pa a exámenes ipo es
34
4.2.3 Lec u a de iden i icado de examen
Reco demos que el iden i icado de examen queda ep esen ado en bina io en la esquina supe io izquie da
de la cabece a.
Como el p og ama iene la capacidad de gene a cabece as, podemos conoce las coo denadas de comienzo
cada una de esas casillas y las dimensiones de las mismas. Como la imagen escaneada ha sido p e iamen e
ende ezada, solo enemos que desplaza nos a dichas coo denadas, ex ae un á ea ec angula del amaño
co espondien e a una casilla, y comp oba si la misma es á ma cada o desma cada.
No obs an e, es o no es an sencillo, pues su ge el p oblema de la escala: la cabece a escaneada de un
examen end á unas dimensiones en píxeles muy di e en es a las que posee la cabece a ecién gene ada
di ec amen e po genCab.sh. Pa a soluciona es o es necesa io saca un ac o de escala, y es o lo podemos
hace a pa i de las posiciones en las que han sido de ec ados los es igos.
Se sabe que en cualquie cabece a que se gene e la dis ancia en e es igos es de 652 píxeles. Podemos
saca la dis ancia en e es igos de cualquie imagen escaneada, simplemen e con X1
′−X2
′ (según la imagen de
la Figu a 19). Inmedia amen e se ob iene que la elación en e dimensiones de una cabece a escaneada y una
cabece a ecién gene ada es la siguien e:
𝐸𝑆𝐶𝐴𝐿𝐴=𝐷𝐼𝑆𝑇𝐴𝑁𝐶𝐼𝐴 𝑇𝐸𝑆𝑇𝐼𝐺𝑂𝑆 𝐶𝐴𝐵𝐸𝐶𝐸𝑅𝐴 𝐸𝑆𝐶𝐴𝑁𝐸𝐴𝐷𝐴
𝐷𝐼𝑆𝑇𝐴𝑁𝐶𝐼𝐴 𝑇𝐸𝑆𝑇𝐼𝐺𝑂𝑆 𝐶𝐴𝐵𝐸𝐶𝐸𝑅𝐴 𝑔𝑒𝑛𝐶𝑎𝑏.𝑠ℎ =X1
′−X2
′ 𝑝í𝑥𝑒𝑙𝑒𝑠
652 𝑝í𝑥𝑒𝑙𝑒𝑠
Po an o, conociendo cualquie dimensión de las cabece as que gene emos, bas a mul iplica lo po es e
alo pa a ob ene la dimensión asociada a la cabece a escaneada que es emos p ocesando. Y como dichas
dimensiones son odas conocidas (se mues an a con inuación), enemos es e p oblema esuel o.
Ancho de casilla: 13 píxeles.
Al o de casilla: 1 píxel.
Sepa ación ho izon al en e casillas: 24 píxeles.
Coo denada de comienzo de casillas de ID: (15,5) píxeles.
Figu a 20.- Dimensiones o iginales de las casillas de iden i icación de examen
Una ez se iene lo necesa io pa a localiza a cada una de las casillas, puede ex ae se su con enido (de una
en una) po medio de la opción -ex ac del comando con e (se explicó en 4.2.1), la cual se u iliza á pa a
gene a un iche o de imagen apa e con el con enido de la casilla que se es é p ocesando. En es e nue o
iche o comp oba emos si la casilla es á ma cada o no, después de lo cual se elimina á.
Dicha comp obación consis e en con e i la imagen a escala de g ises, pa a después e i ica si la media
de odos los onos de g ises con enidos en la imagen es más ce cana al blanco (no ma cada, media de g ises
con alo 1) o al neg o (ma cada, media de g ises con alo 0). Aquí se in oduce el concep o de ole ancia,
que de inimos como el alo (en e 0 y 1) que ma ca la di e encia en e lo que se conside a á ma cado y lo
que se conside a á no ma cado. Realizando di e sas p uebas de imp esión y escaneo con la mul i unción
Epson S ylus SX130, se ha ob enido que pa a la misma, el alo 0,7 es un buen alo de ole ancia,
uncionando a la pe ección en odo momen o. Es deci , si la media de g ises leída es mayo a 0,7, se
conside a á que la casilla no ha sido ma cada, y si es meno se oma á como ma cada.
35
35
Sis ema de cali icaciones con ges ión web
Compu acionalmen e, se puede comp oba la media de g ises con los siguien es comandos:
Con ie e la casilla eco ada a escala de g ises:
con e casilla.jpg -colo space G ay casilla.jpg
Ex ae in o mación de la imagen:
iden i y - e bose -alpha o casilla.jpg | sed -n '/His og am/q;
/Colo map/q; /s a is ics:/,$ p'
Salida:
Channel s a is ics:
G ay:
min: 0 (0)
max: 255 (1)
mean: 245.985 (0.964648)
s anda d de ia ion: 39.1474 (0.153519)
ku osis: 21.7219
skewness: -4.76403
Colo s: 256
Ex ae únicamen e el alo de la media de g ises:
VALOR_GRISES=`iden i y - e bose -alpha o casilla.jpg | sed -n
'/His og am/q; /Colo map/q; /s a is ics:/,$ p' | g ep "mean" | cu -
d'(' - 2 | cu -d')' - 1`
echo $VALOR_GRISES
Salida:
0.964648
Au oma ización pa a exámenes ipo es
36
4.2.4 Lec u a de DNI del alumno
Se basa en la misma idea que la que se ha aplicado pa a la lec u a de las casillas de iden i icación. La
p incipal di e encia es que aquí, además, se equie e un desplazamien o e ical po las casillas, a di e encia de
en la del iden i icado de examen, que el desplazamien o e a únicamen e ho izon al. Apa ece así un nue o
da o: la sepa ación e ical en e casillas, con alo de 18 píxeles. El es o de alo es pe manece igual a los
indicados en el apa ado an e io (sepa ación ho izon al en e casillas, al u a de casillas y anchu a de casillas).
La coo denada de comienzo es (15,62).
Figu a 21.- Dimensiones o iginales de las casillas de inse ción del DNI del alumno
Cada columna co esponde a la inse ción de una ci a del DNI. Po es e mo i o, el c i e io de lec u a a a
se eco e la p ime a columna has a de ec a una casilla ma cada, desplaza se al comienzo de la siguien e
llegado es e momen o, y así sucesi amen e has a p ocesa las 8 ci as.
4.2.5 Lec u a de secuencia espondida po alumno
Nue amen e se uel e a aplica la misma idea. Aho a ambién se añade una nue a dimensión más, la
sepa ación en e columnas de p egun as. En cada columna hay luga pa a 10 p egun as con un máximo de 4
opciones. Po cada 10 p egun as que se engan se á necesa io ocupa una columna más en la cabece a. La
sepa ación en e dichas columnas es de 110 píxeles. La coo denada de comienzo es la (231,62).
El c i e io de lec u a de las espues as del alumno a a se eco e las opciones de cada p egun a,
comenzando po la A y acabando cuando se de ec e una opción ma cada, o al habe eco ido odas las casillas
de opciones de la p egun a (en caso de que no se haya espondido a esa p egun a). Llegado es e momen o, se
a anza a comp oba la opción A de la siguien e p egun a eniendo en cuen a la sepa ación e ical exis en e
en e las mismas. Si se a a de la úl ima p egun a de una columna, se pasa á a la opción A de la p ime a
p egun a de la columna siguien e, conocido el alo de la sepa ación en e columnas.
37
37
Sis ema de cali icaciones con ges ión web
Figu a 22.- Dimensiones o iginales de las casillas de espues a del alumno
Cabe des aca que el sc ip co ec o TEST.sh necesi a conoce el núme o de p egun as y de opciones
que con o man el es , de modo que p ocese únicamen e las posiciones en las que se espe e que haya una
casilla. Ele a ía el consumo de ecu sos, y consecuen emen e el iempo de lec u a, que el sc ip p ocesa a
posiciones co espondien es a la opción de espues a D si el examen solo u ie a es opciones de espues a
(has a la C).
4.3 Funcionamien o del sc ip co ec o TEST.sh
El uncionamien o se apoya en di e sas uncionalidades implemen adas en lenguaje C, las cuales se
desc iben a con inuación, y deben se compiladas en la máquina en la que aya a se ins alado el se ido . Se
p opo ciona ambién un iche o Make ile que agiliza es e p oceso de compilación.
U ilidades en lenguaje C:
co ec o TEST/ uncionalidades/a co angen e.c: ecibe po línea de comandos las coo denadas Y2,
Y1, X2 y X1, y calcula el ángulo –α, que es mos ado po salida es ánda . (Figu a 18)
co ec o TEST/ uncionalidades/compa aCad.c: ecibe po línea de comandos la secuencia de
espues as dada po el alumno, la secuencia de espues as co ec a (que el sc ip ecibi á ambién
como pa áme o) y el núme o de opciones que ienen las p egun as. De uel e po salida es ánda el
núme o de acie os, el núme o de allos, y la no a inal calculada sob e 10 pun os median e la
exp esión que apa ece en el apa ado 3.1.
co ec o TEST/ uncionalidades/compa aTole ancia.c: el sc ip ecibi á ambién como pa áme o
la ole ancia de co ección que se es á u ilizando. Es a u ilidad compa a el alo de la media de g ises
leída en cada casilla con el alo de ole ancia, pe mi iendo así al sc ip de e mina si una casilla es á
ma cada o no.
co ec o TEST/ uncionalidades/cuen aCa .c: el sc ip equie e conoce el núme o de p egun as
que con o ma el es . Como ya se ha dicho, co ec o TEST ecibe como pa áme o la secuencia de
espues as co ec as, así que, con ando los ca ac e es de la misma, se end á ese núme o. De es o se
enca ga es a u ilidad.
co ec o TEST/ uncionalidades/escala.c: calcula la escala en la que se ep esen a un examen
escaneado según la exp esión del apa ado 4.2.3.
Au oma ización pa a exámenes ipo es
38
co ec o TEST/ uncionalidades/mul iplica.c: ealiza la mul iplicación de odos los núme os que se
pasen como a gumen o. Se desa olla es a u ilidad po que no se puede ealiza una mul iplicación de
núme os decimales desde el iche o “.sh”.
co ec o TEST/ uncionalidades/ aizcuad ada.c: ealiza la aíz cuad ada del núme o que eciba
como a gumen o, lo cual no es ealizable di ec amen e desde el iche o “.sh”.
También cabe menciona que el sc ip cuen a con las sen encias de bucle y las a iables bande a
necesa ias pa a el eco ido de las casillas a p ocesa , de modo que se abaje siguiendo el c i e io de lec u a
es ablecido en cada caso.
Se iene en onces que la o ma de ejecución de co ec o TEST.sh es la siguien e (siemp e que se engan
pe misos de ejecución chmod a+x ./co ec o TEST/co ec o TEST.sh):
./co ec o TEST/co ec o TEST.sh id_examen num_opciones num_paginas
secuencia_co ec a ole ancia
id_examen: iden i icado del examen (0-255) que se a a co egi . En el di ec o io co ec o TEST
exis i a un iche o comp imido en “.zip” cuyo nomb e se a id_examen.zip. Dicho iche o se
descomp imi á en el di ec o io .co ec o TEST/id_examen, pasando a con ene odas las páginas del
examen escaneado. Se lee á el iden i icado de odos los exámenes que haya ahí con enidos, y solo se
lee á el es o del examen si coincide el iden i icado con el aquí in oducido.
num_opciones: núme o de opciones que end á cada p egun a, de las cuáles hab á solo una álida (2-
4).
num_paginas: núme o de páginas que con o man el examen.
secuencia_co ec a: solución del examen. Se compa a con la que dé el alumno pa a ob ene su no a.
ole ancia: núme o en e 0 y 1 e e en e al alo medio de la escala de g ises en las casillas
eco adas. Si el alo leido en una casilla es mayo que es e alo , se oma como no ellena, y si es
meno , se oma como ellena.
39
5 AUTOMATIZACIÓN PARA EXÁMENES DE
SOLUCIÓN ABIERTA
a a el caso de los exámenes ipo cali icables hay que p ocesa :
Iden i icado del examen
Núme o de DNI del alumno
Cali icaciones de cada una de las pa es di e enciadas que posee el examen
P e io a la co ección, se á necesa io gene a la cabece a adap ada al examen en cues ión, lo cual se
ealiza á ambién u ilizando es a he amien a.
El uncionamien o en de alle de lo que se acaba de indica en elación a los exámenes manualmen e
cali icables se de alla en los siguien es apa ados.
5.1 Gene ación de cabece a e inse ción en documen o
En es e caso, en la cabece a el alumno solamen e iene que in oduci su DNI. El iden i icado de examen
ya es a á elleno en el momen o de la imp esión, y las espues as se da án en la zona del examen
co espondien e, donde el p o eso enca gado de la co ección acudi á pa a comp oba la. No obs an e, hab á
espacio en la cabece a donde el p o eso ansc ibi á dichas cali icaciones de la misma o ma en la que el
alumno in oduce su DNI. La cali icación end á una p ecisión de dos ci as decimales.
Al igual que en los exámenes ipo es , es a cabece a se si ua á al comienzo de la p ime a página del
examen.
A con inuación se mues a un ejemplo en el que puede obse a se que el examen cuyo iden i icado es el 3
(el iden i icado con iene el alo bina io 00000011) es á o mado po 3 pa es que an a se cali icadas po
sepa ado sob e 10 pun os con dos decimales.
P
«Es p e e ible ob ene una espues a azonablemen e
ap oximada pe o ápida que le indique si el diseño
unciona o no, que in e i más iempo y ob ene el
mismo esul ado sólo que con más decimales».
- R.L. No on -
Au oma ización pa a exámenes de solución abie a
40
Figu a 23.- Aspec o de la cabece a pa a exámenes de solución abie a
Es a cabece a es gene ada u ilizando el sc ip genCab.sh de la siguien e o ma:
./genCab.sh C ID_EXAMEN NUM_CALIFICACIONES
C: indica que la cabece a co esponde a un examen ipo cali icable.
ID_EXAMEN: es el iden i icado del examen en o ma o decimal que a a ep esen a se en bina io
en la zona co espondien e. Pa a el caso de la igu a an e io se debe in oduci el alo 2 en es e
campo. Como puede obse a se en la igu a, el alo debe se ep esen able en bina io con 8 bi s, de
modo que la he amien a admi i á exámenes con iden i icado desde 0 has a 255.
NUM_CALIFICACIONES: la cabece a end a an os campos cali icables como se indique. Po
cues iones de espacio solo se admi i á un alo en e 1 y 5, ambos incluídos.
La gene ación de la cabece a oma á como base la mos ada en la siguien e igu a:
Figu a 24.- Cabece a base pa a exámenes cali icables
La gene ación del iden i icado de examen co espondien e se hace de la misma o ma que pa a el caso de
los exámenes ipo es (4.1)
41
41
Sis ema de cali icaciones con ges ión web
Lo siguien e es consegui que la imagen de ini i a con enga an os espacios pa a cali icaciones como se
indique po línea de comandos, lo cual se hace inse ando en el hueco en blanco disponible alguna de las
siguien es imágenes, según co esponda:
Figu a 25.- Espacio pa a una sola cali icación
Figu a 26.- Espacio pa a dos cali icaciones
Figu a 27.- Espacio pa a es cali icaciones
Pla a o ma web
48
P o eso es: inician sesión con su núme o de DNI como usua io, y la con aseña que les p opo cione
el adminis ado . T abaja con las asigna u as exis en es en el sis ema, y pa a cada una de ellas puede:
Añadi y elimina una con oca o ia con su examen y lis a de alumnos “.xls”.
Ve la lis a de alumnos de una con oca o ia de una asigna u a.
Desca ga la cabece a del examen de una con oca o ia, la cual se gene a au omá icamen e al
c ea la con oca o ia.
Desca ga la plan illa “.docx” pa a la elabo ación de sus exámenes con hueco pa a inse a
cabece a.
Ca ga exámenes escaneados pa a su co ección.
Ve las cali icaciones de los alumnos de una con oca o ia ( an o de los alumnos que es án en
lis a como de los que no), y expo a las mismas a una hoja “.xls”.
Adminis ado : solo hay una cuen a de adminis ado . Su modo de acceso queda de inido en el
código PHP, de o ma inicia sesión con el usua io adminis ado y la con aseña FJPD-TFG-
2015. Se enca ga de:
Añadi y elimina asigna u as que ges iona el sis ema.
Añadi y elimina p o eso es que acceden al sis ema.
Es ablece el alo po de ec o de la ole ancia de co ección con la que se p ocesa án las
cabece as.
Ca ga es igos escaneados con el ha dwa e que ayan a u iliza los p o eso es pa a la
co ección de sus exámenes (Ve Figu a 16 y Figu a 17).
6.2 Desc ipción de los iche os web
anadi _asigna u a.php: accesible po adminis ado , con iene el o mula io de adición de una
asigna u a.
anadi _cali icable.php: accesible po p o eso es, con iene la pa e del o mula io de adición de
con oca o ia con un examen cali icable asociado.
anadi _con oca o ia.php: accesible po p o eso es, con iene el o mula io gené ico de adición de
con oca o ia a una asigna u a.
anadi _p o eso .php: accesible po adminis ado , con iene el o mula io de adición de un p o eso .
anadi _ es .php: accesible po p o eso es, con iene la pa e del o mula io de adición de una
con oca o ia con un examen ipo es asociado.
cambia _ ole ancia.php: accesible po adminis ado , con iene el o mula io de inse ción del alo
de la ole ancia.
check_login.php: comp ueba si los da os de inicio de sesión son álidos, edi igiendo a la “home” de
la pla a o ma web en ese caso, y mos ando mensajes de e o en caso con a io.
co egi .php: o mula io de ca ga de un iche o comp imido con exámenes escaneados. Accede al
sc ip de co ección co espondien e en unción del ipo del examen (co ec o TEST.sh o
co ec o CALIF.sh). Pe mi e de ini un alo pa a la ole ancia de co ección, o u iliza el alo po
de ec o es ablecido po el adminis ado . Pa a el caso de los exámenes cali icables, pe mi e es ablece
el núme o de decimales a p ocesa .
desca ga _cabece a.php: se edi ige a es a página cada ez que se hace clic en el bo ón “Desca ga
cabece a” de una con oca o ia. Con iene el código PHP necesa io pa a o za la desca ga de la
cabece a co espondien e.
49
49
Sis ema de cali icaciones con ges ión web
desca ga _cabece a_alumnos.php: se edi ige a es e iche o cada ez que un alumno in en a
desca ga la cabece a de alguno de sus exámenes. Con iene el código PHP necesa io pa a o za su
desca ga en o ma o “.jpg”, o pa a mos a un e o en caso de que un alumno in en e desca ga la
cabece a de un examen de o o alumno (6.3.4).
desca ga _docx.php: ue za la desca ga de la plan illa de elabo ación de exámenes con cabece a en
o ma o “.docx”.
desca ga _examen.php: se edi ige a es e iche o cada ez que un alumno in en a desca ga un
examen. Con iene el código PHP necesa io pa a o za la desca ga del examen co espondien e en un
di ec o io comp imido en “.zip”, o pa a mos a un e o en caso de que un alumno in en e desca ga
el examen de o o alumno (6.3.4).
elimina _asigna u a.php: accesible po adminis ado , elimina la asigna u a co espondien e de los
iche os que con o man la base de da os.
elimina _con oca o ia.php: accesible po p o eso es, elimina la con oca o ia co espondien e, su
examen, su lis a y iche o de cali icaciones asociados de los iche os que con o man la base de da os.
elimina _p o eso .php: accesible po adminis ado , elimina al p o eso co espondien e de los
iche os que con o man la base de da os.
expo a _no as.php: ue za la desca ga de las cali icaciones de los alumnos p esen ados a una
con oca o ia en o ma o “.xls”.
home_admin.php: página p incipal mos ada al adminis ado , accesible solo po el mismo.
home_alumno.php: página p incipal mos ada a los alumnos que inicien sesión, no accesible desde
los oles de p o eso o de adminis ado .
home_asigna u a.php: página p incipal de una asigna u a, accesible solo po p o eso es. Con iene
una abla con odas las con oca o ias que hay c eadas de una asigna u a.
home_p o eso .php: página p incipal mos ada a los p o eso es que inicien sesión, no accesible
desde los oles de alumno o de adminis ado .
lis ado_alumnos.php: accesible po p o eso es, mues a el lis ado de alumnos asociados a una
con oca o ia de una asigna u a.
lis ado_asigna u as.php: accesible po el adminis ado , mues a el lis ado de asigna u as que
maneja el sis ema.
lis ado_no as_cali icables.php: accesible po p o eso es, se en a a es a página pa a mos a las
cali icaciones de los alumnos en una con oca o ia compues a po un examen de solución abie a.
lis ado_no as_ es .php: accesible po p o eso es, se en a a es a página pa a mos a las
cali icaciones de los alumnos en una con oca o ia compues a po un examen ipo es .
lis ado_p o eso es.php: accesible po el adminis ado , mues a el lis ado de p o eso es que maneja
el sis ema.
login.php: página de inicio de sesión.
logou .php: se accede a es a página pa a ce a sesión. Inmedia amen e después, edi ige a login.php.
p ocesa_anadi _asigna u a.php: gua da los da os de una asigna u a que se añade en un iche o.
p ocesa_anadi _cali icable.php: gua da los da os de un examen de solución abie a que se añade en
los iche os de da os.
p ocesa_anadi _p o eso .php: gua da los da os de un p o eso que se añade en un iche o de da os.
p ocesa_anadi _ es .php: gua da los da os de un examen ipo es que se añade en los iche os de
da os.
sube_ es igos.php: accesible po el adminis ado , con iene el o mula io y el p ocesamien o
necesa io pa a la ca ga de es igos escaneados al sis ema, los cuales se án usados po los sc ip
co ec o TEST.sh y co ec o CALIF.sh pa a busca los en las hojas de los exámenes que p ocese.
Pla a o ma web
50
6.3 Mecanismos de segu idad implemen ados
Pa a p ese a has a cie o pun o un ni el segu idad en nues a he amien a, se han p opues o las
siguien es pau as de sen ido común con las que debe cumpli la pla a o ma web:
Los iche os de ex o que con o man la base de da os de la pla a o ma web (“.cs ”, “.xls”) no an a
se expo ados po el se ido web, pues o que an a con ene in o mación sensible al como
con aseñas de o os usua ios, núme os de DNI, UVUS, espues as a exámenes ipo es , e c.
Tampoco se án expo ables po el se ido web las cabece as gene adas po genCab.sh, ni los
exámenes escaneados hechos po alumnos. Es e ipo de iche os pod á se desca gado po los usua ios
co espondien es, lo cual es conseguido g acias al código PHP, pe o no an a si ua se en un di ec o io
expo able.
Un usua io que ha iniciado sesión no pod á e in o mación co espondien e a o o usua io, y mucho
menos accede a uncionalidades ese adas a o o ol que no es el suyo.
Sin inicia sesión, el único di ec o io accesible se á login.php, y si se a a de accede a o a página
“.php” dis in a, se edi igi á a login.php.
En los siguien es subapa ados se de alla cómo se han conseguido.
6.3.1 Pe misos del di ec o io expo able
Es e es el con enido del di ec o io pad e de la he amien a comple a, incluyendo sc ip s, pla a o ma web y
iche os de da os:
Figu a 31.- Di ec o io pad e de la he amien a comple a
Lo único que a a expo a el se ido web es el di ec o io h ml, el cual con iene odos los iche os “.php”
desc i os en 6.2:
Figu a 32.- Con enido del di ec o io h ml
51
51
Sis ema de cali icaciones con ges ión web
La ins alación po de ec o del se ido Apache2 si úa al único di ec o io expo able en / a /www/h ml,
pa a la e sión de Ubun u 14.04. Po ello, el con enido del di ec o io pad e de la he amien a se si ua á en
/ a /www, y odos los iche os “.php” a expo a en / a /www/h ml.
Se mues a a con inuación los pe misos óp imos que end án an o el di ec o io h ml como los iche os
“.php”:
Tabla 1.- Pe misos del di ec o io expo able [13]
Elemen o
Usua io
p opie a io
G upo
p opie a io
O os
(Apache)
Explicación
/ a /www/h ml
Lec u a
Esc i u a
Ejecución
Lec u a
Esc i u a
Ejecución
Ejecución
El p opie a io del di ec o io h ml
debe pode e su con enido (lec u a),
añadi y elimina iche os (esc i u a), y
accede a sus iche os (ejecución).
El se ido Apache debe pode
accede a los iche os con enidos
(ejecución), pe o no puede lis a sus
iche os (no lec u a) ni modi ica lo (no
esc i u a).
/ a /www/h ml/*.php
Lec u a
Esc i u a
Lec u a
Esc i u a
Lec u a
El p opie a io de los iche os debe
pode e el con enido de los mismos
(lec u a) y modi ica lo (esc i u a). No
equie e pe miso de ejecución, al no
a a se de iche os ejecu ables.
El se ido Apache debe pode
accede al con enido de los mismos
(lec u a), pe o no iene po qué
modi ica lo (no esc i u a). Igualmen e,
no equie e de pe miso de ejecución.
6.3.2 Ubicaciones no expo adas
./co ec o CALIF: con iene odo lo que necesi a el sc ip co ec o CALIF.sh pa a unciona . Aquí se
ca gan los di ec o ios comp imidos con exámenes de solución abie a de los cuales se quie e p ocesa
las cali icaciones. Es aquí ambién donde se descomp ime el mismo y donde se o ganizan los
subdi ec o ios co espondien es a cada alumno (pa a que PHP ue ce su desca ga). Con iene un
subdi ec o io llamado “ es igos” donde se ca gan las imágenes de los es igos escaneados que sube el
adminis ado del sis ema.
./co ec o TEST: con iene odo lo que necesi a el sc ip co ec o TEST.sh pa a unciona . Aquí se
ca gan los di ec o ios comp imidos con exámenes ipo es que se quie e co egi . Es aquí ambién
donde se descomp ime el mismo y donde se o ganizan los subdi ec o ios co espondien es a cada
alumno (pa a que PHP ue ce su desca ga). Con iene un subdi ec o io llamado “ es igos” donde se
ca gan las imágenes de los es igos escaneados que sube el adminis ado del sis ema.
./genCab: con iene odo lo que necesi a el sc ip genCab.sh pa a unciona . Es en es e di ec o io
donde se gua dan las cabece as que se an gene ando, a donde accede el código PHP pa a lanza las
desca gas de las mismas.
./no as: con iene un iche o “.cs ” po cada examen, con la no a de odos los alumnos p esen ados al
mismo.
./lis as: con iene un iche o “.xls” po cada con oca o ia, con la lis a de los alumnos asociada a la
misma.
Fiche os “./*.cs ”: almacenan in o mación de asigna u as, con oca o ias, exámenes de solución
abie a y ipo es , p o eso es y ole ancia de co ección (según se indicó en 3.3).
Pla a o ma web
52
Fiche o “./Plan illaExamen.docx”: plan illa que u iliza án los p o eso es pa a gene a sus exámenes,
con espacio pa a la inse ción de la cabece a. No se expo a di ec amen e, pe o PHP o za á su
desca ga desde es a ubicación cuando se solici e.
6.3.3 Dis inción de oles en el acceso a páginas
El a ay $_SESSION almacena la secuencia p o si ha iniciado sesión un p o eso , o alum si la sesión
pe enece a un alumno. La limi ación en cuan o a oles iene en cuen a es a dis inción:
Si un alumno p e ende en a a la página de un p o eso , se le edi igi á au omá icamen e a
home_alumno.php.
//Si se ha iniciado sesion, se comp ueba que no haya sido un alumno
$pos = s pos($_SESSION['use name'], 'alum');
i ($pos === alse) {
//Si no ue un alumno, se comp ueba que ue un p o eso
$pos = s pos($_SESSION['use name'], 'p o ');
i ($pos === alse) {
//Si no ue un p o eso , ue un adminis ado
heade ("Loca ion:home_admin.php");
} else{
$DNI=subs ($_SESSION['use name'], 0, -4);
}
} else {
//Si ue un alumno se le edi ige a home_alumno
heade ("Loca ion:home_alumno.php");
}
Si un p o eso p e ende en a a la página de un alumno, se le edi igi á au omá icamen e a
home_p o eso .php.
//Si se ha iniciado sesion, se comp ueba que no haya sido un p o eso
$pos = s pos($_SESSION['use name'], 'p o ');
i ($pos === alse) {
//Si no ue un p o eso , se comp ueba que ue un alumno
$pos = s pos($_SESSION['use name'], 'alum');
i ($pos === alse) {
//Si no es ni alumno ni p o eso , ue admin
heade ("Loca ion:home_admin.php");
} else{
$DNI=subs ($_SESSION['use name'], 0, -4);
}
} else {
//Si ue un p o eso se le edi ige a home_p o eso
heade ("Loca ion:home_p o eso .php");
}
53
53
Sis ema de cali icaciones con ges ión web
Si no se ha iniciado sesión, cualquie página a la que se in en e en a edi ige a login.php.
//Si no se habia iniciado sesion, se uel e a login.php
i (!isse ($_SESSION['use name'])){
heade ("Loca ion:login.php");
} else {
...
}
Si se ha iniciado sesión y se a a de en a a login.php se edi ige au omá icamen e a la home
co espondien e, dependiendo del ol del usua io que haya iniciado sesión.
//Si ya es aba la sesion iniciada se accede di ec amen e a la web
i (isse ($_SESSION['use name'])){
heade ("Loca ion:home_alumno.php");
/* Si se ha iniciado sesión se edi ige a home_alumno.php. Si se a a de un alumno
se queda á en dicha página, y si se a a de o o ipo de ol, se le edi igi á a
su ol co espondien e desde home_alumno.php, como ya se ha is o en los pun os
p ime o y segundo de es a enume ación. */
}
6.3.4 Con idencialidad de exámenes y cabece as de alumnos
De lanza la desca ga de un examen de un alumno se enca ga el iche o desca ga _examen.php. Al mismo
se accede cuando un alumno pulsa en el bo ón Desca ga examen (que solo apa ece si es á pe mi ida la
desca ga del examen), edi igiéndose a una URL del siguien e ipo (mé odo GET [14]):
desca ga _examen.php? ipo=CALIF/TEST&DNI=XXXXXXXX&exam=ID_EXAMEN
CALIF/TEST: si el examen es de solución abie a es e campo oma á el alo CALIF, y si es ipo
es ald á TEST.
XXXXXXXX: núme o de DNI del alumno que quie e desca ga su examen.
ID_EXAMEN: alo del iden i icado del examen (en decimal) asociado a la con oca o ia que el
alumno es á consul ando.
Pod ía da se el caso de que un alumno modi ica a dicha URL con la in ención de pode desca ga algún
examen de o o compañe o (siemp e y cuando conozca su DNI). Pa a e i a es a posibilidad, cob a
impo ancia el a ay $_SESSION de PHP. En es e se almacena, en e o as cosas, el alo del DNI del usua io
que ha iniciado sesión. En desca ga _examen.php se comp ueba si el DNI almacenado en $_SESSION
coincide con el que se ecibe como pa áme o po el mé odo GET, y solo en ese caso se pe mi i á la
desca ga.
Algo pa ecido es lo que iene luga en el iche o desca ga _cabece a_alumnos.php (llamado al pulsa , si
es á disponible, el bo ón Desca ga cabece a), cuyo modo de acceso es simila
desca ga _cabece a_alumnos.php? ipo=CALIF/TEST&DNI=XXXXXXXX&exam=ID_EXAMEN
y ambién es p io i a io p ese a la con idencialidad de las cabece as de los exámenes de los dis in os
alumnos.
55
7 VALORACIÓN DE LA SOLUCIÓN Y
CONCLUSIONES
n es a sección se a a ealiza una p ime a alo ación de la he amien a desa ollada y su uncionalidad
comple a, la cual a iende a cie os pa áme os que se han conside ado de in e és pa a el se icio que se
quie e o ece .
En p ime luga , se a a alo a el iempo que se in ie e en p ocesa un examen. Seguidamen e se
comen a án unas líneas ace ca de la segu idad de la pla a o ma web. Po úl imo, se expond á el único caso de
allo de ec ado en las p uebas que se han ido ealizando du an e el p oceso de desa ollo.
7.1 Tempo ización de co eción
Los sc ip s co ec o TEST.sh y co ec o CALIF.sh, uncionando bajo un en o no Linux ins alado
di ec amen e sob e una máquina ísica (sin i ualiza ) In el Co e i5 3.20 GHz 4GB DDR3, in ie en un
iempo en p ocesa una cabece a que oscila en e los 15 y los 20 segundos. Se ha comp obado que los
comandos de búsqueda de es igos (compa e -subimage-sea ch) y de ex acción y comp obación de
casillas (con e -ex ac […], con e -colo space G ay […] e iden i y - e bose […]) epe idos en an as
ocasiones como casillas se engan que comp oba , ienen un peso impo an e en el iempo de co ección. Es
po ello po lo que se deduce que di ícilmen e se pod ía educi el iempo de co ección, al menos u ilizando
los comandos de ImageMagick Con e .
Po o o lado, menciona que ampoco se a a de un iempo excesi o. Teniendo ambién en cuen a que la
in e sión en ha dwa e especial de gene ación y lec u a de o mula ios ha sido nula, podemos cali ica nues a
solución como acep able, en lo que a iempo de co ección se e ie e.
7.2 Segu idad
La pla a o ma web cumple con las pau as ma cadas en 6.3, las cuales son p oduc o de la aplicación del
sen ido común. No obs an e, la simple idea inicial de que los alumnos accedan u ilizando DNI y UVUS es
ya una ulne abilidad, pues o que es ácil deduci el UVUS de un alumno sabiendo su nomb e comple o, y su
DNI puede se encon ado en alguna lis a de clase de alguna o a asigna u a que publique el p opio p o eso
de la misma.
E
«Si piensas que los usua ios de us p og amas son
idio as, sólo los idio as usa án us p og amas».
- Linus To alds -
Valo ación de la solución y conclusiones
56
Desde el pun o de is a écnico, pod ía ob ene se un g ado más de segu idad aplicando las siguien es
medidas:
U iliza una conexión segu a (HTTPS) pa a e i a a aques Man In The Middle en los que el a acan e
pueda consegui una cla e de acceso o oba una sesión (Session Hijacking [15]) de o o usua io.
Ci a odas las con aseñas que se almacenen en el se ido . Ac ualmen e pod ía se iable con el
iche o de con aseñas p o eso es.cs , pe o no con las lis as de alumnos, pues o que siemp e el
usua io se á el núme o de DNI y la con aseña el UVUS, da os que se consul an di ec amen e en las
lis as que sube el p o eso . Si se pe mi ie a a los alumnos modi ica sus con aseñas de acceso sí
end ía sen ido almacena la misma ci ada.
7.3 Caso de allo
Se ha comp obado que si la imp esión no alcanza un mínimo de calidad, pueden exis i desplazamien os en
la misma, como se mues a a con inuación:
Figu a 33.- Imp esión en “modo ápido” ealizada con Epson S ylus SX130
En la igu a se esal a un allo de imp esión consis en e en un desplazamien o e ical que da luga a la
apa ición de una línea en blanco. Es e allo jun o a o os de meno escala (que ambién pueden ap ecia se en la
p opia igu a) dan luga a que los sc ip s de co ección no encuen en las casillas exac amen e en la posición en
la que debe ían apa ece . Po an o, puede se que se es é leyendo sob e una línea delimi ado a de casilla en
ez de sob e la casilla en sí, conside ando como ma cada una casilla que no es á ma cada.
Como puede e se, la secuencia que ellena el alumno es:
DDDDDDDDDDAAAAAAAAAA
No obs an e, la secuencia que de ec a la he amien a al p ocesa la cabece a es:
DDDDDDDDDBAAAAAAAAAA
57
57
Sis ema de cali icaciones con ges ión web
De ini i amen e, es o se debe a que cuando el sc ip co ec o TEST.sh se ha posicionado sob e la opción B
de la p egun a 10, ealmen e lo ha hecho ocupando un ozo de la línea supe io de la p opia casilla, como se
mues a en la siguien e imagen:
Figu a 34.- Ex acción de ec uosa de una casilla de ma ca
La media de onos de g ises de ec ada de uel e un alo 0.618101, el cual es meno a la ole ancia
u ilizada pa a el escáne de p ueba (Epson S ylus SX130 con ole ancia 0.7). Po es e mo i o es po el que se
ha omado como ma cada una casilla que ealmen e no lo es á.
El que se ha expues o aquí ha sido el único caso de allo de ec ado. El uncionamien o se á co ec o
siemp e y cuando no se ealice una imp esión en modo ápido en una imp eso a de cabezales mecánicos.
No hay p oblema si se u ilizan imp eso as de óne , como las que disponen en cualquie copis e ía.
7.4 Conclusiones e implan ación
Se ha comp obado que el uncionamien o de nues a he amien a es el deseado si la imp esión cumple unos
equisi os mínimos de calidad, los cuales no son más exigen es que los deseables en cualquie ipo de
documen o. El iempo de co ección se ha op imizado a una ma ca acep able, la cual di ícilmen e pod ía se
mejo ada u ilizando uncionalidades de ImageMagick Con e .
La pla a o ma web cumple con las medidas de segu idad que se decidie on implemen a , las cuales
esponden adecuadamen e o eciendo la p o ección eque ida sob e da os con idenciales.
Con odo es o, podemos deci que se a a de una buena solución, al menos de momen o, a al a de un
pe iodo de uncionamien o en p uebas en el escena io del clien e en el cual se p oduci á la implan ación
de ini i a.
Pa a la con igu ación en el equipo donde se ealice la implan ación hay que ene en cuen a cie os de alles:
Se equie e que Apache enga pe miso de esc i u a en los di ec o ios en los que se an a ealiza
subidas de iche os (co ec o TEST, co ec o CALIF y lis as). Es o se consigue con
chmod a+w co ec o TEST co ec o CALIF lis as
en el di ec o io p incipal de la he amien a
La inse ción y eliminación de in o mación en los iche os de ex o en o ma o “.cs ” equie e
ambién pe miso de esc i u a sob e los mismos
chmod a+w *.cs (en el di ec o io p incipal)
En la ins alación o iginal de PHP5 solo se pe mi e subi iche os cuyo amaño no exceda 2 MB.
Es e alo iene de e minado en el iche o /e c/php5/apache2/php.ini con la e ique a
upload_max_ ilesize, y con iene modi ica lo de mane a adecuada pa a que sopo e la subida
de exámenes sin ningún ipo de p oblema. Se equie en pe misos de supe usua io pa a ealiza la
modi icación y einicia Apache (sudo se ice apache2 es a ).
Anexo A: Manual pa a el p o eso
64
Si en amos a la página de la asigna u a Redes Mul ise icio, se end á un lis ado de las con oca o ias que
hay disponibles de la asigna u a (inicialmen e no hay ninguna).
Podemos c ea una nue a con oca o ia clicando en el bo ón Ag ega una con oca o ia. Vamos a
p ocede a da de al a la e ce a con oca o ia del cu so 2015-2016, la cual consis i á en un examen ipo es ,
con la lis a asociada lis a_ edes.xls, que se mues a a con inuación:
Rellenamos el o mula io que apa ece con la in o mación que se pide y pulsamos el bo ón Con inua .
Apa ece un nue o o mula io en el que se nos solici a in o mación ace ca de cuán as páginas end á el
examen, cuán as opciones de espues a ienen cada p egun a (en e 2 y 4), y cuál es la secuencia de espues as
co ec as (no más de 40 p egun as). Vamos a p oba con un examen de una página, 15 p egun as ipo es y 3
opciones de espues a (A, B y C), con solución AAAAABBBBBCCCCC.
65
65
Sis ema de cali icaciones con ges ión web
En es e mismo o mula io se pide la con igu ación de isualización po pa e de los alumnos. Vamos a
pe mi i que los alumnos que se p esen en a es a con oca o ia puedan e la secuencia de espues as co ec as,
la secuencia de espues as que ellos mismos han dado, los núme os de acie os y allos ob enidos, la
cali icación calculada y la imagen de la cabece a de su examen en la que han plasmado sus espues as, pe o no
las páginas de su examen comple o.
Finalmen e, pulsamos en Ag ega .
Como emos, ya nos apa ece la con oca o ia ag egada en el lis ado de la asigna u a Redes Mul ise icio
(1990026).
Podemos desca ga nos la cabece a pulsando en Desca ga cabece a, en la que comp obamos que el
iden i icado de examen es el 1 (como se indica en la imagen an e io ), y hay espacio pa a esponde 15
p egun as con 3 opciones.
Anexo A: Manual pa a el p o eso
66
Es a se ía la cabece a que el p o eso debe ía inse a en el luga indicado de la plan illa en “.docx” cuando
edi e el examen.
Pulsando sob e Ve alumnos se nos mues a un lis ado con los alumnos asociados a la con oca o ia de la
asigna u a, que se co esponde con los ca gados a pa i del iche o lis a_ edes.xls mos ado an e io men e.
Al en a en el apa ado Co egi se solici a un iche o “.zip” que con enga odos los exámenes de los
alumnos escaneados, cuya ca ga y p ocesado se inicia al pulsa en el bo ón Ca ga . Es e p oceso iene una
du ación ele ada (se es ima una demo a de en e 15 y 20 segundos po examen). No obs an e, a pa i de aquí
no se equie e juicio humano en ningún momen o, pudiendo incluso ce a se la sesión. Las cali icaciones i án
apa eciendo en el sis ema con o me se ayan p ocesando los exámenes.
Puede in oduci se un alo pa a la ole ancia de co ección dis in o del alo po de ec o es ablecido desde
la cuen a de adminis ado . En nues o caso no in oduci emos ningún alo , omándose el alo po de ec o
con igu ado a 0.7, que ha demos ado un co ec o uncionamien o u ilizando la mul i unción Epson S ylus
SX130 an o pa a imp imi como pa a escanea .
67
67
Sis ema de cali icaciones con ges ión web
A pa i de es e momen o se pod án consul a las cali icaciones de los alumnos (con o me ayan siendo
p ocesados sus exámenes) en el apa ado Ve Cali icaciones co espondien e a la con oca o ia en cues ión.
Una ez p ocesados odos los exámenes se iene que los que no con ienen ninguna no a no se han p esen ado a
la con oca o ia. Se obse a, además, un lis ado de los exámenes cuyo DNI de ec ado no apa ece en la lis a de
la con oca o ia (“hué anos”), además de una abla con es adís icas ela i as a la co ección de es e examen
en conc e o. Finalmen e, se iene la posibilidad de expo a la lis a de cali icaciones a o ma o “.xls”, más
manejable pa a el p o eso .
Anexo A: Manual pa a el p o eso
68
Puede obse a se que el DNI que no se ha encon ado en la lis a (02468124) es muy simila al del alumno
José Díaz Díaz (02468024), po an o puede deduci se ácilmen e que es e alumno se ha equi ocado
in oduciendo su DNI en la cabece a del examen. Es e e o es ácilmen e subsanable debido a es a posibilidad
que o ece la pla a o ma web.
Pa a con inua es e manual, amos a c ea ambién como ejemplo la e ce a con oca o ia del cu so 2015-
16 de la asigna u a P oyec os de Telemá ica, que end á un examen de ipo cali icable de una página con cinco
cues iones co as que deben se e aluadas po sepa ado ponde adas odas po igual (20%). La lis a asociada
se á la siguien e (lis a_p oyec os.xls):
Las opciones de isualización pa a es a con oca o ia pe mi i án al alumno e su no a en cada una de las
cinco pa es que con o ma el examen, la no a inal del mismo as aplica la ponde ación de cada una de las
pa es, y ealiza una desca ga del examen al comple o.
69
69
Sis ema de cali icaciones con ges ión web
La cabece a a inse a en los exámenes se mues a a con inuación:
Una ez edi ados, imp imidos, ealizados los exámenes po los alumnos, cali icados po el p o eso y
escaneados, se p ocede a la co ección, es ableciendo la p ecisión de la misma a dos decimales.
Anexo A: Manual pa a el p o eso
70
Se mues an a con inuación las cali icaciones p ocesadas (es a ez ningún alumno ha e ado in oduciendo
su núme o de DNI) jun o a las es adís icas de co ección:
Una ez se engan las cali icaciones p ocesadas, los alumnos pod án accede al sis ema (según se indica en
el anexo co espondien e) pa a consul a sus cali icaciones y exámenes.
71
ANEXO B: MANUAL PARA EL ADMINISTRADOR
a cuen a de adminis ado es accesible a a és de los c edenciales de acceso adminis ado (usua io) y
FJPD-TFG-2015 (con aseña). Al accede se iene inmedia amen e la siguien e is a:
Como emos, el adminis ado iene cua o posibilidades asociadas: ges iona p o eso es, ges iona
asigna u as, es ablece la ole ancia de co ección ( eco demos que la ole ancia e a el alo de la media de
g ises de una casilla que di e encia en e ma cada y no ma cada) y ca ga los es igos escaneados (pa a la
búsqueda de cabece as).
Si en la is a p incipal de adminis ado accedemos a Ve lis ado ac ual de p o eso es, obse a emos
que inicialmen e es á acío. Vamos a inse a al p o eso u ilizado como ejemplo pa a el anexo an e io : Ra ael
Ma ía Es epa Alonso, con DNI 11111111 y con aseña qwe y. Pa a ello hacemos clic en Ag ega un
p o eso y ellenamos el o mula io con los da os pedidos, pulsando en Ag ega al conclui .
Aho a ya se e á al p o eso en la lis a de p o eso es, y el mismo pod á accede con su DNI y la cla e de
acceso que indiquemos. También enemos la posibilidad de elimina lo simplemen e clicando en Elimina
p o eso .
L
Anexo B: Manual pa a el adminis ado
72
Vol emos a la is a p incipal de adminis ado y accedemos a Ve lis ado ac ual de asigna u as, que
obse a emos que inicialmen e ambién es á acío. Vamos a ag ega la asigna u a Redes Mul ise icio de 3º
de GITT con iden i icado 1990026.
Aho a ya se e la asigna u a en el lis ado, y la misma es a á isible pa a los p o eso es, de modo que
pod án asocia con oca o ias a la misma. También enemos la posibilidad de elimina la asigna u a del
sis ema, simplemen e clicando sob e Elimina asigna u a.
Ag egamos ambién la asigna u a P oyec os de Telemá ica de 4º de GITT con iden i icado 1990061.
Vol emos a la is a p incipal de adminis ado y en amos en Es ablece ole ancia de co ección po
de ec o. Vemos como se nos mues a un campo pa a in oduci el nue o alo de la ole ancia (en e 0 y 1),
jun o al alo ac ual (es ablecido a 0.7, óp imo u ilizando la mul i unción Epson S ylus SX130, en la que se
han desa ollado las p uebas).
73
73
Sis ema de cali icaciones con ges ión web
Po úl imo, clicamos sob e Ca ga es igos escaneados en la is a p incipal de adminsi ado . Se
mues a un o mula io pa a ca ga los es igos izquie do y de echo que se u iliza án en la búsqueda de los
mismos en las imágenes de los exámenes escaneados.
Examinamos en busca del es igo izquie do.
Examinamos en busca del es igo de echo.
Y inalmen e se pulsa en ca ga .