Projecte de desenvolupament del programari Codi:  05.588    :  12
Consulta de les dades generals   Descripció   L'assignatura en el conjunt del pla d'estudis   Camps professionals en què es projecta   Coneixements previs   Informació prèvia a la matrícula   Objectius i competències   Continguts   Consulta dels recursos d'aprenentatge de la UOC per a l'assignatura   Informació addicional sobre els recursos d'aprenentatge i eines de suport   Informacions sobre l'avaluació a la UOC   Consulta del model d'avaluació  
Aquest és el pla docent de l'assignatura per al segon semestre del curs 2023-2024. Podeu consultar si l'assignatura s'ofereix aquest semestre a l'espai del campus Més UOC / La universitat / Plans d'estudis). Un cop comenci la docència, heu de consultar-lo a l'aula. El pla docent pot estar subjecte a canvis.

L'assignatura Projecte de Desenvolupament del Programari té com a objectiu primordial el desenvolupament d'un projecte concret de programari i està basada en l'aplicació pràctica dels coneixements i competències obtingudes fins al moment en el Grau, com ara Gestió de Projectes, Fonaments de Programació, Enginyeria de Programari, Ús de Base de Dades, i concretament les habilitats tècniques que es van obtenir dins de l'Enginyeria del Programari de Components i Sistemes Distribuïts.

Tot i que l'assignatura es basa en la realització d'un projecte de programari concret, el curs també cobreix aspectes teòrics tant nous com altres que complementen els coneixements adquirits fins ara, com les metodologies àgils de desenvolupament de programari.

El desenvolupament eficaç del projecte s'aconseguirà per mitjà d'una metodologia àgil específica (Scrum) que cobreix iterativament en forma de sprints totes les etapes del cicle de vida del programari, és a dir, l'especificació, disseny, implementació, testing, desplegament i lliurament del producte al "suposat" client. En particular, a l'etapa d'implementació, s'emprarà Java per desenvolupar el programari distribuït basat en una arquitectura de microserveis. A més, altres tecnologies donaran suport el projecte, com ara eines de configuració, disseny, proves, entrega continua i desplegament amb contenidors. Totes aquestes tecnologies s'han vist i practicat a l'assignatura prèvia d'Enginyeria del Programari de Components i Sistemes Distribuïts i per tant es presupossa que l'estudiantat hi està familiaritzat.

Per últim, la complexitat del projecte requerirà el desenvolupament específic de competències relacionades amb el treball col·laboratiu en grups petits de estudiants. La UOC oferirà a l'alumne un espai col·laboratiu on podrà portar a terme la comunicació entre els membres del grup, compartir la documentació i en general portar la gestió del projecte, amb el suport i la supervisió dels consultors de l'assignatura.

Amunt

L'assignatura Projecte de Desenvolupament del Programari es troba a l'etapa final de l'itinerari Enginyeria de Programari dins del Grau de Enginyeria d'Informàtica. Com a tal, aquesta assignatura esdevé la realització i consolidació d'aquest itinerari.

Moltes assignatures del Grau, incloent les de l'itinerari esmentat, apliquen en aquesta assignatura els coneixements, habilitats i competències adquirides anteriorment. Per això, aquesta assignatura esdevé essencial per poder connectar totes les peces i aconseguir una perspectiva global i completa del desenvolupament de programari en el context d'un projecte.

Amunt

Aquesta assignatura dóna a l'estudiant l'oportunitat d'enfrontar-se amb problemes de certa complexitat, similars a problemes reals, com ara la gestió de salut ciutadana, gestió d'un catàleg d'oci, aplicacions per a e-Commerce, e-Logistics, entre d'altres.

És per això que l'estudiantat ha de tenir una visió molt més profunda comparat amb els problemes que haurà resolt fins ara, doncs ha de prendre decisions importants que repercuteixen en el progrés i l'acabament amb èxit del projecte. Aquesta experiència, sense dubte, li donarà a l'estudiantat una visió general de com abordar problemes complexos reals en el desenvolupament d'aplicacions "grans".

Donada la complexitat del projecte, i per tant el volum de treball necessari per portar-lo a terme, el projecte es desenvoluparà, com s'ha esmentat, en grups de 6 o 7 estudiants. Per tant l'estudiant tindrà l'oportunitat d'aprendre com es treballa en un grup virtual, com es prenen les decisions, com i quan es fa la comunicació entre membres del grup, en definitiva, conèixer la problemàtica del treball en equip.

Amunt

Haver superat l'assignaturaEnginyeria del Programari de Components i Sistemes Distribuïts o tenir els coneixements equivalents és la condició prèvia indispensable per poder cursar i superar aquesta assignatura.

Per altra banda, el desenvolupament d'un projecte de programari amb un grau significatiu de complexitat requereix disposar d'un coneixement tècnic ampli i conceptes clau ben consolidats en disciplines diferents dins de l'àrea d'enginyeria de programari, com els fonaments de programació, estructures de dades, el paradigma d'orientació a objectes, requisits de programari, patrons d'anàlisi i disseny, arquitectures de programari, bases de dades i SQL, i tecnologies distribuïdes. A més, l'estudiantat haurà de mostrar un nivell d'expertesa en l'ús d'eines i sistemes específics, com IntelliJ, PostgreSQL, Docker, Spring, etc., que ja han vist i practicat a l'assignatura prèvia Enginyeria del Programari de Components i Sistemes Distribuïts.

Per últim, l'estudiantat haurà de demostrar expertesa en el treball col·laboratiu amb eines basades en les Apps de Google Suite (Drive, Groups, Meet, Mail, Calendar, etc) i eines de comunicació professionals, com Slack, que en conjunt donaran ple suport a la col·laboració, comunicació i coordinació de grups de treball virtuals durant el desenvolupament del projecte, tant intra grups com entre grups, a nivell d'aula.

Amunt

Com s'ha comentat, aquesta assignatura requereix disposar d'un bon coneixement previ, per tant cal que l'estudiantat hagi superat les assignatures prèvies que condueixen a aquesta abans de matricular-s'hi. En particular, és imprescindible haver superat l'assignatura Enginyeria del Programari de Components i Sistemes Distribuïts on s'adquireixen les competències conceptuals i tècniques per poder fer front a aquesta assignatura..

També és essencial que l'estudiantat hagi superat la resta d'assignatures prèvies que formen l'itinerari d'Enginyeria del Programari: Enginyeria de Requisits, Anàlisi i Disseny amb Patrons, i Disseny d'Estructures de Dades. A més, l'estudiantat ha de disposar del coneixement equivalent a les assignatures de Grau relacionades amb el desenvolupament de programari, com Fonaments de Programació, Enginyeria de Programari i Ús de Base de dades. Per últim, cal tenir assimilat els conceptes claus de l'assignatura Gestió de Projectes a fi de tenir les competències bàsiques per dirigir i portar a terme el projecte de programari desenvolupat durant el curs.

Amunt

Competències generals del Grau en Enginyeria Informàtica:

  • Treball en equip.
  • Capacitat per innovar i generar noves idees.
  • Capacitat per planificar i gestionar projectes a l'entorn de les TIC.
  • Capacitat d'analitzar un problema en el nivell d'abstracció adequat a cada situació i aplicar les habilitats i coneixements adquirits per abordar-ho i resoldre-ho.
  • Capacitat de dissenyar i construir aplicacions informàtiques mitjançant tècniques de desenvolupament, integració i reutilització.
  • Aplicació de les tècniques específiques d'enginyeria del programari a les diferents etapes del cicle de vida d'un projecte.
  • Capacitat per aplicar les tècniques específiques de tractament, emmagatzematge i administració de dades.
  • Capacitat per proposar i avaluar diferents alternatives tecnològiques per resoldre un problema concret.                                                                                                                             

Objectius

L'objectiu general de l'assignatura és que l'estudiant apliqui els coneixements bàsics per al desenvolupament d'aplicacions distribuïdes basades en microserveis. Aquest objectiu es concreta en els següents objectius específics

  • Explicar els fonaments de les metodologies de desenvolupament de programari.
  • Conèixer els diferents tipus d'arquitectures programari i plataformes tecnològiques actuals
  • Conèixer els principis bàsics de les arquitectures de microserveis.
  • Saber interpretar (llegir) models especificats per altres enginyers de programari.
  • Conèixer els estàndards importants dins de l'àrea.
  • Saber que elements que conformen la configuració de projectes a nivell de recursos.
  • Aplicar els principis de planificació i gestió de projectes al desenvolupament d'un projecte programari d'envergadura mitjana
  • Definir les necessitats tecnològiques i arquitectòniques per a un sistema de programari segons els requeriments no funcionals
  • Ser capaç de recomanar una plataforma tecnològica que s'ajusti a aquestes necessitats.
  • Saber dissenyar (és a dir, adaptar l'especificació a la tecnologia) un sistema de programari per les plataformes tecnològiques més comunes (incloent plataformes distribuïdes).
  • Saber portar a la pràctica la resolució d'un enunciat concret, basat en una arquitectura de microserveis amb Java EE
  • Saber reconèixer els factors de testing i qualitat d'una especificació/disseny.
  • Saber avaluar formalment el testing i la qualitat d'una especificació/disseny.
  • Saber preparar un bon informe final de lliurament a un possible client per al nostre enunciat.

Amunt

L'assignatura s'estructura en 6 Activitats principals, cadascuna amb els seus continguts específics:

Activitat 1: "Metodologies de desenvolupament àgil i conceptualització del producte"

  • Llibre "Essential Scrum: A Practical Guide to the Most Popular Agile Process" by Kenneth S. Rubin. Chapter 1. Introduction.   
  • Llibre "Essential Scrum: A Practical Guide to the Most Popular Agile Process" by Kenneth S. Rubin. Chapters 2 - 13.
  • Llibre "The Agile Samurai" by Jonathan Rasmusson. Chapters 3-5.
  • Llibre "The Agile Samurai" by Jonathan Rasmusson. Chapters 1-2, 6 i 15.
  • Llibre "Agile Estimating and Planning" by Mike Cohn (material complementari).
  • Llibre "Scrum - a pocket guide (3rd ed.)" by Gunther Verheyen (material complementari).
  • Activitat: Primera Prova d'Avaluació Continuada (PAC1).

Activitat 2: "Planificació del producte"

  • Llibre "Essential Scrum: A Practical Guide to the Most Popular Agile Process" by Kenneth S. Rubin. Chapters 15-16.
  • Llibre "Essential Scrum: A Practical Guide to the Most Popular Agile Process" by Kenneth S. Rubin. Chapters 19-23.
  • Article "The new user story backlog is a map" by Jeff Patton. https://www.jpattonassociates.com/the-new-backlog/
  • Llibre "User Stories Applied: For Agile Software Development" by Kent Beck (material complementari).
  • Llibre "User Story Mapping" by Jeff Patton (material complementari).
  • Llibre "Essential Scrum: A Practical Guide to the Most Popular Agile Process" by Kenneth S. Rubin. Chapters 17 Envisioning (Product Planning) (material complementari).        
  • Llibre "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert Martin (material complementari).
  • Llibre "Refactoring: Improving the Design of Existing Code" by Martin Fowler (material complementari).
  • Activitat: Primera part de la Pràctica (PRAC1).

Activitat 3: "Desenvolupament del producte: Sprint 0"

  • Activitat: Segona part de la Pràctica (PRAC2).                                  

Activitat 4: "Desenvolupament del producte: Sprint 1"

  • Activitat: Tercera part de la Pràctica (PRAC3).      

Activitat 5: "Desenvolupament del producte: Sprint 2"

  • Activitat: Quarta part de la Pràctica (PRAC4).                                   

Activitat 6: "Síntesi del producte"

  • Activitat: Segona Prova d'Avaluació Continuada (PAC2).

Per a més informació, consultar el calendari de les Activitats, els dies d'estudi del material i les dates de lliurament de les PAC i PRAC a l'aula de PDP.

Amunt

Amunt

El suport principal del material docent són els llibres esmentats més amunt, que es distribuiran en format digital segons els canals habituals de la UOC (Biblioteca) accessibles des de l'aula. Tots els llibres de l'assignatura són originals d'autors de referència mundial de l'àrea de desenvolupament de programari distribuït i per això estan escrits completament en anglès. Es pressuposa competències de comprensió lectora en anglès al estudiantat que arriba a aquesta etapa del Grau, encara que donat el format digital d'aquests materials (lectura amb un navegador web), permet una fàcil lectura en altres idiomes mitjançant l'ús de les funcionalitats de traducció automàtica dels navegadors actuals. No obstant això, en cap cas l'equip docent es farà responsable de les fallades i problemes dels sistemes de traducció automàtica, i es recomana la lectura dels materials en l'idioma original, i especialment identificar i comprendre els conceptes i paraules clau en l'idioma original per evitar confusions amb la seva traducció a altres idiomes.

D'altra banda, l'assignatura disposa d'una aula de Laboratori amb material i eines de programari, i un consultor propi amb experiència en la part tècnica de l'assignatura, on l'alumne obtindrà tot el suport necessari per dur a terme les pràctiques. En particular, el Laboratori disposa de programari i manuals d'instal·lació, cursos de formació i casos d'estudi resolts sobre instal·lació i implementació, preguntes freqüents amb respostes i referències a fonts externes d'informació. A més, disposa de fòrums on enviar dubtes, consultes i problemes que el consultor respon el més ràpid possible, i que l'estudiantat pot compartir i participar.

Amunt

El procés d'avaluació es fonamenta en el treball personal de l'estudiant i pressuposa l'autenticitat de l'autoria i l'originalitat dels exercicis realitzats.

La manca d'autenticitat en l'autoria o d'originalitat de les proves d'avaluació; la còpia o el plagi; l'intent fraudulent d'obtenir un resultat acadèmic millor; la col·laboració, l'encobriment o l'afavoriment de la còpia, o la utilització de material o dispositius no autoritzats durant l'avaluació, entre d'altres, són conductes irregulars que poden tenir conseqüències acadèmiques i disciplinàries greus.

D'una banda, si es detecta alguna d'aquestes conductes irregulars, pot comportar el suspens (D/0) en les activitats avaluables que es defineixin en el pla docent - incloses les proves finals - o en la qualificació final de l'assignatura, sigui perquè s'han utilitzat materials o dispositius no autoritzats durant les proves, com ara xarxes socials o cercadors d'informació a internet, perquè s'han copiat fragments de text d'una font externa (internet, apunts, llibres, articles, treballs o proves d'altres estudiants, etc.) sense la citació corresponent, o perquè s'ha practicat qualsevol altra conducta irregular.

De l'altra, i d'acord amb les normatives acadèmiques, les conductes irregulars en l'avaluació, a més de comportar el suspens de l'assignatura, poden donar lloc a la incoació d'un procediment disciplinari i a l'aplicació, si escau, de la sanció que correspongui.

La UOC es reserva la potestat de sol·licitar a l'estudiant que s'identifiqui o que acrediti l'autoria del seu treball al llarg de tot el procés d'avaluació pels mitjans que estableixi la Universitat (síncrons o asíncrons). A aquests efectes, la UOC pot exigir a l'estudiant l'ús d'un micròfon, una càmera o altres eines durant l'avaluació i que s'asseguri que funcionen correctament.

La verificació dels coneixements per garantir l'autoria de la prova no implicarà en cap cas una segona avaluació.

Amunt

Aquesta assignatura només es pot superar a partir de l'avaluació contínua (AC), nota que es combina amb una nota de pràctiques (Pr) per a obtenir la nota final de l'assignatura. No es preveu fer cap prova d'avaluació final. La fórmula d'acreditació de l'assignatura és la següent: AC + Pr.

 
 

Amunt