Que estàs buscant?
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
B3_Que els estudiants tinguin la capacitat de reunir i interpretar dades rellevants (normalment dins de la seva àrea d'estudi), per emetre judicis que incloguin una reflexió sobre temes rellevants de caire social, científica o ètica
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
EFB6_Coneixement adequat del concepte d'empresa, marc institucional i jurídic de l'empresa. Organització i gestió d'empreses
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
EIS3_Capacitat per donar solució a problemes d'integració en funció de les estratègies, estàndards i tecnologia disponibles
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
ESI1_Capacitat per integrar solucions de Tecnologies de la Informació i de les Comunicacions i processos empresarials per a satisfer les necessitats d'informació de les organitzacions, permetent arribar als seus objectius de forma efectiva i eficient, aconseguint així avantatges competitives
ESI2_Capacitat per determinar els requisits dels sistemes d'informació i comunicació d'una organització, atenent a aspectes de seguretat i compliment de la normativa i legislació vigent
ESI3_Capacitat per participar activament en l'especificació, disseny, implementació i manteniment dels sistemes d'informació i comunicació
ESI4_Capacitat per comprendre i aplicar els principis i pràctiques de les organitzacions, de manera que puguin exercir com a enllaç entre les comunitats tècniques i de gestió d'una organització i participar activament en la formació dels usuaris
ESI5_Capacitat per comprendre i aplicar els principis de l'avaluació de riscos i aplicar-los correctament en l'elaboració i execució de plans d'actuació
ESI6_Capacitat per comprendre i aplicar els principis i les tècniques de gestió de la qualitat i de la innovació tecnològica en les organitzacions
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
En aquesta assignatura es veurà una visió global de les tres arquitectures dels sistemes d'informació més usades avui en dia a la indústria. En primer lloc l'arquitectura monolítica on totes les funcionalitats són en un sol mòdul, en segon lloc veurem la família de les arquitectures "clean" o hexagonals que separen les funcionalitats en mòduls diferents i busquen aïllar-les dels "detalls" de l'aplicació, i en tercer lloc explorarem les arquitectures basades en microserveis que busquen separar les funcionalitats en aplicacions independents però interconnectades. Veurem els avantatges i inconvenients de cadascuna d'elles. Les pràctiques vesaran sobre les arquitectures hexagonals i les basades en microserveis.
Aquesta assignatura disposa de recursos metodològics i digitals per fer possible la seva continuïtat en modalitat no presencial en el cas de ser necessari per motius relacionats amb la Covid-19. D'aquesta forma s'assegurarà l'assoliment dels mateixos coneixements i competències que s'especifiquen en aquest pla docent.
Aquesta assignatura contribueix als següents resultats d'aprenentatge especificats per a la matèria a la qual pertany (Serveis i sistemes d'informació per les organitzacions)
Hi haurà classes de teoria en grup gran i classes de pràctiques al laboratori en grup petit. A les classes de teoria s'aniran combinant sessions de tipus lliçó magistral amb sessions de resolució de problemes proposats pel professor en grups de dos o tres estudiants.
Les pràctiques al laboratori es realitzaran per parella. S'hauran de començar a treballar al laboratori amb l'ajuda del professor i s'hauran d'acabar de forma autònoma fora de les hores presencials reglamentades.
1.- Motivació
2.- Introducció a l’arquitectura del software i sistemes
3.- Arquitectures monolítiques
3.1.- Característiques
3.2.- Revisitem l’arquitectura per capes
4.- Arquitectures modulítiques “clean” o hexagonals
4.1.- Característiques
4.2.- Una estructura que expliqui la funcionalitat
4.3.- Ports i adaptadors
4.4.- Mapping entre capes
5.- Arquitectures distribuides: microserveis
5.1.- Introducció: “the monolith hell”
5.2.- Modelització: DDD
5.3.- Models de comunicació (síncrona i asíncrona)
5.4.- Transaccions i “eventual consistency”
5.5.- Patrons d’infraestructura
Amb l'objectiu de recollir evidència de l'assoliment dels resultats d'aprenentatge esperats es realitzaran les següents activitats de caràcter avaluatiu:
Prova escrita: l'estudiant haurà de demostrar que ha adquirit els coneixements teòrics explicats a classe i que pren decisions de disseny informades. (Evidència dels resultats d'aprenentatge RA1, RA2, RA4, RA5, RA6, RA8). Totes les competències excepte T2 (treball en equip)
Prova pràctica: l'estudiant haurà de demostrar que ha adquirit els coneixements pràctics. La prova consistirà en el desenvolupament d'una part d'un sistema d'informació (Evidència dels resultats d'aprenentatge RA2, RA3, RA8, RA9)
Pràctiques: hi haurà un màxim de 5 pràctiques on s'aplicaran els coneixements adquirits a classe. (Evidència dels resultats d'aprenentatge RA2, RA3, RA7, RA8, RA9)
Nota: totes les activitats estan relacionades amb totes les competències. Cal destacar que tota la documentació està escrita en anglès pel que el darrer resultat d'aprenentatge i la competència transversal T1 queden garantides. D'altra banda per desenvolupar les pràctiques els estudiants hauran de resoldre de forma autònoma, usant els manuals, els problemes que els vagin sorgint pel que la competència B5 també queda garantida. A continuació s'expliciten els aspectes més importants de cada competència assignada a l'assignatura:
Per tal de superar (aprovar) les activitats avaluatives, els estudiants hauran de demostrar
Avaluació
Càlcul nota final (NF):
Recuperació:
Es podran recuperar les dues proves (PR_E i PR_P) per separat. La nota final es calcularà tal i com s'ha establert anteriorment amb les notes de la recuperació de les proves.
Normativa:
Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java. Tom Hombergs. Packt Ed
Newman, Sam (2021), "Building Microservices: Designing Fine-Grained Systems" (2nd edition). O'Reilly Media
Josh Long, Kenny Bastani, "Cloud Native Java. Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry". O'Reilly 2017
Chris Richardson. Patrons de microserveis: https://microservices.io/
Hands-On Microservices with Spring Boot and Spring Cloud. By Magnus Larsson. Packt publisher (2019)