Que estás buscando?
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
B3_Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio), para emitir juicios que incluyan una reflexión sobre temas relevantes de carácter social, científico o ético
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
EFB6_Conocimiento adecuado del concepto de empresa, marco institucional y jurídico de la empresa. Organización y gestión de empresas
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
ESI1_Capacidad para integrar soluciones de Tecnologías de la Información y de las Comunicaciones y procesos empresariales para satisfacer las necesidades de información de las organizaciones, permitiendo alcanzar sus objetivos de forma efectiva y eficiente, consiguiendo así ventajas competitivas
ESI2_Capacidad para determinar los requisitos de los sistemas de información y comunicación de una organización, atendiendo a aspectos de seguridad y cumplimiento de la normativa y legislación vigente
ESI3_Capacidad para participar activamente en la especificación, diseño, implementación y mantenimiento de los sistemas de información y comunicación
ES14_Capacidad para comprender y aplicar los principios y prácticas de las organizaciones, de modo que puedan ejercer como enlace entre las comunidades técnicas y de gestión de una organización y participar activamente en la formación de los usuarios
ESI5_Capacidad para comprender y aplicar los principios de la evaluación de riesgos y aplicarlos correctamente en la elaboración y ejecución de planes de actuación
ES16_Capacidad para comprender y aplicar los principios y técnicas de gestión de la calidad y de la innovación tecnológica en las organizaciones
T1_Que los estudiantes conozcan un tercer idioma, que será preferentemente el inglés, con un nivel adecuado de forma oral y por escrito, de acuerdo con las necesidades que tendrán las graduadas y graduados en cada titulación
T2_Que los estudiantes tengan capacidad para trabajar como miembros de un equipo interidisciplinar ya sea como un miembros más, o realizando tareas de dirección con el fin de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles
En esta asignatura se verá una visión global de las tres arquitecturas de los sistemas de información más utilizadas hoy en día en la industria. En primer lugar la arquitectura monolítica donde todas las funcionalidades están en un solo módulo, en segundo lugar veremos a la familia de las arquitecturas "clean" o hexagonales que separan las funcionalidades en módulos diferentes y buscan aislarlas de los "detalles" del aplicación, y en tercer lugar exploraremos las arquitecturas basadas en microservicios que buscan separar las funcionalidades en aplicaciones independientes pero interconectadas. Veremos las ventajas e inconvenientes de cada una de ellas. Las prácticas visarán sobre las arquitecturas hexagonales y las basadas en microservicios.
Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con la Covidien-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.
Esta asignatura contribuye a siguientes resultados de aprendizaje especificados para la materia a la que pertenece (Servicios y sistemas de información para las organizaciones)
Habrá clases de teoría en grupo grande y clases de prácticas en el laboratorio en grupo pequeño. En las clases de teoría se irán combinando sesiones de tipo lección magistral con sesiones de resolución de problemas propuestos por el profesor en grupos de dos o tres estudiantes.
Las prácticas en el laboratorio se realizarán por pareja. Se deberán empezar a trabajar en el laboratorio con la ayuda del profesor y tendrán que acabar de forma autónoma fuera de las horas presenciales reglamentadas.
1.- Motivación
2.- Introducción a la arquitectura del software y sistemas
3.- Arquitecturas monolíticas
3.1.- Características
3.2.- Revisitamos la arquitectura por capas
4.- Arquitecturas modulíticas “clean” o hexagonales
4.1.- Características
4.2.- Una estructura que explique la funcionalidad
4.3.- Puertos y adaptadores
4.4.- Mapping entre capas
5.- Arquitecturas distribuidas: microservicios
5.1.- Introducción: “the monolith hell”
5.2.- Modelización: DDD
5.3.- Modelos de comunicación (síncrona y asíncrona)
5.4.- Transacciones y “eventual consistency”
5.5.- Patrones de infraestructura
Con el objetivo de recoger evidencia del logro de los resultados de aprendizaje esperados se realizarán las siguientes actividades de carácter evaluativo:
Prueba escrita: el estudiante deberá demostrar que ha adquirido los conocimientos teóricos explicados en clase y que toma decisiones de diseño informadas. (Evidencia de los resultados de aprendizaje RA1, RA2, RA4, RA5, RA6, RA8). Todas las competencias excepto T2 (trabajo en equipo)
Prueba práctica: el estudiante deberá demostrar que ha adquirido los conocimientos prácticos. La prueba consistirá en el desarrollo de una parte de un sistema de información (Evidencia de los resultados de aprendizaje RA2, RA3, RA8, RA9)
prácticas: habrá un máximo de 5 prácticas donde se aplicarán los conocimientos adquiridos en clase. (Evidencia de los resultados de aprendizaje RA2, RA3, RA7, RA8, RA9)
Nota: Todas las actividades están relacionadas con todas las competencias. Cabe destacar que toda la documentación está escrita en inglés por lo que el último resultado de aprendizaje y la competencia transversal T1 quedan garantizadas. Por otra parte para desarrollar las prácticas los estudiantes deberán resolver de forma autónoma, usando los manuales, los problemas que les vayan surgiendo en la competencia B5 también queda garantizada. A continuación se explicitan los aspectos más importantes de cada competencia asignada a la asignatura:
Para superar (aprobar) las actividades evaluativas, los estudiantes deberán demostrar
Evaluación
Cálculo nota final (NF):
recuperación:
Se podrán recuperar las dos pruebas (PR_E y PR_P) por separado. La nota final se calculará tal como se ha establecido anteriormente con las notas de la recuperación de las pruebas.
normativa:
Get Your Hands Dirty donde Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java. Tom Homberg. Packt Ed
Newman, Sam (2021), "Building Microservices: Designing Fine-Grained Systems" (2nd edition). O'Reilly Media
Josh Long, Kenny Bastani, "Cloud Native Java. Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry". O'Reilly 2017
Chris Richardson. Patrones de microserveis: https://microservices.io/
Hands-On Microservices with Spring Boot and Spring Cloud. By Magnus Larsson. Packt publisher (2019)