scieee Open visual document viewer

Herramienta de análisis semántico de la descripción de resultados de aprendizaje en los planes de estudio universitario

Fuentes Rodríguez, Pablo

Abstract

El diseño de los planes de estudio, especialmente universitarios, se basa en las competencias que se espera que los alumnos adquieran. La adquisición de las competencias requiere de una serie de actividades formativas (antes sólo eran las clases teóricas; ahora hay prácticas, trabajos, etc.). Por medio de los actos de evaluación (antes sólo se hacía por exámenes), se comprueba el nivel de desarrollo que se ha logrado de cada competencia. Para poder ayudar al profesor acerca de qué tipo de competencia se relaciona con cada actividad formativa y con cada acto de evaluación, se propone este proyecto. El proyecto consiste en la programación de algoritmos de análisis semántico que permitan al profesor determinar, de forma automática, las competencias cubiertas por su asignatura y, a los responsables de títulos, comprobar la coherencia de los planes de estudio basados en competencias.

Full text

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