Con carácter general, el estudiante debe adquirir el conocimiento necesario para pasar desde el desarrollo de aplicaciones sencillas, a partir de especificaciones funcionales —u otras de tipo técnico—, a saber cómo incorporar atributos cualitativos que le permitan construir software robusto, mantenible, de altas prestaciones, calidad competitiva y costes razonables. Como resultado del aprendizaje de los contenidos de esta asignatura, el alumnado estará en la situación siguiente:
RA2. Conoce la Ingeniería de Requisitos y las técnicas específicas de diseño de software enfocadas al desarrollo orientado a objetos.
RA4. Establece la relación entre el diseño software y la facilidad con que se alcanzan las restricciones técnicas y atributos cualitativos del sistema. Conoce qué es y cuáles son los estilos arquitectónicos más importantes.
RA5. Relaciona el diseño software con los objetivos de negocio de la organización. Identificar las restricciones y atributos de calidad que debe cumplir un sistema. Construye una arquitectura en función de los requisitos cualitativos que debe cumplir un sistema sencillo.
RA6. Representa un diseño en relación a los requisitos cualitativos y las restricciones que debe cumplir.
RA7. Analiza, valora y razona las ventajas e inconvenientes de un diseño utilizando criterios técnicos, cualitativos y del dominio del negocio.
RA8. Es capaz de debatir y defender las conclusiones con argumentos sólidos y bien fundados.
RA9. Conoce y sabe aplicar herramientas de soporte orientadas a evaluar los aspectos cuantitativos y económicos para tomar decisiones, en el desarrollo de un diseño, que se conjuguen adecuadamente con los objetivos de negocio de la organización.
RA10. Aplica las técnicas de optimización aprendidas para el diseño arquitectónico, en arquitecturas que gestionen la variabilidad y mejoren la flexibilidad de la producción y la competitividad de la organización.
Los resultados del aprendizaje anteriores, se traducen en conocimientos (qué va a conocer o a saber), destrezas y habilidades (qué va a saber manejar o hacer) y aptitudes (para qué estará capacitado), que se adquieren una vez superada la asignatura.
Conocimientos
Adquirirá —y deberá demostrar— los siguientes conocimientos:
Conocer y saber aplicar los principios y metodologías del ciclo de vida evolutivo.
Saber identificar los requisitos, restricciones y atributos de calidad que debe cumplir un sistema.
Saber relacionar el diseño software con la especificación funcional y los objetivos de negocio de la organización.
Saber construir un diseño en función de los distintos tipos de requisitos y atributos de un sistema sencillo.
Saber qué son los patrones de diseño y su utilidad.
Saber los 9 principios fundamentales para el diseño OO de aplicaciones sencillas y para la asignación de responsabilidades a esos objetos. Saber cómo aplicarlos.
Conocer algunos patrones GoF y saber qué mejoras proporcionan al diseño.
Conocer qué es y cuáles son los estilos arquitectónicos más importantes. Saber establecer la relación entre una arquitectura software y la facilidad con que se alcanzan las restricciones técnicas y atributos cualitativos del sistema.
Destrezas
Tras el estudio de la asignatura el alumno deberá:
Saber utilizar la notación de UML.
Identificar Casos de Uso primarios y registrarlos de forma completa en el estilo esencial.
Identificar las clases conceptuales, asociaciones y sus atributos en el dominio del problema y recogerlas en un modelo conceptual mediante la notación UML.
Identificar eventos del sistema y representarlos en un diagrama de secuencia mediante UML.
Asignar responsabilidades y diseñar colaboraciones entre los componentes del Software mediante los principios GRASP e ilustrar el resultado mediante diagramas de colaboración en UML.
Resolver las definiciones de clases en un diagrama de clases en UML.
Refinar el diseño y mejorar la arquitectura mediante la incorporación de parones GoF.
Hacer corresponder los artefactos de diseño con definiciones de clases en un lenguaje de programación orientada a objetos.
Analizar, valorar y razonar las ventajas e inconvenientes de un diseño arquitectónico utilizando criterios técnicos y cualitativos del dominio de negocio.
Habilidad para debatir y defender las conclusiones con argumentos sólidos y bien fundados.
Aptitudes
Una vez superada la asignatura el alumno estará capacitado para:
Analizar, diseñar y construir aplicaciones de forma robusta, segura y eficiente, eligiendo las tecnologías de desarrollo más adecuadas.
Desarrollar, mantener y evaluar servicios y sistemas software que satisfagan los requisitos del usuario, las necesidades del cliente y los objetivos del dominio de negocio.
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.