Guía docente de Fundamentos de Ingeniería del Software (2961127)

Curso 2024/2025
Fecha de aprobación: 25/06/2024

Grado

Grado en Ingeniería Informática

Rama

Ingeniería y Arquitectura

Módulo

Formación Específica de Rama

Materia

Programación e Ingeniería del Software

Curso

2

Semestre

2

Créditos

6

Tipo

Obligatoria

Profesorado

Teórico

  • Pedro Manuel Martínez Jiménez. Grupo: B
  • María Luisa Rodríguez Almendros. Grupo: D
  • Miguel Vega López. Grupo: A

Práctico

  • Pedro Manuel Martínez Jiménez Grupos: 2 y 7
  • María Luisa Rodríguez Almendros Grupo: 8
  • Miguel Vega López Grupos: 1 y 5

Tutorías

Pedro Manuel Martínez Jiménez

Email
  • Primer semestre
    • Lunes de 16:30 a 18:30 (Etsiit, Planta 3, Despacho 22 (Cita Previa))
    • Martes de 16:00 a 18:00 (F. Traducción e Interpretación, C/ Buensuceso, 11 Despacho 2 (Cita Previa))
    • Jueves de 17:30 a 19:30 (Etsiit, Planta 3, Despacho 22 (Cita Previa))
  • Segundo semestre
    • Martes
      • 11:30 a 14:30 (Etsiit, Planta 3, Despacho 22 (Cita Previa))
      • 15:30 a 18:30 (Etsiit, Planta 3, Despacho 22 (Cita Previa))

María Luisa Rodríguez Almendros

Email
  • Primer semestre
    • Jueves de 12:30 a 13:30 (Etsiit 3ª P Despacho 29)
    • Viernes de 08:30 a 13:30 (Etsiit 3ª P Despacho 29)
  • Segundo semestre
    • Jueves de 12:30 a 13:30 (Etsiit 3ª P Despacho 29)
    • Viernes de 08:30 a 13:30 (Etsiit 3ª P Despacho 29)

Miguel Vega López

Email
  • Primer semestre
    • Lunes de 11:30 a 13:30 (Etsiit 3ª P Despacho 28)
    • Martes de 09:30 a 13:30 (Etsiit 3ª P Despacho 28)
  • Segundo semestre
    • Lunes de 11:30 a 13:30 (Etsiit 3ª P Despacho 28)
    • Martes de 09:30 a 13:30 (Etsiit 3ª P Despacho 28)

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, teniendo especial importancia la superación de las materias de "Fundamentos de Programación", "Metodología de la Programación" y "Programación y Diseño Orientado a Objetos".

Breve descripción de contenidos (Según memoria de verificación del Grado)

  • Concepto de Ingeniería del Software.
  • El producto Software, propiedades y ciclo de vida.
  • El proceso de desarrollo. Ingeniería de requisitos.
  • Diseño e implementación de software.
  • Planificación y gestión de proyectos.
  • Validación y verificación de software.
  • Mantenimiento de 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.
  • CG02. Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos adquiridos.
  • CG04. Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecució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.
  • CG06. Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
  • CG09. 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.
  • CG10. Conocimientos para la realización de mediciones, cálculos, valoraciones, tasaciones, peritaciones, estudios, informes, planificación de tareas y otros trabajos análogos de informática.
  • CG12. Conocimiento y aplicación de 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.

Competencias específicas

  • CE07. Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
  • CE08. Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social.
  • CE09. Capacidad para comprender la importancia de la negociación, los hábitos de trabajo efectivos, el liderazgo y las habilidades de comunicación en todos los entornos de desarrollo de software.
  • CE10. Capacidad para elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y normativas vigentes.
  • CE11. Conocimiento, administración y mantenimiento sistemas, servicios y aplicaciones informáticas.
  • CE14. Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
  • CE22. Conocimiento y aplicación de los principios, metodologías y ciclos de vida de la ingeniería de software.
  • CE23. Capacidad para diseñar y evaluar interfaces persona computador que garanticen la accesibilidad y usabilidad a los sistemas, servicios y aplicaciones informáticas.

Competencias Transversales

  • CT05. Capacidad de trabajo en equipo, usando competencias demostrables mediante la elaboración y defensa de argumentos. 

Resultados de aprendizaje (Objetivos)

  • Conocer el origen y significado del término “Ingeniería del Software”, su evolución histórica y los desafíos actuales, y ser consciente de la responsabilidad ética y profesional de un ingeniero de software.
  • Comprender el concepto de sistema de software, sus propiedades y sus relaciones con el tipo de organización para la que se desarrolla.
  • Conocer el concepto de ciclo de vida y algunos de sus tipos, siendo capaz de diferenciar entre modelos secuenciales y modelos iterativos, incrementales y evolutivos.
  • Comprender el proceso de desarrollo de software y conocer las principales actividades realizadas y los productos obtenidos en el mismo.
  • Comprender la necesidad del modelado, la abstracción y la transformación en el desarrollo de software.
  • Conocer los principales métodos de desarrollo de software y aprender a utilizar alguno de ellos.
  • Aprender técnicas concretas de especificación de requisitos y comprender la importancia de los requisitos como base del desarrollo de software.
  • Conocer los principios de diseño y la importancia de la arquitectura del software y saber aplicarlos en casos concretos.
  • Conocer diferentes actividades de transformación entre diseño e implementación y saber aplicar algunas de ellas.
  • Diferenciar entre planificación y gestión de proyectos, conociendo las características principales a tratar en cada caso, y aprender a realizar la planificación inicial de supuestos prácticos.
  • Distinguir entre validación y verificación de software, conocer su relación con el proceso de desarrollo y su importancia en la garantía de calidad del software.
  • Comprender las principales dificultades del mantenimiento de software, conocer una guía de medidas a seguir para facilitar el mantenimiento y hacer mantenimiento de software ajeno.

Programa de contenidos teóricos y prácticos

Teórico

Tema 1. Introducción a la Ingeniería del Software.

  1. El producto Software, propiedades y ciclo de vida.
  2. Concepto de Ingeniería del Software.
  3. El proceso de desarrollo de software.

Tema 2. Ingeniería de requisitos.

  1. Introducción a la ingeniería de requisitos.
  2. Obtención de requisitos.
  3. Modelado de casos de uso.
  4. Especificación y análisis.

Tema 3. Diseño del software.

  1. Conceptos y principios de diseño.
  2. Diseño de los casos de uso.
  3. Diseño de la estructura de objetos.
  4. Arquitectura del software.

Tema 4. Otros aspectos de la Ingeniería del Software.

  1. Planificación y gestión de proyectos software.
  2. Validación y verificación de software.
  3. Mantenimiento de software.

Práctico

Seminarios/Talleres

  • Seminario práctico 1: Introducción a las herramientas y técnicas de ingeniería de requisitos a usar en prácticas.
  • Seminario práctico 2: Introducción a las herramientas y técnicas de diseño e implementación a usar en prácticas.

Prácticas de Laboratorio

Partiendo de la especificación informal de un pequeño sistema software, se abordarán progresivamente diferentes fases del proceso de desarrollo y mantenimiento de software, así como la necesaria planificación del proyecto, de forma coordinada con la teoría.

Prácticas con pesos en % en la calificación de prácticas:

  1. Introducción a Herramienta CASE. (Voluntaria puede añadir hasta un 5% a la calificación)
  2. Ingeniería de requisitos: Lista inicial de requisitos. (10 %)
  3. Ingeniería de requisitos: Modelo de casos de uso. (30%)
  4. Ingeniería de requisitos: Análisis y especificación de requisitos. (30%)
  5. Diseño. (30%)

Bibliografía

Bibliografía fundamental

  • I. Sommerville. Software engineering. Pearson, 2016.
  • J. Arlow, I Neustad. UML 2. ANAYA Multimedia, 2006.
  • R. Pressman. Ingeniería del Software. McGraw Hill, 2021.
  • S. L. Pfleeger. Ingeniería de Software: teoría y práctica. Prentice Hall, 2002.
  • S. Sanchez, M. Sicilia, D. Rodriguez, Ingeniería del Sofware. Un enfoque desde la guía SWEBOK. Garceta, 2011
  • C. Larman. UML y patrones: una introducción al análisis y diseño orientado a objetos y al proceso unificado. Pearson, 2006.

Bibliografía complementaria

  • G. Booch, J. Rumbaugh, I. Jacobson. El Lenguaje Unificado de Modelado. Guía de Usuario. Pearson Educación, 2006.
  • B. Bruegge, A. H. Dutoit. Object-Oriented Software Engineering Using UML, Patterns, and Java. Pearson, 2014.
  • T. C. Lethbridge, R. Laganière. Object-Oriented Software Engineering. Practical Software Development using UML and Java. Mc Graw Hill, 2005.
  • Carmen Lasa Gómez, Alonso Álvarez García, Rafael de las Heras del Dedo. Métodos Ágiles. Scrum, Kanban, Lean. Anaya Multimedia, 2017.
  • Kent Beck. Una explicacion de la Programacion Extrema: Aceptar el cambio. Addison-Wesley, 2002.
  • D. Farley. Modern Software Engineering: Doing What Works to Build Better Software Faster. Addison Wesley, 2022.

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. 

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

Evaluación ordinaria

El sistema que se seguirá para la evaluación de esta asignatura es bajo la modalidad de evaluación continua, tal como se describe a continuación.
El sistema de calificación establece que el 100% de la nota final se reparte en: 50% de teoría y 50% prácticas. Para aprobar la asignatura es necesario tener una calificación numérica superior o igual a 5 puntos (sobre 10). La suma de las calificaciones de ambas partes sólo se realizará en caso de tener en cada parte, una puntuación superior o igual a 5 puntos (sobre 10). La calificación final es la suma de las calificaciones obtenidas en teoría y prácticas. Si sólo se supera una parte (teoría o prácticas), la calificación de la parte superada se mantiene hasta la siguiente convocatoria extraordinaria del curso académico actual.
Con respecto a la calificación detallada de cada una de las partes, se establece lo siguiente:

  • Los 5 puntos de la teoría se reparten de la siguiente forma:
  • 30% corresponden a pruebas objetivas individuales realizadas en el aula. 30% correspondiente a trabajo individual o en grupo para la resolución de ejercicios, problemas, resolución de cuestionarios online previos a las clases y/o trabajos, así como la participación en clase. 40% correspondiente a un examen final.
  • Los 5 puntos de prácticas se obtienen de la evaluación ponderada de cada una de las prácticas realizadas a lo largo del curso.

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.

El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 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

El método de evaluación en las convocatorias extraordinarias constará de un examen, incluyendo tanto los aspectos teóricos como prácticos impartidos a lo largo del curso académico.

Evaluación única final

Se realizará una evaluación única final para aquellos estudiantes que no puedan acogerse a la evaluación continua y hayan solicitado dicho examen único final, alegando y acreditando las razones que le asisten para no poder seguir el sistema de evaluación continua; siempre de acuerdo a lo que se especifica en el Artículo 8 de la “Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada”.

La evaluación única final constará de un examen, incluyendo tanto los aspectos teóricos como prácticos impartidos a lo largo del curso académico.

Información adicional

El título de Graduado/a en Ingeniería Informática de la Universidad de Granada ha obtenido, con fecha 5 de junio de 2019, el sello Euro-Inf, otorgado por ANECA en colaboración con el Consejo General de Colegios Profesionales de Ingeniería en Informática (CCII) y con el Consejo General de Colegios Oficiales de Ingeniería Técnica en Informática (CONCITI). Esta acreditación garantiza el cumplimiento de criterios y estándares reconocidos por los empleadores españoles y del resto de Europa, de acuerdo con los principios de calidad, relevancia, transparencia, reconocimiento y movilidad contemplados en el Espacio Europeo de Educación Superior.

Régimen de asistencia a clase:

  • La asistencia a clase de teoría no será obligatoria, aunque la participación activa en clase y la entrega de ejercicios planteados por el profesor se tendrá en cuenta dentro del sistema de evaluación continua de la asignatura.
  • La asistencia a las clases prácticas será obligatoria. Sólo se podrá faltar a tres clases de prácticas.

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).