Logo UAB
2022/2023

Arquitectura i Tecnologies de Software

Codi: 102790 Crèdits: 6
Titulació Tipus Curs Semestre
2502441 Enginyeria Informàtica OB 3 2
2502441 Enginyeria Informàtica OT 4 2

Professor/a de contacte

Nom:
Helena Bolta Torrell
Correu electrònic:
helena.bolta@uab.cat

Utilització d'idiomes a l'assignatura

Llengua vehicular majoritària:
català (cat)
Grup íntegre en anglès:
No
Grup íntegre en català:
Grup íntegre en espanyol:
No

Equip docent

Helena Bolta Torrell
Lluis Echeverria Rovira

Prerequisits

No hi ha prerequisits oficials, però és convenient que l'estudiant hagi cursat l'assignatura "Enginyeria del software" de segon, així com "Gestió i administració de bases de dades" de tercer.

Tot i que la llengua vehicular és el Català, gran part dels apunts i documentació està en Anglès, per tant, cal un mínim coneixement de l'idioma.

Un dels temes a tractar en aquesta assignatura (Base de dades NO-SQL) es troba complementada en l'assignatura Gestió i Administració de Bases de Dades

 

Objectius

Aquesta assignatura es divideix en parts independents, cadascuna de les quals tracta d'un tema específic, avançat i d'actualitat en relació a conceptes de l'enginyeria del software.

L'objectiu és introduïr a l'estudiant en aquests temes durant tres o quatre setmanes, donar-li uns coneixements bàsics i les eines introductòries, per tal que després pugui aprofundir-hi per ell mateix. Els temes escollits giren al voltant de les bases de dades, la programació, les arquitectures de software, el modelat i desenvolupament de software. Cada curs es seleccionen tres o quatre temes.

Competències

    Enginyeria Informàtica
  • Adquirir hàbits de treball personal.
  • Capacitat d'identificar, avaluar i gestionar els riscos potencials que puguin presentar-se.
  • Capacitat per dissenyar, desenvolupar, avaluar i assegurar l'accessibilitat, l'ergonomia, la usabilitat i la seguretat dels sistemes, serveis i aplicacions informàtiques, així com de la informació que gestionen.
  • Tenir una actitud personal adequada.

Resultats d'aprenentatge

  1. Dissenyar una arquitectura d'un sistema informàtic basat en components.
  2. Dissenyar una arquitectura que permeti solucionar de manera òptima el problema especificat, tenint en compte els riscos associats.
  3. Generar propostes innovadores i competitives en l'activitat professional.
  4. Gestionar la informació incorporant de manera crítica les innovacions del propi camp professional, i analitzar les tendències de futur.
  5. Prendre decisions pròpies.

Continguts

El curs consta de 3 temes diferenciats entre ells però amb un fil conductor lligat a la nova Enginyeria de Software en entorns moderns i actuals.

Els continguts són ambiciosos, no obstant, com que la dinàmica de l'assignatura pretén ser molt interactiva, els continguts s'adaptaran (allargaran o escurçaran), en funció del transcurs de les sessions. Per altra banda, els temes proposats són en sí mateixos molt amplis i densos, cosa que fa impossible poder aprofundir durant el transcurs d'una assignatura. Tampoc n'és l'objectiu; es vol donar un esbós inicial i els coneixements bàsics.

Per altra banda, tot i que tots els conceptes tractats seran degudament referenciats en els materials entregats o amb referències externes de consulta, molts d'ells es desenvoluparan durant les classes, per tant, la seva assistència és altament recomanable, per no dir indispensable, per adquirir tots els coneixements proposats.

L'ordre dels temes pot variar segons conveniència.

Tema 1. Introducció al Big-Data

El concepte de dades massives (o Big Data) és el nom que reben els conjunts de dades, els procediments i les aplicacions informàtiques, que, pel seu volum, la seva naturalesa diversa i la velocitat a què han de ser processades, ultrapassen la capacitat dels sistemes informàtics habituals. Aquest processament de dades s'utilitza per tal de detectar patrons dins seu, podent fer així prediccions vàlides per a la presa de decisions. Aquest nou món del processament de les dades necessita de nous paradigmes i estratègies de software. Es treballarà des de 2 vessants diferents: des la posició de Data Engineer i des de la de Data Scientist 

Temari:

  • Conceptes bàsics.
  • Estructures i plataformes
    • Hadoop, Spark
  • Enginyeria de software en el BigData
    • Algoritmes i Patrons
    • Models i Estructures de Dades
    • Seguretat, Robustesa, Integritat
  • Introducció a IoT e Industria 4.0 en el món BigData
  • Data mining / Machine Learning / Deep Learning / Predictive analytics
    • Data Scientists

Tema 2. Introducció a les base de dades no relacionals (NoSQL) i la seva implementació amb MongoDB.

Les base de dades no relacionals (NoSQL) són una nova perspectiva dins les bases de dades. Amb el creixement exponencial d'internet, el volum de dades a emmagatzemar, ha crescut també de forma exponencial. Aquestes dades s'han de guardar, i en determinats casos, les bases de dades relacionals no tenen el temps de resposta més òptim. Les bases de dades NoSQL donen resposta a aquests casos, que cada cop són més.

MongoDB és una d'aquestes base de dades NoSQL, la qual és ideal per emmagatzemar grans volums de dades documentals així com metadates i informacions no estructurades.  

Temari:
  • Introducció a les bases de dades No-SQL: definció, característiques i tipus
  • MongoDB:
    • Conceptes bàsics
    • Característiques
    • Introducció a JSON de MongoDB
    • Operacions: insertar, importar, exportar, find, update, delete, agregacions
    • Implementació en java, python
    • Disseny de bases de dades
    • Rèplica i sharding

 Tema 3. Introducció a DevOps

DevOps és un acrònim anglès de development (desenvolupament) i operations (operacions), que es refereix a una cultura o moviment que se centra en la comunicació, col·laboració i integració entre desenvolupadors de programari i els professionals d'operacions en les tecnologies de la informació ( IT). DevOps és una resposta a la interdependència del desenvolupament de programari i les operacions IT. El seu objectiu és ajudar a una organització a produïr productes i serveis de programari ràpidament.

Temari:

  • Introducció a DevOps
    • Conceptes bàsics
    • Característiques
    • DevOps dins les metodologies Agile
  • Estructures i plataformes
  • Cloud computing
  • Gestió d'infraestructures
  • Proves d'acceptació
  • Tecnologies docker, vagrant

Metodologia

Classes de teoria i problemes en format de conferència, tot i que la sessió de problemes pot ser interactiva. El professor introdueix els continguts teòrics i dóna materials (llibres, articles, pàgines web) que l'estudiant haurà de llegir, així com referències per què després pugui continuar el seu aprenentatge. Per facilitar l'exposició dels temes, les classes de problemes i teoria estan fusionades i són contigües.

Sessions de pràctiques. A principi de curs els estudiants hauran format grups petits (2 o 3 membres per grup, si és possible per la capacitat dels laboratoris). Cadascun dels temes de l'assignatura té dues sessions de pràctiques a laboratori. En elles els estudiants segueixen un tutorial/enunciat, com un exemple de programació sobre aquell tema o bé un treball en eines de software relacionades amb el tema en curs. Cada grup d'estudiants ha de fer, abans de la sessió a porta tancada,  un treball previ de preparació de la pràctica de laboratori o un treball apart en línia amb el tema. La sessió serveix per avaluar el treball previ realitzat i completar-lo o realitzar una segona part amb el suport presencial del professor. El treball s'entrega en acabar el dia de la sessió de pràctiques o posteriorment.

La plataforma virtual per comunicar-se amb els estudiants és l'email i el Microsoft Teamwork si s'escau.

Aquesta assignatura, entre altres objectius, té la d'introduir breument l'alumne en conceptes i tecnologies modernes en part des d'un treball personal no tant d'alumne sinó també com d'un pre-enginyer que aplicarà els coneixements adquirits en aquesta i altres assignatures per resoldre certes activitats proposades al llarg de l'assignatura. 

Dins d'això, i per cobrir certes competències transversals (T02.05-Prendredecisions pròpies, T06.03 Generar propostes innovadores i competitives en l'activitat professional i T06.04 Gestionar la informacióincorporant de manera crítica les innovacions del propi camp professional, i analitzar les tendències de futur), les pràctiques de l'assignatura versaran sobre les temàtiques exposades, on en base a un enunciat, els alumnes hauran de demostrar la seva capacitat per dur a terme els conceptes explicats generant una proposta de solució usant la tecnologia analitzada en cada cas, i generant un informe a part dels propis lliuraments demanats en cada cas. L'informe haurà de contenir, entre altres, l'argumentació de perquè l'alumne ha optat per aquella solució, pros i contres i una projecció (línies de futur) de possibles millores de la mateixa.  En resum, les pràctiques serviran per desenvolupar els coneixements adquirits en cada tema i per realitzar un treball en base a les competències exposades.

Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
classes de problemes 12 0,48 1, 2
classes de pràctiques 12 0,48 1, 2, 3, 4, 5
classes de teoria 26 1,04 1, 2
Tipus: Autònomes      
estudi individual 40 1,6 1, 2
preparació pràctiques 52 2,08 1, 2

Avaluació

L'assignatura consta de 3 temes diferenciats que s'avaluaran independentment. Per aprovar l'assignatura s'han d'haver aprovat els 3 temes amb un mínim de 5 sobre 10. La nota de cada tema es composa de:

  • 45% avaluació individual mitjançant una prova escrita d'aquella part,
  • 10% avaluació individual mitjançant un o varis petits problemes proposats a teoria o a problemes.
  • 45% avaluació de grup a partir del resultat de la realització de la pràctica (treball previ i sessió de laboratori). Caldrà validar aquesta nota mitjançant una prova de pràctiques que es farà els mateixos dies que les proves de teoria individuals. Si no es supera la validació, la nota de la pràctica serà un 0.

Tant la part teòrica com pràctica de cada tema s'han d'aprovar per separat amb un mínim de 5 sobre 10 cada una.

En el cas de suspendre alguna de les proves escrites, hi ha un examen de recuperació al final del semestre. Les pràctiques són recuperables amb un examen/treball especial.

Les dates d'avaluació continuada i lliurament de treballs es publicaran al campus virtual i poden estar subjectes a canvis de programació per motius d'adaptació a possibles incidències.

Es poden guardar notes de temes complerts (teoria + pràctiques) d'un curs per l'altre sempre i quan la nota del tema sigui mínim 6 i la nota aplicada el següent curs serà un 5.

Atorgar una qualificació de matrícula d’honor (MH) és decisió del professorat responsable de l’assignatura. La normativa de la UAB indica que les MH només es podran concedir a estudiants que hagin obtingut una qualificació final igual o superior a 9.00. Es pot atorgar fins aun 5% de MH del total d'estudiants matriculats. S'atorgaran segons la nota.

L'estudiant rebrà un "No Avaluable" si no presenta cap examen ni cap pràctica ni cap dels problemes.

Per a cada activitat d’avaluació, s’indicarà un lloc, data i hora de revisió en la que l'estudiant podrà revisar l’activitat amb el professor. En aquest context, es podran fer reclamacions sobre la nota de l’activitat, que seran avaluades pel professorat responsable de l’assignatura. Si l'estudiant no es presenta a aquesta revisió, no es revisarà posteriorment aquesta activitat.

Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, i d'acord amb la normativa acadèmica vigent, les  irregularitats comeses per un estudiant que puguin conduir a una variació de la qualificació en una activitat avaluable es qualificaran amb un zero (0). Les  activitats d'avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de  recuperar-la en el mateix curs. Aquestes irregularitats inclouen, entre d'altres:

  • La còpia total o parcial d'una pràctica, informe, o qualsevol altra activitat d'avaluació.
  • Deixar copiar.
  • Presentar un treball de grup no fet íntegrament pels membres del grup (aplicat a tots els membres, no solament els què no han treballat).
  • Presentar com a propis materials elaborats per un tercer, encara que  siguin traduccions o adaptacions, i en generaltreballs amb elements no originals i exclusius de l'estudiant.
  • Tenir dispositius digitals i/o de comunicació (com telèfons mòbils, smart watches, bolígrafs amb càmera,etc.) accessibles durant les proves d'avaluació teòrico-pràctiques individuals (exàmens).
  • Parlar amb companys durant les proves d'avaluació teòrico-pràctiques individuals (exàmens).
  • Observar/mirar les proves d'avaluació  teòrico-pràctiques(exàmens) d'altres companys durant la realització de la mateixa, encara que no s'hagi procedit a la còpia.
  • Observar/mirar en la taula, fulls, paret, etc, escrits relacionats amb la matèria durant la realització de les proves d'avaluació teòrico-pràctiques(exàmens) encara que no s'hagi procedit a la còpia. Amb l'excepció dels proporcionats, si s'escau, pels professors.
En cas de no superar l'assignatura degut a que alguna de les activitats d'avaluació no arriba a la nota mínima requerida, la nota numèrica de l'expedient serà el valor menor entre 4.5 i la mitjana ponderada de les notes. Amb les excepcions de que s'atorgarà la qualificació de "no avaluable" als estudiants que no participin en cap de les activitats d'avaluació, i de que la nota numèrica de l'expedient serà el valor menor entre 3.0 i la mitjana ponderada de les notes en cas que l'estudiant hagi comès irregularitats en un acte d'avaluació (i per tant no serà possible l'aprovat per compensació).
 
En resum: copiar, deixar copiar o plagiar (o l'intent de) en qualsevol de les activitats d'avaluació equival a un SUSPENS amb nota inferior a 3.0.

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
avaluació grupal 45% 0 0 1, 2, 3, 4, 5
avaluació individual 45% 4 0,16 1, 2
avaluació individual (problemes) 10% 4 0,16 1, 2, 3, 4, 5

Bibliografia

  • NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Pramod J. Sadalage , Martin Fowler. Addison-wesley, 2013.
  • MongoDB: The Definitive Guide.  Kristina Chodorow . O'Really , 2013.
  • Big Data for Dummies . Judith Hurwitz, Alan Nugent, Fern Halper, Marcia Kaufman. Wiley, 2013
  • Big Data Analytics with Spark and Hadoop, Venkat Ankam, 2016
  • Big-Data Analytics and Cloud Computing: Theory, Algorithms and Applications, Springer, 2016
  • DevOps: A Software Architect's Perpective, Financial Times/Practice Hall, 2015
  • Learning Puppet 4: A Guide to Configuration Management and , O'Reilly Media, 2016
  • Docker Cookbook,  Sebastien Goasguen, O'Reilly Media,  2015
  • Creating Development Environments with Vagrant , packt publishing
  • Scalable Internet Architectures, Theo Schlossnagle, Paperback, 2006
  • The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise Paperback, Jun 2015

Programari

MongoDB o MongoDB Atlas