Que estàs buscant?
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
EFB4_Coneixements bàsics sobre l'ús i programació dels ordinadors, sistemes operatius, bases de dades i programes informàtics amb aplicació a l'enginyeria
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
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
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
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.
Els requisits recomanable per cursar aquesta assignatura són els coneixements de les assignatures FONAMENTS DE LA PROGRAMACIÓ, PROGRAMACIÓ ORIENTADA A L'OBJECTE i ENGINYERIA DEL SOFTWARE I.
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
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í).
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:
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 (relacionades amb totes les competències comunes):
EX. Examen Parcial (EP) i Examen Final (EF)
Exàmens individual escrit a mà i/o a ordinador (utilitzant, quan s'escaigui, una eina IDE) dels conceptes teòrics-pràctics dels continguts de l'assignatura. Aquestes proves 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).
Q. Qüestionaris d'exercicis curts
Qüestionaris d'exercicis curts que s'hauran de resoldre en temps no presencial i de forma individual a través de l'aula virtual, es tracta d'exercicis curts per aprendre a utilitzar comandes JUnit, programació reflexiva, Logger, entre altres, i a més entendre diagrames de flux i diagrames UML, cobreixen les competències CB2, CB5, CIN1, CIN13, EFB4, EIS1 i EIS4.
P. Quatre pràctiques
A partir d'un projecte inicial es practicaran els conceptes tractats a teoria, 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). Les pràctiques es lliuraran i realitzaran de forma col·laborativa utilitzant un repositori Git, que majoritàriament s'hauran de desenvolupar en temps no presencial i en grup.
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
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.
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.
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
En relació a les competències bàsiques assignades a l'assignatura, aquestes queden cobertes especialment pel que fa als aspectes que s'expliciten:
Finalment, i pel que fa a la competència transversal associada a l'assignatura:
La qualificació final de l'assignatura es calcularà segons les fórmules que s'especifiquen a continuació:
EX. qualificació dels exàmens 50%
Q. qualificació mitjana dels qüestionaris d'exercicis curts 10%
P. qualificació mitjana de les pràctiques proposades durant el trimestre 40%
Si la qualificació obtinguda a l'examen final o de recuperació és superior o igual a 4 (EF>=4), la nota final de l'alumne serà:
EX = max( (EP+EF)/2 , EF)
Nota final = EX · 0.50 + Q· 0.10 + P · 0.40
En altre cas (si EF < 4), la nota final de l'alumne serà:
Nota final = Q · 0.10 + P · 0.40
Consideracions:
Recuperació:
Laurent Debrauwer (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
Craig Larman (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. Traducción Begoña Moros Valle. ISBN 978 8420534382
Shekhar Gulati, Rahul Sharma (2017) Java Unit Testing with JUnit 5: Test Driven Development with JUnit 5. Editorial APress. ISBN 1484230140.
Paloma Cáceres García de Marina , Miguel Ángel Garrido Blázquez, Almudena Sierra Alonso (2019) Especificando Software mediante Casos de uso y Uml. Editorial Universitarua Ramón Areces. ISBN 9788499613420.
Erich Gamma, et al. (2003) Patrones de diseño: elementos de software orientado a objetos reutilizable. Addison-Wesley, cop. Traducción: César Fernández Acebal. ISBN 9788478290598.
Daniel Bolaños Alonso, Almudena Sierra Alonso, Miren Idoia Alarcón Rodríguez (2008) Pruebas de software y JUnit: un análisis en profundidad y ejemplos prácticos. Prentice-Hall España. ISBN 9788483223543.