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

Curso 2022/2023
Fecha de aprobación por la Comisión Académica 12/07/2022

Máster

Máster Universitario en Ingeniería Informática

Módulo

Tecnologías Informáticas 2

Rama

Ingeniería y Arquitectura

Centro en el que se imparte la docencia

E.T.S. de Ingenierías Informática y de Telecomunicación

Centro Responsable del título

International School for Postgraduate Studies

Semestre

Segundo

Créditos

4

Tipo

Optativa

Tipo de enseñanza

Presencial

Profesorado

  • José María Guirao Miras

Tutorías

José María Guirao Miras

Email
  • Primer semestre
    • Lunes 10:00 a 13:00 (Etsiit 3ª P Despacho 28)
    • Miercoles 10:00 a 13:00 (Etsiit 3ª P Despacho 28)
    • Miércoles 10:00 a 13:00 (Etsiit 3ª P Despacho 28)
  • Segundo semestre
    • Lunes 10:00 a 13:00 (Etsiit 3ª P Despacho 28)
    • Miércoles 10:00 a 13:00 (Etsiit 3ª P Despacho 28)
    • Miercoles 10:00 a 13:00 (Etsiit 3ª P Despacho 28)
  • Tutorías 1º semestre
    • Martes 11:30 a 13:00 (Etsiit 3ª P Despacho 28)
  • Tutorías 2º semestre
    • Martes 9:30 a 11:00 (Etsiit 3ª P Despacho 28)
    • Miércoles 9:30 a 11:00 (Etsiit 3ª P 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
* Procesos de negocio.
* Modelado de la información y los datos: gestión de contenidos, web semática, big data.
- Tecnologías de desarrollo para WEB
* Marcos de desarrollo de software (Software frameworks)
* Lenguajes de descripción de interfaces (Interface description languages)
* Servicios Web (Web services)
* 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.

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
  • 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

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