Eng. de programari de components i sistemes distribuïts Codi:  05.587    :  6
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.)

Els continus avenços en informàtica i telecomunicacions estan canviant la manera com es desenvolupa el programari. En particular, l'incessant augment de la potència dels ordinadors personals, l'abaratiment dels costos del maquinari i l'aparició de xarxes de dades de cobertura global han fet possible una infraestructura especialment favorable per a l'ús dels sistemes oberts i distribuïts.

Aquests canvis han provocat, entre altres coses, que els mètodes de disseny i desenvolupament de programari tradicionals (vistos en les assignatures d'Enginyeria del programari i Anàlisi i disseny amb patrons) siguin insuficients, ja que, més o menys implícitament, assumeixen que l'aplicació a desenvolupar s'executarà en un entorn bàsicament centralitzat. Per tant, els mètodes tradicionals són incapaços de gestionar de manera natural la complexitat dels requisits d'aquest nou tipus de sistemes.

Aquesta assignatura serveix com a introducció als conceptes i mètodes fonamentals sobre els quals es fonamenta el disseny i desenvolupament d'aplicacions distribuïdes basades en components, i així es complementen els coneixements adquirits en les assignatures prèvies.

En primer lloc, s'aborda el disseny d'alt nivell d'aquest tipus de sistemes, descrivint els diferents punts de vista a considerar, utilitzant com a marc de referència l'estàndard definit per ISO, IEC i ITU-T, anomenat RM-ODP. Cada punt de vista és independent dels altres i aborda una sèrie d'aspectes concrets, abstraient-se de la resta. Entre els diferents punts de vista, aquesta assignatura se centra en els més propers al seu disseny i la seva implementació, com són l'arquitectura del programari i la implementació amb components. Els aspectes més propers a l'anàlisi i a l'especificació de requisits no canvien respecte a allò que s'ha vist en les assignatures anteriors i, per tant, no es repeteixen aquí.

L'arquitectura dels sistemes de programari permet descriure d'una manera abstracta i d'alt nivell tant la funcionalitat del sistema com molts altres aspectes no funcionals d'aquest (distribució, fiabilitat, seguretat, adaptabilitat, prestacions, etc.). Aquesta descripció del sistema sol definir-se partint d'un estil arquitectònic, una classificació dels sistemes de programari en grans famílies que segueixen un patró estructural comú. Entre els estils arquitectònics més usuals per als sistemes distribuïts hi ha els sistemes organitzats en múltiples capes, els sistemes client-servidor o els sistemes peer-to-peer.

Aquestes arquitectures poden implementar-se després utilitzant qualsevol paradigma de programació (orientat a objectes, estructurat...). No obstant això, en aquesta assignatura abordarem la programació orientada a components, un paradigma de programació que proporciona mecanismes apropiats per al desenvolupament i la implementació de components de programari distribuïts. Aquests components són els que serviran per a implementar els components arquitectònics descrits en l'arquitectura del sistema.

El disseny de l'aplicació en termes de components de programari ha de refinar-se, posteriorment, per adaptar-lo i implementar-lo en una tecnologia de components distribuïts concreta. En el nostre cas concret, es descriu amb detall la plataforma Java Enterprise Edition (Java EE). Aquesta és una plataforma oberta basada en components que permeten desenvolupar, desplegar i gestionar aplicacions distribuïdes amb arquitectures multinivell. Per tal de conèixer millor el funcionament d'aquesta tecnologia, prèviament s'explica a fons el mecanisme d'invocació remota RMI que representa el nucli del model distribuït de Java i la capa subjacent de comunicació distribuïda de Java EE.

Finalment, per a donar una visió més general de l'estat tecnològic actual, també es comenten altres plataformes i tecnologies distribuïdes com ara CORBA, .NET, i especialment els serveis web.

Amunt

Aquesta assignatura està emmarcada dins l'itinerari d'Enginyeria del programari del grau d'Enginyeria Informàtica constituint una extensió en diverses dimensions dels coneixements bàsics d'enginyeria del programari continguts tant a l'itinerari concret com a les assignatures obligatòries del grau.

Per a poder cursar amb profit aquesta assignatura, cal que els estudiants tinguin uns certs coneixements previs sobre tecnologia orientada a l'objecte. Concretament cal conèixer els fonaments de la programació orientada a l'objecte i les notacions bàsiques d'UML, tal i com es veuen, per exemple, a l'assignatura Enginyeria del programari i a Anàlisi i disseny amb patrons d'aquesta mateixa titulació.

Amunt

L'assignatura serà especialment útil a tots els futurs professionals dedicats al desenvolupament de programari segons una concepció actual. El camp del desenvolupament de programari canvia dia a dia; i com ja s'ha comentat al principi, tant els sistemes distribuïts com els sistemes de components van prenent més i més importància. 

Finalment, també és important per tot enginyer informàtic assolir les habilitats bàsiques en la instal·lació, configuració i ús de les diverses eines de suport existents pel desenvolupament, desplegament i execució d'aplicacions de programari. En aquesta assignatura es durà a terme una intensa tasca en aquest sentit per consolidar aquestes habilitats mitjançant el suport d'una aula Laboratori especialitzada. Per tant, s'evitarà en el possible l'ús de màquines virtuals automàtiques amb entorns ja configurats i fomentar l'ús d'eines individuals que l'estudiant haurà d'aprendre a instal·lar i configurar manualment.

Amunt

Haver superat Enginyeria del programari i Anàlisi i disseny amb patrons o tenir els coneixements equivalents és la condició prèvia per poder cursar aquesta assignatura.

És també imprescindible que l'estudiant tingui un bon nivell de Java per a poder superar l'assignatura. L'assignatura té una part important de treball pràctic en Java que assumeix un coneixement i pràctica importants en aquest llenguatge. No és gens recomanable que l'estudiant agafi l'assignatura fins que s'hagi assolit un bon nivell en Java, ja que altrament es veurà abocat a repetir l'assignatura amb una alta probabilitat.

Amunt

És recomanable haver superat Enginyeria del programari i Anàlisi i disseny amb patrons.

Amunt

Competències transversals:

  • Capacitat de comunicació escrita en l'àmbit acadèmic i professional.
  • Ús i aplicació de les TIC en l'àmbit acadèmic i professional Capacitat per adaptar-se a les tecnologies i a futurs entorns actualitzant les competències professionals 

Competències del Grau en Enginyeria Informàtica:

  • Saber construir aplicacions informàtiques mitjançant tècniques de desenvolupament, integració y reutilizació.
  • Saber proposar i avaluar diferents alternatives tecnològiques per resoldre un problema concret.

Aquestes competències es desglossen en els següents objectius:

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

  • Entendre els diferents punts de vista a considerar en el desenvolupament d'aquest tipus d'aplicacions.
  • Conèixer els diferents estils arquitectònics existents i saber definir l'arquitectura de programari més adequada segons les característiques particulars de cada aplicació.
  • Conèixer la programació orientada a components com a tècnica d'implementació de les arquitectures de programari.
  • Veure com es materialitza (i s'adapta) aquest marc teòric sobre les plataformes tecnològiques actuals, amb atenció especial a Java EE.
  • Conèixer el model d'objectes distribuït de Java basat en RMI com a capa subjacent de comunicació distribuïda de la tecnologia de components Java EE.
  • Conèixer les semblances i diferències entre les diferents plataformes tecnològiques, amb especial atenció als serveis web.
  • Entendre que el procés de desenvolupament de programari explicat aquí és útil independentment de la plataforma final a utilitzar, ja que totes segueixen uns mateixos principis arquitectònics.

Amunt

Mòdul didàctic 1: Disseny d'aplicacions distribuïdes
1. Els sistemes oberts i distribuïts
2. Disseny arquitectònic basat en punts de vista
3. El model de ''4+1'' vistes de Kruchten
4. El model de referència RM-ODP
5. Disseny d'aplicacions distribuïdes basades en components

Mòdul didàctic 2: Arquitectura del programari
1. Arquitectures de programari
2. Representació de l'arquitectura programari

Mòdul didàctic 3: Desenvolupament de programari basat en components
1. El concepte de component programari
2. Conceptes i mecanismes bàsics
3. Representació de components programari en UML
4. Procés de desenvolupament basat en components

Mòdul didàctic 4: Introducció a les plataformes distribuïdes
1. Una mica d'història: RPC, RMI, DCOM...
2. CORBA

Mòdul didàctic 5: Java RMI
1. Introducció a RMI
2. Arquitectura RMI
3. Cas d'estudi RMI

Mòdul didàctic 6: Java EE
1. Java EE, una plataforma de components distribuïda
2. Arquitectura lògica
3. Disseny d'aplicacions Java EE amb UML

Mòdul didàctic 7: SOA
1. Introducció a les arquitectures orientades a serveis
2. El concepte SOA: arquitectures orientades a serveis
3. Serveis web pesants i lleugers
4. Disseny d'aplicacions orientades a serveis amb UML

Amunt

MagicDraw Programari en línia

Amunt

El suport principal del material docent són els apunts propis de l'assignatura, que es distribuiran segons els canals habituals de la UOC.

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 d'entrenament i casos d'estudi resolts sobre instal·lació i implementació, preguntes freqüents amb respostes i referències a fonts d'informació. A més, disposa de fòrums on enviar dubtes, consultes i problemes que el consultor respon de manera immediata i tots els alumnes poden 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.

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.La fórmula d'acreditació de l'assignatura és la següent: AC + Pr. Les qualificacions finals de l'assignatura es calcularan de la manera següent:
- Si l'AC i la Pr superen el mínim, la qualificació final serà el resultat de la fórmula de càlcul.
- Si no se supera el mínim de l'AC, la qualificació final serà la de l'AC.
- Si no es presenta l'AC, la qualificació final serà No presentat.
- Si l'AC supera el mínim i la Pr no, la qualificació final serà la nota de la Pr.
- Si l'AC supera el mínim i la Pr no es presenta, la qualificació final serà Suspès (2,5).

 
 

Amunt