Que estás buscando?
El idioma de impartición principal en clase es Catalán.
Sin embargo:
- todo el material de la asignatura disponible está en inglés,
- las herramientas usadas y sus documentaciones está en inglés,
- todos los trabajos y todas las entregas que se realizan deben ser en inglés.
(esto incluye código, comentarios, documentación, interfaces, etc.)
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
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
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
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
La asignatura de Laboratorio de Software 2 del primer trimestre de cuarto curso, es la última de las dos asignaturas llamadas Laboratorio de Software. Su impartición está pensada en dedicar 1 ECTS en la parte de teoría y 5 ECTS a practicar los conceptos expuestos en teoría y los adquiridos en el resto de asignaturas.
Esta asignatura consistirá en la creación de una aplicación cliente servidor mediante en grupo respetando la metodología SCRUM y de continuos delivery.
El alumno, además de implementar la aplicación y crear las pruebas de software, captará requisitos para nuevas funcionalidades, los especificará, y hará los roles de Scrum Master y Release Manager.
Todo el dessenvolupament se hará a GitHub, y las contribuciones del equipo se regularán mediante pull requests.
El código se desarrollará con Java Spring + JPA junto servidor, Javascript React + Redux al cliente, y se comunicará con protocolo REST.
1. Diseño de arquitecturas Cliente / Servidor
Uso de arquitecturas distribuidas en arquitectura cliente / servidor. El servidor establece una interfaz que el cliente usará para comunicarse con el usuario. El servidor y el cliente se comunicaron principalmente con REST.
2. Arquitectura de Inyección de dependencias automática + JPA
Uso de tecnologías de inyección de dependencias automática Spring.
Uso de la API JPA el back-end que automáticamente conecta con una fuente de datos y estructura las tablas y relaciones de forma automática.
3. Arquitectura cliente MVC
Uso de una arquitectura MVC al cliente capaz de gestionar correctamente los datos y la comunicación con el servidor.
4. Project Management
Uso del sistema SCRUM en equipos donde los alumnos deberán presentar los resultados frecuentemente al PO. El profesor hará el rol de PO. Dentro de cada grupo y en rotación uno de los alumnos hará de Scrumm Master.
Los alumnos también harán la captura de requisitos, presentación de funcionalidades y diseño de implementación.
5. Continuous Delivery
Uso de un sistema de continuous delivery. Se usan pruebas de software para trazar y asegurar que se implementa la especificación correctamente. En cada iteración, con un sistema de rotación, cada uno de los alumnos hará de Release Manager, creando y validando la versión a desplegar, y haciendo el despliegue en un entorno real de producción.
6. Calidad y Seguridad
El sistema implantado debe pasar altos estándares de calidad y seguridad. Todo el código pasará por varias code reviews y deberá aplicar los patrones aprendidos en asignaturas anteriores. También todo el código deberá disponer de macetas con una cobertura de casi el 100%, y éstos deberán contemplar todas las excepciones que puedan comprometer el servidor.
La nota final se calculará con las calificaciones de las actividades ponderadas de la forma siguiente:
- EXAMEN INDIVIDUAL: 50%
- PRÁCTICA: PROYECTO EN GRUPO: 50%
normativa:
recuperación:
Para poder realizar la prueba de recuperación el estudiante deberá cumplir las tres condiciones siguientes:
Spring Documentation - https://spring.io
Agile Software Development: Principles, Patterns, and Practices - Robert C. Martin,
Guía: escritura de código comprobable http://misko.hevery.com/code-reviewers-guide/ -Miško Hevery
UML for Java Programmers - Robert C. Martin