Temas Avanzados de Ingeniería de Datos II

Usted está aquí

Créditos
6
Tipos
Obligatoria
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
ETSETB;FIB;FME;ESSI;ENTEL
La asignatura se estructura en dos partes diferenciadas: el estudio de la ingeniería del software dirigida por los datos y el estudio de aspectos relacionados con la privacidad y seguridad de los datos.

1. Ingeniería del Software. La disponibilidad de grandes volúmenes de datos provenientes tanto del desarrollo de sistemas software como de su utilización posibilita su utilización en diversas etapas y actividades de la ingeniería del software y, incluso yendo más allá, define una nueva aproximación que considera los datos como la piedra angular del ciclo de vida del software. La primera parte de la asignatura presenta esta nueva visión de la ingeniería del software y profundiza en tres actividades concretas que giran alrededor de los datos: gestión de la calidad del software, construcción de sistemas basados en inteligencia artificial, y planificación de nuevas versiones y adaptación de sistemas basados en inteligencia artificial conscientes del contexto en tiempo de ejecución.

2. Privacidad y seguridad de los datos. Las técnicas de análisis de datos pueden ayudar a obtener información para anticiparse a varios problemas, dar a conocer su fuente y ayudar a implementar soluciones, en contextos tan variados como competitividad empresarial, marketing, relaciones sociales, transporte, salud, educación y política. Sin embargo, a pesar de que el análisis de datos es extremadamente valioso, también tienen un inconveniente crucial: invaden cada vez más la privacidad de las personas sobre las que se recopilan datos. La segunda parte de la asignatura presenta conceptos básicos de privacidad de la información y profundiza en las principales tecnologías y métricas de privacidad, así como en los algoritmos de anonimización utilizados para evitar cualquier divulgación de información sensible de los individuos

Profesorado

Responsable

  • Jordi Forne Muñoz ( )
  • Silverio Juan Martínez Fernández ( )
  • Xavier Franch Gutiérrez ( )

Otros

  • Esteve Pallares Segarra ( )
  • Javier Parra Arnau ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0.2
Aprendizaje autónomo
5.8

Competencias

Competencias Técnicas

Competencias técnicas

  • CE1 - Utilizar con destreza los conceptos y métodos matemáticos que subyacen los problemas de la ciencia y la ingeniería de los datos.
  • CE2 - Ser capaz de programar soluciones a problemas de ingeniería: Diseñar soluciones algorítmicas eficientes a un problema computacional dado, implementarlas en forma de Programa robusto, estructurado y mantenible, y comprobar la validez de la solución.
  • CE3 - Analizar fenómenos complejos mediante la probabilidad y estadística, y plantear modelos de estos tipos en situaciones concretas. Formular y resolver problemas de optimización matemática.
  • CE7 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los datos.
  • CE8 - Capacidad de elegir y emplear técnicas de modelización estadística y análisis de datos, evaluando la calidad de los modelos, validándolos e interpretándolos.

Competencias Transversales

Transversales

  • CT4 [Avaluable] - Trabajo en equipo. Ser capaz de trabajar como miembro de un equipo interdisciplinar, ya sea como un miembro más o realizando tareas de dirección, con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.

Básicas

  • CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  • CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
  • CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Concebir sistemas computacionales que integren datos de procedencias y formas muy diversas, creen con ellos modelos matemáticos, razonen sobre dichos modelos y actúen en consecuencia, aprendiendo de la experiencia.
  • CG2 - Elegir y aplicar los métodos y técnicas más adecuados a un problema definido por datos que representen un reto por su volumen, velocidad, variedad o heterogeneidad, incluidos métodos informáticos, matemáticos, estadísticos y de procesado de la señal.
  • CG4 - Identificar oportunidades para aplicaciones innovadoras orientadas a datos en entornos tecnológicos en continua evolución.

Objetivos

  1. Interpretar los conceptos básicos de la Ingeniería del Software, especialmente en relación al uso y explotación de datos
    Competencias relacionadas: CG1, CB2,
  2. Aplicar y analizar conceptos y métodos referentes al uso de datos provenientes del proceso de desarrollo en la gestión de la calidad del sistema software
    Competencias relacionadas: CE1, CE2, CE3, CE7, CT4, CG1, CG4, CB2, CB5,
  3. Aplicar y analizar buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático
    Competencias relacionadas: CE1, CE2, CT4, CG1, CG4, CB2, CB5,
  4. Describir conceptos y métodos referentes al uso de datos obtenidos durante la utilización del sistema (p.ej., un sistema basado en inteligencia artificial), para planificación de nuevas versiones evolutivas o para la adaptación autónoma de los sistemas en tiempo de ejecución en respuesta a cambios.
    Competencias relacionadas: CE1, CE2, CE7, CE8, CG1, CG2, CB2, CB5,
  5. Conocer los riesgos de privacidad asociados a la navegación y en la publicación de datos. Profundizar en las diferentes métricas de privacidad y su aplicación en diferentes escenarios.
    Competencias relacionadas: CE1, CE3, CE8, CT4, CG2, CB3, CB5,
  6. Conocer los principales algoritmos de anonimización de bases de datos estadísticos.
    Competencias relacionadas: CE1, CE2, CE3, CE8, CT4, CG1, CG2, CG4, CB2, CB3, CB5,
  7. Evaluar el compromiso entre privacidad y usabilidad de los datos.
    Competencias relacionadas: CE1, CE3, CE8, CT4, CG1, CG4, CB2, CB3, CB5,
  8. Conocer los riesgos de privacidad en las comunicaciones y los sistemas de comunicación anónimas.
    Competencias relacionadas: CE1, CE3, CE8, CG1, CG4, CB2, CB5,

Contenidos

  1. Introducción a la Ingeniería del Software
    Primero, se presenta el concepto tradicional de ingeniería del software. Fases. Metodologías: en cascada, ágil; híbrida. Entorno de desarrollo: herramientas.

    Después, se analiza el impacto de la disponibilidad de datos sobre este concepto tradicional. Se muestra el ciclo de vida de software resultante al considerar datos.
  2. Gestión de la calidad del software y de su proceso de desarrollo
    Un problema clásico en el desarrollo de software es asegurar unos niveles básicos de calidad, tanto en referencia al sistema mismo (mantenibilidad, fiabilidad,...) como en el proceso de producción (productividad del equipo, gestión de recursos,...). El análisis de datos provenientes de los repositorios de software usados en el proceso de producción (p.e., repositorios de código, herramientas de gestión de problemas) permite descubrir de forma más rápida y fiable estos problemas y aplicar estrategias de mitigación.
  3. Buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático
    La complejidad y diversidad de los proyectos de ciencia de datos y los sistemas basados en aprendizaje automático requieren técnicas de ingeniería para garantizar que se construyan de una manera sólida y preparada para el futuro. En este capítulo abordamos buenas prácticas de ingeniería de software para proyectos de ciencia de datos, y software con componentes de aprendizaje automático.
  4. Planificación de versiones software y sistemas auto-adaptativos
    Un problema clave en el desarrollo del software es la evolución del sistema en respuesta a nuevas necesidades. El análisis de los datos obtenidos durante la utilización del sistema por parte de sus usuarios, incluyendo sus comentarios explícitos, posibilita el descubrimiento de sus necesidades reales, que a veces ni ellos mismos conocen completamente. En este tema se describe la problemática y se revisan algunas técnicas básicas. Cada vez nos encontramos más sistemas software que necesitan ser conscientes de su contexto para dar un servicio correcto. Esta restricción exige que monitoricen datos del contexto continuamente, descubran cambios significativos y reaccionen en tiempo de ejecución (eventualmente, casi en tiempo real). En este tema se describe la problemática y se revisan algunas técnicas básicas
  5. Introducción a la privacidad y seguridad de los datos
    Motivación. Definición de conceptos básicos. Atacantes y partes de confianza. Métricas de privacidad.
  6. Algoritmos de anonimización de datos
    Control de revelación estadística. Medida del riesgo de revelación. Algoritmos de microagregació de datos. Medida del compromiso privacidad-utilidad. Casos de estudio.
  7. Privacidad en sistemas de información personalizados
    Perfiles de usuario: medida del riesgo de privacidad. Tecnologías de privacidad.
  8. Seguridad y privacidad en las comunicaciones
    Algoritmos criptográficos. Autenticación y gestión de claves. Sistemas de comunicación anónimos.

Actividades

Actividad Acto evaluativo


Estudio de conceptos introductorios de la Ingeniería del Software dirigida por los datos


Objetivos: 1
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Estudio de métodos dirigidos por datos para la gestión de la calidad del software y de su proceso de desarrollo


Objetivos: 2
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Estudio de buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático


Objetivos: 3
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Estudio de métodos basados en los datos para la evolución del software y la adaptación autónoma de sistemas en tiempo de ejecución


Objetivos: 4
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Desarrollo práctico de un caso de estudio de métodos basados en datos en el contexto de la Ingeniería del Software

El estudiante desarrollará progresivamente una práctica que permita ejercitar los conceptos básicos introducidos en la parte de teoría. Se desarrollará en equipos de 3 (excepcionalmente, un equipo de 4 estudiantes si el grupo tiene dimensión impar). El software resultante, debidamente documentado, se subirá a un repositorio de código. El equipo presentará un informe, escrito en inglés, resumiendo los aspectos principales de la práctica, por ejemplo, el proceso de construcción de un componente IA de un sistema basado en IA, y una evaluación de la precisión de los modelos y algoritmos empleados.
Objetivos: 3 2
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
13h
Aprendizaje dirigido
0h
Aprendizaje autónomo
18h

Primer examen parcial: parte de Ingeniería del Software (PARC1)

Evaluación de la primera parte de la asignatura
Objetivos: 1 3 2 4
Semana: 7
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5.5h

Examen Final (EXF)

Este examen evalúa las dos partes de la asignatura. Es obligado para los estudiantes que hayan suspendido alguna de las dos pruebas parciales. El resto de estudiantes también se puede presentar en caso de querer mejorar nota
Objetivos: 1 5 3 2 4 6 7 8
Semana: 15 (Fuera de horario lectivo)
Tipo: examen final
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
3h
Aprendizaje autónomo
0h

Segundo examen parcial: parte de Privacidad y Seguridad de datos (PARC2)

Evaluación de la segunda parte de la asignatura
Objetivos: 5 6 7 8
Semana: 14
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5.5h

Estudio de conceptos introductorios de privacidad y seguridad de los datos


Objetivos: 5 6 7 8
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Desarrollo práctico de algoritmos de anonimización de datos


Objetivos: 6 7
Teoría
0h
Problemas
0h
Laboratorio
15h
Aprendizaje dirigido
0h
Aprendizaje autónomo
21h

Estudio de riesgos y tecnologías de privacidad para sistemas de información personalizados


Objetivos: 5 7
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Estudio de mecanismos y tecnologías para seguridad y privacidad de las comunicaciones



Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Metodología docente

Los contenidos teóricos de la asignatura se imparten en las clases de teoría. Estas clases se complementan con ejemplos prácticos y problemas que los estudiantes deben resolver en las horas de Aprendizaje Autónomo.

En las sesiones de laboratorio se consolidan los conocimientos adquiridos en las clases de teoría mediante la resolución de problemas y desarrollo de prácticas relacionados con los contenidos teóricos. Durante las clases de laboratorio, el profesor irá introduciendo nuevas técnicas y dejará una parte importante de la clase para que los estudiantes trabajen en los ejercicios propuestos.

Método de evaluación

La evaluación se estructura en función de las dos partes de la asignatura: ingeniería del software (PART1) y privacidad de los datos (PART2).

Por la primera parte, la nota se calcula ponderando la nota de un examen teórico (peso 40%) con la nota de las prácticas de esta parte de la asignatura (peso 60%)
PART1 = 40% PARC1 + 60% LABO1
- PARC1: Examen al final del primer bloque de la asignatura
- LABO1: Entrega de práctica al final del primer bloque de la asignatura

Por la segunda parte, la nota se calcula ponderando la nota de un examen teórico (peso 50%) con la nota de las prácticas de esta parte de la asignatura (peso 50%)
PART2 = 50% PARC2 + 50% LABO2
- PARC2: Examen al final del segundo bloque de la asignatura
- LABO2: Entrega de prácticas del segundo bloque de la asignatura

La nota final de la asignatura, NOTA-FIN, se calcula como la media aritmética de las dos partes de la asignatura:
NOTA-FIN = 50% PART1 + 50% PART2


En caso de no superar la asignatura en la evaluación por parciales, hay una evaluación por un examen final, donde los parciales liberan materia si están aprobados.

Bibliografía

Básica:

Complementaria:

Capacidades previas

Las dadas por las asignaturas de los cuatrimestres anteriores del grado