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.

Professorat

Responsable

  • Carles Farre Tost ( )

Altres

  • Carlota Catot Bragós ( )
  • Marc Oriol Hilari ( )
  • Pau Duran Manzano ( )
  • Quim Motger de la Encarnacion ( )

Hores setmanals

Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
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 [Avaluable] - 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
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
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
6h
Problemes
0h
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
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

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
6h
Problemes
0h
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
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
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 (Fora d'horari lectiu)
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

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
8h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

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
22h
Aprenentatge dirigit
0h
Aprenentatge autònom
30h

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 4 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 = 30% IntroLAB + 70% 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.