Guía docente de Sistemas Software Basados en Web (M50/56/2/16)

Curso 2023/2024
Fecha de aprobación por la Comisión Académica 28/06/2023

Máster

Máster Universitario en Ingeniería Informática

Módulo

Tecnologías Informáticas 2

Rama

Ingeniería y Arquitectura

Centro Responsable del título

Escuela Internacional de Posgrado

Semestre

Segundo

Créditos

4

Tipo

Optativa

Tipo de enseñanza

Presencial

Profesorado

  • José María Guirao Miras

Horario de Tutorías

José María Guirao Miras

Email
  • Tutorías 1º semestre
    • Lunes 9:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
    • Martes 9:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
  • Tutorías 2º semestre
    • Lunes 9:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
    • Martes 9:31 a 12:31 (Etsiit 3ª Planta Despacho 28)

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

  • Métodos de desarrollo para WEB: Ingeniería Web
  • Marcos de desarrollo de software (Software frameworks)
  • Tecnologías de desarrollo para WEB
  • Servicios Web (Web services)
  • Lenguajes de descripción de interfaces (Interface description languages)
  • Integración con la Computación en la nube (Cloud computing): software como servicio ("Software as a service")

Prerrequisitos y/o Recomendaciones

Se recomienda a los alumnos haber cursado alguna asignatura de desarrollo web. Se presuponen conocimientos de HTML, CSS, python y javascript.

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.

Competencias Generales

  • G01. Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la ingeniería informática. 
  • G03. Capacidad para dirigir, planificar y supervisar equipos multidisciplinares. 
  • G08. Capacidad para comprender y aplicar la responsabilidad ética, la legislación y la deontología profesional de la actividad de la profesión de Ingeniero en Informática. 
  • G09. Capacidad para aplicar los principios de la economía y de la gestión de recursos humanos y proyectos, así como la legislación, regulación y normalización de la informática. 

Competencias Específicas

  • CE04. Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos. 
  • CE05. Capacidad de comprender y saber aplicar el funcionamiento y organización de Internet, las tecnologías y protocolos de redes de nueva generación, los modelos de componentes, software intermediario y servicios. 
  • CE09. Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida. 
  • CE11. Capacidad de diseñar y desarrollar sistemas, aplicaciones y servicios informáticos en sistemas empotrados y ubicuos. 

Competencias Transversales

  • CT01. Capacidad de análisis y síntesis: Encontrar, analizar, criticar (razonamiento crítico), relacionar, estructurar y sintetizar información proveniente de diversas fuentes, así como integrar ideas y conocimientos 
  • CT02. Capacidad de organización y planificación así como capacidad de gestión de la información. 
  • CT05. Capacidad de trabajo en equipo. 
  • CT08. Capacidad para proyectar los conocimientos, habilidades y destrezas adquiridos para promover una sociedad basada en los valores de la libertad, la justicia, la igualdad y el pluralismo 

Resultados de aprendizaje (Objetivos)

Conocer y aplicar métodos de desarrollo de software para la realización de sistemas software basados en Web.
Comprender, conocer y aplicar tecnologías concretas de desarrollo para sistemas software basados en Web.
Conocer los principales frameworks de desarrollo para web y diseñar software basado en ellos.
Conocer y aplicar lenguajes de descripción de interfaces y servicios web.
Conocer las características específicas del desarrollo web distribuido basado en la nube y en la utilización de servicios y diseñar sistemas software basados en ellos.

Programa de contenidos Teóricos y Prácticos

Teórico

  • Tema 1. Ingeniería Web: Características de un aplicación web, tecnologías implicadas. Protocolos e interfaces.
  • Tema 2. Back-end, Componentes: plantillas, formularios, middleware, autentificación , frameworks MVC
  • Tema 3. Persistencia: ORMs con Bases de Datos SQL y No-SQL
  • Tema 4. Servicios REST. Serialización de datos
  • Tema 5. Front-end: Aplicaciones single-page. Frameworks de Front End
  • Tema 6. Despliegue, integración en la nube, internacionalización y pruebas.

Práctico

Práctica 0. Preparación del entorno de desarrollo con docker-compose y Makefile

Práctica 1. Uso de frameworks para el back-end, plantillas

Práctica 2. Uso de Bases de Datos no-SQL con ORMs

Práctica 3: Frameworks: Django, autentificación de usuarios, autorización

Práctica 4: Front-end: Mejorando la UX con jQuery y Ajax

Práctica 5: Añadiendo servicios REST para el CRUD con Django Rest Framework

Práctica 6: Single Page App con React

Práctica 7: Despliegue en contenedores

 

Bibliografía

Bibliografía fundamental

  • Beginning Django: Web Application Development and Deployment with Python. Daniel Rubio. Apress. 2017

Bibliografía complementaria

  • Learning React: Functional Web Development with React and Redux, Alex Banks. O'Reilly. 2017

Enlaces recomendados

https://github.com/kamranahmedse/developer-roadmap

Metodología docente

  • MD01 Clases Teóricas-Expositivas 
  • MD03 Resolución de Casos Prácticos 
  • MD04 Aprendizaje basado en Proyectos 
  • MD05 Prácticas en Laboratorio 
  • MD08 Debates 
  • MD10 Exposición de Trabajos Tutelados 
  • MD16 Tutorías Académicas 

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

Evaluación Ordinaria

La asignatura tiene un carácter eminentemente práctico. Por tanto, la evaluación se llevará a cabo mediante una media ponderada entre las prácticas que se tendrán que entregar a lo largo del semestre, ninguna de las cuales superará el 70% del total de la nota.

Evaluación Extraordinaria

1.- Examen teórico sobre los contenidos de la asignatura,  50% de la nota final.

2.- Examen práctico, con algún ejercicio similar a los efectuados durante el curso, 50% de la nota final.

Evaluación única final

1.- Examen teórico sobre los contenidos de la asignatura, 50% de la nota fina y

2.- Examen práctico, con algún ejercicio similar a los efectuados durante el curso, 50% de la nota final.

Información adicional