Aplicacions i Serveis Web

Esteu aquí

Crèdits
6
Tipus
Obligatòria d'especialitat (Enginyeria del Software)
Requisits
  • Prerequisit: AS
Departament
ESSI
En aquesta assignatura volem que l'alumne adquireixi d'un coneixement profund, crític i sistemàtic de les tecnologies més importants per al desenvolupament d'aplicacions i serveis web moderns, que sàpiga com utilitzar-les en situacions concretes i que ho faci d'acord amb els principis de disseny i les bones pràctiques més apropiats en cada cas.

Professors

Responsable

  • Carles Farre Tost ( )

Altres

  • Joaquim Motger de la Encarnacion ( )

Hores setmanals

Teoria
1.3
Problemes
0.7
Laboratori
2
Aprenentatge dirigit
0.4
Aprenentatge autònom
5.6

Competències

Competències Tècniques

Competències tècniques comunes

  • CT2 - Utilitzar d'una manera apropiada teories, procediments i eines en el desenvolupament professional de l'enginyeria informàtica en tots els seus àmbits (especificació, disseny, implementació, desplegament -implantació- i avaluació de productes) de manera que es demostri la comprensió dels compromisos adoptats a les decisions de disseny.
    • CT2.1 - Demostrar coneixement i capacitat d'aplicació dels principis, metodologies i cicles de vida d'enginyeria del software.
    • CT2.3 - Dissenyar, desenvolupar, seleccionar i avaluar aplicacions, sistemes i serveis informàtics i, al mateix temps, assegurar-ne la fiabilitat, la seguretat i la qualitat en funció de principis ètics i de la legislació i la normativa vigents.
    • CT2.5 - Dissenyar i avaluar interfícies persona-computador que garanteixin l'accessibilitat i la usabilitat als sistemes, als serveis i a les aplicacions informàtiques.

Competències Tècniques de cada especialitat

Especialitat enginyeria del software

  • CES1 - Desenvolupar, mantenir i avaluar serveis i sistemes software que satisfacin tots els requisits de l'usuari, que es comportin de forma fiable i eficient, que tinguin un desenvolupament i un manteniment assequible i que compleixin normes de qualitat aplicant les teories, els principis, els mètodes i les pràctiques d'Enginyeria del Software.
    • CES1.1 - Desenvolupar, mantenir i avaluar sistemes i serveis software complexos i/o crítics.
    • CES1.2 - Donar solució a problemes d'integració en funció de les estratègies, dels estàndards i de les tecnologies disponibles.
    • CES1.4 - Desenvolupar, mantenir i avaluar serveis i aplicacions distribuïdes amb suport de xarxa.
    • CES1.7 - Controlar la qualitat i dissenyar proves en la producció de software.
  • CES2 - 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, dintre de les limitacions derivades del cost, del temps, de l'existència de sistemes ja desenvolupats i de les organitzacions.
    • CES2.2 - Dissenyar solucions apropiades en un o més dominis d'aplicació, utilitzant mètodes d'enginyeria del software que integrin aspectes ètics, socials, legals i econòmics.
  • CES3 - Identificar i analitzar problemes; dissenyar, desenvolupar, implementar, verificar i documentar solucions software sobre la base d'un coneixement adient de les teories, dels models i de les tècniques actuals.
    • CES3.1 - Desenvolupar serveis i aplicacions multimèdia.

Competències Transversals

Aprenentatge autònom

  • G7 - Detectar carències en el coneixement propi i superar-les mitjançant la reflexió crítica i l'elecció de la millor actuació per ampliar aquest coneixement. Capacitat per a l'aprenentatge de nous mètodes i tecnologies, i versatilitat per a adaptar-se a noves situacions.
    • G7.3 - Aprenentatge autònom: capacitat de planificació i organització del treball personal. Aplicar els coneixements adquirits a la realització d'una tasca en funció de la pertinença i de la importància, decidir la manera de dur-la a terme i el temps que se li ha de dedicar, i seleccionar les fonts d'informació més adients. Identificar la importància d'establir i mantenir contactes amb els companys d'estudis, amb el professorat i amb els professionals (networking). Identificar fòrums d'informació sobre enginyeria TIC, els seus avenços i el seu impacte en la societat (IEEE, associacions, etc.).

Objectius

  1. Adquirir un coneixement crític i sistemàtic dels principals protocols i tecnologies web
    Competències relacionades: CES1.1, CES1.2, CES1.4, CES3.1, G7.3, CT2.3,
  2. Adquirir una visió de conjunt de l'ampli ventall de llenguatges, tècniques i eines disponibles per al desenvolupament d'aplicacions i serveis web
    Competències relacionades: CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  3. Avaluar i seleccionar l'arquitectura i les tecnologies més apropiades per a una determinada aplicació/servei web
    Competències relacionades: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  4. Disenyar aplicacions i serveis web
    Competències relacionades: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CES1.7, CT2.3,
    Subcompetences:
    • Conèixer i aplicar els patrons de disseny més apropiats en cada cas
    • Dissenyar les interfícies dels serveis web
    • Realitzar el disseny extern d'aplicacions web
    • Realitzar el disseny intern d'aplicacions i serveis web
  5. Conèixer i utilitzar frameworks per implementar aplicacions i serveis web
    Competències relacionades: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  6. Implementar, desplegar i configurar aplicacions i serveis web utilitzant les tecnologies i tècniques proposats
    Competències relacionades: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  7. Conèixer i identificar els principals riscos de seguretat de les aplicacions i serveis web i les estratègies per solucionar-los.
    Competències relacionades: CT2.1, CES1.1, CES1.4, CES2.2, G7.3, CES1.7, CT2.3,
  8. Analitzar i avaluar aplicacions i serveis web segons criteris de qualitat
    Competències relacionades: CT2.1, CES1.1, CES1.4, CES2.2, CT2.5, G7.3, CES1.7, CT2.3,
    Subcompetences:
    • Conèixer i aplicar principis, estratègies i eines per avaluar el rendiment d'aplicacions i serveis web
    • Dissenyar i executar proves de regressió
    • Conèixer i aplicar principis, estratègies i eines per avaluar la usabilitat d'aplicacions i serveis web

Continguts

  1. Introducció
    Diferències entre aplicacions web i serveis web. Evolució històrica. Característiques principals de les aplicacions i serveis web.
  2. Protocols, llenguatges i tecnologies Web
    • El nucli: URIs i HTTP

    • En el client: HTML, CSS, JavaScript, DOM, AJAX

    • En el servidor: PHP, Java Servlets, JSPs, ...

    • Formats d'intercanvi de dades: XML, JSON

    • Serveis Web: SOAP+WSDL, REST
  3. Arquitectures per a Aplicacions i Serveis Web
    Arquitectura Lògica vs. Arquitectura Física. Especificitats i condicionants de les aplicacions i serveis web. Components d'una arquitectura web genèrica. Patrons d'arquitectures físiques.
  4. Disseny d'Aplicacions Web
    Arquitectura i disseny d'aplicacions web.
  5. Disseny de Serveis Web
    Arquitectura i disseny de serveis web.
  6. Seguretat, Usabilitat i Proves d'Aplicacions i Serveis Web
    Aspectes relacionats amb la seguretat, l'usabilitat i l'automatització de proves d'aplicacions i serveis web.

Activitats

Activitat Acte avaluatiu


Tema 1: Introducció

Participa activament a la classe de teoria, on s'expliquen els objectius i l'organització de l'assignatura.

Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h

Tema 2: Protocols, llenguatges i tecnologies Web

Participa activament a la classe de teoria. De manera autònoma, i en grups de dos o tres, començarà a buscar informació sobre una tecnologia específica que hauran de presentar a classe.
Objectius: 1 2
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

P1: Presentació sobre protocols, llenguatges i tecnologies web (Part 1)

A banda de realitzar la presentació davant de tota la classe, caldrà lliurar un fitxer amb les transparències elaborades a tal efecte.
Objectius: 1 2
Setmana: 3
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

P1: Presentació sobre protocols, llenguatges i tecnologies Web (Part 2)

A banda de realitzar la presentació davant de tota la classe, caldrà lliurar un fitxer amb les transparències elaborades a tal efecte.
Objectius: 1 2
Setmana: 4
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h

Tema 3: Arquitectures per a Aplicacions i Serveis Web

Participa activament a la classe de teoria.
Objectius: 3
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Tema 4: Disseny d'Aplicacions Web

Participa activament la classe de teoria. De manera autònoma, estudiarà material relacionat amb el tema i farà els exercicis proposats pel professor.
Objectius: 4
Continguts:
Teoria
3h
Problemes
3h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
9h

C1: Control 1

Control on s'avaluaran els continguts dels temes 1,2 i 3.
Objectius: 4
Setmana: 9
Tipus: examen de problemes
Teoria
0h
Problemes
2h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Revisió del control 1

L'alumne que ho vulgui demanarà explicacions o presentarà reclamacions sobre l'avaluació seguint les pautes establertes.

Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
0h

Tema 5: Disseny de Serveis Web

Participa activament la classe de teoria. De manera autònoma, estudiarà material relacionat amb el tema i farà els exercicis proposats pel professor.
Objectius: 4
Continguts:
Teoria
3h
Problemes
3h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
9h

P2: Presentació sobre seguretat, usabilitat i proves d'aplicacions i serveis web (Part 1)


Objectius: 7 8
Setmana: 13
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

P2: Presentació sobre seguretat, usabilitat i proves d'aplicacions i serveis web (Part 2)


Objectius: 7 8
Setmana: 14
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

C2: Control 2

Control on s'avaluaran els continguts dels temes 5 i 6.
Objectius: 4 7 8
Setmana: 15
Tipus: examen de problemes
Teoria
0h
Problemes
3h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Revisió del control 2

L'alumne que ho vulgui demanarà explicacions o presentarà reclamacions sobre l'avaluació seguint les pautes establertes.

Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
0h

Laboratori: Sessions d'introducció a tecnologies per a aplicacions i serveis web

Per parelles, treballa (instal·la, configura, programa) per tal de dur a terme una sèrie de tasques preestablertes en l'enunciat lliurat a l'inici de la sessió, utilitzant el llenguatge, eines i recursos indicats. Amb antelació, i de manera autònoma, s'ha familiaritzat i introduït en l'ús d'aquestes tecnologies.
Objectius: 1 2 6
Continguts:
Teoria
0h
Problemes
0h
Laboratori
10h
Aprenentatge dirigit
0h
Aprenentatge autònom
13h

Laboratori: Projecte

En grups de 3-4, dissenya i implementa els tests i el codi d'una aplicació web i en fa el desplegament al núvol. Independentment de les seves funcionalitats, aquesta aplicació constarà de tres parts: aplicació web "clàssica", API REST i interfície mòbil "responsive". Cada setmana acudeix a la sessió de laboratori per treballar en el projecte, indicar el grau d'assoliment de les fites establertes per aquella sessió, (re)planificar les fites per a les properes sessions, presentar resultats i reportar dubtes i problemes. Al final del projecte, avalua la feina dels seus companys de projecte.
Objectius: 4 5 6 7 8
Continguts:
Teoria
0h
Problemes
0h
Laboratori
20h
Aprenentatge dirigit
2h
Aprenentatge autònom
27h

Metodologia docent

La docència de l'assignatura està estructurada en classes de teoria/problemes i classes de laboratori.

Classes de teoria/problemes: 2 hores de classe per setmana.
Els instructors poden presentar alguns dels continguts del curs utilitzant diapositives o algun altre material disponible a Atenea. Els problemes serviran per posar en pràctica i comprovar l'aprenentatge. De vegades, els estudiants podrar ser requerits a tenir els problemes resolts totalment o parcial abans de la classe. Llavors les possibles solucions seran discutides a la classe. En altres ocasions, el problema serà plantejat i resolt durant la classe, utilitzant tècniques d'aprenentatge cooperatiu. També hi haurà sessions en què els estudiants seran requerits per preparar pel seu compte i presentar davant la classe algun tema.

Classes de laboratori: 2 hores de laboratori per setmana.
Durant les 5 primeres setmanes de curs, i després d'una breu introducció sobre les tasques a realitzar, els alumnes, per parelles, les duran a terme usant l'ordinador d'acord amb un pla de treball preestablert i una llista d'objectius.
Durant la resta de setmanes del curs, els alumnes, en grups de 3-4, dissenyaran i implementaran un projecte web. Les sessions de laboratori serviran per treballar en el projecte, discutir i resoldre dubtes i problemes, fixar objectius, fer-ne el seguiment i presentar resultats.

Mètode d'avaluació

Nota Final = 50% NTP + 50% NLAB

NTP = nota de teoria i problemes
NLAB = nota de laboratori

La NTP s'obté de les notes de C1 (Control 1), C2 (Control 2), P1 (Presentació 1) i P2 (Presentació 2) aplicant la fórmula següent:

NTP= 30% C1 + 30% C2 + 20% P1 + 20% P2

La NLAB s'obté de les notes IntroLAB (Sessions d'introducció a tecnologies web) i Projecte aplicant la fórmula següent:

NLAB = 35% IntroLAB + 65% Projecte

Tant les presentacions (P1 i P2) com el Projecte comporten treball en grup. En aquests casos, l'estudiant tindrà una nota individualitzada que es calcularà a partir de l'avaluació que farà el professor sobre la qualitat global de l'ítem en qüestió (presentació o projecte), de l'avaluació que farà el professor sobre la contribució de l'estudiant dins del grup i de l'avaluació que faran la resta de companys del grup sobre la contribució de l'estudiant al grup.

L'avaluació de la competència transversal assignada a l'assignatura (G7.3) s'obté a partir de la fórmula següent:

Nota numèrica G7.3 = 60% Projecte+ 40% ((P1 + P2) / 2)

I tindrà uns valors A, B, C, D segons la distribució següent:

Nota G7.3 = A si la Nota numèrica G7.3 està entre 8.5 i 10
Nota G7.3 = B si la Nota numèrica G7.3 està entre 7 i 8.4
Nota G7.3 = C si la Nota numèrica G7.3 està entre 5 i 6.9
Nota G7.3 = D si la Nota numèrica G7.3 és inferior a 5

Bibliografia

Bàsica:

Complementaria:

Web links

Capacitats prèvies

1) Saber què és una especificació en UML dels requisits funcionals i no funcionals d'un sistema.
2) Saber el context en què es pot fer el disseny d'un sistema i, en particular, quines són les activitats prèvies i següents.
3) Saber què és l'arquitectura del programari, i quins estils arquitectònics hi ha (l'arquitectura en capes és un d'ells).
4) Conèixer els principis del disseny orientat a objectes.
5) Conèixer el concepte de patrons de disseny i els patrons de disseny principals.
6) Conèixer els elements de l'UML específics del disseny.
7) Conèixer les característiques principals de les plataformes de components distribuïts.

Addenda

Continguts

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Metodologia docent

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Mètode d'avaluació

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Pla de contingència

Les sessions presencials passaran a fer-se de manera no presencial però síncrona a través de Google Meet, mantenint el mateix horari. Pel que fa a les sessions de laboratori, els professors comunicaran als alumnes amb antelació suficient les instruccions oportunes (d'instal·lació de software, configuració, etc. ) perquè aquests puguin realitzar les activitats proposades amb els seus equips de manera remota. Pel que fa als dos controls (C1 i C2), en el cas que no es puguin dur a terme les proves escrites presencials corresponents, aquestes seran substituïdes per proves online a la plataforma Atenea, on s'avaluaran els mateixos continguts, objectius i competències que a les proves escrites substituïdes.