Guía docente de Desarrollo de Software (Especialidad Ingeniería del Software) (296113F)

Curso 2026/2027
Fecha de aprobación: 09/07/2026

Grado

Grado en Ingeniería Informática

Rama

Ingeniería y Arquitectura

Módulo

Formación de Especialidad 2: Ingeniería del Software

Materia

Desarrollo y Gestión de Proyectos

Curso

3

Semestre

2

Créditos

6

Tipo

Obligatoria

Profesorado

Teórico

Alberto Jesús Durán López. Grupo: B

Práctico

Alberto Jesús Durán López Grupos: 2, 3 y 4

Tutorías

Alberto Jesús Durán López

Email
No hay tutorías asignadas para el curso académico.

Prerrequisitos y/o Recomendaciones

Los alumnos no tendrán que tener asignaturas, materias o módulos aprobados como requisito indispensable para cursar el módulo. No obstante se recomienda la superación de los contenidos y adquisición de competencias de las materias de formación básica, en concreto Fundamentos de Ingeniería del Software y Programación y Diseño Orientado a Objetos.

En el caso de utilizar herramientas de IA para el desarrollo de la asignatura, el estudiante debe adoptar un uso ético y responsable de las mismas. Se deben seguir las recomendaciones contenidas en el documento de "Recomendaciones para el uso de la inteligencia artificial en la UGR" publicado en esta ubicación

Breve descripción de contenidos (Según memoria de verificación del Máster)

  • Patrones de diseño.
  • Composición y clasificación de los patrones arquitectónicos.
  • Arquitecturas orientadas a componentes y servicios.
  • Técnicas de desarrollo dirigidas por modelos.
  • Modelado de negocio.
  • Técnicas de verificación y validación de pruebas software.
  • Pruebas.
  • Mantenimiento y evolución del software.

Competencias

Competencias Generales

  • CG01. Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto, de acuerdo con los conocimientos adquiridos, la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
  • CG05. Capacidad para concebir, desarrollar y mantener sistemas, servicios y aplicaciones informáticas empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.

Competencias Transversales

  • CT03. Capacidad para el uso y aplicación de las TIC en el ámbito académico y profesional. 

Resultados del proceso de formación y de aprendizaje

Competencias

  • COM01. Concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto, de acuerdo con los conocimientos adquiridos, la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
  • COM02. Dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos adquiridos.
  • COM05. Concebir, desarrollar y mantener sistemas, servicios y aplicaciones informáticas empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.
  • COM10. Aplicar los elementos básicos de economía y de gestión de recursos humanos, organización y planificación de proyectos, así como la legislación, regulación y normalización en el ámbito de los proyectos informáticos, de acuerdo con los conocimientos adquiridos.

Habilidades o Destrezas

  • HD01. Resuelve problemas con iniciativa, toma de decisiones, autonomía y creatividad, y sabe comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
  • HD15. Posee la capacidad de organizar y planificar, así como de gestionar la información.
  • HD16. Toma decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles), y argumenta y justifica lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista.
  • HD17. Usa y aplica las TIC en el ámbito académico y profesional.
  • HD18. Se comunica en lengua extranjera, particularmente en inglés.
  • HD19. Trabaja en equipo, usando competencias demostrables mediante la elaboración y defensa de argumentos.
  • HD20. Aplica principios de ética profesional para conseguir la mejora continua y la calidad de los productos actuando con rigor y responsabilidad.
  • HD21. Respeta los derechos fundamentales y de igualdad entre hombres y mujeres.
  • HD22. Proyecta los conocimientos, habilidades y destrezas adquiridos para promover una sociedad basada en los valores de la libertad, la justicia, la igualdad y el pluralismo.

Resultados de aprendizaje (Objetivos)

  • Conocer los patrones que se pueden aplicar a un diseño y a su estructura.
  • Clasificación de los patrones y su importancia como herramienta para mejorar la calidad de un diseño.
  • Adquirir destreza en la identificación de los patrones aplicables a un determinado problema.
  • Comprender correctamente el concepto de componente-software y saber aplicarlo en le desarrollo.
  • Conocer las técnicas de desarrollo dirigidas por modelos, sus ventajas e inconvenientes.
  • Conocer y saber aplicar diferentes niveles de prueba a un software.
  • Introducirse en el modelado de procesos de negocio, así como en sus técnicas fundamentales y herramientas.

Programa de contenidos Teóricos y Prácticos

Teórico

Tema 1. Desarrollo utilizando patrones software.

  1. Análisis y diseño basado en patrones.
  2. Estudio del catálogo GoF de patrones de diseño.
  3. Patrones arquitectónicos.

Tema 2. Arquitectura Software.

  1. Principios de Arquitectura Software.
  2. Propiedades no funcionales de Arquitectura Software.
  3. Descripción arquitectónica del software.

Tema 3. Pruebas software

  1. Objetivos y principios fundamentales.
  2. Validación y verificación.
  3. Relación con el ciclo de vida del software.
  4. Técnicas, herramientas y marcos de trabajo para el desarrollo de pruebas del software.

Tema 4. Desarrollo dirigido por modelos.

  1. Fundamentos del desarrollo dirigido por modelos (MDD).
  2. Arquitecturas dirigidas por modelos (MDA) y factorías de software.
  3. Modelado de negocio.
  4. Arquitecturas de empresa/Sistemas de Información Empresarial.

Tema 5. Mantenimiento y evolución del software.

  1. Principios y tipos de mantenimiento aplicables al software.
  2. El proceso de mantenimiento del software.
  3. Actividades relacionadas con la correcta evolución del software.

Talleres

  • Taller 1: Introducción a Git y GitHub.
  • Taller 2: Introducción al desarrollo de apps con Flutter.
  • Taller 3: Introducción al desarrollo de pruebas unitarias en Flutter.
  • Taller 4: Introducción a RoR.
  • Taller 5: Introducción a los servicios Web RESTful con RoR y uso con Flutter.

Práctico

  • Práctica 1. Aplicar algunos patrones de diseño del catálogo GoF y arquitectónicos al diseño de varios programas que resuelven un conjunto de problemas propuestos. Analizar la adecuación del diseño e implementación obtenidos con respecto a los requisitos especificados para cada problema.
  • Práctica 2. Implementar una aplicación en Flutter utilizando el lenguaje de programación Dart.
  • Práctica 3. Desarrollo de pruebas unitarias y de integración para evaluar la calidad del software desarrollado en la práctica 2.
  • Práctica 4. Realizar una aplicación multiplataforma completa que resuelva un problema real cubriendo todas las fases del desarrollo de software. Se utilizará Flutter/Dart y Ruby on Rails como API RestFul. Se implementarán pruebas de unidad, integración y de sistema.

Bibliografía

Bibliografía fundamental

  • Freeman, E., & Robson, E. (2020). Head first design patterns. O'Reilly Media.
  • Richards, M., & Ford, N. (2020). Fundamentals of software architecture: an engineering approach. O'Reilly Media.
  • Ammann, P., & Offutt, J. (2017). Introduction to software testing. Cambridge University Press.
  • Brambilla, M., Cabot, J., & Wimmer, M. (2017). Model-driven software engineering in practice. Morgan & Claypool Publishers.
  • Nick Rozanski. Software Systems Architecture: Working with Stakeholders Using View-points and Perspectives, Second Edition. Addison-Wesley Professional, 2011.
  • Daniel Galin. Software Quality. Wiley-IEEE Computer Society Press, 2018.
  • Priyadarshi Tripathy and Kshirasagar Naik. Software Evolution and Maintenance. John Wiley, EE.UU., 2014.

Bibliografía complementaria

  • Brad Appleton. Patterns and software: Essential concepts and terminology, 2000.
  • Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern-Oriented Software Architecture - Volume 1: A System of Patterns. Wiley Publishing, 1996. ISBN 0471958697.
  • Percival, H., & Gregory, B. (2020). Architecture patterns with Python: enabling test-driven development, domain-driven design, and event-driven microservices. " O'Reilly Media, Inc.".
  • Dumas, M., Rosa, M. L., Mendling, J., & Reijers, H. A. (2013). Fundamentals of business process management. Springer.
  • Brambilla, M., Cabot, J., & Wimmer, M. (2017). Model-driven software engineering in practice. Morgan & Claypool Publishers.
  • Martin, R. C. (2017). Clean architecture: a craftsman's guide to software structure and design. Prentice Hall Press.
  • Judith Stafford, Robert Nord, Paulo Merson, Reed Little, James Ivers, David Garlan, Len Bass, Feliz Bachmann, and Paul Clements. Documenting Software Architectures: Views and Beyond, Second Edition. Addison-Wesley Professional, EE.UU., 2010.
  • Mika Koskela and Jyrki Haajanen. Business process modeling and execution. research notes 2407. Technical report, 2007.
  • Stephen J. Mellor, K. Scott, Uhl A., and Weise D. MDA distilled: Principles of Model-Driven Architecture. Addison-Wesley Longman Publishing Co., Inc., USA, 2004.
  • L. A. Belady and M. M. Lehman. A model of large program development. IBM Systems Journal, 1(15):225–252, 1976.

Enlaces recomendados

Metodología docente

  • MD01. Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03.  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04. Actividades no presenciales Individuales. 
  • MD05. Actividades no presenciales Grupales. 
  • MD06. Tutorías Académicas. 

Metodología docente

  • MD01. Lección magistral.
  • MD02. Actividades prácticas.
  • MD03. Seminarios.
  • MD04. Actividades no presenciales.
  • MD05. Tutorías académicas.

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación Ordinaria

Todo lo relativo a la evaluación se regirá por la Normativa de evaluación y calificación de los estudiantes vigente en la Universidad de Granada.

Preferentemente, la evaluación se ajustará al sistema de evaluación continua del aprendizaje del estudiante siguiendo la anterior Normativa.

En esta modalidad se utilizarán las siguientes técnicas de evaluación:

  • Parte teórica: Se realizarán dos pruebas presenciales.
  • Parte práctica: Se realizarán defensas o pruebas de las prácticas con el objetivo de calificar las entregas.
  • Para los estudiantes que se acojan a la evaluación única final, las pruebas y la evaluación estarán regidas por los criterios que se exponen más adelante en este documento (ver apartado correspondiente).
  • La calificación global corresponderá a la puntuación obtenida de la ponderación de los diferentes aspectos y actividades que integran el sistema de evaluación. La adaptación del sistema de evaluación general propuesto a las características de esta asignatura se ajustará a lo indicado a continuación:

Porcentajes de evaluación

Actividades formativas

Ponderación

Parte teórica

50%

Parte práctica

50%

Para aprobar la asignatura es necesario obtener una calificación numérica superior o igual a 5 puntos (sobre 10). No obstante, además del requisito anterior, se establecen adicionalmente los siguientes requisitos:

  • Parte teórica.- Se debe obtener una calificación mayor o igual a 4,5 puntos (sobre 10) en cada uno de las dos pruebas.
  • Parte práctica.- Será necesario una calificación mayor o igual a 4,5 en cada una de las prácticas.

El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el artículo 5 del R.D. 1125/2003 de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.

Evaluación Extraordinaria

La evaluación de los estudiantes en la convocatoria extraordinaria se regirá por los mismos criterios y constará de las mismas pruebas que las indicadas en este documento para evaluación única final.

Evaluación única final

La evaluación única final consistirá en dos pruebas de evaluación, una para la parte teórica y otra para la parte práctica, con las características que se indican a continuación:

  • Evaluación de teoría: los estudiantes realizarán una prueba escrita que constará de preguntas de teoría, problemas y ejercicios sobre la teoría impartida.
  • Evaluación de las prácticas: los estudiantes realizarán de manera individual cada una de las prácticas de este curso y una prueba que consistirá en la realización de modificaciones de dichas prácticas a partir de cambios en los requisitos de las mismas.

La ponderación de cada parte en la nota final será del 50% (parte teórica) y 50% (parte práctica). Para aprobar la asignatura se han de cumplir los siguientes requisitos:

  • La nota de la prueba de teoría ha de ser igual o superior al 4,5.
  • La nota de la prueba de prácticas ha de ser igual o superior a 4,5.
  • La suma ponderada de ambas notas ha de ser igual o superior a 5.

Información adicional

Competencias básicas a destacar en esta asignatura

  • CB3. 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 índole social, científica o ética.
  • CB4. Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
  • CB5. Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.

Competencias Generales del título a destacar en esta asignatura

  • E5. Capacidad para concebir, desarrollar y mantener sistemas, servicios y aplicaciones informáticas empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.
  • E8. Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
  • E9. Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
  • E11. Capacidad para analizar y valorar el impacto social y medioambiental de las soluciones técnicas, comprendiendo la responsabilidad ética y profesional de la actividad del Graduado en Informática.

Competencias transversales a destacar en esta asignatura:

  • T1. Capacidad de organización y planificación así como capacidad de gestión de la Información.
  • T2. Capacidad para tomar decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación. disponibles) así como capacidad de argumentar y justificar lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista.
  • T4. Capacidad de comunicación en lengua extranjera, particularmente en inglés.
  • T5. Capacidad de trabajo en equipo, usando competencias demostrables mediante la elaboración y defensa de argumentos.
  • T6. Motivación por la calidad y la mejora continua, actuando con rigor, responsabilidad y ética profesional.
  • T7. Respeto a los derechos fundamentales y de igualdad entre hombres y mujeres.
  • T8. Capacidad para proyectar los conocimientos, habilidades y destrezas adquiridos para promover una sociedad basada en los valores de la libertad, la justicia, la igualdad y el pluralismo.

Competencias generales

  • CG01 - Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto, de acuerdo con los conocimientos adquiridos, la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.

  • CG05 - Capacidad para concebir, desarrollar y mantener sistemas, servicios y aplicaciones informáticas empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.

Metodología docente

1. Clases de teoría

  • Descripción: Resumen de los contenidos que deben adquirirse, exposición de aquéllos más importantes o más difíciles de comprender, exposición de la resolución de problemas y casos prácticos.
  • Propósito: Adquisición de un conocimiento profundo de la importancia del desarrollo del software, desarrollando la capacidad de reflexión, descubrimiento de las relaciones entre diversos conceptos, capacidad de análisis y presentación pública.
  • Contenido en ECTS: 13 horas presenciales (0,52 ECTS).
  • Competencias: IS1, IS3, IS4, IS6, E1, E2, E3, E4, E5, E6, E7, E9, E10, E12, T1, T2, T4, T5, T6.
  • Metodología empleada: Explicación del profesor.

2. Actividades presenciales

  • Descripción: Actividades propuestas por el profesor a través de las cuales se profundiza en aspectos concretos de la materia posibilitando a los estudiantes avanzar en la adquisición de determinados conocimientos y procedimientos de la materia. Se incluye la puesta en común de cuestiones de un calado más profundo, relacionados con las implicaciones éticas y la necesidad de formación humanística y teológica como complemento universitario a la formación tecnológica.
  • Propósito: Favorecer en los estudiantes las capacidades de identificación y análisis de diferentes puntos de vista sobre una temática sabiendo reconocer las distintas responsabilidades en el desarrollo software para resolver los conflictos en casos en los que no exista consenso de opiniones, de generalización o transferencia de conocimiento, de valoración analítica del mismo y de reflexión propia.
  • Contenido en ECTS: 13 horas presenciales (0,52 ECTS).
  • Competencias: IS1, IS3, IS4, IS6, E1, E2, E3, E4, E5, E6, E7, E9, E10, E12, T1, T2, T4, T5, T6, T8.
  • Metodologías docentes: Trabajo de teoría. Se trabajará con ordenadores personales en el aula de teoría.

3. Talleres

  • Descripción: Aprendizaje práctico introductorio de herramientas concretas usadas en el Desarrollo Software.
  • Propósito: Facilitar el inicio de aprendizaje de herramientas concretas a usar en la asignatura y sobre las que cada estudiante deberá profundizar en su conocimiento y destreza de uso a lo largo del curso.
  • Contenido en ECTS: 4 horas presenciales (0,16 ECTS).
  • Competencias: IS1, IS3, IS4, IS6, E1, E2, E3, E4, E5, E6, E7, E9, E10, E12, T1, T2, T4, T5, T6.
  • Metodologías docentes: Taller de Programación en aula de teoría con ordenadores personales.

4. Clases de prácticas

  • Descripción: Inicio de cada sesión semanal de prácticas bajo la supervisión del profesor, planificación de la tarea a realizar, resolución de dudas y realización de las prácticas de desarrollo software.
  • Propósito: Realización completa de la práctica, entrega de la misma y resolución de todas las dudas que surjan para poder completarlas de forma autónoma.
  • Contenido en ECTS: 75 horas presenciales (3,00 ECTS).
  • Competencias: IS1, IS3, IS4, IS6, E1, E2, E3, E4, E5, E6, E7, E9, E10, E12, T1, T2, T4, T5, T6.
  • Metodologías empleadas: Uso de distintas herramientas de desarrollo software incluyendo control de versiones, resolución de dudas y presentación mediante demostraciones, diapositivas, documentos de texto y tutoriales.

5. Actividades no presenciales (estudio y trabajo autónomo)

  • Descripción: 1) Actividades propuestas por el profesor a través de las cuales se profundiza en aspectos concretos de la materia posibilitando al estudiante avanzar en la adquisición de determinados conocimientos y procedimientos de la materia; 2) Estudio de los contenidos de la materia; 3) Actividades auto-evaluativas; 4) Cuestionarios de reflexión profunda (implicaciones éticas, necesidad de formación humanística y teológica como fundamento para la formación tecnológica).
  • Propósito: Favorecer en el estudiante la capacidad para autorregular su aprendizaje, planificándolo, diseñándolo, evaluándolo y adecuándolo a sus especiales condiciones e intereses.
  • Contenido en ECTS: 44 horas no presenciales (1,76 ECTS).
  • Competencias: IS1, IS3, IS4, IS6, E1, E2, E3, E4, E5, E6, E7, E9, E10, E12, T1, T2, T4, T5.

6. Tutorías académicas

  • Descripción: Manera de organizar los procesos de enseñanza y aprendizaje que se basa en la interacción directa entre el estudiante y el profesor.
  • Propósito: 1) Orientar el trabajo del alumnado; 2) profundizar en distintos aspectos de la materia y 3) orientar la formación académica e integral del estudiante.
  • Contenido en ECTS: 1 hora presencial (0,04 ECTS).
  • Competencias: IS1, IS3, IS4, IS6, E1, E2, E3, E4, E5, E6, E7, E9, E10, E12, T1, T2, T4, T6.

Información de interés para estudiantado con discapacidad y/o Necesidades Específicas de Apoyo Educativo (NEAE): Gestión de servicios y apoyos (https://ve.ugr.es/servicios/atencion-social/estudiantes-con-discapacidad).