Ingeniería del Software. Plan 2019
Grado y Doble Grado. Curso 2024/2025.
Objetivos
La Universidad Complutense de Madrid fue pionera en España en el área de la Informática al introducirla como tema de investigación y docencia hace más de medio siglo. Ya en los años 50 existía un grupo de investigación de la UCM en estrecha relación con otros grupos de Cambridge y Harvard, universidades donde se estaba gestando lo que hoy conocemos como Informática.
La Ingeniería del Software es una disciplina que se ocupa de proporcionar un marco adecuado para la gestión de los proyectos software, y para el diseño de aplicaciones empresariales con una arquitectura software que favorezca su mantenimiento y evolución a lo largo del tiempo. Los conceptos de modelo de proceso, planificación temporal, trabajo en equipo, gestión de riesgos, garantía de calidad, gestión de la configuración, especificación de requisitos software, arquitectura software, modelo de diseño, patrón de diseño, prueba, integración, evolución y mantenimiento, son claves en esta disciplina.
El título de Graduado/a en Ingeniería del Software supone la adaptación, al Espacio Europeo de Educación Superior, del título existente en Ingeniería Técnica en Informática de Gestión que, en el caso de la Universidad Complutense de Madrid, lleva impartiéndose desde 1991.
Las competencias que se proponen para el graduado en Ingeniería del Software se corresponden con las que aparecen en el Acuerdo del Consejo de Universidades, (B.O.E. 4 de agosto de 2009), sobre los títulos oficiales en el ámbito de la Ingeniería Técnica Informática.
Bajo esta premisa los objetivos docentes generales perseguidos por la titulación de graduado en Ingeniería del Software en la Universidad Complutense de Madrid son:
- Ofrecer a los estudiantes una formación generalista que abarque las áreas propias de la Informática en el ámbito de los sistemas de información, la ingeniería del software y la gestión empresarial.
- Ofrecer un catálogo de asignaturas lo suficientemente amplio de manera que posibilite la posterior especialización del estudiante en los diversos ámbitos profesionales propios del sector de las Tecnologías de la Información y las Comunicaciones (TIC).
- Impartir unos estudios de calidad que mantengan un equilibrio entre los conocimientos teóricos y los aplicados de la ingeniería del software en los que la componente práctica tenga un peso específico propio dentro del planteamiento curricular.
- Plantear unos estudios flexibles de manera que puedan ser permanentemente actualizados para que reflejen la continua y rápida evolución de los sistemas informáticos modernos.
- Formar profesionales e investigadores competentes que puedan desempeñar eficazmente sus funciones aunando los profundos conocimientos técnicos que han adquirido con un amplio abanico de habilidades instrumentales y de relación interpersonal.
- Proporcionar una base adecuada para que los titulados puedan continuar formándose a lo largo de su vida, bien por sí mismos o mediante la realización de estudios de postgrado.
Los objetivos específicos que se proponen en el Grado de Ingeniería del Software son los siguientes:
- Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería del software que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
- Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la ingeniería del software.
- Capacidad para diseñar, desarrollar, evaluar y asegurar la accesibilidad, ergonomía, usabilidad y seguridad de los sistemas, servicios y aplicaciones informáticas, así como de la información que gestionan.
- Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
- Capacidad para concebir, desarrollar y mantener sistemas, servicios y aplicaciones en el ámbito de la ingeniería del software empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.
- Capacidad para concebir y desarrollar sistemas o arquitecturas en el ámbito de la ingeniería del software centralizadas o distribuidas integrando hardware, software y redes.
- Capacidad para conocer, comprender y aplicar la legislación necesaria durante el desarrollo de la profesión de Ingeniero Técnico en Informática y manejar especificaciones, reglamentos y normas de obligado cumplimiento.
- 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.
- 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.
- Conocimientos para la realización de mediciones, cálculos, valoraciones, tasaciones, peritaciones, estudios, informes, planificación de tareas y otros trabajos análogos de ingeniería del software.
- 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 Ingeniero Técnico en Informática.
- 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 de ingeniería del software.
- Capacidad para valorar las necesidades de los clientes y especificar los requisitos software para satisfacer estas necesidades.
- Capacitar para la dirección de las actividades objeto de los proyectos del ámbito de la Ingeniería del Software.
- Capacidad para 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, evaluando los riesgos potenciales asociados que pudieran presentarse.
- Lograr el compromiso del estudiante con el autoaprendizaje como instrumento de desarrollo y responsabilidad profesional.
Competencias generales, transversales y específicas que los estudiantes deben adquirir durante sus estudios
Las competencias que se proponen para el Graduado/a en Ingeniería del Software garantizan el cumplimiento de las competencias básicas del Marco Español de Cualificaciones para la Educación Superior (MECES) descritas en el Anexo I apartado 3.2 del Real Decreto 1393/2007 de 29 de octubre por el que se establece la ordenación de las enseñanzas universitarias oficiales.
Las competencias generales se corresponden con las que deben adquirirse en el módulo de formación básica y el módulo común a la rama de informática que aparecen en el acuerdo del Consejo de Universidades (B.O.E. de 4 de agosto de 2009), por el que se establecen recomendaciones relativas a la memoria para la solicitud de verificación de títulos oficiales de la profesión de ingeniero técnico en informática.
Las competencias específicas se corresponden con las que deben adquirirse en el módulo de tecnología específica, dentro del bloque de ingeniería del software, que aparecen en el acuerdo del Consejo de Universidades.
En general, las competencias transversales y específicas adquiridas por los estudiantes están orientadas a la preparación para el ejercicio de actividades de carácter profesional.
Competencias generales:
De formación básica
CG1. Capacidad para la resolución de los problemas matemáticos que puedan plantearse en la ingeniería. Aptitud para aplicar los conocimientos sobre: álgebra lineal; cálculo diferencial e integral; métodos numéricos; algorítmica numérica; estadística y optimización.
CG2. Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería.
CG3. Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.
CG4. Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, los fundamentos de su programación, y su aplicación para la resolución de problemas propios de la ingeniería.
CG5. Comprensión y dominio de los conceptos básicos de campos y ondas y electromagnetismo, teoría de circuitos eléctricos, circuitos electrónicos, principio físico de los semiconductores y familias lógicas, dispositivos electrónicos y fotónicos, y su aplicación para la resolución de problemas propios de la ingeniería.
CG6. Conocimiento adecuado del concepto de empresa, marco institucional y jurídico de la empresa. Organización y gestión de empresas.
Comunes a la Rama de Informática
CG7. Capacidad para diseñar, desarrollar, seleccionar y evaluar, aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a los principios éticos y a la legislación y normativa vigente.
CG8. 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.
CG9. Capacidad para elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y normativas vigentes.
CG10. Conocimiento, administración y mantenimiento sistemas, servicios y aplicaciones informáticas.
CG11. Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los
algoritmos propuestos.
CG12. Conocimiento, diseño y utilización de forma eficiente de los tipos y estructuras de datos más adecuados a la resolución de un problema.
CG13. 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.
CG14. Capacidad de conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman.
CG15. Conocimiento de las características, funcionalidades y estructura de los Sistemas Operativos y diseñar e implementar aplicaciones basadas en sus servicios.
CG16. Conocimiento y aplicación de las características, funcionalidades y estructura de los Sistemas Distribuidos, las Redes de Computadores e Internet y diseñar e implementar aplicaciones basadas en ellas.
CG17. Conocimiento y aplicación de las características, funcionalidades y estructura de las bases de datos, que permitan su adecuado uso, y el diseño y el análisis e implementación de aplicaciones basadas en ellos.
CG18. Conocimiento y aplicación de las herramientas necesarias para el almacenamiento, procesamiento y acceso a los Sistemas de información, incluidos los basados en web.
CG19. Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
CG20. Conocimiento y aplicación de los principios, metodologías y ciclos de vida de la ingeniería de software.
CG21. Capacidad para diseñar y evaluar interfaces persona computador que garanticen la accesibilidad y usabilidad a los sistemas, servicios y aplicaciones informáticas.
CG22. 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.
CG23. Conocimiento y aplicación de los principios fundamentales y técnicas básicas de los sistemas inteligentes y su aplicación práctica.
CG24. Conocimiento de la normativa y la regulación de la informática en los ámbitos nacional, europeo e internacional.
CG25. Capacidad para realizar un proyecto en el ámbito de la Ingeniería Informática, con énfasis en la tecnología específica de Ingeniería del Software, de naturaleza profesional en el que se sinteticen e integren las competencias adquiridas en las enseñanzas.
Competencias específicas
CE1. Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y 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.
CE2. 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.
CE3. Capacidad de dar solución a problemas de integración en función de las estrategias, estándares y tecnologías disponibles.
CE4. 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.
CE5. Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que pudieran presentarse.
CE6. 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.
Competencias transversales:
CT1. Capacidad de comunicación oral y escrita, en inglés y español utilizando los medios audiovisuales habituales, y para trabajar en equipos multidisciplinares y en contextos internacionales.
CT2. Capacidad de análisis y síntesis en la resolución de problemas.
CT3. Capacidad para gestionar adecuadamente la información disponible integrando creativamente conocimientos y aplicándolos a la resolución de problemas informáticos utilizando el método científico.
CT4. Capacidad de organización, planificación, ejecución y dirección de recursos humanos.
CT5. Capacidad para valorar la repercusión social y medioambiental de las soluciones de la ingeniería, y para perseguir objetivos de calidad en el desarrollo de su actividad profesional.
Salidas profesionales
Un graduado en Ingeniería del Software hace especialmente cierta la frase de que un informático es algo más que un programador.
Así, la titulación favorece especialmente aquellos perfiles donde sea fundamental:
- La capacidad de liderar un equipo de desarrollo.
- La necesidad de interactuar con clientes para identificar los requisitos software de la aplicación.
- El prestar una especial atención a la gestión de proyectos software.
- Definir arquitecturas software para aplicaciones empresariales que favorezcan su evolución y mantenimiento. Esto es critíco en grandes sistemas como hospitales, bancos, aplicaciones de la administración pública, etc.
- Desarrollar sistemas con una gran cantidad de datos persistentes en el tiempo, que incluyen unas complejas reglas de negocio, y tienen importantes necesidades de integración con otras aplicaciones software.