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

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
No hay tutorías asignadas para el curso académico.

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.

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