Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Rosa Herrero Antón

Trimestre: Tercer trimestre

Crèdits: 4

Professorat: 

Pedro Riera Martorell

Idiomes d'impartició


  • Català

L'idioma d'impartició principal a classe és el català.

Tanmateix:

- Tot el codi exposat està en anglès
- Les eines usades i material addicional estan en anglès,
- Tot el codi que s'entregui ha d'estar en anglès. Examens i pràctiques que consisteixin en redactar han d'estar o en català o castellà 

Competències


Competències bàsiques
  • B2_Que els estudiants sàpiguen aplicar els seus coneixements a la seva feina o vocació d'una forma professional i tinguin les comptències que demostren mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi

  • B4_Que els estudiants puguin transmetre informació, idees, problemes i solucions a un públic tan especialitzat com no especialitzat

  • B5_Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia

Competències específiques
  • EIS1_Capacitat per a desenvolupar, mantenir i avaluar serveis i sistemes software que satisfacin tots els requisits de l'usuari i que es comportin de forma fiable i eficient, siguin assequibles de desenvolupar i mantenir i compleixin normes de qualitat, aplicant les teories, principis, mètodes i pràctiques de l'enginyeria del software

  • EIS2_Capacitat per a 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, dins de les limitacions derivades del cost, del temps, de l'existència de sistemes ja desenvolupats i de les pròpies organitzacions

  • EIS3_Capacitat per donar solució a problemes d'integració en funció de les estratègies, estàndards i tecnologia disponibles

  • EIS4_Capacitat d'identificar i analitzar problemes i dissenyar, desenvolupar, implementar, verificar i documentar solucions software sobre la base d'un coneixement adequat de les teories, models i tècniques actuals

  • EIS5_Capacitat d'identificar, avaluar i gestionar els riscos potencials associats que es puguin presentar

  • EIS6_Capacitat per a dissenyar solucions apropiades en un o més dominis d'aplicació, utilitzant mètodes de l'enginyeria del software que integren aspectes ètics, socials, legals i econòmics

  • ESI2_Capacitat per determinar els requisits dels sistemes d'informació i comunicació d'una organització, atenent a aspectes de seguretat i compliment de la normativa i legislació vigent

  • ESI3_Capacitat per participar activament en l'especificació, disseny, implementació i manteniment dels sistemes d'informació i comunicació

Competències transversals
  • T1_Que els estudiants coneixin un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit, d'acord amb les necessitats que tindran les graduades i els graduats a cada titulació

  • T2_Que els estudiants tinguin capacitat per a treballar com a membres d'un equip interidisciplinar ja sigui com un membres més, o realitzant tasques de direcció amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos tenint en compte els recursos disponibles

Descripció


L'assignatura d'Enginyeria del Software III del tercer trimestre de tercer curs, és la darrera de les tres assignatures anomenades Enginyeria del Software. La seva impartició està pensada a dedicar 3 ECTS a la part de teoria i 1 ECTS a practicar els conceptes exposats a teoria. 

En aquesta assignatura s’explicaran nous Patrons de Disseny de Software i temes relacionats amb l’Enginyeria de Requisits, posant l’èmfasi en les implicacions de les tècniques Agile i Lean en el disseny i desenvolupament de software.

Un altre dels temes abordats en aquesta assignatura serà el Testing, fent-ne una extensió de les tècniques ja vistes a Enginyeria del Software I i II, introduint diferents estratègies i la depuració. L’ús del Testing per a millorar la qualitat del codi i la seva mantenibilitat és clau. 

Continguts


1.      Patrons de disseny de software

1.1. Functional Programming

1.2.  High Cohesion / Low Coupling

1.3. UML drawings, relations, and dependency directions

1.4. Plugin Architecture

1.5.  Patró S.O.L.I.D.

1.6.  Patró Command.

1.7.  Patró Observer. 

1.8.  Patró Event Target.

1.9.  Event Bus.

1.10.  Patró Model Vista Controlador.

2.      Proves del software

2.1.  Estratègies de prova i tècniques. AAA & FIRST.

2.2.  Test Driven Development

2.3.  Code Coverage

2.4.  Law of Demeter

2.5.  Dependency Injection

2.6.  Lower 's' singleton pattern

2.7.  Revisió de Codi

2.8.  Professionalism as emergence of Testing + Agile

3.      Enginyeria de Requisits            

3.1.  Introducció.

3.2.  Mètode de captura de requisits: Lean

3.3.  Agile, la cerca de la confiança.

Sistema d'avaluació


La nota final es calcularà amb les qualificacions de les activitats ponderades de la forma següent:

·          Examen E1: 30%

·          Examen E2: 30%

·          Pràctiques de la P1 a la P4: 40% (10% cadascuna de les pràctiques)

La nota de la part teòrica, TR, és la mitja dels examens E1 i E2. La nota de la part pràctica, PR, és la mitja de les pràctiques P1 a P4. Per poder superar l'assignatura és necessari que tant TR com PR siguin iguals o superior a 5 (s'ha d'aprovar teòria i pràctica per separat) En aquest cas la nota de final NF serà la ponderació segons com està descrit més amunt (40% PR, 30% E1 i 30% E2). En cas contrari serà la mínima d'elles.

Només podran recuperar-se les proves E1 i E2 en una única prova de tota l’assignatura (les pràctiques no es poden recuperar). En cas de recuperació, el 60% de la nota final de l’assignatura serà la més gran entre l'examen de recuperació ER i l’obtinguda en les proves E1 i E2.

Per poder realitzar l'examen de recuperació l’estudiant haurà de complir les tres condicions següents:

-          La nota de l’assignatura és inferior a cinc.

-          Com a mínim un dels E1 o E2 estan per sobre de 4 i l'alumne s'ha presentat a tots dos.

-          Com a mínim té un 3 de nota de PS pràctiques. 

Bibliografia


Bàsic

Clean Agile: Back to Basics
Robert C. Martin, Person, ISBN 9780135781869

Patrones de diseño : elementos de software orientado a objetos reutilizable.

Gamma, Eric et all. Addison-Wesley, cop. 2003. ISBN 9788478290598.

Clean Architecture: A Craftman's Guide to Software Structure and Design
Robert C. Martin, Person, ISBN 9780134494166

Clean Craftsmanship: Disciplines, Standards, and Ethics
Robert C. Martin, Person, ISBN 9780136915713

Complementary

Refactoring: Improving the Design of Existing Code
Martin Fowler, Addison-Wesley Professional, ISBN 9780134757599

UML y patrones : una introducción al análisis y diseño orientado a objetos y al proceso unificado.

Larman, Crai Prentice Hall, cop. 2003. ISBN 978 8420534382.