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 què disposa l'assignatura   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. Us servirà per planificar la matrícula (consulteu 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 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 aspecte teòrics tant nous com altres que complementen els coneixements adquirits fins ara, com la gestió de projectes, la qualitat del programari, la configuració del programari i el seu manteniment.

El desenvolupament eficaç del projecte s'aconseguirà per mitjà d'una metodologia específica que cobreix totes les etapes del cicle de vida del programari, és a dir, des de l'especificació al lliurament final del producte al "suposat" client. En particular, a l'etapa d'implementació, s'emprarà extensament la plataforma Java EE per desenvolupar el programari distribuït basat en els components modulars que corren en un servidor d'aplicacions. A més, altres tecnologies donaran suport el projecte, com ara eines de proves i de configuració.

Per últim, la complexitat del projecte requerirà el desenvolupament específic de competències relacionades amb el treball col·laboratiu en grups petits de 4 o 5 estudiants. Per donar suport a aquest treball, l'assignatura proporciona un entorn de treball col·laboratiu bassat en les Apps de Google Suite (GDrive, GGroups, GMail, GHangouts, GCalendar, etc) per donar suport a la col·laboració, comunicació i coordinació de equips virtuals d'estudiants durant el desenvolupament del projecte, tant intra grups com entre grups, a nivell d'aula.

Amunt

 

L'assignatura Projecte de Desenvolupament de 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 i semblants a problemes reals, com ara la gestió d'una PIME, serveis d'un Caixer OnLine, gestió d'un CAP (Centre d'Atenció Primària), aplicacions per e-Commerce, TeleTreball, eLogistics, entre d'altres.

És per això que l'estudiant 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'estudiant 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à en grups de 4 o 5 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.

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

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 (per exemple, RMI, Java EE, i SOA).

A més, els estudiants hauran de mostrar un nivell d'expertesa en l'ús d'eines i sistemes específics, com PostgreSQL, JEE 6.0, Eclipse i Serveis Web).

Amunt

 

Aquesta assignatura requereix disposar d'un bon coneixement previ, per tant cal que l'estudiant 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.

També és essencial que l'estudiant 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'estudiant 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 del Grau a fi de tenir les competències bàsiques per dirigir el projecte de programari desenvolupat durant el curs.

Amunt

Competències generals del Grau

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

Competències de l'assignatura

  • Conèixer els principis bàsics de la gestió de configuració en una arquitectura Java EE.
  • 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 client-servidor 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
  • Conèixer els conceptes bàsics dels diferents tipus d'arquitectures programari i plataformes tecnològiques actuals.

Objectius

  • Comprendre la necessitat d'una gestió rigorosa de projectes de programari.
  • Disposar d'una visió general en la gestió de projectes de programari.
  • Comprendre les diferències amb la gestió d'altres tipus de projectes.
  • Aprendre les activitats bàsiques d'un projecte de programari.
  • Comprendre les perspectives diferents de qualitat de programari, des del punt de vista teòric al pràctic
  • Identificar les activitats adreçades a detectar i impedir defectes de programari, i la importància del cost derivat de la mala qualitat.
  • Conèixer els models més importants i estàndards de qualitat de programari i les mètriques més utilitzades per mesurar la qualitat d'un producte de programari i la qualitat del procés de desenvolupament.
  • Entendre els conceptes bàsics relacionats amb la gestió de la configuració de programari.
  • Identificar les activitats més importants de la gestió de la configuració.
  • Saber gestionar la gestió de configuració de programari.
  • Conèixer algunes de les eines que donen suport a la gestió de la configuració de programari.
  • Comprendre què són els tests i els diferents nivells i tipus de tests.
  • Identificar els mecanismes de prevenció que es poden aplicar per evitar defectes en el programari.
  • Conèixer diferents eines que poden ser utilitzades per donar suport a totes les tècniques de tèsting.
  • Ser conscient de la importància del manteniment de programari en un sistema informàtic.
  • Identificar els tipus diferents de manteniment de programari.

 

Amunt


Mòdul didàctic 1: Treball col·laboratiu per al desenvolupament de projectes de programari
1. Una visió general de la gestió dels projectes
2. Treball col·laboratiu i aprenentatge basat en projectes
3. Treball en equip per a la gestió de projectes
4. Planificació de la realització del projecte en equip
5. Treball en equip i ús d'eines en línia
6. Annexos

Mòdul didàctic 2: Qualitat del programari: gestió de la qualitat i mètriques
1. La qualitat
2. Els defectes. Causes i cicle de vida
3. Models de qualitat i estàndards
4. Mesures i mètriques en qualitat del programari

Mòdul didàctic 3: Gestió de la configuració del programari
1. Aspectes bàsics de la gestió de la configuració
2. Activitats de la gestió de la configuració
3. Rols i responsabilitats en la gestió de la configuració
4. Gestió de la gestió de la configuració
5. Tendències actuals
6. Eines per a la gestió de la configuració

Mòdul didàctic 4: Qualitat del programari: tècniques de prevenció, detecció i correcció de defectes
1. Tècniques de detecció de fallades. Les proves
2. Tècniques de detecció de defectes. Les revisions i l'anàlisi estàtica
3. Tècniques de localització i correcció de defectes
4. Tècniques de prevenció de defectes
5. Tècniques de tolerància a fallades
6. Eines

Mòdul didàctic 5: Manteniment del programari
1. Tipus de manteniment del programari
2. Característiques del manteniment
3. El procés del manteniment
4. El cost del manteniment
5. Exemples de projectes de manteniment
6. Evolució i futur del manteniment
7. La reenginyeria del programari

L'estudiant disposarà de dies d'estudis per poder repassar aquests conceptes teòrics. Aquests dies seran seleccionats específicament pels consultors a tal efecte, de manera que abans de començar un nou bloc l'alumne disposi de temps de revisar els seus apunts.

Consultar el calendari de PACs, dies d'estudi, i dates de lliurament del curs a l'aula de PDP per a més informació.

Amunt

MagicDraw Programari en línia

Amunt

El material principal de l'assignatura (5 mòduls) es facilita en format Web i PDF.

 

Per a dur a terme el projecte en grup del curs i les diferents activitats individuals de l'assignatura, es pot requerir tot o part del següent programari que es farà arribar a l'estudiant amb un DVD que inclourà els manuals d'usuari corresponents:

  • Magic Draw: Una eina CASE visual pel modelat amb UML.
  • GitLab: Un sistema de gestió de configuració de programari client-servidor de codi obert.
  • JBoss: Un servidor d'aplicacions de codi obert en Java que implementa l'arquitectura Java EE.
  • Apache Ant: Eina de codi obert en Java per l'automatització de tasques durant la compilació i construcció de projectes Java.
  • MySQL: Un sistema de gestió de base de dades (SGBD) relacional de codi obert.
  • PostgreSQL: Un sistema de gestió de base de dades (SGBD) relacional de codi obert.
  • Eclipse: és un entorn integrat de desenvolupament (IDE) per a desenvolupar projectes en diferents llenguatges. de programació (en el nostre cas JEE).
  • JDK i SDK: Entorns de desenvolupament de Java (darreres versions)
  • JHawk: Eina d'anàlisi de codi estàtic Java per mesurar la qualitat del codi.
  • G Suite: Apps de Google Suite per donar ple suport al treball col.laboratiu en equips virtuals

Per donar suport a la part estrictament tècnica l'estudiant tindrà al seu abast un laboratori virtual amb un consultor i tot un seguit de recursos que l'ajudaran a resoldre els problemes d'instal.lació i utilització de les eines.

A part d'aquestes eines específiques, el curs proporcionarà les eines estàndard pel treball col.laboratiu a l'aula, com Fòrums i Wikis.

Finalment, a l'inici del semestre, d'una banda, els estudiants trobaran en el Tauler un document que explica el procés de treball en equip que s'ha de seguir per desenvolupar el projecte. D'altra banda, en el GDrive de l'assignatura hi haurà un documents d'ajuda per a la formació de grups i per a la utilització correcte de les Apps de G Suite, que s'anunciarà via Tauler de l'aula a l'inici de curs.

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.

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