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
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,
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,
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,
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
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,
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,
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,
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
Introducció
Diferències entre aplicacions web i serveis web. Evolució històrica. Característiques principals de les aplicacions i serveis web.
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
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.
Disseny d'Aplicacions Web
Arquitectura i disseny d'aplicacions web.
Disseny de Serveis Web
Arquitectura i disseny de serveis web.
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
ActivitatActe avaluatiu
Tema 1: Introducció
Participa activament a la classe de teoria, on s'expliquen els objectius i l'organització de l'assignatura.
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:12 Continguts:
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:12 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:12 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:
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:
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:
Control on s'avaluaran els continguts dels temes 5 i 6. Objectius:478 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:126 Continguts:
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:45678 Continguts:
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:
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
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.