Logo UAB
2022/2023

Arquitectura y Tecnologías de Software

Código: 102790 Créditos ECTS: 6
Titulación Tipo Curso Semestre
2502441 Ingeniería Informática OB 3 2
2502441 Ingeniería Informática OT 4 2

Contacto

Nombre:
Helena Bolta Torrell
Correo electrónico:
helena.bolta@uab.cat

Uso de idiomas

Lengua vehicular mayoritaria:
catalán (cat)
Algún grupo íntegramente en inglés:
No
Algún grupo íntegramente en catalán:
Algún grupo íntegramente en español:
No

Equipo docente

Helena Bolta Torrell
Lluis Echeverria Rovira

Prerequisitos

No hay prerrequisitos oficiales, pero es conveniente que el estudiante haya cursado la asignatura "Ingeniería del software" de segundo, así como "Gestión y administración de bases de datos" de tercero.

Aunque la lengua vehicular es el Catalán, gran parte de los apuntes y documentación está en Inglés, por lo que se requiere un mínimo conocimiento del idioma.

Uno de los temas a tratar en esta asignatura (Base de datos NO-SQL) se encuentra complementado en la asignatura Gestió i Administració de Bases de Dades

Objetivos y contextualización

Esta asignatura se divide en partes independientes, cada una de las cuales trata de un tema específico, avanzado y de actualidad en relación a conceptos de la ingeniería del software.

El objetivo es introducir al estudiante en estos temas durante tres o cuatro semanas, darle unos conocimientos básicos y las herramientas introductorias, para que luego pueda profundizar por sí mismo. Los temas escogidos giran en torno a las bases de datos, la programación, las arquitecturas de software, el modelado y desarrollo de software. Cada curso se seleccionan tres o cuatro temas.

Competencias

    Ingeniería Informática
  • Actitud personal.
  • Adquirir hábitos de trabajo personal.
  • Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que pudieran presentarse.
  • Capacidad para diseñar, desarrollar, evaluar y asegurar la accesibilidad, ergonomía, usabilidad y seguridad de los sistemas, servicios y aplicaciones informáticas, así como de la información que gestionan.

Resultados de aprendizaje

  1. Diseñar una arquitectura de un sistema informático basado en componentes.
  2. Diseñar una arquitectura que permita solucionar de manera óptima el problema especificado, teniendo en cuenta los riesgos asociados.
  3. Generar propuestas innovadoras y competitivas en la actividad profesional.
  4. Gestionar la información incorporando de forma crítica las innovaciones del propio campo profesional, y analizar las tendencias de futuro.
  5. Tomar decisiones propias.

Contenido

El curso consta de 3 temas diferenciados entre ellos pero con un hilo conductor ligado a la nueva Ingeniería de Software en entornos modernos y actuales.

Los contenidos son ambiciosos, sin embargo, como que la dinámica de la asignatura pretende ser muy interactiva, los contenidos se adaptarán (alargarán o acortarán), en función del transcurso de las sesiones. Por otro lado, los temas propuestos son en sí mismos muy amplios y densos, lo que hace imposible poder profundizar durante el transcurso de una asignatura. Tampoco es el objetivo; se quiere dar un esbozo inicial y los conocimientos básicos.

Por otra parte, a pesar de que todos los conceptos tratados serán debidamente referenciados en los materiales entregados o con referencias externas de consulta, muchos de ellos se desarrollarán durante las clases, por lo tanto, su asistencia es altamente recomendable, por no decir indispensable, para adquirir todos los conocimientos propuestos.

El orden de los temas puede variar.

Tema 1. Introducción al Big-Data

El concepto de datos masivas (o Big Data) es el nombre que reciben los conjuntos de datos, los procedimientos y las aplicaciones informáticas, que, por su volumen, su naturaleza diversa y la velocidad a la que deben ser procesadas, rebasan la capacidad los sistemas informáticos habituales. Este procesamiento de datos se utiliza para detectar patrones en su interior, pudiendo hacer así predicciones válidas para la toma de decisiones. Este nuevo mundo del procesamiento de los datos necesita de nuevos paradigmas y estrategias de software. Se trabajará desde 2 vertientes distintos: desde la posición de Data Engineer y desde la de Data Scientist

temario:

  • Conceptos básicos.
  • Estructuras y plataformas
    • Hadoop, Spark
  • Ingeniería de software en el BigData
    • Algoritmos y Patrones
    • Modelos y Estructuras de Datos
    • Seguridad, Robustez, Integridad
  • Introducción a IoT e Industria 4.0 en el mundo BigData
  • Data mining / Machine Learning / Deep Learning / Predictive analytics
    • Data Scientists

Tema 2. Introducción a las base de datos no relacionales (NoSQL) y su implementación con MongoDB.

Las base de datos no relacionales (NoSQL) son una nueva perspectiva dentro de las bases de datos. Con el crecimiento exponencial de internet, el volumen de datos a almacenar, ha crecido también de forma exponencial. Estos datos se deben guardar, y en determinados casos, las bases de datos relacionales no tienen el tiempo de respuesta más óptimo. Las bases de datos NoSQL dan respuesta a estos casos, que cada vez son más.

MongoDB es una de estas base de datos NoSQL, la cual es ideal para almacenar grandes volúmenes de datos documentales así como metadatos e informaciones no estructuradas.

temario:

  • Introducción a las bases de datos No-SQL: definción, características y tipos
  • MongoDB:
    • conceptos básicos
    • características
    • Introducción a JSON de MongoDB
    • Operaciones: insertar, importar, exportar, find, update, delete, agregaciones
    • Implementación en java, python
    • Diseño de base de datos
    • Réplica y sharding

 Tema 3. Introducción a devops

Devops es un acrónimo inglés de development (desarrollo) y operations (operaciones), que se refiere a una cultura o movimiento que se centra en la comunicación, colaboración e integración entre desarrolladores de software y los profesionales de operaciones en las tecnologías de la información (IT). DevOps es una respuesta a la interdependencia del desarrollo de software y las operaciones IT. Su objetivo es ayudar a una organización a producir productos y servicios de software rápidamente.

temario:

  • Introducción a DevOps
    • conceptos básicos
    • características
    • Devops dentro las metodologias Agile
  • Estructuras y plataformas
  • Gestión de infraestructuras
  • Cloud computing
  • Pruebas de aceptación
  • Tecnologías docker, Vagrant

Metodología

Clases de teoría y problemas en formato de conferencia, aunque la sesión de problemas puede ser interactiva. El profesor introduce los contenidos teóricos y da materiales (libros, artículos, páginas web) que el estudiante deberá leer, así como referencias para que luego pueda continuar su aprendizaje. Para facilitar la exposición de los temas, las clases de problemas y teoría están fusionadas y son contiguas.

Sesiones de prácticas. A principio de curso los estudiantes deberán formado grupos pequeños (2 o 3 miembros por grupo, si es posible por la capacidad de los laboratorios). Cada uno de los temas de la asignatura tiene dos sesiones de prácticas en laboratorio. En ellas los estudiantes siguen un tutorial / enunciado, como un ejemplo de programación sobre aquel tema o bien un trabajo en herramientas de software relacionadas con el tema en curso. Cada grupo de estudiantes tiene que hacer, antes de la sesión a puerta cerrada, un trabajo previo de preparación de la práctica de laboratorio o un trabajo aparte en línea con el tema. La sesión sirve para evaluar el trabajo previo realizado y completarlo o realizar una segunda parte con el apoyo presencial del profesor. El trabajo se entrega al finalizar el día de la sesión de prácticas.

La plataforma virtual para comunicar-nos con los estudiantes es el email y Microsoft Teamwork si fuera necesario.

Esta asignatura, entre otros objetivos, tiene la de introducir brevemente al alumno en conceptos y tecnologías modernas en parte desde un trabajo personal no tanto de alumno sino también como un pre-ingeniero que aplicará los conocimientos adquiridos en esta y otras asignaturas para resolver ciertas actividades propuestas a lo largo de la asignatura.

Dentro de esto, y para cubrir ciertas competencias transversales (T02.05-Tomar decisiones propias, T06.03 Generar propuestas innovadoras y competitivas en la actividad profesional y T06.04 Gestionar la información incorporando de manera crítica las innovaciones del propiocampo profesional , y analizar las tendencias de futuro), las prácticas de la asignatura versarán sobre las temáticas expuestas, donde en base a un enunciado, los alumnos deberán demostrar su capacidad para llevar a cabo los conceptos explicados generando una propuesta de solución usando la tecnología analizada en cada caso, y generando un informe aparte de los propios entregables solicitados en cada caso. El informe deberá contener, entre otros, la argumentación de que el alumno ha optado por aquella solución, pros y contras y una proyección (líneas de futuro) de posibles mejoras de la misma. En resumen, las prácticas servirán para desarrollar los conocimientos adquiridos en cada tema y para realizar un trabajo en base a las competencias expuestas.

Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.

Actividades

Título Horas ECTS Resultados de aprendizaje
Tipo: Dirigidas      
Problemas 12 0,48 1, 2
Sesiones de Prácticas 12 0,48 1, 2, 3, 4, 5
clases de teoria 26 1,04 1, 2
Tipo: Autónomas      
Estudio individual 40 1,6 1, 2
Praparación prácticas 52 2,08 1, 2

Evaluación

La asignatura consta de 3 temas diferenciados que se evaluarán independientemente. Para aprobar la asignatura se deben haber aprobado los 3 temas con un mínimo de 5 sobre 10. La nota de cada tema se compone de:

  • 45% evaluación individual mediante una prueba escrita de aquella parte,
  • 10% evaluación individual mediante uno o varios pequeños problemas propuestos en teoría o en problemas.
  • 45% evaluación de grupo a partir del resultado de la realización de la práctica (trabajo previo y sesión de laboratorio). Se tendrá que validar esta nota mediante una prueba de prácticas que se hará los mismos días que las pruebas de teoría individuales. Si no se supera la validación, la nota de la práctica será un 0.

Tanto la parte teórica como práctica de cada tema se deben aprobar por separado con un mínimo de 5 sobre 10 cada una.

En el caso de suspender alguna de las pruebas escritas, hay un examen de recuperación al final del semestre. Las prácticas son recuperables con un examen / trabajo especial.

Las fechas de evaluación continua y entrega de trabajos se publicarán en el campus virtual y pueden estar sujetos a cambios de programación por motivos de adaptación a posibles incidencias.

Se pueden guardar notas de temas completos (teoría + prácticas) de un curso para otro siempre y cuando la nota del tema sea mínimo 6 y la nota aplicada el seguiente curso será un 5.

Otorgar una cualificación de matrícula dehonor es decisión del profesorado responsable de la asignatura. La normativa de la UAB indica que las MH sólo se podrán conceder a estudiantes que hayan obtenido una calificación final igual o superior a 9.00. Se puede otorgar hasta un 5% de MH del total de estudiantes matriculados. Se otorgarán por orden de nota.

El estudiante recibirá un "No Avaluable" si no presenta ningún examen ni ninguna práctica ni ninguno de los problemas.

Para cada actividad de evaluación, se indicará un lugar, fecha y hora de revisión en la que el estudiante podrá revisar la actividad con el profesor. En este contexto, se podrán hacer reclamaciones sobre la nota de la actividad, que serán evaluadas por el profesorado responsable de la asignatura. Si el estudiante no se presenta en esta revisión, no se revisará posteriormente esta actividad.

Sin perjuicio de otras medidas disciplinarias que se estimen oportunas, y de acuerdo con la normativa académica vigente, las irregularidades cometidas por un estudiante que puedan conducir a una variación de la calificación en una actividad evaluable se calificarán con un cero (0) . Las actividades de evaluación calificadas de esta forma y por este procedimiento no serán recuperables. Si es necesario superar cualquiera de estas actividades de evaluación para aprobar la asignatura, esta asignatura quedará suspendida directamente, sin oportunidad de recuperarla en el mismo curso. Estas irregularidades incluyen, entre otros:

  • La copia total o parcial de una práctica, informe, o cualquier otra actividad de evaluación.
  • Dejar copiar.
  • Presentar un trabajo de grupo no hecho íntegramente por los miembros del grupo (aplicado a todos los miembros, no sólo los que no han trabajado).
  • Presentar como propios materiales elaborados por un tercero, aunque sean traducciones o adaptaciones, y en general trabajos con elementos no originales y exclusivos del estudiante.
  • Tener dispositivos digitales y / o de comunicación (como teléfonos móviles, smart watches, bolígrafos con cámara, etc.) accesibles durante las pruebas de evaluación teórico-prácticas individuales (exámenes).
  • Hablar con compañeros durante las pruebas de evaluación teórico-prácticas individuales (exámenes).
  • Observar / mirar las pruebas de evaluación teórico-prácticas (exámenes) de otros compañeros durante la realización de la misma, aunque no se haya procedido a la copia.
  • Observar / mirar en la tabla, hojas, pared, etc, escritos relacionados con la materia durante la realización de las provesd'avaluació teórico-prácticas (exámenes) aunque no se haya procedido a la copia. Con la excepción de los proporcionados, en su caso, por los profesores.

En caso de no superar la asignatura debido a que alguna de las actividades de evaluación no alcanza la nota mínima requerida, la nota numérica del expediente será el valor menor entre 4.5 y la media ponderada de las notas. Con las excepciones de que se otorgará la calificación de "no evaluable" a los estudiantes que no participen en ninguna de las actividades de evaluación, y de que la nota numérica del expediente será el valor menor entre 3.0 y la media ponderada de las notas en caso de que el estudiante haya cometido irregularidades en un acto de evaluación (y por tanto no será posible el aprobado por compensación).

En resumen: copiar, dejar copiar o plagiar (o el intento de) en cualquiera de las actividades de evaluación equivale a un SUSPENSO con nota inferior a 3.0.

Actividades de evaluación

Título Peso Horas ECTS Resultados de aprendizaje
Evaluacion grupal 45% 0 0 1, 2, 3, 4, 5
Evaluacion individual 45% 4 0,16 1, 2
Evaluacion individual (Problemas) 10% 4 0,16 1, 2, 3, 4, 5

Bibliografía

  • 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

Software

MongoDB o MongoDB Atlas