Escola Tècnica Supe io d’Enginye ia In o mà ica
Uni e si a Poli ècnica de València
He amien a de análisis semán ico de la
desc ipción de esul ados de ap endizaje
en los planes de es udio uni e si a io
P oyec o Final de Ca e a
Ingenie ía In o má ica
Au o : Pablo Fuen es Rod íguez
Di ec o : José Luis Poza Luján
Di ec o : José Albe o Coneje o Casa es
28 de juliol de 2016
Resumen
El diseño de los planes de es udio, especialmen e uni e si a ios, se basa en las
compe encias que se espe a que los alumnos adquie an. La adquisición de las
compe encias equie e de una se ie de ac i idades o ma i as (an es sólo e an
las clases eó icas; aho a hay p ác icas, abajos, e c.). Po medio de los ac os
de e aluación (an es sólo se hacía po exámenes), se comp ueba el ni el de desa-
ollo que se ha log ado de cada compe encia. Pa a pode ayuda al p o eso
ace ca de qué ipo de compe encia se elaciona con cada ac i idad o ma i a y
con cada ac o de e aluación, se p opone es e p oyec o.
El p oyec o consis e en la p og amación de algo i mos de análisis semán ico
que pe mi an al p o eso de e mina , de o ma au omá ica, las compe encias
cubie as po su asigna u a y, a los esponsables de í ulos, comp oba la cohe-
encia de los planes de es udio basados en compe encias.
Palab as cla e: Compe encias, CMS, ges ión, so wa e, educación
Resum
El disseny dels plans d’es udi, especialmen uni e si a is, es basa en les compe-
ències que s’espe a que els alumnes adqui isquen. L’adquisició de les compe-
ències eque eix d’una sè ie d’ac i i a s o ma i es (abans sols e en les classes
eò iques; a a hi ha p àc iques, eballs, e c.). Mi jançan els ac es d’a aluació
(abans sols es eia pe exàmens), es comp o a el ni ell de desen olupamen que
s’ha adqui i de cada compe ència. Pe a pode ajuda al p o esso sob e quin
ipus de compe ència es elaciona amb cada ac i i a o ma i a i amb cada ac e
d’a aluació, es p oposa aques p ojec e.
El p ojec e consis eix en la p og amació d’algo ismes d’anàlisi semàn ica
que pe me an al p o esso de e mina , de o ma au omà ica, les compe ènci-
es cobe es pe la seua assigna u a i, als esponsables de í ols, comp o a la
cohe ència dels plans d’es udi basa s en compe ències.
Palab as cla e: Compe ències, CMS, ges ió, so wa e, educació
Abs ac
The design o a syllabus, especially o uni e si y deg ees, is based on he ex-
pec ed achie emen o compe ences by he s uden s. Thei acquisi ions equi e
a se ies o aining ac i i ies (be o e, only heo e ical classes, and now, also
p ac ices, p ojec s, e c. a e conside ed). The le el o achie emen in he de-
elopmen o each compe ence can be measu ed by pe o ming e alua ion ac s.
Be o e, hese ac s we e only exams, bu now a b oad ange o ac s is conside ed.
This p ojec is in ending o helping eache s o ela e compe ences wi h
aining ac i i ies and e alua ion ac s. I in ol es p og amming o seman ic
analysis algo i hms ha allow eache s o de e mine, au oma ically, which com-
pe encies a e co e ed by hei subjec s, and o allow he deg ees manage s o
check he consis ency o he cu iculum o he deg ee based on compe encies.
Palab as cla e: Compe encies, CMS, managemen , so wa e, educa ion
Índice gene al
Lis a de igu as 3
Lis a de ablas 4
1 In oducción 6
1.1 Mo i ación .............................. 6
1.2 Obje i os ............................... 6
1.3 Desc ipcion del documen o . . . . . . . . . . . . . . . . . . . . . 6
2 Es udio del en o no 8
2.1 In oducción.............................. 8
2.2 Sis emas de ges ión de compe encias . . . . . . . . . . . . . . . . 9
2.2.1 NasaCMS .......................... 9
2.2.2 CVPlusVisual ........................ 9
2.2.3 Ges People .......................... 11
2.2.4 IonCUDOS .......................... 12
2.3 Análisis ................................ 12
2.3.1 Análisis cuan i a i o . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 Análisis cuali a i o . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Sín esis ................................ 13
2.5 Tecnología a u iliza . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6 Conclusiones ............................. 14
3 Especi icación de equisi os 16
3.1 In oducción.............................. 16
3.1.1 P opósi o ........................... 16
3.1.2 Ámbi o ............................ 16
3.1.3 Pe sonal in oluc ado . . . . . . . . . . . . . . . . . . . . . 16
3.1.4 De iniciones, ac ónimos y ab e ia u as . . . . . . . . . . . 17
3.2 Desc ipción gene al . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 Pe spec i a del p oduc o . . . . . . . . . . . . . . . . . . . 18
3.2.2 Funcionalidad del p oduc o . . . . . . . . . . . . . . . . . 18
3.2.3 Ca ac e ís icas del usua io . . . . . . . . . . . . . . . . . . 19
3.2.4 Res icciones ......................... 19
3.3 Requisi os especí icos . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.1 Requisi os no uncionales . . . . . . . . . . . . . . . . . . 20
3.3.2 Requisi os uncionales . . . . . . . . . . . . . . . . . . . . 21
3.3.3 O os equisi os . . . . . . . . . . . . . . . . . . . . . . . . 22
2
Índice gene al Índice gene al
3.3.4 Conclusiones ......................... 22
4 Diseño del sis ema 23
4.1 In oducción.............................. 23
4.2 Especi icación o mal . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.1 Capa p esen ación . . . . . . . . . . . . . . . . . . . . . . 24
4.2.2 Capanegocio......................... 25
4.2.3 Capa pe sis encia . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Conclusiones ............................. 28
5 Implemen ación e implan ación 29
5.1 In oducción.............................. 29
5.2 Implemen ación............................ 29
5.2.1 Capa p esen ación . . . . . . . . . . . . . . . . . . . . . . 29
5.2.2 Capalógica.......................... 33
5.2.3 Capa pe sis encia . . . . . . . . . . . . . . . . . . . . . . . 37
5.3 Implan ación ............................. 37
5.3.1 Ins alación .......................... 38
5.3.2 Ejecución ........................... 39
5.4 Conclusiones ............................. 40
6 Conclusiones 41
6.1 Di icul ades encon adas . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Apo aciones ............................. 42
6.2.1 Tecnológicas ......................... 42
6.2.2 Académicas.......................... 42
6.3 Ampliaciones ............................. 42
3
Índice de igu as
2.1 Cap u a de pan alla del so wa e NASA CMS . . . . . . . . . . . 9
2.2 Cap u a de pan alla del so wa e CVPlus Visual . . . . . . . . . 10
2.3 Cap u a de pan alla del so wa e Ges People . . . . . . . . . . . 11
2.4 Wo k low del so wa e IonCUDOS . . . . . . . . . . . . . . . . . 12
3.1 Casosdeuso ............................. 19
4.1 A qui ec u a p og amación po capas . . . . . . . . . . . . . . . 23
4.2 Diag ama de na egabilidad . . . . . . . . . . . . . . . . . . . . . 24
4.3 P opues a disposición in e az . . . . . . . . . . . . . . . . . . . . 24
4.4 Diag ama secuencia CU01 . . . . . . . . . . . . . . . . . . . . . . 25
4.5 Diag ama secuencia CU02 . . . . . . . . . . . . . . . . . . . . . . 26
4.6 Diag ama secuencia CU03 . . . . . . . . . . . . . . . . . . . . . . 26
4.7 Diag ama secuencia CU04 . . . . . . . . . . . . . . . . . . . . . . 27
4.8 Diag ama en idad elación base de da os . . . . . . . . . . . . . . 27
5.1 Cap u a is a axonomía de Bloom . . . . . . . . . . . . . . . . . 30
5.2 Cap u a is a asigna u as . . . . . . . . . . . . . . . . . . . . . . 31
5.3 Cap u a is a esul ados ap endizaje . . . . . . . . . . . . . . . . 32
5.4 Cap u a is a esul ados ap endizaje en de alle . . . . . . . . . . 33
5.5 Cap u a is a analiza . . . . . . . . . . . . . . . . . . . . . . . . 33
4
Índice de cuad os
2.1 Análisis cuan i a i o . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Análisis cuali a i o . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Ca ac e ís icas del sis ema . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Miemb o Pablo Fuen es . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Miemb o José Luis Poza . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Miemb o Jose Albe o Coneje o . . . . . . . . . . . . . . . . . . . 17
3.4 Casosdeuso ............................. 19
3.5 Requisi o no uncional RE01 . . . . . . . . . . . . . . . . . . . . 20
3.6 Requisi o no uncional RE02 . . . . . . . . . . . . . . . . . . . . 20
3.7 Requisi o no uncional RE03 . . . . . . . . . . . . . . . . . . . . 20
3.8 Requisi o no uncional RE04 . . . . . . . . . . . . . . . . . . . . 20
3.9 Requisi o no uncional RE05 . . . . . . . . . . . . . . . . . . . . 21
3.10 Requisi o uncional RE06 . . . . . . . . . . . . . . . . . . . . . . 21
3.11 Requisi o uncional RE07 . . . . . . . . . . . . . . . . . . . . . . 21
3.12 O os esquisi os RE08 . . . . . . . . . . . . . . . . . . . . . . . . 22
5
Capí ulo 1
In oducción
1.1 Mo i ación
En los planes de es udio diseñados po compe encias se espe a que los alumnos
las adquie an y que es a án cuali icados pa a desempeña un abajo elacionado
con su i ulación.
Es impo an e dispone de he amien as que guíen en la de inición de pla-
nes de es udios basados en compe encias. Es as he amien as pueden aseso a ,
compa ando las compe encias a adqui i con las necesidades del en o no socio-
económico.
La he amien a desa ollada en es e p oyec o es á pensada pa a ayuda a los
p o eso es a o ma mejo o de o ma más cohe en e a las u u as gene aciones de
es udian es. Además de o ien a la docencia a la consecución de compe encias.
1.2 Obje i os
El obje i o de es e p oyec o es desa olla un sis ema que pe mi a a los docen es
de e mina de o ma au omá ica las compe encias cubie as po su asigna u a
en base a las ac i idades o ma i as que el p o eso haya de inido. Es e sis ema
pe mi i á al p o eso asegu a se de que sus ac i idades o ma i as y la o ma
de e alua las co esponde con las compe encias que se han es ablecido pa a
desa olla en su asigna u a en unción de la axonomía de Bloom.
Pa a desa olla es e sis ema se implemen a á un se ido con la base de
da os y el análisis de los da os. Y un clien e que pe mi i á al p o eso in e ac ua
con el se ido y mos a los da os de o ma elegan e y o denada.
1.3 Desc ipcion del documen o
El p esen e documen o es a es uc u ado en 6 capí ulos que de alla án el desa-
ollo del p oyec o. A con inuación se especi ica el con enido de cada capí ulo.
En el capi ulo 2 se han buscado sis emas simila es y analizado pun os ue -
es y ca ac e ís icas deseables a ene ambién es e p oyec o. En el capí ulo 3
6
Capí ulo 2. Es udio del en o no 2.4. Sín esis
1. C1 - In e az web
Pode accede al so wa e con cualquie disposi i o, sis ema ope a i o y
na egado .
2. C2 - O ien ado a la educación
La ges ión de compe encias debe es a des inada al ámbi o de la educación.
3. C3 - Uso de axonomías
U iliza axonomías pa a la clasi icación de las compe encias.
4. C4 - Ac ualizado
Con inua en uso y los desa ollado es siguen man eniendo el p oyec o e
incluyendo mejo as en él.
5. C5 - G a ui o
El uso de la aplicación no iene ningún cos e pa a el usua io.
6. C6 - Open Sou ce
El código uen e es á disponible pa a la comunidad, y pe mi en las apo -
aciones po pa e de e ce os.
Ca ac e ís ica Nasa CMS CVPlus Visual Ges People IonCUDOS
C1 3 7 7 3
C2 7 7 7 3
C3 7 7 7 3
C4 7 3 7 3
C5 7 7 7 7
C6 7 7 7 7
Cuad o 2.1: Análisis cuan i a i o
2.3.2 Análisis cuali a i o
1. D1 - Diseño amigable
In e az g á ica elabo ada y ac ual, siguiendo las úl imas endencias de
diseño.
2. D2 - Mode no
Desa ollado u ilizando los úl imos lenguajes de p og amación y/o ame-
wo ks del me cado.
Ca ac e ís ica Nasa CMS CVPlus Visual Ges People IonCUDOS
D1 7 7 7 7
D2 7 7 7 7
Cuad o 2.2: Análisis cuali a i o
2.4 Sín esis
En base al esul ado del análisis se han ex aído una se ie de ca ac e ís icas
deseables pa a nues o sis ema. Se de allan en la siguien e abla
13
2.5. Tecnología a u iliza Capí ulo 2. Es udio del en o no
Ca ac e ís ica Desc ipción
CA01 - Basado en web El acceso a la aplicación debe se median e
un na egado web compa ible con odos los
sis emas ope a i os.
CA02 - A q. 3 capas La aplicación iene que es a diseñada u ili-
zando una a qui ec u a po capas sepa ando
o almen e la pe sis encia, la lógica y el dise-
ño.
CA03 - REST ul Con la idea de posibles ampliaciones como
aplicación mó il o esc i o io. La o ma de se-
pa a la lógica del diseño es median e un se -
ido REST ul.
CA04 - Uso de axonomías U iliza la axonomía de Bloom pa a la clasi-
icación de los esul ados de ap endizaje.
Cuad o 2.3: Ca ac e ís icas del sis ema
2.5 Tecnología a u iliza
En p ime luga , pa a desa olla la pa e de la is a ( on ed) del p oyec o, se
ha elegido Angula JS [Angb] que es un amewo k ja asc ip con el que pode
c ea complejas aplicaciones web del lado del clien e. U iliza el pa ón MVC y
cuen a con po en es lib e ías que pe mi en, de o ma muy ácil, la conexión con
un se ido REST ul pa a ob ene los da os que mos a al clien e.
A con inuación, pa a la base de da os, se ha elegido Pos g eSQL [Pos] que
es un mo o de base de da os SQL muy u ilizado en los p oyec os Open Sou ce.
Lle a más de 15 años en el me cado, unciona en los sis emas ope a i os más
u ilizados y los lenguajes de p og amación más comunes ienen conec o es pa a
pode abaja con Pos g eSQL.
Finalmen e, pa a la lógica se ha elegido Django [Dja] que es un amewo k de
desa ollo web esc i o en Py hon. Django u iliza una écnica de p og amación
llamada ORM que con ie e los obje os del lenguaje de p og amación en obje os
de la base de da os, y ice e sa. G acias a es a écnica es posible ol ida la
ges ión de la base de da os ya que Django se enca ga de ello. También dispone
de la lib e ía Django REST amewo k [ a] que es una g an he amien a pa a
c ea un se icio REST ul.
2.6 Conclusiones
En base al esul ado de análisis de sis emas simila es, la conclusión p incipal a la
que se ha llegado es que no hay muchas he amien as. Las que hay son an iguas,
sin sopo e y no cumplen las ca ac e ís icas deseadas pa a es e p oyec o.
El único p og ama que iene un g an pa ecido y es u ilizado pa a abaja
en el sec o de la educación es IonCUDOS. Los o os p og amas es án pensa-
dos pa a el sec o emp esa ial y lo único que compa en es la ges ión de las
compe encias.
14
Capí ulo 2. Es udio del en o no 2.6. Conclusiones
Con es os da os se demues a que hay un g an sec o po cub i y que, apa-
en emen e, no se es á abajando en ello (excep o IonCUDOS). Po es a causa,
es una buena idea segui hacia delan e con el p oyec o y dedica le es ue zos.
15
Capí ulo 3
Especi icación de equisi os
3.1 In oducción
El sis ema pe mi i á al equipo docen e consul a la axonomía de Bloom, así
como, isualiza los esul ados de ap endizaje de las asigna u as. Además, cabe
la posibilidad de añadi nue os esul ados de ap endizaje.
El obje i o del sis ema es analiza los esul ados de ap endizaje y clasi ica los
en una ca ego ía de la axonomía de Bloom (en el ni el cogni i o). Así, a pa i
del análisis, el p o eso pod á sabe si sus esul ados de ap endizaje y sus ac os
de e aluación cub i án las compe encias asignadas a su asigna u a.
3.1.1 P opósi o
Con la especi icación de equisi os se p e ende de e mina comple amen e la
desc ipción del sis ema que se a a desa olla . En la p ime a pa e se habla á
del ámbi o, pe sonal in oluc ado, de iniciones, ac ónimos y ab e ia u as; en la
segunda pa e, se ha á una desc ipción gene al del p oduc o dejando pa a la
pa e inal la especi icación de equisi os.
3.1.2 Ámbi o
Es e p oyec o es un componen e de o o p oyec o pilo o in e no de la ETSINF
más g ande llamado E alua2.
3.1.3 Pe sonal in oluc ado
En es e apa ado se a a mos a a las pe sonas in oluc adas en el p oyec o,
indicando:
•Nomb e: Nomb e de la pe sona in oluc ada en el p oyec o.
•Rol: Papel que desesa olla es a pe sona en el p oyec o.
•Ca ego ía p o esional: Ca go que ocupa la pe sona
•Responsabilidades: De que a eas se enca ga
16
Capí ulo 3. Especi icación de equisi os 3.1. In oducción
•In o mación de con ac o: Di ección de co eo pa a pode con ac a con
esa pe sona
Nomb e Pablo Fuen es Rod íguez
Rol Desa ollado
Ca ego ía p o esional Es udian e
Responsabilidades Desa olla el sis ema
In o mación de con ac o [email p o ec ed]
Cuad o 3.1: Miemb o Pablo Fuen es
Nomb e José Luis Poza Luján
Rol Di ec o
Ca ego ía p o esional P o eso
Responsabilidades Di igi el p oyec o
In o mación de con ac o jop[email p o ec ed] .es
Cuad o 3.2: Miemb o José Luis Poza
Nomb e José Albe o Coneje o Casa es
Rol Di ec o
Ca ego ía p o esional P o eso
Responsabilidades Di igi el p oyec o
In o mación de con ac o [email p o ec ed]
Cuad o 3.3: Miemb o Jose Albe o Coneje o
3.1.4 De iniciones, ac ónimos y ab e ia u as
•UPV: Uni e sidad Poli écnica de Valencia.
•ETSINF: Escuela Técnica Supe io de Ingenie ía In o má ica de la UPV.
•IEEE: Ins i u e o Elec ical & Elec onics Enginee s.
•Taxonomía: Ciencia que a a de los p incipios, mé odos y ines de la
clasi icación. Se aplica pa a la o denación je a quizada y sis emá ica.
•Resul ado de ap endizaje: Decla ación de lo que el es udian e se espe a
que conozca, comp enda y sea capaz de hace al inaliza un pe íodo de
ap endizaje.
•Ac o de e aluación: Ta ea que ealiza el es udian e pa a se e aluado.
•Sis ema: P oduc o so wa e, esul ado de es e p oyec o inal de ca e a.
•REST: Es un es ilo de a qui ec u a so wa e pa a se ido es web que
u iliza pe iciones HTTP pa a ob ene o indica la ejecución de ope aciones
sob e los da os del se ido .
•REST ul: Sis ema que sigue los p incipios REST
17
3.2. Desc ipción gene al Capí ulo 3. Especi icación de equisi os
•F amewo k: Es una es uc u a concep ual y ecnológica con módulos
o a e ac os ya de inidos que si en de base pa a la o ganización y el
desa ollo de un desa ollo so wa e.
•JSON: Es un o ma o de ex lige o pa a el in e cambio de da os.
•HTML: Lenguaje de ma cada que se u iliza pa a la elabo ación de páginas
web.
•CSS: Lenguaje usado pa a de ini y c ea el es ilo y la p esen ación de un
documen o HTML.
•Ja asc ip : Lenguaje de p og amación in e p e ado, u ilizado en la pa e
del na egado web, que pe mi e mejo as de uncionalidad en las páginas
web.
•Angula JS: F amewo k Ja asc ip que se u iliza á en es e p oyec o.
•Py hon: Lenguaje de p og amación in e p e ado cuya iloso ía hace hin-
capié en una sin axis que a o ezca el código legible.
•Django: F amewo k Py hon que se u iliza á en es e p oyec o.
•IDE: En o no de desa ollo dinámico, aplicación in o má ica que p opo -
ciona se icios in eg ales pa a acili a le al p og amado el p oceso del
desa ollo so wa e
3.2 Desc ipción gene al
3.2.1 Pe spec i a del p oduc o
El sis ema se a a de una in e az web que se enca ga de mos a los da os al
usua io de o ma elegan e y o denada. Los da os se ob ienen median e pe iciones
a un se ido REST ul que con iene la lógica y la base de da os. A con inuación
se an a de alla los equisi os necesa ios que se han de cumpli pa a que el
sis ema sea conside ado un p oduc o álido.
3.2.2 Funcionalidad del p oduc o
Como se iene indicando du an e odo el documen o, el p oyec o es á en ocado
al pe sonal docen e de la UPV. Así que solo se dispond á de un ipo de usua io
en el sis ema (p o eso ) y, a con inuación, median e diag amas de casos de uso,
se indica án las unciones que el p o eso pod á ealiza :
18
Capí ulo 3. Especi icación de equisi os 3.3. Requisi os especí icos
Figu a 3.1: Casos de uso
Caso de uso Desc ipción
CU01 El p o eso pod á accede y busca odas las asigna u as de
la ca e a ag upadas po cu sos. La is a ha á una llamada al
se ido el cual ha á odos los cálculos necesa ios y de ol e á
los da os pa a que puedan se pin ados.
CU02 El p o eso pod á accede y busca odos los e bos de la a-
xonomía ag upados po las ca ego ías a las que pe enecen.
CU03 El p o eso pod á e el lis ado de esul ados de ap endizaje
de cada asigna u a, il a lo y consul a el esul ado de ap en-
dizaje que desee.
CU04 El p o eso pod á subi un iche o en o ma o JSON con e-
sul ados de ap endizaje pa a se analizado y clasi icado po el
se ido y pode e el esul ado po pan alla.
Cuad o 3.4: Casos de uso
3.2.3 Ca ac e ís icas del usua io
El sis ema solo cuen a con un ipo de usua io, el usua io p o eso quien pod á
ealiza oda la uncionalidad que ha sido exp esada en el apa ado an e io
3.2.2
3.2.4 Res icciones
Pa a pode u iliza el sis ema no exis en es icciones pe o sí hay es equisi os
a cumpli . Dispone de un o denado con sis ema ope a i o Windows, Linux o
Mac, el o denado debe ene un na egado web mode no y debe es a conec ado
a In e ne .
3.3 Requisi os especí icos
El sis ema que se a a desa olla se a a de un p o o ipo, pues o que dispone
de pocos equisi os y odos son al os o esenciales. En el úl imo capí ulo se
19
3.3. Requisi os especí icos Capí ulo 3. Especi icación de equisi os
de alla án las posibles ampliaciones de es e p o o ipo.
3.3.1 Requisi os no uncionales
Núme o RE01
Nomb e Accesibilidad web
Tipo Usua io 3Sis ema Funcional Res icción
Desc ipción El sis ema ha de adap a se a odas las pan allas de o denado
pe mi iendo que la expe iencia del usua io sea sa is ac o ia.
P io idad 3Al a/Esencial Media/Deseado Baja/Opcional
Cuad o 3.5: Requisi o no uncional RE01
Núme o RE02
Nomb e Desa ollo de la is a
Tipo Usua io 3Sis ema Funcional Res icción
Desc ipción La is a del sis ema iene que es a desa ollada con HTML,
CSS y Ja asc ip . El amewo k Ja asc ip a u iliza debe se
Angula JS
P io idad 3Al a/Esencial Media/Deseado Baja/Opcional
Cuad o 3.6: Requisi o no uncional RE02
Núme o RE03
Nomb e Desa ollo de la lógica
Tipo Usua io 3Sis ema Funcional Res icción
Desc ipción La lógica del sis ema iene que es a desa ollada en el lengua-
je de p og amación Py hon. Conc e amen e con el amewo k
Django.
P io idad 3Al a/Esencial Media/Deseado Baja/Opcional
Cuad o 3.7: Requisi o no uncional RE03
Núme o RE04
Nomb e Desa ollo de la pe sis encia
Tipo Usua io 3Sis ema Funcional Res icción
Desc ipción Pa a la capa de pe sis encia el sis ema iene que u iliza el
sis ema de ges ión de base de da os elacionales Pos g eSQL.
P io idad 3Al a/Esencial Media/Deseado Baja/Opcional
Cuad o 3.8: Requisi o no uncional RE04
20
Capí ulo 3. Especi icación de equisi os 3.3. Requisi os especí icos
3.3.2 Requisi os uncionales
Núme o RE05
Nomb e Lis ado de asigna u as
Tipo Usua io Sis ema 3Funcional Res icción
Desc ipción El usua io pod á consul a odas las asigna u as de la ca e a
ag upadas po cu sos, además se dispond á de un buscado con
el que pode il a las asigna u as.
P io idad 3Al a/Esencial Media/Deseado Baja/Opcional
Cuad o 3.9: Requisi o no uncional RE05
Núme o RE06
Nomb e Taxonomía de Bloom
Tipo Usua io Sis ema 3Funcional Res icción
Desc ipción El usua io pod á consul a odos e bos de la axonomía de
Bloom ag upados po ca ego ía, además se dispond á de un
buscado con el que pode il a los e bos.
P io idad 3Al a/Esencial Media/Deseado Baja/Opcional
Cuad o 3.10: Requisi o uncional RE06
Núme o RE07
Nomb e Analiza iche o esul ados de ap endizaje
Tipo Usua io Sis ema 3Funcional 3Res icción
Desc ipción El usua io, desde la in e az, pod á subi un iche o en o ma o
JSON al se ido . El se ido lo analiza á y de ol e á el esul-
ado a la is a pa a que pueda se mos ado de o ma elegan e
y o denada al usua io.
P io idad 3Al a/Esencial Media/Deseado Baja/Opcional
Cuad o 3.11: Requisi o uncional RE07
21
3.3. Requisi os especí icos Capí ulo 3. Especi icación de equisi os
3.3.3 O os equisi os
Núme o RE08
Nomb e Copias de segu idad
Tipo Usua io 3Sis ema Funcional Res icción
Desc ipción Al es a odos los da os almacenados en la base de da os, es
al amen e ecomendable c ea un sis ema de copias de segu i-
dad dia ios. Pa a e i a que si hubie a algún allo no se pie dan
da os.
P io idad Al a/Esencial Media/Deseado 3Baja/Opcional
Cuad o 3.12: O os esquisi os RE08
3.3.4 Conclusiones
Pa a ealiza es a especi icación de equisi os se ha seguido el es ánda IEEE
830 [EE84]. Los equisi os se han es ablecido a pa i de la ecnología a u iliza
de inida en el apa ado 2.5 y de los casos de uso indicados en el apa ado 3.4.
A su ez, es os casos de uso han sido de inidos siguiendo las ca ac e ís icas del
apa ado 2.3 del capí ulo an e io .
22
Capí ulo 5
Implemen ación e
implan ación
5.1 In oducción
Una ez diseñado el sis ema en el capí ulo an e io , en es e se p ocede á a es-
peci ica su implan ación. Se explica á la ecnología u ilizada en el sis ema, que
ya ha sido in oducida al lec o en el apa ado 2.5 en ando más en de alle y
comple ando el capí ulo de una mane a más écnica.
También se explica án las he amien as u ilizadas pa a el desa ollo del sis-
ema. Mos ando cap u as eales del p oduc o inal y pa es de código más
signi ica i as.
5.2 Implemen ación
Pa a el desa ollo se ha u ilizado el IDE de desa ollo Pycha m [Pyc] que es una
he amien a muy u ilizada po los desa ollado es Py hon. Tiene dos e siones la
P o esional (de pago) y la Communi y (g a ui a). Como es e iden e la g a ui a
iene menos uncionalidad que la de pago, pe o pa a el desa ollo de es e p oyec o
la e sión Communi y ha sido más que su icien e.
5.2.1 Capa p esen ación
Es a capa es á desa ollada con HTML, CSS y Angula JS y es una in e az
que, sin conexión a la capa lógica, no unciona ya que no iene da os. Todos los
da os u ilizados pa a pode mos a la is a co ec amen e se ob ienen median e
llamadas GET y POST a la REST API que hay implemen ada en la capa lógica.
G acias a la po encia de Angula JS es o se puede a hace en muy pocas lineas
con el uso de Fac o ies.
Las Fac o ies son con enedo es de código que se pueden u iliza en e los
con olado es y ienen la ca ac e ís ica de se agmen os de código que solo se
ins ancian una ez, po lo que no pie den su es ado.
29
5.2. Implemen ación Capí ulo 5. Implemen ación e implan ación
El siguien e agmen o de código es el que se enca ga de la conexión en e la
is a y la lógica
angula .module(’e alua2’)
. ac o y(’Cu soFac o y’, unc ion($ esou ce){
e u n $ esou ce(’h p://localhos :8000/api/ 1/cu so/:id’);
})
. ac o y(’Asigna u aFac o y’, unc ion($ esou ce){
e u n $ esou ce(’h p://localhos :8000/api/ 1/asigna u a/:id’);
})
. ac o y(’Ca ego iaBloomFac o y’, unc ion($ esou ce){
e u n $ esou ce(’h p://localhos :8000/api/ 1/ca ego ia-bloom/:id’);
})
. ac o y(’Ca ego iaBloomValo Fac o y’, unc ion($ esou ce){
e u n $ esou ce(’h p://localhos :8000/api/ 1/ca ego ia-bloom- alo /:id’);
})
. ac o y(’Analiza Fac o y’, unc ion ($ esou ce) {
e u n $ esou ce(’h p://localhos :8000/api/ 1/analiza /’, {}, {
sa e: {me hod: ’POST’,isA ay: ue}
});
});
A con inuación, se mues an unas cap u as de pan alla de cada uno de los apa -
ados del clien e web pa a e i ica que se cumple el diseño plan eado en el
apa ado 4.2.1
Figu a 5.1: Cap u a is a axonomía de Bloom
30
Capí ulo 5. Implemen ación e implan ación 5.2. Implemen ación
En la igu a 5.1 se mues a un g á ico de ada que expone de o ma muy
isual qué ca ego ía iene mayo núme o de e bos asociados. Es e g á ico es a
desa ollado u ilizando la lib e ía Angula Cha [Chaa] que, a su ez u iliza
pa a sus di ec i as la lib e ía Cha JS [Chab] que es una lib e ia Ja asc ip open
sou ce que pe mi e c ea g á icos u ilizando el componen e can as de HTML.
El siguien e agmen o de código HTML mues a lo ápido que es gene a
una g á ica u ilizando es a lib e ía
<can as id="ca ego ias-cha " class="cha cha - ada "
cha -da a="da a" cha -labels="labels" cha -se ies="se ies">
</can as>
Las a iables da a, labels y se ies son lis as que es án de inidas en el con o-
lado de la is a, se inicializan a lis as acías y son ellenadas cuando la lógica
de uel e los alo es
$scope.labels = [];
$scope.da a = [[]];
$scope. alues = [];
Ca ego iaBloomFac o y.que y( unc ion(ca ego ias){
angula . o Each(ca ego ias, unc ion(ca ego ia){
$scope.labels.push(ca ego ia.name);
$scope.da a[0].push(ca ego ia. alues.leng h);
$scope. alues.push(ca ego ia. alues);
});
});
Figu a 5.2: Cap u a is a asigna u as
La igu a supe io 5.2 mues a el lis ado de asigna u as ag upadas po cu so.
Al pulsa sob e una de ellas se accede al de alle de la asigna u a mos ando odos
su esul ados de ap endizaje. Pa a ob ene el lis ado de asigna u as, la is a hace
una pe ición GET a la u l h p://localhos :8000/api/ 1/cu so/
31
5.2. Implemen ación Capí ulo 5. Implemen ación e implan ación
// Di ec i a is a lis ado asigna u as po cu so
$scope.cu sos = [];
$scope.asigna u as = [];
Cu soFac o y.que y( unc ion(cu sos){
angula . o Each(cu sos, unc ion(cu so){
$scope.cu sos.push(cu so.name);
$scope.asigna u as.push(cu so. alues);
});
});
Figu a 5.3: Cap u a is a esul ados ap endizaje
En la igu a supe io 5.3 se e una abla con cada uno de los esul ados de
ap endizaje y el núme o de ocu encias que con iene la ase en cada una de las
ca ego ías de la axonomía de Bloom.
Como se puede e en la siguien e igu a 5.4 al pasa el a ón sob e una de
las palab as que pe enece a la axonomía apa ece un ca el indicando a que
ca ego ía pe enece.
32
Capí ulo 5. Implemen ación e implan ación 5.2. Implemen ación
Figu a 5.4: Cap u a is a esul ados ap endizaje en de alle
Po ul imo, queda po mos a la is a de análisis, en la que apa ece un
bo ón g ande y al hace click sob e el bo ón se puede elegi el iche o que se ha
de analiza .
Figu a 5.5: Cap u a is a analiza
Una ez analizado el iche o po el se ido , se mues a un lis ado como el de
la igu a 5.3 y, al pasa el a ón sob e las palab as, se mues a el mismo de alle
que en la is a 5.4
5.2.2 Capa lógica
Es a capa es la enca gada de se i los da os y ealiza los cálculos. Todo es o
ha sido desa ollado con Django.
Los p oyec os Django se componen de apps, que son paque es de código. La
iloso ía de Django es que un app solo ealice una uncionalidad y un conjun o
de apps ( uncionalidades) gene en un p oyec o. Las apps pueden se desa ollos
33
5.2. Implemen ación Capí ulo 5. Implemen ación e implan ación
p opios o de e ce os. A con inuación se de allan las apps u ilizadas en es e
p oyec o.
co e
Es a aplicación es la base del p oyec o y sob e la que cons ui posibles amplia-
ciones. Con iene los modelos básicos con los que abaja
•Cu so
•Asigna u a
•Ca ego iaBloom
•Ca ego iaBloomValo
•Resul adoAp endizaje
En es a app solo es án de inidos los modelos y sus campos, nada más.
es api
Es a aplicación es la base de la comunicación en e la lógica y la is a. Aquí
es án de inidos los Se ialize s que son modelos que se enca gan de con e i los
obje os ORM a obje os JSON y ice e sa. Hay un modelo se ializado po cada
modelo de inido en la app co e 5.2.2
•Cu soSe ialize
•Asigna u aSe ialize
•Ca ego iaBloomSe ialize
•Ca ego iaBloomValo Se ialize
•Resul adoAp endizajeSe ialize
Después es án de inidas las URLs de la API en la que el el se ido escucha
pe iciones. Django, al ecibi una pe ición en una URL, ejecu a una unción
asociada a esa URL. A con inuación, un ejemplo de la is a asociada al lis ado
comple o de cu sos.
# Pe icion GET a h p://127.0.0.1:8000/api/ 1/cu so/
@api_ iew([’GET’])
de cu so_lis ( eques ):
i eques .me hod == ’GET’:
cu sos = Cu so.objec s.all()
se ialize = Cu soSe ialize (cu sos, many=T ue)
da a = []
o cin se ialize .da a:
se ialize _ als = Asigna u aSe ialize (Asigna u a
.objec s
34
Capí ulo 5. Implemen ación e implan ación 5.2. Implemen ación
. il e (cu so_id=c[’id’]),
many=T ue)
c[’ alues’] = so ed(se ialize _ als.da a,
key=lambda k: k[’name’])
da a.append(c)
e u n Response(da a)
Es e código se ejecu a al ecibi una pe ición GET en la URL h p://127.
0.0.1:8000/api/ 1/cu so/. Po cada cu so lo se ializa, busca sus asigna u as
y ambién las se ializa y, después, las añade al obje o cu so pa a más a de de-
ol e una lis a como esul ado
@api_ iew([’GET’])
de asigna u a_lis ( eques ):
i eques .me hod == ’GET’:
asigna u as = Asigna u a.objec s.all()
se ialize = Asigna u aSe ialize (asigna u as, many=T ue)
e u n Response(se ialize .da a)
El código supe io mues a como de ol e odas las asigna u as que hay
en la base de da os. Como se puede obse a el p ocedimien o es muy ácil y
ápido pa a el desa ollado en obje os que no equie en p ocesamien o. Django
y es - amewo k 5.2.2 se enca gan de odo.
de analyze_ a( a_name):
"""
Compa amos cada palab a del esul ado de ap endizaje con odos los e bos
de las ca ego ías de bloom.
"""
es = {
’ph ase’: [],
’ca egs’: {c.name: 0 o cin Ca ego iaBloom.objec s.all()}
}
# Qui amos acen os y pasamos a minusculas
unaccen _ca egs = {unicodeda a
.no malize(’NFKD’, c)
.encode(’ASCII’,’igno e’).lowe (): c
o cin es[’ca egs’]}
# Mien as no haya ningún oken que pe enezca a alguna ca ego ia de bloom
35
5.2. Implemen ación Capí ulo 5. Implemen ación e implan ación
# econs uimos la ase en es a a iable
ph ase = ’’
o oken in a_name.spli (’ ’):
unaccen _ oken = unicodeda a
.no malize(’NFKD’, oken)
.encode(’ASCII’,’igno e’).lowe ()
ca _bloom = Ca ego iaBloomValo .objec s. il e (name__iexac = oken)
i ca _bloom o unaccen _ oken in unaccen _ca egs.keys():
# Gua damos la pa e de la ase econs uida has a aho a
i ph ase:
es[’ph ase’].append([ph ase])
ph ase = ’’
okens = [ oken]
# Si el oken ac ual coincide con algun e bo de bloom
# añadimos a la lis a las ca ego ias de los e bos
# y añadimos un ocu encia más al con ado de ca ego ias.
i ca _bloom:
o cin ca _bloom:
es[’ca egs’][c.ca eg_id.name] += 1
okens.append([c.ca eg_id.name])
else:
# Si el oken es una de las ca ego ias y no es un e bo
okens.append( oken)
es[’ca egs’][unaccen _ca egs[unaccen _ oken]] += 1
es[’ph ase’].append( okens)
else:
ph ase = ’%s %s’ % (ph ase, oken) i ph ase else oken
i ph ase:
es[’ph ase’].append([ph ase])
e u n es
Es a unción es la enca gada del análisis de los esul ados de ap endizaje.
Recibe po pa áme o una ase y compa a cada palab a de la ase con odos
los e bos de la axonomía de Bloom.
Si hace ’ma ching’ en onces suma +1 en el con ado po ca ego ías y ma ca
en la ase a que ca ego ía pe enece es e e bo.
El esul ado es una lis a en la que sus elemen os son ambién lis as de uno
o más elemen os. El p ime elemen o de es a sublis a es la palab a y el es o
de elemen os de las sublis as (si los hay), son las ca ego ías de la axonomía de
Bloom a las que pe enece esa palab a.
36
Capí ulo 5. Implemen ación e implan ación 5.3. Implan ación
es amewo k
Es a es una aplicación de e ce os [ a]. Es una he amien a que p opo ciona
odo lo necesa io pa a empeza a desa olla una REST API.
•Página web desde la que hace consul as a la API. Si e de g an ayuda a
la ho a de empeza a p og ama .
•Va ias polí icas de au en icación en e las incluidas OAu h1a y OAu h2.
•Se ialización de uen es de da os ORM y no-ORM.
•Ex ensa documen ación, con muchos ejemplos.
•Usada y econocida po muchas emp esas como Mozilla, Red Ha y He o-
ku.
co sheade s
Es una aplicación de e ce os [Hea] que complemen a a la app es - amewo k
5.2.2 añade heade s CORS (C oss-O igin Resou ce Sha ing) a las espues as
HTTP.
Con co sheade s se puede añadi una lis a blanca de dominios o exp esiones
egula es a u as a las que si pe mi i CORS y así sal a nos la polí ica del mis-
mo o igen que u ilizan los na egado es, si no las pe iciones Angula JS a la API
da ían e o y no se pod ía accede a los da os.
Pa a es e p oyec o se ha con igu ado una exp esión egula que acep e CORS
a odos los dominios si la u a con ine /api/ 1/
5.2.3 Capa pe sis encia
Pa a la base de da os, la única ges ión po pa e del desa ollado que se ha
de hace es ene Pos g eSQL ins alado y c ea la base de da os al y como se
explica en el apa ado 5.3.1
Es o es g acias al objec - ela ional mappe (ORM) de Django, que se enca ga
de c ea las ablas y campos de la base de da os, así como ambién se enca ga
de lee y gua da los da os en la base de da os sin que el desa ollado enga
que p eocupa se.
Es e ni el de abs acción acili a el abajo del desa ollado pues o que
Django pe mi e abaja con Pos g eSQL, MySQL y SQL li e y el desa ollado
no necesi a sabe abaja con odos los mo o es de base de da os pues o que
Django ya lo hace po él.
5.3 Implan ación
El p oyec o se encuen a en un eposi o io de acceso público h ps://gi hub.
com/ uen es010/e alua2, que pe enece a Pablo Fuen es, el p oyec ando que
desa olla es e p oyec o.
37
5.3. Implan ación Capí ulo 5. Implemen ación e implan ación
5.3.1 Ins alación
Pa a pode u iliza el sis ema hay que segui unos sencillos pasos. En p ime
luga , ins ala gi en la máquina Linux o Mac que aya a ejecu a el p oyec o y,
pos e io men e, clona el eposi o io en el di ec o io que se desee.
~ gi clone h ps://gi hub.com/ uen es010/e alua2.gi
Tene ins alado Pos g eSQL. Se puede hace median e el ges o de paque es
en el caso de los sis emas ope a i os Linux
# A chlinux
~ sudo pacman -S pos g esql
# Fedo a
~ sudo yum ins all pos g esql-se e pos g esql-con ib
# Debian, Ubun u
~ sudo ap -ge ins all pos g esql pos g esql-con ib
Pa a sis ema ope a i o Mac la o ma más cómoda es u iliza la aplicación
Pos g es.app que se puede desca ga en h p://pos g esapp.com/
Y c ea una base de da os nue a pa a el p oyec o.
~ c ea edb p c
Como úl imo paso pa a ene la base de da os co ec amen e, hay que i
has a el iche o de con igu ación del p oyec o que se encuen a en la u a bac-
kend/e alua2/se ings.py y es ablece en la a iable DATABASES (línea 101)
la conexión a la base de da os.
DATABASES = {
’de aul ’: {
’ENGINE’:’django.db.backends.pos g esql’,
’NAME’:’NOBRE DE LA BASE DE DATOS’,
’USER’:’TU USUARIO CON PERMISOS DE ACCESO A POSTGRESQL’,
’PASSWORD’:’TU CONTRASENA’,
’HOST’:’127.0.0.1’,
’PORT’:’5432’,
}
}
También es ecomendable ins ala un so wa e llamado i ualen w appe
[w a]. No es obliga o io pe o es al amen e ecomendable. Es e so wa e pe mi e
ene múl iples en o nos i uales de Py hon y, en cada uno de es os en o nos,
ene di e en es lib e ías y di e en es e siones de es as. Es o a la ho a de p o-
g ama es de g an ayuda, ya que nunca end emos con lic os en e p oyec os
causados po incompa ibilidades de e siones ni en e lib e ías. Cada en o no
u iliza las suyas.
Pa a ins ala lo podemos usa el ges o de paque es de nues o sis ema ope-
a i o o pip, que es un ges o de paque es so wa e esc i os en Py hon
38