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ó  
ATENCIÓ: Aquest és el pla docent de l'assignatura per al primer semestre del curs 2020-2021. Us servirà per planificar la matrícula. 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 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 els estudiants adquireixin els coneixements bàsics per al desenvolupament d'aplicacions distribuïdes basades en components. Aquest objectiu general es concreta en els següents:

1. Entendre els diferents punts de vista a considerar en el desenvolupament d'aquest tipus d'aplicacions.

2. 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ó.

3. Conèixer la programació orientada a components com a tècnica d'implementació de les arquitectures de programari.

4. Veure com es materialitza (i s'adapta) aquest marc teòric sobre les plataformes tecnològiques actuals, amb atenció especial a Java EE.

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

6. Conèixer les semblances i diferències entre les diferents plataformes tecnològiques, amb especial atenció als serveis web.

7. 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 dels mòduls són els apunts propis de l'assignatura, que es distribuiran segons els canals habituals de la UOC. Per altra banda, també es distribueix als estudiants de l'assignatura un DVD amb programari lliure, en el qual hi trobaran el software necessari per a fer els exercicis pràctics de l'assignatura.

A part d'això, a l'aula hi ha diversos tutorials que permeten als estudiants endinsar-se en l'ús i configuració del programari que es fa servir a l'assignatura.

Amunt

La Normativa acadèmica de la UOC disposa que 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 fets.

La manca d'originalitat en l'autoria o el mal ús de les condicions en què es fa l'avaluació de l'assignatura és una infracció que pot tenir conseqüències acadèmiques greus.

L'estudiant serà qualificat amb un suspens (D/0) si es detecta manca d'originalitat en l'autoria d'alguna activitat avaluable (pràctica, prova d'avaluació contínua (PAC) o final (PAF), o la que es defineixi al pla docent), sigui perquè ha utilitzat material o dispositius no autoritzats, sigui perquè ha copiat textualment d'internet, o ha copiat d'apunts, de materials, de manuals o d'articles (sense la citació corresponent), d'altres estudiants, o per qualsevol altra conducta irregular.

Quan aquesta mala conducta es produeixi durant la realització de les proves d'avaluació finals presencials, l'estudiant pot ser expulsat de l'aula, i l'examinador farà constar tots els elements i la informació relatius al cas.

D'altra banda, aquesta conducta pot donar lloc a la incoació d'un procediment disciplinari i l'aplicació, si escau, de la sanció que correspongui.

La UOC habilitarà els mecanismes que consideri oportuns per a vetllar per la qualitat de les seves titulacions i garantir l'excel·lència i la qualitat del seu model educatiu.

Amunt

Aquesta assignatura es pot superar a partir de l'avaluació contínua (AC) i una prova de síntesi (PS). És necessari fer les activitats pràctiques obligatòries (Pr), la nota de les quals s'encreua amb la nota d'avaluació contínua . El resultat d'aquest creuament entre l'AC i la Pr es creua amb la nota de la PS per a obtenir la nota final de l'assignatura. Per a fer la PS cal haver superat la FC. La fórmula d'acreditació de l'assignatura és la següent: (AC + Pr) + PS

 
 

Amunt