Guía docente de Desarrollo de Software para Sistemas Empotrados y Dispositivos del Internet de las Cosas (M52/56/4/16)

Curso 2023/2024
Fecha de aprobación por la Comisión Académica 26/07/2023

Máster

Máster Universitario en Desarrollo del Software

Módulo

Entornos Inteligentes y Dispositivos Iot

Rama

Ingeniería y Arquitectura

Centro Responsable del título

Escuela Internacional de Posgrado

Semestre

Segundo

Créditos

3

Tipo

Optativa

Tipo de enseñanza

Enseñanza Virtual

Profesorado

  • Juan Antonio Holgado Terriza
  • José Miguel Gutierrez Guerrero

Horario de Tutorías

Juan Antonio Holgado Terriza

Email
  • Primer semestre
    • Lunes 10:30 a 13:30 (Etsiit Despacho 13 3ª Pla)
    • Miércoles 10:30 a 13:30 (Etsiit Despacho 13 3ª Pla)
  • Segundo semestre
    • Lunes 13:30 a 14:30 (Etsiit Despacho 13 3ª Pla)
    • Viernes 13:30 a 14:30 (Etsiit Despacho 13 3ª Pla)

José Miguel Gutierrez Guerrero

Email

Breve descripción de contenidos (Según memoria de verificación del Máster)

  • Sistemas empotrados. Características principales y requerimientos. Hardware y software de un sistema empotrado.
  • Modelos, técnicas y herramientas para el diseño, implementación y despliegue de aplicaciones en sistemas empotrados. Interacción con el entorno.
  • Entornos de ejecución: núcleos y sistemas operativos. Plataformas, frameworks y entornos de desarrollo.
  • Tiempo real. Modelos y técnicas de programación. Gestión y control del tiempo. Control de recursos.
  • Dispositivos IoT: El nodo de adquisición de datos en IoT. Características y requerimientos. Conectividad: buses y redes de comunicaciones.
  • Diseño, programación y despliegue del nodo de adquisición de datos. Campos de aplicación: sensores inteligentes, dispositivos corporales, sistemas ciberfísicos, dispositivos del hogar inteligente…
  • Integración del dispositivo IoT en ecosistemas IoT. Plataformas y pasarelas IoT.
  • Nodos inteligentes en IoT en arquitecturas Edge: Desarrollo y Evaluación.

---------

  • Embedded systems. Main characteristics and requirements. Hardware and software of an embedded system.
  • Models, techniques and tools for the design, implementation and deployment of applications in embedded systems. Interaction with the environment.
  • Execution environments: kernels and operating systems. Platforms, frameworks and development environments.
  • Real time. Programming models and techniques. Time management and control. Resource control.
  • IoT devices: The IoT data acquisition node. Characteristics and requirements. Connectivity: buses and communication networks.
  • Design, programming and deployment of the data acquisition node. Fields of application: smart sensors, body devices, cyber-physical systems, smart home devices...
  • IoT device integration in IoT ecosystems. IoT platforms and gateways.
  • Smart IoT nodes in Edge architectures: Development and Evaluation.

Prerrequisitos y/o Recomendaciones

Ninguno

Competencias

Competencias Básicas

  • CB6. Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
  • CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
  • CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
  • CB9. Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
  • CB10. Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.

Resultados de aprendizaje (Objetivos)

Conocimientos o contenidos

C02. Identifica y comprende los conceptos clave y las principales características de los sistemas software, en cuanto a sus requerimientos, diseño o implementación, pruebas, despliegue y explotación.

C11. Comprende los principios y fundamentos de diseño de software seguro, identificando las vulnerabilidades y amenazas que pueden afectar a cualquier tipo de sistema software.

C12. Conoce los fundamentos y beneficios que tiene el diseño, implementación y despliegue de servicios, microservicios y contenedores en el desarrollo de sistemas, plataformas y herramientas software.

 

Competencias

COM4. Evaluar los diferentes aspectos e implicaciones (sociales, legales, seguridad, éticos, ecológicos, etc) que se derivan del uso de los dispositivos y plataformas IoT, interfaces hombre-máquina, entornos inteligentes e inmersivos y la transformación digital en el desarrollo de un sistema software.

COM5. Identificar y valorar las propiedades del software de usabilidad, accesibilidad, seguridad, confiabilidad, rendimiento y ética informática, entre otros y analizar como afecta a la calidad de un sistema software.

 

Habilidades o destrezas

HD03. Aplica los modelos, métodos, técnicas, paradigmas, algoritmos, lenguajes y herramientas más apropiados para la creación, desarrollo o mantenimiento de sistemas software que cumplan con criterios de calidad, usabilidad, robustez, fiabilidad, seguridad, facilidad de implementación y despliegue en las plataformas más actuales.

HD07. Sabe utilizar y construir herramientas para la simulación o la recreación de entornos, dispositivos o sistemas así como entornos industriales u organizativos mediante el uso o no de gemelos digitales que se pueden adaptar y/o integrar en otras plataformas y sistemas software.

HD09. Sabe diseñar, desarrollar y desplegar el software de dispositivos IoT, controladores, interfaces hombre-maquina y cualquier otro sistema empotrado para su integración en sistemas de internet de las cosas, entornos inmersivos, y en cualquier otro entorno industrial u organizativo.

HD10. Utiliza herramientas y técnicas avanzadas de tratamiento de datos para el análisis de los datos que se obtiene eficientemente de los sistemas de adquisición de datos con objeto de extraer conocimiento aplicando técnicas estadísticas y de aprendizaje automático.

Programa de contenidos Teóricos y Prácticos

Teórico

Bloque 1. Sistemas empotrados. Fundamentos.

  • Sistemas empotrados. Características principales y requerimientos. Tipos de sistemas empotrados. Hardware y software de un sistema empotrado.
  • Modelos, técnicas y herramientas para el diseño, implementación y despliegue de aplicaciones en sistemas empotrados. Interacción con el entorno; gestión de E/S. Gestión de la memoria.
  • Entornos de ejecución: núcleos y sistemas operativos. Plataformas, frameworks y entornos de desarrollo. Técnicas de depuración.

Bloque 2. Tiempo Real

  • Modelos y técnicas de programación en sistemas empotrados. Gestión y control del tiempo. Relojes, Retardos y Temporizadores.
  • Planificación de sistemas de tiempo real: ejecutivos cíclicos y algoritmos de planificación. Control de recursos.

Bloque 3: Dispositivo IoT.

  • El nodo de adquisición de datos en IoT. Características y requerimientos. Conectividad: buses y redes de comunicaciones.
  • Diseño, programación y despliegue del nodo de adquisición de datos.
  • Integración del dispositivo IoT en ecosistemas IoT. Plataformas y pasarelas IoT.
  • Nodos inteligentes en IoT en arquitecturas Edge: Desarrollo y Evaluación. AIoT.

Bloque 4: Aplicaciones actuales y nuevas vías de investigación.

  • Dispositivos: sensores inteligentes, dispositivos corporales, sistemas ciberfísicos, dispositivos del hogar inteligente…
  • Aplicaciones: Redes de sensores, automatización industrial, inteligencia ambiental, instrumentación virtual, control distribuido, mecatrónica, …

---------

Block 1. Embedded systems. Fundamentals.

  • Embedded systems. Main characteristics and requirements. Types of embedded systems. Hardware and software of an embedded system.
  • Models, techniques and tools for the design, implementation and deployment of applications in embedded systems. Interaction with the environment; I/O management. Memory management.
  • Execution environments: kernels and operating systems. Platforms, frameworks and development environments. Debugging techniques.

Block 2. Real Time for Embedded Systems.

  • Programming models and techniques in embedded systems. Time management and control. Clocks, Delays and Timers.
  • Real-time system scheduling: cyclic executives and scheduling algorithms. Resource control.

Block 3: IoT device.

  • The data acquisition node in IoT. Characteristics and requirements. Connectivity: buses and communication networks.
  • Design, programming and deployment of the data acquisition node.
  • IoT device integration in IoT ecosystems. IoT platforms and gateways.
  • Smart IoT nodes in Edge architectures: Development and Evaluation.

Block 4: Current applications and new research lines.

  • Devices: smart sensors, body-worn devices, cyber-physical systems, smart home devices....
  • Applications: Sensor networks, industrial automation, ambient intelligence, virtual instrumentation, distributed control, mechatronics, ...

Práctico

Se realizarán distintos tipos de ejercicios prácticos para que el estudiante conozca con detalle los fundamentos y buenas prácticas del desarrollo del software en sistemas empotrados en general y en dispositivos IoT en particular que deben integrarse en sistemas de internet de las cosas.

Como resultado el estudiante sabrá desarrollar software en sistemas empotrados de bajo recurso con microcontroladores (e.g., Arduino), así como sistemas empotrados de alto rendimiento con microprocesadores (e.g, Raspberry PI).

---------

The student must carry out different types of practical exercises in order to know in detail the fundamentals and best practices of software development in embedded systems in general and IoT devices in particular that must be integrated into Internet of Things systems.
 

As a result the student will know how to develop software in low resource embedded systems with microcontrollers (e.g., Arduino) as well as high performance embedded systems with microprocessors (e.g., Raspberry PI).

Bibliografía

Bibliografía fundamental

  • Sistemas de Tiempo Real y Lenguajes de Programación (tercera edición). Alan Burns y Andy Wellings. Addison-Wesley (2002).
  • Embedded C. Michael Pont. Addison-Wesley (2002).
  • An Embedded Software Primer. David Simon. Addison-Wesley (2001)
  • Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition. Michael Barr. O’Reilly (2006).
  • Computers As Components: Principles of Embedded Computing Systems Design. Third Edition. Wayne Wolf. Morgan Kaufman Publisher, (2013)
  • Operating System Foundations with Linux and the Raspberry PI. Wim Vanderbauwhede and Jeremy Singer. Arm Education Media (2019)
  • Embedded Software Design: A Practical Approach to Architecture, Processes, and Coding Techniques. Jacob Beningo. Apress (2022)
  • Klaus Elk. Embedded Software for the IoT, Delg Press (2018)
  • Marilyn Wolf. Embedded System Interfacing: Design for the Internet-of-Things (IoT) and Cyber-Physical Systems (CPS). Morgan Kaufmann (2019)

Bibliografía complementaria

  • Real-Time Concepts for Embedded Systems. Qing Li. CMP (2003).
  • Software Engineering for Real-Time Systems. Jim Cooling. Packt Press, (2019).
  • Hard Real-Time Computing Systems (Third Edition). Giorgio Buttazzo, G. Springer, (2013).
  • Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers. Tammy Noergaard. Newnes, (2005)
  • Perry Lea. IoT and Edge Computing for Architects: Implementing edge and IoT systems from sensors to clouds with communication systems, analytics, and security. Packt Press (2020).

Enlaces recomendados

Como apoyo a la docencia se usará la Plataforma de Recursos de Apoyo a la Docencia PRADO2 de la Universidad de Granada: https://prado.ugr.es

Metodología docente

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final.)

Evaluación Ordinaria

El artículo 18 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que la convocatoria ordinaria estará basada preferentemente en la evaluación continua del estudiante, excepto para quienes se les haya reconocido el derecho de evaluación única final.

Se realizará una evaluación continua del trabajo del estudiante, valorando tanto los conocimientos adquiridos como las competencias alcanzadas.

 

Modalidad presencial:

Para la evaluación en modalidad presencial se tendrán en cuenta los siguientes sistemas de evaluación, indicándose entre paréntesis el rango del porcentaje con respecto a la calificación final del estudiante.

SE1. Actividades realizadas durante el desarrollo del curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (60%).

SE2. Actividades realizadas después de finalizar el curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (20%).

SE5. Asistencia y participación activa (20%)

Se pedirá la entrega en tiempo y forma de las actividades propuestas a través de la plataforma PRADO.

 

Modalidad virtual:

Para la evaluación en modalidad virtual se tendrán en cuenta los siguientes sistemas de evaluación, indicándose entre paréntesis el rango del porcentaje con respecto a la calificación final del estudiante.

SE1. Actividades realizadas durante el desarrollo del curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (60%).

SE2. Actividades realizadas después de finalizar el curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (20%).

SE6. Participación activa en foros de debate o de recogida de información (20%).

Se pedirá la entrega en tiempo y forma de las actividades propuestas a través de la plataforma PRADO.

Evaluación Extraordinaria

El artículo 19 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que los estudiantes que no hayan superado la asignatura en la convocatoria ordinaria dispondrán de una convocatoria extraordinaria. A ella podrán concurrir todos los estudiantes, con independencia de haber seguido o no un proceso de evaluación continua. De esta forma, el estudiante que no haya realizado la evaluación continua tendrá la posibilidad de obtener el 100% de la calificación final.

La evaluación en tal caso consistirá en la realización de una prueba y/o trabajo, y/o las actividades propuestas en la evaluación continua.

Evaluación única final

El artículo 8 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que podrán acogerse a la evaluación única final, el estudiante que no pueda cumplir con el método de evaluación continua por causas justificadas.

Para acogerse a la evaluación única final, el estudiante en las dos primeras semanas de impartición de la asignatura o en las dos semanas siguientes a su matriculación si ésta se ha producido con posterioridad al inicio de las clases o por causas sobrevenidas. Lo solicitará, a través del procedimiento electrónico, a la Coordinación del Máster, quien dará traslado al profesorado correspondiente, alegando y acreditando las razones que le asisten para no poder seguir el sistema de evaluación continua.

La evaluación en tal caso consistirá en la realización de una prueba y/o trabajo, y/o las actividades propuestas en la evaluación continua.

Información adicional

Siguiendo las indicaciones recogidas en el artículo 15 de la Normativa de Evaluación y de Calificación de la Universidad de Granada sobre la originalidad de los trabajos presentados por los alumnos.

1. La Universidad de Granada fomentará el respeto a la propiedad intelectual y transmitirá a los estudiantes que el plagio es una práctica contraria a los principios que rigen la formación universitaria. Para ello procederá a reconocer la autoría de los trabajos y su protección de acuerdo con la propiedad intelectual según establezca la legislación vigente.

2. El plagio, entendido como la presentación de un trabajo u obra hecho por otra persona como propio o la copia de textos sin citar su procedencia y dándolos como de elaboración propia, conllevará automáticamente la calificación numérica de cero en la asignatura en la que se hubiera detectado, independientemente del resto de las calificaciones que el estudiante hubiera obtenido. Esta consecuencia debe entenderse sin perjuicio de las responsabilidades disciplinarias en las que pudieran incurrir los estudiantes que plagien.

3. Los trabajos y materiales entregados por parte de los estudiantes tendrán que ir firmados con una declaración explicita en la que se asume la originalidad del trabajo, entendida en el sentido de que no ha utilizado fuentes sin citarlas debidamente.