Crèdits
6
Tipus
Obligatòria d'especialitat (Enginyeria del Software)
Requisits
- Prerequisit: AS
Departament
ESSI
Professorat
Responsable
- Carles Farre Tost ( carles.farre@upc.edu )
Altres
- Carlota Catot Bragós ( carlota.catot@upc.edu )
- Marc Oriol Hilari ( marc.oriol@upc.edu )
- Pau Duran Manzano ( pau.duran.manzano@upc.edu )
- Quim Motger de la Encarnacion ( joaquim.motger@upc.edu )
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Competències tècniques comunes
- 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.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.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.1 - Desenvolupar serveis i aplicacions multimèdia.
Aprenentatge autònom
- 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, -
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
-
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
<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> -
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
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
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
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% NLABNTP = 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
-
Service design patterns: fundamental design solutions for SOAP/WSDL and RESTful web services
- Daigneau, R,
Addison-Wesley,
2012.
ISBN: 9780321544209
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003924839706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Engineering software as a service: an Agile approach using Cloud Computing: first edition 1.1.1
- Fox, A.; Patterson, D,
Strawberry Canyon,
2012.
ISBN: 9780984881246
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003990539706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
.NET application architecture guide
- ,
Microsoft,
2009.
ISBN: 9780735627109
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004034619706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Web application architecture: principles, protocols, and practices
- Shklar, L.; Rosen, R,
John Wiley,
2009.
ISBN: 9780470518601
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003630939706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementari
-
Designing data-intensive web applications
- Ceri, S. [et al.],
Morgan Kaufmann,
2003.
ISBN: 1558608435
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002730699706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Building web applications with UML
- Conallen, J,
Addison-Wesley,
2003.
ISBN: 0201730383
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002575779706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Web Applications and Services
- Farré, Carles,
-
Desenvolupament d'aplicacions web
- Farré, Carles,
Revista de Tecnologia,
2017/7.
ISBN: 2013-9861
https://doi.org/10.2436/20.2004.01.20 -
Patterns of enterprise application architecture
- Fowler, M,
Addison-Wesley,
2003.
ISBN: 0321127420
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002575799706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Web engineering: the discipline of systematic development of web applications
- Kappel, G. [et al.] (eds.),
John Wiley & Sons,
2006.
ISBN: 0470015543
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003175679706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
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.