Informació general


Tipus d'assignatura: Obligatòria

Coordinador:

Trimestre: Tercer trimestre

Crèdits: 4

Professorat: 

Jordi Boix Baró
Josep Roure Alcobé 

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

  • 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

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 de Laboratori de Software 1 del tercer trimestre de segon curs, és la primera de les dos assignatures anomenades Laboratori de Software. La seva impartició està pensada en dedicar 1 ECTS a la part de teoria i 3 ECTS a practicar els conceptes exposats a teoria i els adquirits a la resta d’assignatures de primer i segon curs.

Aquesta assignatura serà la que introduirà la persistència d’objectes a base de dades relacionals utilitzant l’API JDBC, aprofundirà amb les tècniques de programació i s'introduirà els conceptes de REST API.

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


En l'àmbit general, aquesta assignatura contribueix als següents resultats d'aprenentatge especificats per a la matèria a la qual pertany (Enginyeria del Software)

  • 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.
  • Usar les eines d'un entorn de desenvolupament de programari per a crear i desenvolupar aplicacions.
  • Demostrar coneixement i saber aplicar les tècniques apropiades per a modelar i analitzar els diferents tipus de decisions.
  • Gestionar i resoldre els problemes i conflictes gràcies a la capacitat de generar alternatives o escenaris de futur convenientment analitzats, integrant els aspectes d'incertesa i els múltiples objectius a considerar.
  • Controlar versions i configuracions de projecte.
  • Controlar la qualitat i dissenyar proves en la producció de programari.
  • Definir i gestionar els requisits d'un sistema de software
  • Identificar tecnologies actuals i emergents i avaluar si són aplicables, i en quina mesura, per a satisfer les necessitats dels usuaris.
  • Comprendre i utilitzar eficaçment manuals, especificacions de productes i altra informació de caràcter tècnic escrita en anglès.
  • Planificar i utilitzar la informació necessària per a un treball acadèmic (per exemple, per al treball de final de grau) a partir d'una reflexió crítica sobre els recursos d'informació utilitzats. Gestionar la informació de manera competent, independent i autònoma. Avaluar la informació trobada i identificar les llacunes presents.
  • Garantir que els sistemes TIC d'una organització funcionen de forma adequada, són segurs i estan adequadament instal·lats, documentats, personalitzats, mantinguts, actualitzats i substituïts, i que les persones de l'organització reben un suport TIC correcte.
  • Dirigir, planificar i coordinar la gestió de la infraestructura informàtica: maquinari, programari, xarxes i comunicacions.

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

  • RA1: Conèixer les fases d'un projecte de programació.
  • RA2: Aplicar els principis del disseny orientat a objectes.
  • RA3: Implementar programes amb interfície gràfica per l'usuari en entorn escriptori.
  • RA4: Implementar programes per entorn web.
  • RA5: Persistir objectes a bases de dades relacionals mitjançant l'ús del JDBC.
  • RA6: Entendre els criteris de qualitat dels programes.
  • RA7: Desenvolupar projectes de programació en equip.
  • RA8: Controlar les versions del projecte

Metodologia de treball


En aquesta assignatura només unes quantes sessions estaran dedicades preferentment a introduir els conceptes teòrics, 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.

La majoria de sessions seran per desenvolupar el software proposat en l’enunciat de la pràctica, es farà en grups reduïts (entre 3 i 5 estudiants) i caldrà aplicar els coneixements adquirits en els 3 blocs de l’assignatura a més dels coneixements de les assignatures de programació, bases de dades i d’enginyeria del software. En aquestes sessions es donaran les eines escaients per a desenvolupar el software proposat 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. Perfeccionament de la Programació: patrons i bones practiques.


Es perfeccionaran les capacitats de programar de cada alumne, per tal que sigui fàcil de mantenir i escalar projectes de software en entorn de producció.


2. Conceptes bàsics d’entorn REST

Es tracta d’introduir els conceptes necessaris per a poder desenvolupar una api REST amb JAVA.

 

3. Persistència d'objectes Java a base de dades relacionals

Es treballarà amb JDBC per persistir els objectes de JAVA a base de dades.

 

Activitats d'aprenentatge


PRIMERA PART DEL PROJECTE EN GRUP

Analitzar i programar el domini del projecte grupal.

A partir d’un enunciat, el grup ha dissenyar el diagrama UML de classes del domini i desenvolupar el domini del software final.

Ponderació: 16% de la nota final.

Objectius específics: En finalitzar l'activitat els estudiants han de ser capaços de:

  • Aplicar els principis del disseny orientat a objectes.
  • Entendre els criteris de qualitat dels programes.
  • Desenvolupar projectes de programació en equip.
  • Controlar les versions del projecte

SEGON PART DEL PROJECTE EN GRUP

Implementació de les principals funcionalitats del software amb el patró capes i persistència amb JDBC.  

Caldrà lliurar el projecte funcional que compleixi els requisits detallats prèviament.

Ponderació: 18% de la nota final.

Objectius específics: En finalitzar l'activitat els estudiants han de ser capaços de:

  • Aplicar els principis del disseny orientat a objectes.
  • Persistir objectes a bases de dades relacionals mitjançant l'ús del JDBC.
  • Entendre els criteris de qualitat dels programes.
  • Desenvolupar projectes de programació en equip.
  • Controlar les versions del projecte

TERCERA PART DEL PROJECTE EN GRUP

Disseny, implementació del mòdul REST API.

Caldrà lliurar el projecte final amb REST API que compleixi els requisits que s’han detallat anteriorment.

Ponderació: 16% de la nota final.

Objectius específics: En finalitzar l'activitat els estudiants han de ser capaços de:

  • Aplicar els principis del disseny orientat a objectes.
  • Entendre els criteris de qualitat dels programes.
  • Desenvolupar projectes de programació en equip.
  • Controlar les versions del projecte

 

Prova 1

Prova individual eminentment pràctica del blocs 1, 2 i 3.

Caldrà lliurar la resolució de la prova.

Aquesta prova representa el 50% de la qualificació final de l'assignatura.

Objectius específics: L'objectiu d'aquesta activitat és avaluar si l’estudiant sap:

  • Aplicar els principis del disseny orientat a objectes.
  • Implementació del software en API Rest.
  • Persistir objectes a bases de dades relacionals mitjançant l'ús del JDBC.

Per tal de superar aquesta prova, 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 [MECES2 punt f]

A continuació s'expliciten els aspectes més importants de cada competència assignada a l'assignatura:

  • B2: Aplicar els coneixements de forma professional
  • B4: Transmetre informació, idees, problemes i solucions a un públic divers
  • B5: Tenir autonomia en l'aprenentatge
  • EFB4: Coneixements sobre programació de computadors i bases de dades
  • CIN1: Desenvolupar programari assegurant la seva seguretat i qualitat conforme principis ètic
  • CIN3: Negociar i comunicar problemes i solucions dins del grup de treball
  • CIN4: Elaborar un pleg de condicions tècniques
  • CIN5: Administració i manteniment d'aplicacions informàtiques
  • CIN8: Analitzar, dissenyar i construir aplicacions de forma robusta, segura i eficient
  • CIN12: Ús adequat de les bases de dades
  • CIN16: Aplicació dels principis i metodologies de l'enginyeria del software
  • EIS1: Desenvolupar sistemes software que satisfacin els requisits de l'usuari
  • EIS2: Entendre les necessitats del client i especificar els requisits software
  • EIS3: Solucionar problemes d'integració usant les tecnologies disponibles
  • EIS4: Identificar i solucionar problemes software tot documentant-los
  • T1: Llegir i comprendre manuals tècnics en anglès
  • T2: Treballar en equip

Sistema d'avaluació


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

· Prova 1: 50%

. Primer lliurament del projecte en grup 16%.

· Segon lliurament del projecte en grup 18%.

· Tercer lliurament del projecte en grup 16%.

Només podrà recuperar-se la prova 1 (el projecte en grup no es podrà recuperar). El 50% de la nota final de l’assignatura serà la més gran entre la prova de recuperació i  l’obtinguda en la prova 1.

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

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

. La nota de la prova 1 és superior a 3.

. La nota que ha obtingut de la pràctica de grup és superior a 3.

Bibliografia


Bàsic

Larman, Crai; Moros Valle, Begoñ. UML y patrones : una introducción al análisis y diseño orientado a objetos y al proceso unificado. 2ª ed. Madrid [etc.]: Prentice Hall, cop. 200. ISBN 9788420534381.

Pressman, Roger S. Ingeniería del software: un enfoque práctico. 7e. McGraw-Hill, 2010. ISBN 9786071503145.

Complementary

Bolaños Alonso, Danie; Sierra Alonso, Almuden; Alarcón Rodríguez, Miren Idoi. Pruebas de software y JUnit : un análisis en profundidad y ejemplos prácticos.Madrid: Pearson, cop. 200. ISBN 9788483223543.

Martin, Robert C.. UML para programadores Java. 1a.Pearson, 2004. ISBN 9788420541099.