Profesores Titulares
Profesores Docentes
Esta asignatura proporciona las herramientas necesarias para desarrollar proyectos software de manera eficiente, ya sea en entornos web, móviles o desktop. Se focaliza en el paradigma de la Programación Orientada a Objetos, aunque muchas de las buenas prácticas que se enseñan se pueden aplicar a cualquier paradigma de programación.
Se empieza motivando al alumno a desarrollar código de manera eficiente, viendo muchas ventajas y desventajas de aplicar los contenidos que se ven en la asignatura y con la experiencia clave del profesor.
Seguidamente el alumno aprende a detectar code smells y a refactorizarlos. A la vez, también se aprenden distintos patrones de diseño y los principios de SOLID para desarrollar un código escalable, desacoplado y encapsulado. Como culminación de lo aprendido anteriormente, se enseñan los principios de la arquitectura hexagonal.
Finalmente, el profesor o un invitado especial dará una charla sobre un proyecto real donde se aplica arquitectura hexagonal.
En la segunda parte de esta asignatura se enseña testing, más concretamente unit testing, integration testing y semantic testing. Mediante un diseño orientado a tests (TDD), el alumno va aprendiendo los distintos conceptos anteriormente mencionados.
Code smells
Refactoring
Código semántico
UML (Unified Modeling Language)
Principios SOLID
Patrones de diseño
DDD
Inyector de dependencias
Arquitectura hexagonal
Charla sobre arquitectura hexagonal aplicada (Enterprise design patterns)
Unit testing
Integration testing
Semantic testing
TDD
Los contenidos son presentados mediante lección magistral pero rápidamente se integran en los proyectos de los alumnos. Durante el desarrollo de la asignatura se ven proyectos reales y se hace una presentación, en grupos, de algún tema relacionado con las buenas prácticas de diseño, ya sea a nivel de código o de arquitecturas de software.
Se realizarán ejercicios para una evaluación continuada. Se hará especial énfasis en el feedback proporcionado por el profesor y se discutirá este en clase.
Se realizará un práctica final de la asignatura para asegurar la consolidación de los conocimientos por parte del alumno.
Los resultados de aprendizaje de esta asignatura son los siguientes:
[RA1] El alumno conoce un lenguaje actual de desarrollo web siguiendo los estándares de calidad y estilo.