Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Adso Fernández Baena

Trimestre:3

Crèdits: 4

Professorat: Rosa Herrero Antón

Descripció


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

Aquesta assignatura serà la que introduirà el concepte de Patrons de Disseny de Software estudiant-ne els més utilitzats i practicant-ne el seu ús en diferents circumstancies.

Un altre dels temes abordats en aquesta assignatura serà el Testing, fent-ne una introducció general, i explicant alguna tècnica concreta aprofundint el necessari fins poder-la utilitzar.

Aquesta assignatura disposa de recursos metodològics i digitals per fer possible la seva continuïtat en modalitat no presencial en el cas de ser necessari per motius relacionats amb la Covid-19. D'aquesta forma s'assegurarà l'assoliment dels mateixos coneixements i competències que s'especifiquen en aquest pla docent.

Resultats d'aprenentatge


A nivell general, aquesta assignatura contribueix als següents resultats d'aprenentatge especificats per a la matèria a la qual pertany (Enginyeria del Software):

(1) Utilitzar de forma 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 en les decisions de disseny

(3) Fer servir les eines d'un entorn de desenvolupament de programari per a crear i desenvolupar aplicacions.

(5) Demostrar coneixement i saber aplicar les tècniques apropiades per a modelar i analitzar els diferents tipus de decisions.

(10) Controlar la qualitat i dissenyar proves en la producció de programari.

A un nivell més concret, en acabar l'assignatura l'estudiant o estudianta ha de ser capaç de:

RA1. Modelar aplicacions software

RA2. Aplicar els principis d'anàlisi i disseny orientat a objectes

RA3. Aplicar i analitzar l'ús de patrons de disseny de software

RA4. Conèixer estratègies i aplicar tècniques de proves del software

RA5. Conèixer les fases d'un projecte software

RA7. Controlar versions i configuracions del projecte

Metodologia de trabajo


Tots els conceptes teòrics de la matèria es tractaran en les classes de teoria (grups grans) de l'assignatura. En aquestes classes s'introdueixen els conceptes bàsics del procés per desenvolupar software i del disseny del software utilitzant patrons, mostrant la seva aplicació amb exercicis resolts pel docent. Es recomana que abans de cada sessió els estudiants es llegeixin el material publicat a la plataforma virtual. A les classes es demanarà la participació dels estudiants de manera individual o en grup, per resoldre diferents problemes proposats amb o sense anticipació. Aquestes activitats, que per la seva naturalesa d'optativitat i brevetat no apareixen reflectides en aquest document, serviran a l'estudiant com a instrument d'autoavaluació de l'assoliment dels continguts de la matèria i podran ser utilitzades per part del docent per a prendre decisions sobre la qualificació final de l'estudiant, però mai en detriment de la qualificació numèrica calculada segons el sistema de qualificació especificat per l'assignatura.

Els estudiants haurien d'assistir a totes les classes amb un ordinador portàtil amb la capacitat d'executar el software escaient per a l'assignatura. Els docents impartidors informaran de quin és aquest software i com es pot obtenir.

Els conceptes de caire més pràctic seran treballats en grups petits (de laboratori) on es presenten treballs de complexitat mitjana, que requereixen l'aplicació dels coneixements adquirits en les classes més teòriques. En aquestes sessions es donaran les eines escaients per a resoldre les activitats programades però s'espera que aquestes s'allarguin des del punt de vista temporal, més enllà de les hores de laboratori i que, en conseqüència, els estudiants les hagin de finalitzar durant el temps d'aprenentatge autònom.

Normes de realització de les activitats

Per a cada activitat, els docents informaran de les normes i condicions particulars que les regeixin. Les activitats unipersonals pressuposen el compromís de l'estudiant de realitzar-les de manera individual. Es consideraran suspeses totes aquelles activitats en què l'estudiant no s'ajusti a aquest compromís, independentment del seu paper (origen o destí). Igualment, les activitats que s'hagin de realitzar en grups pressuposen el compromís per part dels estudiants que l'integren de realitzar-les en el si del grup. Es consideraran suspeses totes aquelles activitat en què el grup no hagi respectat aquest compromís amb independència del seu paper (origen o destí).

Continguts


1. Procés de desenvolupament del software             

1.1. El Procés Unificat.

1.2. Disseny del Software.

1.3. Cas d'Estudi.

2. Proves del software

2.1. Introducció a les proves del software.

2.2. Estratègies de prova.

2.3. Tècniques de prova.

3. Patrons de disseny de software

3.1. Requeriments i mètodes.

3.2. Concepte de Patró.

3.3. Patrons GoF (adaptador, factoria, singelton, estratègia, composite, façana i proxy).

4. Modelat del software

4.1. Relacions entre Casos d'Ús.

4.2. Organització del Model del Domini.

4.3. Contracte de les operacions.

4.4. Diagrames d'estat. Patró estats.

4.5. Organització dels Paquets.

Amb aquest proposta assolirem els següents continguts de la memòria:

  • Modelat d’aplicacions.
  • Anàlisis i disseny orientat a objectes
  • Patrons de disseny
  • Patrons d’arquitectura del software

Activitats d'aprenentatge


Es posa a disposició dels estudiants tot un seguit d'activitats de caire eminentment pràctic (exercicis curts, problemes...) que són la base de les activitats d'aprenentatge de l'assignatura. Aquestes activitats els estudiants/es les hauran de resoldre, sovint de manera no presencial, seguint les indicacions dels docents i també seran treballades a classe, ja sia com a exemples en les sessions de teoria, ja sia en les sessions de laboratori. Si bé aquestes activitats tindran caràcter optatiu (els docents no en verificaran de manera individualitzada la realització per part dels estudiants), seran imprescindibles per assolir els coneixements teòrics-pràctics de l'assignatura.

Amb l'objectiu de recollir evidència de l'assoliment dels resultats d'aprenentatge esperats es realitzaran les següents activitats de caràcter avaluatiu: 

Un examen individual escrit a ordinador (utilitzant, quan s'escaigui, una eina IDE) dels conceptes teòrics-pràctics dels continguts de l'assignatura amb dues parts autònomes.

  • Examen - Part 1

Constarà de preguntes dels continguts dels blocs 1, 2 i part del 3 fins el Patró Estratègia. Aquesta prova demana als estudiants el desenvolupament correcte de software a partir d'un projecte inicial.

L'objectiu d'aquesta activitat és avaluar si l'estudiant ha assolit els coneixements de: 5 (saber aplicar tècniques per a modelar), 10 (controlar qualitat), RA2, RA3 i RA4, que cobreixen les següents competències comunes i específiques: CIN1(desenvolupar programari fiable), CIN5(mantenir programari), CIN8(construir i mantenir aplicacions), CIN13(eines emmagatzematge), CIN16(cicle vida enginyeria software), EFB4(ús de programes informàtics), EIS1(satisfer requisits) i EIS4(capacitat d'analitzar).

  • Examen - Part 2

Constarà de preguntes de la resta del contingut del bloc 3 i el 4. Aquesta prova demana als estudiants el desenvolupament correcte de software a partir d'un projecte base.

L'objectiu d'aquesta activitat és avaluar si l'estudiant ha assolit els coneixements de 5 (saber aplicar tècniques per a modelar), RA2 i RA3. A nivell de competències comunes i específiques seran rellevants totes les esmentades per a la primera part.

Quatre pràctiques, que majoritàriament s'hauran de desenvolupar en temps no presencial i en grup, cobreixen les competències CB2, CB4, CB5, CIN1, CIN2, CIN3, CIN4, CIN13, EFB4, EIS1, EIS4, CT1 i CT2 i evidencien l'assoliment de 1 (utilitzar eines professionals) i 2 (fer servir eines per desenvolupar).

  • Pràctica 1

Es tracta de desenvolupar un petit software per aprendre a utilitzar el “framework” Junit i conèixer la metodologia TDD "Test Driven Development" o bé utilitzar una tècnica concreta de les vistes en el bloc 2 de teoria. En finalitzar l'activitat els estudiants han de ser capaços de RA4 i RA5

  • Pràctica 2

Es tracta de redissenyar un petit software aplicant un o varis dels primers patrons del contingut 3. En finalitzar l'activitat els estudiants han de ser capaços de RA1, RA2, RA3 i R7.

  • Pràctica 3

Es tracta de redissenyar un petit software aplicant un o varis del la resta de patrons del contingut 3. En finalitzar l'activitat els estudiants han de ser capaços RA1, RA2, RA3 i R7.

  • Pràctica 4

Es tracta de redissenyar un petit software aplicant els continguts del bloc 4. En finalitzar l'activitat els estudiants han de ser capaços de RA1, RA2, RA3 i R7

Per tal de superar (aprovar) les activitats avaluatives, els estudiants hauran de demostrar

  • Que han adquirit els coneixements teòrics relatius als continguts de l'assignatura i que la seva comprensió els permet de portar-los a la pràctica [MECES-2 punt a, punt c]
  • Que poden desenvolupar solucions a problemes que, si bé són semblants a d'altres vistos anteriorment, presenten aspectes que són nous [MECES-2 punt f]

En relació a les competències bàsiques assignades a l'assignatura, aquestes queden cobertes especialment pel que fa als aspectes que s'expliciten:

  • CB2: resolució de problemes dins de la seva àrea d'estudi.
  • CB4: transmetre informació en públic.
  • CB5: desenvolupament d'habilitats d'aprenentatge necessàries per a estudis posteriors (accés autònom a documentació, hàbits de treball efectius)

Finalment, i pel que fa a la competència transversal associada a l'assignatura:

  • CT1: (coneixement tercera llengua) aquesta es treballa a partir de les fonts documentals que els estudiants han de consultar, atès que totes elles es troben en anglès.
  • CT2: (capacitat de treballar en grup) que poden assolir al fer les pràctiques.

Sistema d'avaluació


La qualificació final de l'assignatura es calcularà segons les fórmules que s'especifiquen a continuació:

E1: qualificació de la primera part de l'examen (cal obtenir un mínim d'un 4 per aprovar l'assignatura) 30%

E2: qualificació de la segona part de l'examen (cal obtenir un mínim d'un 4 per aprovar l'assignatura) 30%

Pr: qualificació mitjana de les pràctiques proposades durant el trimestre 40%

Si les qualificacions obtingudes a E1 i E2 són superior o igual a 4 (E1 >= 4 i E2 >= 4), la nota final de l'alumne serà:

Nota final = E1 · 0.3 + E2 · 0.3 + Pr · 0.4

En altre cas (si E1< 4 o E2 < 4), la nota final de l'alumne serà:

Nota final = Pr · 0.4

Consideracions:

  • Una activitat no entregada o lliurada amb retard i sense justificació (citació judicial o assumpte mèdic) compta com un 0.
  • És potestatiu dels docents acceptar o no lliuraments fora dels terminis que s'indiquin. En el cas que aquests lliuraments fora de termini s'acceptin, és potestatiu del docent decidir si aplica alguna penalització i la quantia d'aquesta.
  • En les activitats realitzades en grup el docent pot, en base a la informació de què disposi, personalitzar la qualificació per a cada integrant del grup.
  • És responsabilitat de l’alumne evitar el plagi en totes les seves formes. En el cas de detectar un plagi, independentment del seu abast, en alguna activitat correspondrà a tenir una nota final de 0. A més, el professor comunicarà a la Cap d’estudis la situació per a que es prenguin mesures aplicables en matèria de règim sancionador.

Recuperació:

  • La part de pràctiques de l'assignatura (qualificació Pr) NO és recuperable.
  • Els estudiants no presentats i els que obtinguin una nota final >= 5 no podran fer la recuperació.
  • Cada estudiant podrà recuperar qualsevol de les dues parts (E1 o E2) de la teoria. La qualificació E1 i E2 serà substituïda per la que hagi tret a la recuperació. La nota final es calcularà amb les fórmules anteriorment detallades.

Bibliografia


Bàsic

Debrauwer, L. (2018) Patrones de diseño en Java. Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y Java. (2º edició). Ediciones ENI. ISBN 9782409016349

Larman, C. (2003) UML y patrones: una introducción al análisis y diseño orientado a objetos y al proceso unificado. (2a Edició) Prentice Hall, cop. ISBN 978 8420534382

Complementary

Gamma, E., et al. (2003) Patrones de diseño: elementos de software orientado a objetos reutilizable. Addison-Wesley, cop. ISBN 9788478290598.

Bolaños, D. et al. (2008) Pruebas de software y JUnit: un análisis en profundidad y ejemplos prácticos. Prentice-Hall España. ISBN 9788483223543.