Informació general


Idiomes d'impartició


  • Català

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.

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 treball


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í). 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. Qualsevol activitat no lliurada es considerarà puntuada amb zero punts. É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.

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 dissenyo
  • 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: 

Una prova individual escrita (utilitzant, quan s'escaigui, una eina IDE) dels conceptes teòrics-pràctics dels continguts de l'assignatura amb dues parts autònomes.

Part 1

Constarà de preguntes dels continguts dels blocs 1, 2 i part del 3 fins el Patró Estratègia. L'objectiu d'aquesta activitat és avaluar si l’estudiant ha assolit els coneixements de

(entre parèntesis els aspectes més rellevants de cada resultat d'aprenentatge de l'assignatura):

  • 5 (saber aplicar tècniques per a modelar)
  • 10 (controlar qualitat)
  • RA2, RA3 i RA4.

Aquesta prova demana als estudiants el desenvolupament correcte de software a partir d'un projecte inicial. Això té a veure amb les següents competències comunes i específiques (entre parèntesis els aspectes més rellevants de cada competència als quals l’assignatura contribueix):

  • 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).

Part 2

Constarà de preguntes de la resta del contingut del bloc 3 i el 4. 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 Aquesta prova demana als estudiants el desenvolupament correcte de software a partir d’un projecte base. 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ó

Pa1: qualificació de la primera part de la prova escrita

Pa2: qualificació de la segona part de la prova escrita

Qualificació de teoria Teo = (Pa1 + Pa2) / 2

Qualificació de pràctiques Pr = qualificació mitjana de les pràctiques proposades durant el trimestre

Qualificació ponderada teoria + pràctiques QP: = Pr 0.40 + Teo 0.60

Qualificació final de l’assignatura QF serà:

·     Si Pa1 >= 4 i Pa2 >= 4 aleshores QF = QP

·     Si Pa1< 4 o Pa2 < 4 aleshores QF = Pr 0.40

Recuperació

La part de pràctiques de l’assignatura (qualificació Pr) NO és recuperable. Els estudiants no presentats i els que tinguin la qualificació QF >= 5 no podran fer la recuperació.

Cada estudiant podrà recuperar qualsevol de les dues parts (Pa1 o Pa2) de la teoria. La qualificació Pa1 i Pa2 serà substituïda per la que hagi tret a la recuperació. La qualificacions Teo, QP i QF es calcularan amb les fórmules anteriorment detallades. QF en cap cas no serà superior a 5.

Bibliografia


Bàsica

Patrones de diseño en Java Los 23 modelos de diseño (2º edició) . Laurent Debrauwer. Ediciones ENI 2018. ISBN  9782409016349

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.


Complementària

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

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

Pruebas de software y JUnit: un análisis en profundidad y ejemplos prácticos. Bolaños Alonso, Daniel; Sierra Alonso, Almudena; Alarcón Rodríguez, Miren Idoia.  1a. Prentice-Hall España, 2008. ISBN 9788483223543.