Web para la gestión electrónica de una carpeta de aprendizaje
Abstract
Aplicació web que té com a objectiu ser utilitzada com a eina d'aprenentatge en línia per part d'alumnes i professors de l'assignatura Robòtica i automatització industrial (Escola d'Enginyeria, UAB).
Full text
Webparalagestión electrónicadeunaCarpeta deAprendizaje Memoriadelproyecto DeIngenieríaTécnicaen InformáticadeSistemas realizadopor DavidForteRomera ydirigidopor AsierIbeasHernández EscuelaUniversitariadeInformática Sabadell,Septiembrede2009
Elabajofirmante,AsierIbeasHernández,profesordelaEscuela UniversitariadeInformáticadelaUAB, CERTIFICA: Queeltrabajoalquecorrespondelapresentememoriahaestado realizadobajosudirecciónporDavidForteRomera. Yparaqueconstefirmalapresente. Sabadell,Septiembredel2009 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Firmado:AsierIbeasHernández
RESUMENDELPROYECTO Larápidaevolucióndelatecnologíahapermitidoquelagranmayoríadepersonas tenganaccesotantoaunaconexiónaInternetcomoaunordenadordeforma habitual,haciendoposibleuncambiodementalidadalahoraderealizarlasdiferentes tareasdesutrabajo.Conesaideaaplicadaalcampodeladocencia,sehadecidido implementarunaaplicaciónwebconelobjetivodeaprovecharestanuevarealidadala horadehacerlasdiferentesactividadesdelcursoparalaasignaturadeRobóticay AutomatizaciónIndustrial. Elproyectoestádivididoendospartesbiendiferenciadas.Laprimeraeslapartedel alumno,quecomousuariodeestaaplicaciónpodráañadirymodificarlasrespuestasa losejerciciosqueseproponganduranteelcurso,ademásdeobtenerlainformación referentealaasignatura. Lasegundapartesetratadelaseccióndelprofesor,quecomoadministradortendrála posibilidaddeañadiroeliminaractividadeseinformacióndelaasignaturaademásde teneraccesoatodaslaspáginasdelosalumnosparahacerelseguimiento. Elobjetivoesconseguirunacomunicaciónfluidaentreprofesoryalumno,asícomoun controlmásexhaustivodeltrabajorealizadoporcadaestudianteyunseguimiento máscontinuadodelaasignaturaporpartedeéste,ademásdelosobjetivos mencionadostambiénsepretendeagilizareltrabajodecorrecciónporpartedel profesor. Entrelasprioridadesdeestaaplicaciónestánlasdeminimizarlomáximoposiblelos inconvenientesporelcambiodemetodologíadetrabajo,tantodelosalumnoscomo delosprofesores,utilizandoundiseñointuitivo,ademásdebuscarundiseñorobustoy fiablequepermitagarantizarelaccesoseguroalaaplicación,yuncontroladecuado delainformacióncontenidaenlabasededatos.
ÍNDICE 1Introducción..................................................................................... 7 1.1Presentación.............................................................................................. 7 1.2Objetivos...................................................................................................... 7 1.3Estadodelarte........................................................................................... 7 1.4Estructuradelamemoria.................................................................... 8 2Estudiodeviabilidad..................................................................... 9 2.1Introducción............................................................................................... 9 2.2Objeto............................................................................................................ 9 2.2.1Descripcióndelasituaciónactual.............................................. 9 2.2.2Perfildelusuario............................................................................ 9 2.2.3Objetivos.......................................................................................... 10 2.2.4Fuentesdeinformación................................................................. 10 2.3Sistemaarealizar...................................................................................... 10 2.3.1Descripción...................................................................................... 10 2.3.2Modelodedesarrollo..................................................................... 11 2.3.3Recursosdedesarrollo.................................................................. 11 2.3.4Recursosdeimplementación........................................................ 12 2.4Análisisdecostebeneficio.................................................................... 13 2.5Evaluaciónderiesgos.............................................................................. 14 2.6Planificación............................................................................................... 14 2.7Viabilidadtécnica..................................................................................... 15 2.7.1Alternativas.................................................................................... 15 2.7.2Análisisdetecnologías.................................................................. 16 2.7.3Tablacomparativadetecnologíasweb..................................... 19 2.7.4Tecnologíawebparaelproyecto................................................. 19
2.8Conclusiones............................................................................................... 20 3Análisis............................................................................................... 21 3.1Requisitosfuncionales............................................................................ 21 3.2Requisitosnofuncionales...................................................................... 21 3.3Diagramadecasosdeuso...................................................................... 22 3.3.1Alumno............................................................................................. 22 3.3.2Profesor........................................................................................... 23 3.4Descripcióndeloscasosdeuso............................................................ 24 3.4.1Alumno............................................................................................. 24 3.4.2Profesor........................................................................................... 28 4Herramientasutilizadas............................................................... 35 4.1Struts2......................................................................................................... 35 4.2JavaScript..................................................................................................... 35 4.2.1JSMath.............................................................................................. 36 4.2.2Prototype......................................................................................... 36 4.2.3Tiny_mce.......................................................................................... 36 4.3CSS.................................................................................................................. 36 4.4Jasypt............................................................................................................. 37 4.5MySQL........................................................................................................... 37 4.5.1MySQLAdministrator.................................................................... 37 4.6Hibernate..................................................................................................... 37 4.7Tomcat.......................................................................................................... 38 4.8Eclipse........................................................................................................... 38 4.9OpenSSL........................................................................................................ 38 5Diseñodelaaplicación................................................................. 39 5.1Basededatos.............................................................................................. 39 5.1.1Diagrama......................................................................................... 39
5.1.2Estructura....................................................................................... 40 5.2Interfazgráfica.......................................................................................... 44 5.2.1Inicio................................................................................................ 44 5.2.2Alumno............................................................................................. 46 5.2.2.1Diario................................................................................................. 48 5.2.2.2Notas................................................................................................. 50 5.2.3Profesor........................................................................................... 50 5.2.3.1Listadealumnos............................................................................... 52 5.2.3.2Notas................................................................................................. 52 5.2.3.3Introduccióndeejercicios.................................................................. 53 5.2.4Subirarchivos................................................................................. 54 5.2.5Editordetextos.............................................................................. 54 5.2.6Botonera.......................................................................................... 55 6Implementación............................................................................... 56 6.1Capadelmodelo........................................................................................ 56 6.2Capadelavista.......................................................................................... 58 6.3Capadelcontrolador............................................................................... 59 6.4Internacionalizacióni18n..................................................................... 60 7Pruebas............................................................................................... 61 8Conclusiones..................................................................................... 67 9Bibliografía....................................................................................... 68 9.1Fuentesbibliográficas............................................................................. 68 9.2Fuenteselectrónicas................................................................................ 68 9.3Fuentestecnológicas………………………………………………………………69 Anexo........................................................................................................ 70
Webparalagestiónelectrónicadeunacarpetadeestudiante INTRODUCCIÓN 7 1.INTRODUCCIÓN 1.1Presentación Elproyectosebasaeneldesarrollodeunaaplicaciónwebquepermitaactualizarla metodologíadetrabajoutilizadahastaelmomentoenlaasignaturadeRobóticay AutomatizaciónIndustrialqueesunaasignaturaoptativadecuartodeIngeniería informáticaenlaEscueladeBellaterra. Eldesarrollodedichaaplicaciónpermitirámayoragilidadenlacorreccióny seguimientodelosalumnosporpartedelprofesor,yenelcasodelosalumnosse obtendrámásdinamismoenelseguimientodelaasignatura. 1.2Objetivos Elprincipalobjetivodelaaplicaciónesquepuedaserutilizadacomoherramientade trabajoenlaasignaturaanteriormentemencionadahaciendoquelaadaptaciónpor partedelosprofesoressearápida. Laaplicacióntienequeserdinámicaparapodermostraromodificardiferentes actividades,yseguraparaevitarintrusismoentrelascuentasdelosdistintosalumnos. Lapartedelaadministracióntambiéndebeserprivada,ypermitirverymodificarel restodecuentasdeusuario. 1.3Estadodelarte Enlaactualidad,conlairrupcióndelaweb2.0,sehapuestomásdemodaquenunca elusodeaplicacioneswebdondeelpapelquetienenlosusuariosescadavezmás activo,laswikissonunclaroejemplodeesatendencia,dondesefavorece principalmenteeltrabajoengrupoutilizandounaaplicaciónfácildeusarydebajo coste.OtraalternativaesMoodlequeesunsistemadegestiónderecursosconelque sepuedecrearcomunidadesdeaprendizajeenlíneayquetienedisponiblesdiferentes módulosparalacomunicaciónprofesor‐estudiante.Porúltimoestálaopcióndel CampusVirtualdelaUABmedianteelcuallosalumnosyprofesoresdeunaasignatura puedencomunicarseeintercambiarsediferentematerialpedagógicodeformarápida ysencilla. Enesteproyectosehabuscadounavariacióndeestaideaconelobjetivodeconseguir trabajosmásindividualizadosyañadirciertascomodidadesalusuariofinalcomoun
Webparalagestiónelectrónicadeunacarpetadeestudiante INTRODUCCIÓN 8 editorWYSIWYG,oevitarquesetengaquecrearunapáginanuevaantesdepoder empezaraeditaruntexto. 1.4Estructuradelamemoria Lamemoriasehadivididoennuevecapítulosatravésdeloscualesseexplicaránlos objetivosdelproyectoasícomolastecnologíasusadasparasudesarrollo,ademásde cómosehadiseñadoycodificadolaaplicación. Enelprimercapítuloseveráunaintroducciónalproyectoconlosobjetivosprincipales quesepersiguenconsuimplementaciónademásdelasdiferentesalternativasquese puedenencontrarparaunusosimilar. Elsegundocapítuloestádedicadoalestudiodeviabilidad.Enélseestudiarála situaciónactual,elcostederealizaresteproyecto,losrecursosnecesariosdurantesu implementaciónyposteriorpuestaenmarchaolaplanificaciónparasudesarrollo. Eneltercercapítuloseharáunestudiomásenprofundidaddelosrequisitos funcionalesynofuncionalesdelproyecto.Tambiénseveránlosdiferentescasosde usoparacadaunodelosfuturosusuariosdelproyecto. Elcuartocapítuloserviráparadescribirlastecnologíasutilizadasparaeldesarrollodel proyectoademásdelsoftwareutilizadoparallevarloacabo. Elquintocapítulomostraraeldiseñodelaaplicacióndandounaespecialatención tantoaldiseñodelabasededatoscomoaldiseñodelainterfazgráfica. Elsextocapítuloseutilizaráparaexplicarlosdetallesdelaimplementación,comoel patróndedesarrolloqueutilizaStruts2olainternacionalizacióndelproyecto. Elséptimocapítuloestarádedicadoalapartadodepruebas,endondesecomprobará elbuenfuncionamientodelproyectoutilizandolosdosrolesdisponiblesdela aplicación. Enelcapítulooctavo,seencontrarálabibliografíautilizadaduranteeldesarrollodel proyecto. Finalmente,enelanexoseexplicarálamaneradecrearunusuarioadministradorpara podercomenzarautilizarlaaplicación.
Webparalagestiónelectrónicadeunacarpetadeestudiante ESTUDIODEVIABILIDAD 9 2.ESTUDIODEVIABILIDAD 2.1Introducción Enesteapartadoseanalizarálasituaciónactualylosrequisitosdelproyecto.También severánlosobjetivosprincipalesasícomoeltipodeusuarioalquesedestinarála aplicación. Acontinuaciónsemostraráelmodelodedesarrolloqueseutilizarádurantela realizacióndelproyectoademásdesuplanificación. Parafinalizar,seevaluarálaviabilidaddelproyectoteniendoencuentatodosestos factores. 2.2Objeto 2.2.1Descripcióndelasituaciónactual Actualmenteenlaasignaturaseutilizaunacarpetafísicadondelosalumnosguardan lasolucióndelasdiferentesactividadespropuestasduranteelcurso,yqueenciertas fechaslímitetienenqueentregarenmanoalprofesorparaqueestehagaun seguimientoyunaevaluacióndelalumno. Lasfuncionalidadesprincipalesquesepretendenconseguirsonunseguimientomás continuadodelaasignaturaporpartedelalumno,ademásdeaumentarlainteracción conelprofesor.Encuantoalprofesor,elobjetivoquesepersigueestenerunmayor controldeltrabajorealizadoporpartedelalumno. 2.2.2Perfildelusuario Estaaplicaciónseráutilizadatantoporlosalumnoscomoporlosprofesoresdela asignaturadeRobóticayAutomatizaciónIndustrial,loscualestienenunnivelmedio‐ altoenelmanejodeaplicacionesinformáticas.
Webparalagestiónelectrónicadeunacarpetadeestudiante ESTUDIODEVIABILIDAD 16 CampusVirtual ElCampusVirtualesunaaplicaciónwebutilizadaporlagranmayoríadeasignaturas impartidasenlaUAByconlaqueseconsigueunacomunicaciónbastantefluidaentre losprofesoresdeunaasignaturaylosalumnosmatriculadosenella. Laprincipalbazadeestaopcióneslafacilidaddeusoylasdiversasformasde comunicaciónentrelosusuarios,dondedestacaelusodeforosyelserviciode mensajeríainterna. ElCampusVirtual,aunquetambiénpresentalaposibilidaddeutilizarunawikipara cadaunadelasasignaturas,seusaprincipalmenteparahacerllegarelmaterial docentealosalumnosyparaqueestospuedanrealizarlasdiferentesentregasen formadearchivosadjuntosenlasfechasestablecidas. Wiki Unawikiesunaaplicaciónquepermitealosusuarioseditarsucontenidoatravésde unnavegadorweb. Elprincipalusoquetienenlaswikiseslaedicióncolectivadeciertosdocumentos,ya sufavortienequeesunaformasencillayrápidademodificarloscontenidosdeuna página,aunquetieneelinconvenientedetenerquehaceruncontrolmásexhaustivo delcontenidoparaevitarmodificacionesnodeseadasporpartedeotrosusuarios. Conclusiones Despuésdeverlasdiferentesalternativasquehaydisponiblessehadecididorealizar unaaplicaciónespecíficadebidoaquelaformadetrabajardeestasaplicacionesnose ajustaalametodologíadetrabajodeseadayaqueestánenfocadasaunusomás colaborativoentrelosdiferentesusuarios,enelcasodelaswikisydeMoodle,oestán enfocadosalintercambiodearchivosconlosdiferentescontenidos,enelcasodel CampusVirtual. 2.7.2Análisisdetecnologías: Microsoft.NET Microsoft.NETesunaplataformadedesarrolloyejecucióndeaplicaciones,quefacilita elprocesodeconstruccióndeaplicacionesmultipropósito,tantoenentornoscliente comoenentornosweb.Laplataforma.NETincorporaunaseriedeservicios
Webparalagestiónelectrónicadeunacarpetadeestudiante ESTUDIODEVIABILIDAD 17 universalescomosonlagestióndememoriayrecoleccióndebasura,seguridad, controldecódigo,etc.…Porotroladoestála.NETframeworkqueesunabibliotecade clasesindependientedellenguaje,quefacilitaaldesarrolladortodosloselementos necesariosparaincorporarinterfacesdeusuarionativasyweb,accesoabasesde datos,comunicaciónatravésdered,etc. .NETsebasaenestándaresyaestablecidoscomoXML,SOAP,WSDLyengeneralbusca lacreacióndeaplicacionesfácilesdeintegrar,demodificaryagilizarla implementacióndecualquiertipodesoluciones,paracualquierdispositivosin importarsuhardware,sistemaoperativoolenguajeconelqueesténhechaslas aplicacionesqueejecuta,intentandoaprovecharparaellolainfraestructurade internet,redesyprotocolos. UnadelaspartesmásimportantesdeestatecnologíaeselCLR(CommonLanguage Runtime),queesunaaplicaciónsimilaraunamáquinavirtualqueseencargade gestionarlaejecucióndelasaplicaciones.ElCLRofrecealasaplicacionesnumerosos serviciosquefacilitansudesarrolloymantenimientoyfavorecensufiabilidady seguridad. Losobjetivosde.NETson: • Reducirlacomplejidadeneldesarrollodeaplicaciones. • Proporcionarunentornodeejecuciónrobustoyseguro. • Soportedemúltipleslenguajedeprogramación. • Intercambiodedatosentredistintasaplicaciones. • Crearunalibreríadeclasescomúnparatodosloslenguajes. JAVA(J2EE) Esunaplataformaquehabilitasolucionesparadesarrollo,usoefectivoymanejode multicapasenaplicacionescentralizadasenelservidor.J2EEutilizalaplataformaJava 2SEparatenderunacompleta,estable,segurayrápidaplataformaJavaenelámbito empresarial.Permiteahorraralacompañíaporquehabilitaunaplataformaquereduce demanerasignificativaloscostosylacomplejidaddedesarrollodesoluciones multicapa,resultandoenserviciosquepuedenserdesarrolladosrápidamentey ampliadosfácilmente. Javaesunlenguajededesarrollodepropósitogeneralorientadoaobjetosyestá basadoenlaarquitecturadelladodelservidor.Usaunamáquinavirtualparala ejecucióndelosprogramas,loquepermitequelasaplicacionesescritasenJavase puedanejecutarencualquiermáquina,independientementedelsistemaoperativoyla configuracióndehardware.Javatambiénincluyeungranconjuntodecomponentes reutilizablesparaayudaralprogramador(Struts2,Tapestry,Spring,Hibernate,..,).Esta
Webparalagestiónelectrónicadeunacarpetadeestudiante ESTUDIODEVIABILIDAD 18 arquitecturaconcentralamayoríadelosprocesosdelaaplicaciónenelservidoroen unaseccióndeeste.Estetipodearquitecturatienealgunasventajascomo: Múltiplesclientes:Unaarquitecturabasadaenelservidorrequiereunaclara separaciónentrelacapadelcliente(interfaz)ylacapadelservidor,enlacualse realizanlosprocesosdelaaplicación.Conestoseconsiguequeunamismaaplicación soportemúltiplesclientessimultáneamente,todoselloscondistintasinterfaces. Operacionesrobustas:Unaarquitecturabasadaenelservidorsoporta escalabilidad,confiabilidad,disponibilidadyrecuperabilidad. LosobjetivosdeJavason: • Sencillez. • Lenguajeorientadoaobjetos. • Robustoporquesimplificalagestióndememoriayeliminalascomplejidades delagestióndepunteros. • Seguro. • Independientedelaarquitectura,pudiendoserusadoconhardwareysistemas operativosdiversos. • Multihilo. PHP PHPesunlenguajedeprogramaciónusadogeneralmenteparalacreaciónde contenidoparasitiosweb.Setratadeunlenguajeinterpretadousadoparalacreación deaplicacionesparaservidores,ocreacióndecontenidodinámicoparasitiosweb. Elfácilusoylasimilitudconloslenguajesdeprogramaciónmáscomunespermiten quesuaprendizajeyusoenaplicacionescomplejassearápida. PHPseinterpretayejecutaenelservidoryelclientesolorecibeelresultadodela ejecución.Tambiénpermitelaconexiónamúltiplesservidoresdebasededatostales comoMySQL,Postgres,Oracle,…conloqueseconsigueaplicacioneswebmuy robustas. LosobjetivosdePHPson: • Lenguajemultiplataforma • Capacidaddeconexiónconlamayoríadecontroladoresdebasededatos • Ampliadocumentación. • Eslibre,porlotantodefácilacceso. • Programaciónwebdinámica.
Webparalagestiónelectrónicadeunacarpetadeestudiante ESTUDIODEVIABILIDAD 19 2.7.3Tablacomparativadetecnologíasweb Características.NETJava(J2EE)PHP Código compilado(Pre compiladoes másrápido) Si,tantopre‐ compiladocomo compilado dinámicamente cuandosehaceuna petición. Si,tantopre‐ compiladocomo compilado dinámicamente cuandosehaceuna petición. No,unprograma externopuede mejorarel funcionamiento,pero novieneinstaladoen lamayoríade servidores. Lenguajede scripts NoNoSi Orientadoa objetos SiSiNo Lenguajesde desarrollo soportados C++,C#,VisualBasic .NET,JScript.NET, Python,Perl,J#,etc… JavaPHP Navegadorpara interpretar HTMLespecífico Si(InternetExplorer)NoNo Códigoabierto NoSiSi Multiplataforma NoSiSi Coste ElevadoNuloNulo 2.7.4Tecnologíautilizadaparaelproyecto AunquePHPpodríaserunaopciónperfectamenteválidaparadesarrollarelproyecto debidoaqueesunlenguajefácildeaprenderydelqueseposeenalgunos conocimientosprevios,ademásdeserdecódigoabiertoymuyutilizadopara aplicacionesweb,sehadescartadoporquepresentaalgunaslimitacionescomosonel rendimiento,debidoaqueesunlenguajescript,yproblemasalahoradegestionar distintosusuarioscondiferentesinterfaces PorlotanosincontarconPHP,estánlasopcionesdeJavay.NETyaunqueconambas tecnologíassepuedeconseguirlosmismosresultados,sehatomadoladecisiónde utilizarJavajuntoaalgunodesusframeworksdedicadosaldesarrollowebdebidoa queesunatecnologíalibreyquepermiteprogramarlaaplicaciónconindependencia delaplataformaenqueseráutilizadaposteriormenteademásdeserunadelas tecnologíasmásutilizadasactualmenteparaestetipodeaplicaciones.
Webparalagestiónelectrónicadeunacarpetadeestudiante ESTUDIODEVIABILIDAD 20 2.8Conclusiones Conestaaplicaciónsepretendecubrirciertasnecesidadesexistentesenlaasignatura deRobóticayAutomatizaciónIndustrialtransportandolametodologíadetrabajo actualaunentornovirtualconloqueseconseguiráunamayoreficienciaeneltrabajo diariodelaasignatura,máscontroldeltrabajorealizadoporlosalumnosyaumentarla comunicaciónprofesor‐alumno. Porlotantounavezcomprobadoslosinconvenientesylasventajasquepodría ocasionareldesarrollodeestaaplicación,sepuedeafirmarqueesunproyecto completamenteviable.
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 21 3.ANÁLISIS Enestecapítulosepodráverelcomportamientodelaaplicaciónasícomolos requisitosfuncionales,quesonlosprocesosquesepuedenrealizar,comocrearun nuevousuarioomodificarunejercicio,ylosrequisitosnofuncionales,quesonlas condicionesquedebecumplirelproyecto,comoquesecumplanlosestándares,quela aplicaciónseasegurayquenocontengaerrores. 3.1Requisitosfuncionales Losrequisitosfuncionalesquedebecumplirelproyectosonlossiguientes: • Eficienciayfacilidaddeuso:Laaplicacióndebeserintuitivayquela navegaciónseaclarahaciendoqueelusuariosesientacómodoaltrabajarcon ella. • Controldeacceso:Esmuyimportantemantenerunbuenniveldeseguridad pararestringirelaccesoacuentasajenas,porlotantoesnecesarioun protocolodeseguridadbasadaenusuarioycontraseña. • Gestióndecontenidos:Modificacióneintroduccióndenuevomaterialpara losalumnos,asícomocorreccionesdelosejerciciosrealizados. • Gestióndeusuarios:Elalumnopodráañadirlarespuestaatodaslas actividadespropuestasparalaasignatura. 3.2Requisitosnofuncionales Losrequisitosnofuncionalesquedebecumplirelproyectosonlossiguientes: • Seguridad:Elproyectotienequegarantizarciertaprivacidadparalosdatos deidentificacióndelosusuarios,porlotantolabasededatosestaráprotegida porcontraseñaytodoslospasswordsintroducidosporlosalumnossecifrarán utilizandoelalgoritmoSHA‐1. • Controldeerrores:todoslosposibleserroresquecomentanlosusuarios estaráncontempladosycontrolados. • Cumplimientodeestándares:Elproyectodeberáajustarsealmáximoalos estándaresparaevitarmalasvisualizacionesenlosdiferentesnavegadoresen quepuedaserusado.
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 22 3.3Diagramasdecasosdeuso Losdiagramasdecasodeusomuestranlasdiferentesaccionesquepuederealizar cadausuarioseaprofesoroalumno. 3.3.1Alumno Figura3:Diagramadecasosdeusodelalumno
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 23 3.3.2Profesor Figura4:Diagramadecasosdeusodelprofesor
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 24 3.4Descripcióndeloscasosdeuso Enestepuntoseverándeformamásdetalladacadaunodeloscasosdeusoquese muestranenelpuntoanterior. 3.4.1Alumno CASODEUSORegistrar DescripciónTodoslosalumnosmatriculadosalaasignaturadeberánregistrarsepara poderrealizartodaslasactividadesrelacionadasconlaasignatura.Para ellodeberánaccederalapáginaderegistrohaciendoclicenelbotón RegistrardelapáginadeLogin. ActoresAlumno FlujoPrincipalElnavegadormostraráunpequeñoformulariodondeelusuariodeberá introducirsuNIU,unacontraseñaysuconfirmación.Alpulsarelbotón Registrarseguardaránlosdatosconlosqueelnuevousuariopodrá accederalasactividadesdelaasignatura. Flujos Alternativos Datosincorrectos: Sihayalgúndatomalintroducidosemuestraunmensajede errorindicandoelcampoincorrectamenterellenado. Usuarioyaexiste: SielusuariointroduceelNIUdeotroalumnoqueyaexisteenla basededatossemuestraelmensajedeerrorynosecompleta elregistro. CASODEUSOLogin DescripciónLosusuariosqueyasehayanregistradopuedenloguearseparaasí accederalasdiferentesactividadesdelaasignatura.Paraellohande introducirsuNIUycontraseñaenelmenúqueapareceenlapáginade LoginypulsarelbotónEnviar. ActoresAlumno FlujoPrincipalDespuésdeintroducirlosdatosenelformularioypulsarelbotónEnviar enelnavegadorsemostrarálapáginaprincipaldelalumnodesdelacual sepodráaccederatodoslosapartadosdisponibles. Flujos Alternativos Datosincorrectos: Sialgunodelosdatosnocoincideconlosdelabasededatos,el navegadormostraráunmensajedeerrorindicandoalusuario quesehaequivocadointroduciendopartedelainformación.
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 25 CASODEUSODiario DescripciónLosusuariospodránverloscomentariosquehanidointroduciendoen díasanteriores,ademásdepoderinsertarunnuevocomentarioconla fechaactual. ActoresAlumno PrecondiciónIdentificarse FlujoPrincipalElusuariopulsasobreelbotónDiarioenelmenúdeactividades.Aparece enelcuadroprincipaldelapáginaelcontenidodelapestañaVisualizar. Sub f lujosPestañavisualizar Semostraráuncalendariodondeelusuariopodráverlas diferentesanotacionesquehaidoañadiendoalolargodelcurso, paraellotendráquepulsarsobreeldíaquedeseaveryque tendrádiferentecolordependiendodesicontieneuncomentario ono. PestañanuevaEntrada Enelnavegadorsemostraráuneditordetextoconelqueel usuariopodráintroducirunnuevocomentarioquetraspulsarel botónGuardarseañadiráalabasededatosconlafechaactual delservidor. CASODEUSOTeoría DescripciónLosusuariospodránseleccionarentrelostemasdisponibleselejercicio quedeseasolucionardelospropuestosenelapartadodeteoría. ActoresAlumno PrecondiciónIdentificarse FlujoPrincipalElusuariopulsarásobreelbotónPreparacióndeTeoríaenelmenúde actividades.Apareceráenelcuadroprincipaldelapáginaelcontenidode lapestañaVisualizar.Semostraráenelcuadrodeactividadesdos selectoresparaelegireltemayelejercicioavisualizar. Sub f lujosPestañavisualizar: Elnavegadormostraráelenunciadodelejercicioseleccionadoy larespuestaqueelusuariohaañadido. Pestañaeditar: Elnavegadormostraráuneditordetextoconelqueelusuario podráescribirlarespuestaalejercicioseleccionado.Paraguardar loscambiosenlabasededatossedeberápulsarelbotón Guardar.
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 32 CASODEUSOModificarPrácticas DescripciónElprofesorpodráañadir,modificaroeliminarejerciciosrelacionados conelapartadodeprácticasdelaasignatura. ActoresProfesor PrecondiciónIdentificarse FlujoPrincipalElprofesorpulsarásobreelbotónModificarContenidoparaqueseabra elsubmenúdondeseencuentraelbotónPrácticas,alpulsaresebotón seabriráenelcuadrodeactividadesdosselectoresparapoderescoger eltemayelejercicioavisualizardelosquesehayanintroducido anteriormente. Sub f lujosPestañavisualizar: Elnavegadormostraráelenunciadodelejercicioseleccionado enlosselectoresdelcuadrodeactividades. Pestañaeditar: Elnavegadormostraráuneditordetextoconelquesepodrá escribirelenunciadodelejercicioomodificarelya seleccionado.Tambiénhabrádospequeñasáreasdetexto dondesepondráelnúmerodetemayejercicio,ademásdeun botónqueharáqueelejercicioseavisibleonoparalos alumnos. PestañaEliminar: Elnavegadormostraráunatablacontodoslosejercicios introducidosseparadosportema,pudiendoseleccionarcada unodeellosparasereliminadodelabasededatostraspulsar elbotónEliminar. Flujos Alternativos Númerodeejercicioyaexiste: Siseintroduceunnúmerodeejercicioqueyaexisteparaese tema,semostraráporpantallaunerrorindicandoqueel númerodeejercicioestáequivocado. Noseponenúmerodeejercicio/tema: Sinosemodificaelnúmerodeejerciciooelnúmerodetema, semostraráporpantallaunerrorindicandoelproblema.
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 33 CASODEUSOModificarTrabajo DescripciónElprofesorpodráañadirlainformaciónnecesariaparaqueelalumno realiceeltrabajosobrelaasignatura. ActoresProfesor PrecondiciónIdentificarse FlujoPrincipalElprofesorpulsarásobreelbotónModificarContenidoparaqueseabra unsubmenúdondeseencuentraelbotónTrabajo.Enelcuadro principaldelapáginaaparecerálapestañaVisualizar. Sub f lujosPestañavisualizar: Elnavegadormostrarálainformaciónyaintroducida anteriormenteenesteapartado. Pestañaeditarinformación: Elnavegadormostraráuneditordetextoconelqueelprofesor podráescribirlainformaciónamostrar.Paraguardarlos cambiosenlabasededatossedeberápulsarelbotónGuardar. CASODEUSOPonerNotas DescripciónElprofesorpodráponerunanotaencadaunodelosapartadosdela asignaturaacadaunodelosalumnos.Tambiénpodráañadir informaciónacercadelaformadeevaluacióndelaasignatura. ActoresProfesor PrecondiciónIdentificarse Flujo Principal ElprofesorpulsarásobreelbotónNotasenelmenúdeactividadesyel navegadormostraráunalistacontodoslosalumnosregistradosenla aplicación,aloscualesespodrápuntuarsegúnsutrabajorealizadoen laasignatura. SubflujosPestañavisualizar: Semostraráunalistacontodoslosalumnosregistradosylos diferentesapartadosenquesedividelaasignaturaparaque seanpuntuados.Loscambiosseguardaránenlabasededatos despuésdepulsarelbotónGuardar. PestañaInformación: Semostraráenelnavegadorlainformaciónreferentealcriterio deevaluaciónseguidoenlaasignatura. PestañaEditarInformación: Semostraráuneditordetextosconelquesepodráinsertaro modificarlainformaciónquehacereferenciaalaevaluación. Loscambiosseguardaránenlabasededatoscuandosepulse elbotónGuardarInformación.
Webparalagestiónelectrónicadeunacarpetadeestudiante ANÁLISIS 34 CASODEUSOSubirarchivo DescripciónElprofesorpodrásubirunafotografíaasucuentadeusuariopara posteriormentepoderlaañadirenalgunodelosenunciadosqueinserte. ActoresProfesor PrecondiciónIdentificarse FlujoPrincipalTraspulsareliconoSubirarchivoelprofesoraccederáaunapágina dondepodrábuscarlafotografíaquedeseasubiralservidor,paraque seañadaasucuentadebepulsarelbotónSubirArchivoy posteriormenteseveráelarchivosubidoenlatablainferior. Sub f lujosEliminararchivo: Elprofesorpodráeliminarunarchivoseleccionándoloenla tablaypulsandoelbotónEliminarArchivo. Renombrar: Elprofesorpodrárenombrarunarchivo,paraellotendráque seleccionarloenlatablayescribirencuadrodetextoinferiorel nombrenuevodelarchivoysuextensión,acontinuación deberápulsarelbotónRenombrarparaqueelarchivocambie denombre.
Webparalagestiónelectrónicadeunacarpetadeestudiante HERRAMIENTASUTILIZADAS 35 4.HERRAMIENTASUTILIZADAS Enesteapartadosecomentaránlasdiferentesherramientasutilizadasparael desarrollodelproyecto,ademásdeloslenguajesdeprogramaciónusadosparasu realización. 4.1Struts2 ParaeldesarrolloprincipaldelproyectosehaoptadoporStruts2(Struts2inaction) queesunframeworkdeJavadedicadoaldesarrolloweb.Struts2estábasadoenel patrónMVC(Modelo‐Vista‐Controlador)quedividelaaplicaciónentrescapas claramentediferenciadas: • Elmodelo:Eselencargadodeprocesarlasaccionessolicitadasporel controlador.Esdecir,dentrodelmodeloseencuentranlasclasesencargadas derealizarlasoperacionesnecesarias. • Lavista:Eslaparteencargadadegenerarlainterfazconlaquelaaplicación interaccionaconelusuario,esdecir,sonelconjuntodepáginasJSPquepuede verelusuariodesdesunavegador. • ElControlador:Eselencargadodecomunicarlavistayelmodelo respondiendoaloseventosgeneradosporelusuarioenlavista,haciendoque seproduzcanloscambiosenelmodeloydevolviendolosresultadosdenuevoa lavista. 4.2JavaScript PeseaqueelproyectogiraalrededordeStruts2nohayqueolvidarquesepueden utilizarotrastecnologíasqueenriquezcanelcontenidowebymejorenlaexperiencia delusuario.ConestaideaseutilizaráJavaScript(LabibliadeJavaScript),queesun lenguajeinterpretado,quenonecesitacompilación,yqueesampliamenteutilizadoen aplicacionesweb. Dentrodelproyectosehautilizadoparaintegrareleditordetextosasícomopara mejorarlapresentacióndandodiferentesefectosenlosmenús.
Webparalagestiónelectrónicadeunacarpetadeestudiante HERRAMIENTASUTILIZADAS 36 4.2.1JSMath Parapoderintroducirlasfórmulasmatemáticasnecesariasparalaasignatura,seha decididoutilizarJSMathqueesunaimplementacióndeTexenJavaScript.JSMathtiene laparticularidaddequeescapazdegenerarlasfórmulasusandodirectamente tipografíaTexoconsuspropiasfuentesnativas,envezdeusarimágenescomoes típicoenHTML.LasiguienteimagenmuestraunejemploconJSMath: Figura5:EjemplodeJSMath 4.2.2Prototype PrototypeesunframeworkescritoenJavaScriptyqueseutilizaparaimplementar aplicacionesAJAX. Enelproyectoúnicamentesehautilizadolafunción$F()paratraspasarlainformación entreeleditordetextosylaspestañasdevisualización. 4.2.3Tiny_MCE Parahacermáscómodalaentradadeinformaciónenlaaplicaciónsehaoptadopor utilizaruneditordetextosWYSIWYG.Tiny_MCE,queestáescritoenJavaScript, cumpleeserequisitoyaqueconviertelostextareasdelaaplicaciónenesetipode editor.ElaspectoquepresentaessimilaralabarradeherramientasdeMicrosoft Wordypermitedarformatoaltextoviendodirectamenteelresultadofinal. 4.3CSS EllenguajeutilizadoparadefinirlapresentacióndelaaplicacióneselCSS(Manual avanzadodeCSS).Apartirdeunúnicoarchivopermitedefinirlaformaylaposición queocuparácadaunodeloselementosmostradosenlapáginafacilitando modificacionesenelapartadovisualdelaaplicacióndeformarápidaysencilla.
Webparalagestiónelectrónicadeunacarpetadeestudiante HERRAMIENTASUTILIZADAS 37 4.4Jasypt Comosehacomentadoencapítulosanteriores,laseguridadesuntemaimportanteen estetipodeaplicaciones,poresemotivosehadecididocifrarlascontraseñas introducidasporlosalumnosenlabasededatos.Jasypt (http://www.jasypt.org/getting‐started‐easy.html)esunalibreríajavaquesirvepara esepropósito. EnelproyectosehadecididoutilizarparaelcifradoelalgoritmoSHA‐1queofreceun buenniveldeseguridad. 4.5MySQL MySQL(http://www.mysql.com/)esungestordebasededatosrelacionalquecomoel restodeopcionesparaesteproyectoesdecódigoabierto.Sehaescogidoestegestor porqueesademásrápido,fiableyrobustoademásdequetrabajabientantocon grandescomoconpequeñosvolúmenesdedatos.MySQLesunaopciónampliamente usadaenaplicacioneswebypuedeserusadoendiferentesplataformas. 4.5.1MySQLAdministrator Esunsoftwaremultiplataformaylibrequepermiteadministrarunabasededatos MySQLdeformavisual. 4.6Hibernate Esunmotordepersistenciadecódigoabiertoquefacilitaelmapeodeatributosde unabasededatosrelacionalylosobjetosdeunaaplicaciónutilizandoarchivosXML paraestablecerlasrelaciones,enotraspalabras,seutilizaparahacerpersistentelos objetosdeunprogramaenunabasededatosrelacional. SehaoptadoporestaopciónparaevitarelusodeJDBCyaqueesmáscomplejoy dependientedelaestructuradelosdatos,demaneraqueutilizandoHibernate (http://www.hibernate.org)seutilizaunaformadetrabajarmásnaturalysencilla utilizandodirectamenteobjetos.
Webparalagestiónelectrónicadeunacarpetadeestudiante HERRAMIENTASUTILIZADAS 38 4.7Tomcat Tomcat(http://tomcat.apache.org/)esunservidorwebconsoporteparaJSPy Servlets.Esteservidoreslibre,gratuitoymultiplataformayseráelencargadode interpretarelcódigodelaaplicaciónparaserentregadoalnavegadordelusuario. EnelproyectotendrálafuncióndecontenedordepáginasJSPconsusrespectivosCSS, tambiénseencargarádesostenerelsistemaStruts2,gestionarlaseguridadmediante elprotocoloSSLeinteractuarconlabasededatos. 4.8Eclipse Eselentornodedesarrolloelegidoparaimplementarelproyecto,aligualqueelresto deherramientasutilizadasesdecódigoabiertoymultiplataforma.DesdeEclipsese puedeprogramarenmúltipleslenguajesentrelosqueseencuentranJSP,JavaScript, JavayXML. 4.9OpenSSL Esunaherramientaquesirveparacrearcertificadosparausarlosconaplicaciones web.Esoscertificadosaseguranquelascredencialesdelaaplicaciónnoson fraudulentas.
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 39 5.DISEÑODELAAPLICACIÓN Enestecapítuloseverádetalladamentetantolabasededatosusadaparaelproyecto,así comolainterfazgraficaquepresentalaaplicacióntantoenelapartadodeadministradorcomo eneldeusuario. 5.1Basededatos Labasededatosesunadelaspartesmásimportantesdelproyectoporquesobreella semantienetodoelpesodelaaplicación,yaquetantoprofesorescomoalumnos tendránqueaccederpararecuperaroinsertarinformación,yunfallopodría desestabilizartodalaaplicación. 5.1.1Diagrama Figura6:Diagramadelabasededatos
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 40 5.1.2Estructura Enesteapartadosemostraránconmásdetallelasdiferentestablasqueformanparte delabasededatos. Tablaidentificación:Estatablacontienetodalainformaciónnecesariapara identificarsecomoprofesorocomoalumno. CampoTipoDescripción UserVarcharClaveprimaria.Eselcampoquecontieneelnombrede usuariodelacuentatantodeprofesorcomodealumnos. ParalosalumnosseusaráelNIU PassVarcharContraseñadelascuentasdeprofesoryalumnos TipoBooleanoIndicaeltipodeusuariodelacuenta,1siesprofesory0sies alumno. Tabladiario:Contienelasentradasquehanintroducidolosalumnoseneldiario. CampoTipoDescripción IdInt Claveprimaria.Campoqueidentificacadaunadelas entradas. AlumnoVarcharGuardaelusuarioalquepertenecelaentrada ContenidoLongtextContieneelcomentariointroducidoporelalumno. FechaVarcharEstecampocontienelafechaenqueseañadióel comentario. Tablarespuesta_teoria:Estatablacontienelarespuestadecadaalumnoalos ejerciciospropuestosenelapartadodeteoría. CampoTipoDescripción IdIntClaveprimaria.Campoqueidentificacadaunadelas entradasdelatabla. Ref_PreguntaIntEstecampoindicaelidentificadorquetienelapreguntaala quepertenecelarespuesta. AlumnoVarcharGuardaelusuarioalquepertenecelaentrada. RespuestaLongtextEstecampocontienelarespuestaquehapropuestoel alumnoparaelejercicio. ModificaciónVarcharEstecampocontienelafechadelaúltimamodificacióndel alumnoaesteejercicio.
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 41 Tablarespuesta_practicas:Estatablacontienelarespuestadecadaalumnoalas tareaspropuestasenelapartadodeprácticas. CampoTipoDescripción IdIntClaveprimaria.Campoqueidentificacadaunadelas entradasdelatabla. Ref_PreguntaIntEstecampoindicaelidentificadorquetienelapreguntaala quepertenecelarespuesta. AlumnoVarcharGuardaelusuarioalquepertenecelaentrada. RespuestaLongtextEstecampocontienelarespuestaquehapropuestoel alumnoparaelejercicio. ModificaciónVarcharEstecampocontienelafechadelaúltimamodificacióndel alumnoaesteejercicio. Tablarespuesta_problemas:Estatablacontienelarespuestaalosejercicios propuestosenelapartadodeproblemasdelaasignatura. CampoTipoDescripción IdIntClaveprimaria.Campoqueidentificacadaunadelas entradasdelatabla. Ref_PreguntaIntEstecampoindicaelidentificadorquetienelapreguntaala quepertenecelarespuesta. AlumnoVarcharGuardaelusuarioalquepertenecelaentrada. RespuestaLongtextEstecampocontienelarespuestaquehapropuestoel alumnoparaelejercicio. ModificaciónVarcharEstecampocontienelafechadelaúltimamodificacióndel alumnoaesteejercicio. Tablarespuesta_trabajo:Contieneeltrabajosobrelaasignaturaquehahecho cadaalumnoademásdelavaloracióndesuscompañeros. CampoTipoDescripción IdIntClaveprimaria.Campoqueidentificacadaunadelas entradasdelatabla. AlumnoVarcharGuardaelusuarioqueharealizadolaentrada. ValoraciónLongtextContienelavaloraciónquehahechoelalumnodesus compañerosdetrabajo. RespuestaLongtextEstecampocontieneeltrabajorealizadoporelalumno. ModificaciónVarcharEstecampocontienelafechadelaúltimamodificaciónde estaentrada.
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 48 Figura14:PestañasdelapartadodeTeoría Figura15:PestañasdelapartadodeTrabajo 5.2.2.1Diario CuandoelalumnoseleccionaenelmenúdeactividadeslaopciónDiario,semuestra enelpanelcentralunatablaconlosdíasdelmesseleccionadoenelselectorsuperiory elañoindicadoenlazonainferior. Figura16:Apartadodeldiario
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 49 Losdíasdeldiariopresentarándiferentecolordefondoenfuncióndesisehaañadido uncomentarioonoenesedía. Figura17:Detalledelosdíaseneldiario Sisepulsasobreunodelosdías,sedesplegaráunapantalladondesepodráverel comentariointroducido. Finalmente,paraañadiromodificaruncomentarioconlafechaactual,desdela pestañaNuevaEntradaseaccederáaleditordetextodesdeelquesepodráintroducir lainformación. Figura18:Comentarioenundíadeldiario DíasincomentarioDíaconcomentario
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 50 5.2.2.2Notas Estesub‐apartadomostraráunatablaconlasnotasdelalumnoencadaunadelas actividadesdelcurso. Figura19:Puntuacióndelalumno 5.2.3Profesor Lapáginadelprofesorcuentaconelmismoapartadovisualquelaseccióndelalumno. Enestecasoelmenúprincipalcontieneotrasopciones,comosepuedeverenla siguienteimagen: Figura20:Menúdeactividades
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 51 Estemenúcontienediferentesnivelesqueseabrendependiendodelaopción escogida.AlpulsarsobreelbotónModificarContenidosedespliegaunsubmenúcon losdiferentesapartadosqueelprofesorpuedemodificar. Figura21:Menúdeactividadesdesplegado. Igualqueenlaseccióndelalumno,losbotonesdeTeoría,ProblemasyPrácticas desplegaránunosselectoresquepermitiránescogeruntemayunejerciciodelosque yasehayanguardadoanteriormenteenlabasededatosconelfindemodificarlos. Figura22:Menúprofesorconsecciónabierta
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 52 5.2.3.1Listadealumnos Desdeesteapartadoelprofesorpodráseleccionarlacuentadelalumnoquequiere ver. Figura23:Listadealumnosregistrados 5.2.3.2Notas Desdeesteapartadoelprofesorpodráintroducirlasnotasdelosalumnosregistrados enlaaplicación.Tambiéndesdeestasección,enlapestañaEditarInformación,podrá añadirlainformaciónreferentealmétododeevaluaciónseguido. Figura24:Apartadodeintroduccióndenotas
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 53 5.2.3.3Introduccióndeejercicios TantoenlaseccióndeTeoría,comoenladeProblemasyPrácticasdelapáginadel profesorsepodráverlapestañaVisualizar,quemostraráelejercicioseleccionado,la pestañaEditar,dondeademásdeleditordetextosseencontrarándosáreasdetexto parainsertarelnúmerodetemaydeejercicioademásdepoderseleccionarsiel ejercicioesvisibleparaelalumno. Figura25:Insertarnúmerodetemayejercicio Latercerapestañaquemostraránestosapartadosesladeeliminar,dondeseverán unalistaconlosejerciciosintroducidosenlabasededatosparaelapartado seleccionado,yquepodránsereliminadosdesdeahí. Figura26:Pestañadeeliminar
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 54 5.2.4Subirarchivos Aesteapartadosepodráaccederdesdeeliconosuperiordelapáginaymostraráuna listaconlosarchivossubidosporelusuarioasícomolaopcióndeeliminaro renombrarcadaunodeesosarchivos. Figura27:Páginadesubirarchivos 5.2.5Editordetextos Comosehacomentadoenpuntosanteriores,endiferentesapartadossepodrá introducirtexto,yparafacilitarlatareapodráencontrarseenlasdiferentespestañas deEditaruneditordetextocomoeldelasiguientefigura: Figura28:Editordetextos
Webparalagestiónelectrónicadeunacarpetadeestudiante DISEÑODELAAPLICACIÓN 55 5.2.6Botonera Enlazonasuperiordelapáginasepodráencontrarunconjuntodeiconosmediante loscualeselusuariopodrásalirdelaaplicación(icono1),volveralapáginainicialde sucuenta(icono2),obtenerayudasobreelapartadoenelqueseencuentra(icono3), accederalapáginadesubirarchivos(icono4),yporúltimo,enestazona,estáelicono paravolveralapáginadelprofesor(icono5),quesoloserávisiblecuandoelprofesor accedaalacuentadeunalumnodesdelaseccióndedicadaaellodelacuentade administrador. Figura29:Botonerasuperior Icono1Icono2Icono3Icono4Icono5
Webparalagestiónelectrónicadeunacarpetadeestudiante IMPLEMENTACIÓN 56 6.IMPLEMENTACIÓN Comosehacomentadoencapítulosanterioreselproyectoserealizaráutilizandoel FrameworkStruts2queutilizaelpatrónMVC.Porlotantoenesteapartadose mostrarácadaunadelaspartesqueformanestepatrónasícomoeltemadela persistenciaconHibernate. 6.1Capadelmodelo Estacapaeslapartedondeseprocesanlasaccionesysedevuelvenlosresultados. Tambiéneslaparteencargadadeaccederalabasededatos.Todoestoesta implementadoenclasesdeJava. Acontinuaciónsemostraráunadelasclasesutilizadasenelproyectodondese mostrarácómosehaceunalecturadelabasededatosutilizandoHibernateyse traspasaesainformaciónalacapadelavista. Sepuedeverenlalíneanúmerosietecomoseguardatodalainformaciónque contienelatabladelabasededatosrelacionadaconlaclaseModTrabajoenlalista modifTrabajo.Acontinuaciónenlaslíneasdiezyoncesepasalainformacióndela clasejavaalapáginajspdondeContenidoeselnombrequetieneeltextareadela capadelavista. Figura30:Lecturadelabasededatos
Webparalagestiónelectrónicadeunacarpetadeestudiante IMPLEMENTACIÓN 57 Paraguardarinformaciónenlabasededatostambiénserealizarádesdelaclasede Java,yaligualquelalectura,seutilizaráHibernateparapasarlainformaciónhastala basededatos. Enlalíneanúmerosieteyochosepuedevercomoserecogelainformación procedentedelacapadelavistayseguardaenunavariabledeltipodelaclase,en estecasoModTrabajo,acontinuacióndependiendodesiseinsertaporprimeravezla informaciónodesisehaceunaactualización,Hibernaterealizaunsaveenlalínea númerodiecisieteohaceunupdateenlalíneaoncerespectivamentedondeseguarda lainformaciónrecuperadadelapáginajspenlabasededatos. Figura31:Escrituraenlabasededatos
Webparalagestiónelectrónicadeunacarpetadeestudiante PRUEBAS 64 Unavezcomprobadoquetodalapartedelprofesorfuncionacorrectamente,pasamos autilizarlaaplicacióncomoalumno,enprimerlugar,antesdepoderaccederala cuenta,deberemosregistrarnosyacontinuación,trasidentificarnos,seaccederáala páginaprincipaldondeyasepodrávertodalainformacióndelaasignatura introducidapreviamenteconlacuentadelprofesor. Figura41:Páginadeinicioenlacuentadelalumno
Webparalagestiónelectrónicadeunacarpetadeestudiante PRUEBAS 65 Ahoraeselmomentoderesolveralgunodelosejerciciospropuestosporelprofesor, paraellosehaseleccionadoelapartadodeProblemas.Enlasiguientefigurasepuede verunapartedelejercicioresuelto. Figura42:Resolucióndeunproblema Parafinalizar,dandounsaltoalfinaldelcurso,nuevamentedesdelacuentadel profesorintroducimoslapuntuacióndelalumnoparacorroborarquerealizabienesta últimaoperación. Figura43:Páginadeinsertarnotas
Webparalagestiónelectrónicadeunacarpetadeestudiante PRUEBAS 66 Desdelacuentadelalumnoaccedemosalapartadodenotasparacomprobarla puntuaciónfinaldelastareasrealizadas. Figura44:Apartadodenotasdelalumno Unavezfinalizadoestepaquetedepruebas,sepuedeconcluirconqueel funcionamientodelaaplicaciónescorrectoparacadaunadesussecciones.
Webparalagestiónelectrónicadeunacarpetadeestudiante CONCLUSIONES 67 8.CONCLUSIONES Llegadoaestepuntodelamemoria,eselmomentodevalorarsiconlanueva aplicaciónquesehaimplementadosehaconseguidocubrirtodoslosobjetivosquese habíanplanteadoantesdecomenzarsuconstrucción. Conesteproyectosehaqueridodiseñarunasolucióntecnologíaparasatisfacerlas necesidadesdeunaasignaturaconcreta,perosiempreconlamentepuestaenla posibilidaddeexportarlaaplicaciónaotrasasignaturasconunametodologíade trabajosimilar.Losobjetivoseranconseguirunaaplicaciónfácildeusareintuitivapara favorecerlarápidaadaptacióndelosfuturosusuarios.Otrodelosgrandesobjetivos quesehabíanplanteadodesdeelprincipioerafavorecersuusoenmúltiples plataformasparaevitarlimitacionesenelusodeservidores,ademásdepermitirsu utilizaciónenlamayorcantidaddenavegadoresyresolucionesdepantallaposible paraquelosusuariospudieranseguirutilizandosusconfiguracionespreferidas. Teniendoencuentalosobjetivosperseguidosyelresultadoobtenidosepuede concluirconquesehanlogradoalcanzartodaslasmetaspropuestasaliniciareste proyecto. Desdeelpuntodevistapersonal,elproyectomehaaportadosobretododoscosas,la primeraesqueheaprendidoautilizartecnologíasquedesconocíatotalmentecomo Struts2,HibernateoJSPymehadadolaoportunidaddeprofundizarmásenlos conocimientospreviosqueteniasobreJavaScriptyCSS.Lasegundacosaquemeha aportadoesteproyectohasidolaexperienciadecrearunsitiowebcompletodesde cero,conlaposibilidaddecomprobarlasconsecuenciasdetomarunadecisiónuotra encadamomentodeldesarrollo.
Webparalagestiónelectrónicadeunacarpetadeestudiante BIBLIOGRAFÍA 68 9.BIBLIOGRAFÍA 9.1Fuentesbibliográficas • DonaldBrown,ChadMichaelDavis,ScottStanlick.Struts2inaction,2008 Ed.Manning. • FranciscoCharteOjeda.LabibliadeHTML,2005Ed.AnayaMultimedia. • AndyBudd,CameronMoll,SimonCollison.ManualavanzadodeCSS,2007 Ed.AnayaMultimedia. • LázaroIssiCamy.LabibliadeJavaScript,2002Ed.AnayaMultimedia. 9.2Fuenteselectrónicas • Struts2:http://struts.apache.org/2.0.14/ • Tiny_MCE:http://tinymce.moxiecode.com/ • Hibernate:http://www.hibernate.org • jsMath:http://www.math.union.edu/~dpvc/jsMath/authors/2.x/basics.html • Jasypt:http://www.jasypt.org/getting‐started‐easy.html • Tomcat:http://tomcat.apache.org/ • Mysql:http://www.mysql.com/
Webparalagestiónelectrónicadeunacarpetadeestudiante BIBLIOGRAFÍA 69 9.3Bibliografíatecnológica • FranciscoCharteOjeda,JorgeSerranoPérez.ProgramaciónconMicrosoft VisualStudio.NET,2002ed.AnayaMultimedia • NicholasC.Zakas,JeremyMcPeak,JoeFawcett.ProfessionalAJAX2nd Edition,2007ed.WileyPublishing • Comparativadetecnologías: http://www.promoteware.com/Module/Article/ArticleView.aspx?id=10 • http://es.wikipedia.org/wiki/.NET • http://es.wikipedia.org/wiki/PHP • http://es.wikipedia.org/wiki/J2EE
Webparalagestiónelectrónicadeunacarpetadeestudiante ANEXO 70 ANEXO Generarunacontraseñadeadministrador Esteanexopretendeserunaayudaparalacreacióndeunacuentadeadministrador, yaquelaúnicaformadepodercrearestetipodeusuarioesgenerandolaencriptación delpassworddeformaexternaalaaplicaciónyañadiéndolaposteriormentealabase dedatos. Elprocesoserealizarádesdeunalíneadecomandos.Despuésdeaccederaldirectorio dondesehadescomprimidoelarchivoadjunto(Jasypt)sedeberáiraldirectoriobiny seinsertarálasiguientelínea: Acontinuaciónsemuestraunejemploparalacontraseña“123456”. Figura45:Cifradodeunacontraseña Unavezobtenidoelcifradodelacontraseñasedebeañadirunanuevaentradaala basededatosenlatablaidentificación,dondeenelcampoUserseañadiráelnúmero delusuario,enelcampoPassseañadiráestacontraseñayenelcampoTipose introduciráun1paraindicarqueesunprofesor. digest.batinput=”contraseña”saltSizeBytes=0iterations=1algorithm=SHA1
Elabajofirmante,DavidForteRomera,alumnodelaEscuelaUniversitaria deInformáticadelaUAB, CERTIFICA: Queharealizadolapresentememoriayelproyecto“Webparalagestión electrónicadeunaCarpetadeAprendizaje”. Yparaqueconstefirmalapresente. Sabadell,Septiembredel2009 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Firmado:DavidForteRomera