Vés al contingut

Aplicacions i Serveis Web

Crèdits
6
Tipus
Obligatòria d'especialitat (Enginyeria del Software)
Requisits
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

Altres

Hores setmanals

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

Competències

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.
  • 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.
  • 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
      <ul><li>El nucli: URIs i HTTP</li>
      <li>En el client: HTML, CSS, JavaScript, DOM, AJAX</li>
      <li>En el servidor: PHP, Java Servlets, JSPs, ...</li>
      <li>Formats d'intercanvi de dades: XML, JSON</li>
      <li>Serveis Web: SOAP+WSDL, REST</li></ul>
    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
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    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
    0h
    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
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    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
    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
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

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


    Objectius: 7 8
    Setmana: 14
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    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
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    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
    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àsic

    Complementari

    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.