Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Rosa Herrero Antón

Trimestre: Primer trimestre

Crèdits: 6

Professorat: 

Josep Roure Alcobé
Alfredo Rueda Unsain 

Idiomes d'impartició


  • English

Competències


Competències bàsiques
  • B2_Que els estudiants sàpiguen aplicar els seus coneixements a la seva feina o vocació d'una forma professional i tinguin les comptències que demostren mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi

  • B4_Que els estudiants puguin transmetre informació, idees, problemes i solucions a un públic tan especialitzat com no especialitzat

  • B5_Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia

Competències específiques
  • EIS1_Capacitat per a desenvolupar, mantenir i avaluar serveis i sistemes software que satisfacin tots els requisits de l'usuari i que es comportin de forma fiable i eficient, siguin assequibles de desenvolupar i mantenir i compleixin normes de qualitat, aplicant les teories, principis, mètodes i pràctiques de l'enginyeria del software

  • EIS2_Capacitat per a valorar les necessitats del client i especificar els requisits software per a satisfer aquestes necessitats, reconciliant objectius en conflicte, mitjançant la cerca de compromisos acceptables, dins de les limitacions derivades del cost, del temps, de l'existència de sistemes ja desenvolupats i de les pròpies organitzacions

  • EIS4_Capacitat d'identificar i analitzar problemes i dissenyar, desenvolupar, implementar, verificar i documentar solucions software sobre la base d'un coneixement adequat de les teories, models i tècniques actuals

  • EIS5_Capacitat d'identificar, avaluar i gestionar els riscos potencials associats que es puguin presentar

  • EIS6_Capacitat per a dissenyar solucions apropiades en un o més dominis d'aplicació, utilitzant mètodes de l'enginyeria del software que integren aspectes ètics, socials, legals i econòmics

  • ESI3_Capacitat per participar activament en l'especificació, disseny, implementació i manteniment dels sistemes d'informació i comunicació

Competències transversals
  • T1_Que els estudiants coneixin un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit, d'acord amb les necessitats que tindran les graduades i els graduats a cada titulació

  • T2_Que els estudiants tinguin capacitat per a treballar com a membres d'un equip interidisciplinar ja sigui com un membres més, o realitzant tasques de direcció amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos tenint en compte els recursos disponibles

Descripció


Aquesta és una assignatura de laboratori i per tant és eminentment pràctica. L’objectiu final és construir una aplicació web completa pel que implementarem un producte mínim viable que decidirem durant els primers dies de curs. Les característiques que haurà de tenir l’aplicació seran les següents:

  • El model del domini ha de tenir un mínim de quatre classes
  • S’ha de connectar a una base de dades remota
  • Implementa seguretat: ha de validar els usuaris
  • Segueix els patrons de software vists a les assignatures de programació i d'enginyeria del software
  • Separa la capa de presentació de la capa de domini amb el patró vista-controlador
  • Es connecta a un servei extern amb el protocol HTTP

Estudiarem les tecnologies i protocols base sobre les que es construeixen les aplicacions web per seguidament introduir el framework anomenat Spring. Hem triat el Spring per moltes raons: és opensouce, és en Java, es molt usat al món professional, segueix i fomenta bones pràctiques de programació, hi ha una comunitat molt gran i activa al darrera. 

A l’assignatura és donarà molta importància al procés de desenvolupament de l’aplicació. S’haurà de desenvolupar en grups de tres estudiants i s’haurà de repartir la feina de manera que tots els integrants desenvolupin sencera alguna funció, és a dir, que treballin amb la BBDD, l'aplicació pròpiament dita i el servei web/REST. 

Continguts


Tema 1. Aplicacions internet

  1. Comunicació client i servidor: protocol HTTP
  2. JEE, Servlets i JSP
  3. Context de sessió i d’aplicació
  4. Transferència d’objectes serialitzats amb XML i JSON

Tema 2. Servidor: El framework Spring

  1. Components de Spring
  2. Injecció de dependències
  3. Programació orientada a aspectes (AOP)
  4. El patró Model Vista Controlador (MVC)
  5. Serveis REST
  6. Formularis i pas d'informació
  7. Excepcions i control d'errors
  8. Seguretat
  9. Connexió a BBDD amb JDBC
  10. Connexió a serveis externs

Tema 3. Cloud: 

  1. Els serveis cloud
  2. "Deployment" d'aplicacions al cloud
  3. Cloud i contenidors

Sistema d'avaluació


Avaluació

  • PRJ: projecte. Ponderació de la nota final 70% si la nota de PR_P >= 4
  • PR_P: prova pràctica. Ponderació de la nota final 30% (nota mínima per aplicar les ponderacions 4)

Càlcul nota final (NF):

  • Si PR_P >= 4 :  NF = PON = PR_P 0,30 + PRJ 0,70
  • Si PR_P < 4 :    NF = min(PR_P, PON)

Recuperació:

  • Només es podrà recuperar la prova pràctica PR_P. La nota final es calcularà tal i com s'ha establert anteriorment amb les notes de la recuperació de la prova.

Normativa:

  • Seguint la normativa de la UPF, si es detecta que una pràctica o una prova ha estat copiada la nota d'aquella prova serà de 0 (zero) amb independència del seu paper (receptor o l'emissor) i sense que això exclogui la possible aplicació d’altres sancions d’acord amb el Règim Disciplinari vigent.
  • Per tal que l'estudiant tingui dret a la recuperació s'haurà d'haver presentat a PR_R

Bibliografia


Bàsic

Walls, Craig (2022), "Spring in Action". (6th edition) Manning Publications. 

Plana principal Spring. https://spring.io/

Spring framework documentation: https://docs.spring.io/spring/docs/current/spring-framework-reference/index.html

Complementary

Deinum, Marten; Rubio, Daniel; Long, Josh and Mak, Gary (2014) "Spring Recipes, A problem-solution approach", Third Edition. Apress

 Stephen Ludin, Javier Garza, "Learning HTTP/2: A Practical Guide for Beginners" 1st Edition. O'Reilly June 2017. ISBN-10: 1491962445