Información general


Tipo de asignatura: obligatoria

Coordinador: Ana Beatriz Pérez Zapata

trimestre: Primer trimestre

Créditos: 6

Profesorado: 

José Roble Alcobé
Alfredo Rueda Unsain 

Idiomas de impartición


  • Inglés

Competencias


competencias básicas
  • B2_Que los estudiantes sepan aplicar sus conocimientos en su trabajo o vocación de una forma profesional y tengan las competencias que demuestran mediante la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio

     

  • B4_Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tan especializado como no especializado

     

  • B5_Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

     

Competencias específicas
  • EIS1_Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y que se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la ingeniería del software

     

  • EIS2_Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto, mediante la búsqueda de compromisos aceptables, dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones

     

  • EIS3_Capacidad para dar solución a problemas de integración en función de las estrategias, estándares y tecnología disponibles

     

  • EIS4_Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales

     

  • EIS5_Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que se puedan presentar

     

  • EIS6_Capacidad para diseñar soluciones apropiadas en uno o más dominios de aplicación, utilizando métodos de la ingeniería del software que integren aspectos éticos, sociales, legales y económicos

     

Descripción


Esta es una asignatura de laboratorio y por lo tanto es eminentemente práctica. El objetivo final es construir una aplicación web completa en implementaremos un producto mínimo viable que decidiremos durante los primeros días de curso. Las características que deberá tener la aplicación serán las siguientes:

  • El modelo del dominio debe tener un mínimo de cuatro clases
  • Se debe conectar a una base de datos remota
  • Implementa seguridad: debe validar los usuarios
  • Sigue los patrones de software vistos en las asignaturas de programación y de ingeniería del software
  • Separa la capa de presentación de la capa de dominio con el patrón vista-controlador
  • Se conecta a un servicio externo con el protocolo HTTP

Estudiaremos las tecnologías y protocolos base sobre las que se construyen las aplicaciones web para seguidamente introducir el framework llamado Spring. Hemos elegido Spring por muchas razones: es opensouce, es Java, es muy usado en el mundo profesional, sigue y fomenta buenas prácticas de programación, hay una comunidad muy grande y activa detrás. 

En la asignatura se dará mucha importancia al proceso de desarrollo de la aplicación. Se tendrá que desarrollar en grupos de tres estudiantes y se tendrá que repartir el trabajo de forma que todos los integrantes desarrollen entera alguna función, es decir, que trabajen con la BBDD, la aplicación propiamente dicha y el servicio web/REST . 

Contenidos


Tema 1. Aplicaciones internet

  1. Comunicación cliente y servidor: protocolo HTTP
  2. JEE, Servlets y JSP
  3. Contexto de sesión y de aplicación
  4. Transferencia de objetos serializados con XML y JSON

Tema 2. Servidor: El framework Spring

  1. Componentes de Spring
  2. Inyección de dependencias
  3. Programación orientada a aspectos (AOP)
  4. El patrón Modelo Vista Controlador (MVC)
  5. servicios REST
  6. Formularios y paso de información
  7. Excepciones y control de errores
  8. Seguridad
  9. Conexión a BBDD con JDBC
  10. Conexión a servicios externos

Tema 3. Cloud: 

  1. Los servicios cloud
  2. "Deployment" de aplicaciones en el cloud
  3. Cloud y contenedores

Sistema de evaluación


Evaluación

  • PRJ: proyecto. Ponderación de la nota final 70% si la nota de PR_P >= 4
  • PR_P: prueba práctica. Ponderación de la nota final 30% (nota mínima para aplicar las ponderaciones 4)

Cálculo nota final (NF):

  • Si PR_P> = 4 : NF = PON = PR_P 0,30 + PRJ 0,70
  • Si PR_P <4 : NF = min (PR_P, PON)

recuperación:

  • Sólo se podrá recuperar la prueba práctica PR_P. La nota final se calculará tal como se ha establecido anteriormente con las notas de la recuperación de la prueba.

normativa:

  • Siguiendo la normativa de la UPF, si se detecta que una práctica o una prueba ha sido copiada la nota de aquella prueba será de 0 (cero) con independencia de su papel (receptor o el emisor) y sin que ello excluya la posible aplicación de otras sanciones de acuerdo con el Régimen Disciplinario vigente.
  • Para que el estudiante tenga derecho a la recuperación se deberá haber presentado a PR_R

Bibliografía


Básico

Walls, Craig (2022), "Spring in Action". (6th edition) Manning Publications. 

Página principal Spring. https://spring.io/

Spring framework documentation: https://docs.spring.io/spring/docs/current/spring-framework-reference/index.html

Complementario

Deinum, Marten; Rubio, Daniel; Long, Josh and Mak, Gary (2014) "Spring Recipes, A problem-solution approach", Third Edition. Apress

 Stephen Ludin, Javier Garza, "Learning HTTP / 2: A Practical Guide for Beginners" 1st Edition. O'Reilly June 2017. ISBN-10: 1491962445