Retos de la Ingeniería del Software para el siglo XXI
- Profesor (Coordinador):
- Andrés Silva
- asilva@fi.upm.es
- Profesor:
- Óscar Dieste
- odieste@fi.upm.es
Semestre
Primer semestre
Créditos
4 ECTS
Resumen
Las grandes innovaciones tecnológicas que se producirán durante el siglo XXI irán ligadas, de una u otra manera, al desarrollo de software y a los modos en que éste se incorporará a todos los ámbitos de la vida diaria, sin excepción. Muchas de esas innovaciones, no obstante, suponen retos técnicos y, o, sociotécnicos, que no se pueden ignorar. Asimismo, la incorporación del software a ciertos ámbitos puede provocar diversas alteraciones en los modos de trabajo, choques culturales y abrir la puerta a situaciones de riesgo que se deben manejar antes de que sea tarde.
Debido a estas razones, esta asignatura pretende familiarizar a los alumnos con ciertas áreas problemáticas de la Ingeniería del Software que, por su importancia y permanencia a lo largo del tiempo, son objeto de investigación, así como dotar a los alumnos de los conocimientos y aptitudes básicas para entender dichos problemas, su importancia, el estado del arte y las investigaciones en curso sobre los mismos.
Dado el carácter de este Máster, el contenido de la asignatura estará indisolublemente ligado a la experiencia investigadora y trayectoria profesional del profesor.
Objetivos
La asignatura persigue el que los alumnos puedan identificar, a partir del estado de la cuestión, la presencia de problemas de investigación relacionados con la concepción, la construcción, el uso y la evaluación de sistemas sociotécnicos complejos que hagan un uso intensivo de software.
Programa
- Introducción y Fundamentos
- Fundamentos teóricos de la Ingeniería del Software (IS)
- Fundamentos organizacionales de la IS
- Ecosistemas centrados en software y su definición
- Ecosistemas sociotécnicos centrados en productos software
- El paradigma Sensemaking-Coevolution-Implementation
- Teoría de Actividades y su aplicación a la definición de ecosistemas software
- Técnicas de Ingeniería de Software orientada a productos
- Bases metodológicas
- Estado de la práctica
- Introducción a la problemática de las bases teóricas de la Ingeniería del Software
- Teorías que sustentan otras disciplinas de Ingeniería
- Acercamientos a una posible una teoría que sustente la Ingeniería del Software. Problemáticas asociadas
Bibliografía
- Y. Wang: "Software Engineering Foundations: A Software Science Perspective", 1st ed. AUERBACH / CRC Press, July 2007
- B. H. Cheng and J. M. Atlee: "Current and future research directions in requirements engineering", Lecture Notes in Business Information Processing, 2009, pp. 11-43
- M. A. Jackson: "Problem Frames: Analysing & Structuring Software Development Problems". Addison-Wesley Professional, November 2000.
- G. Matturro and A. Silva: "A model for capturing and managing software engineering knowledge and experience", Journal of Universal Computer Science, vol. 16, no. 3, pp. 479-505, 2010.
- J. G. Hall and A. Silva: "A conceptual model for the analysis of mishaps in human-operated safety-critical systems", Safety Science, vol. 46, no. 1, pp. 22-37, January 2008.
- N. Juristo, A. M. Moreno, and A. Silva: "Is the European industry moving toward solving requirements engineering problems?", IEEE Software, vol. 19, no. 6, pp. 70-77, 2002.
- J. Andrade et al.: "A methodological framework for generic conceptualisation: problem-sensitivity in software engineering", Information and Software Technology, vol. 46, no. 10, pp. 635-649, August 2004.
- J. Andrade et al.: "Computer-assisted discrepancy management: A case study in research transfer to industry", Journal of Research and Practice in Information Technology, vol. 36, no. 4, pp. 295-315, November 2004
- J. L. Mate and A. Silva: "Requirements Engineering for Sociotechnical Systems", Information Science Publishing, February, 2005.
- I. Sommerville: "Engineering Software Products: an Introduction to Modern Software Engineering", Pearson, 2020.
Idioma en que se imparte
Español
Competencias Específicas
Código | Competencia | Nivel |
---|---|---|
CEM1 | Identificar, a partir del estado de la cuestión, la presencia de problemas de investigación relacionados con la concepción, la construcción, el uso y la evaluación de sistemas sociotécnicos complejos que hagan un uso intensivo de software. | S |
CEM3 | Aplicar métodos de investigación relevantes a problemas abiertos en el área de la Ingeniería del Software, relacionados tanto con las características peculiares del producto software como con la gestión del desarrollo del mismo. | S |
Resultados de Aprendizaje
Código | Resultado de Aprendizaje | Competencias asociadas | Nivel de Adquisición |
---|---|---|---|
RA-IS-4 | Analizar investigaciones pioneras que pretendan cubrir debilidades en las actividades de requisitos y diseño de proyectos llevados a cabo con metodologías no clásicas | CEM1 | S |
RA-IS-7 | Cada estudiante deberá ser capaz de resumir, de una forma articulada y clara, los principales aspectos merecedores de investigación relacionados con los diferentes Retos de la Ingeniería del Software | CEM1 | S |
RA-IS-8 | Cada estudiante deberá ser capaz de articular diferentes vías de investigación, estructuradas como pequeñas propuestas de proyectos, y enraizadas en las limitaciones del estado del arte, para aquellos aspectos que se encuentran en las fronteras del conocimiento en distintas áreas de la Ingeniería del Software | CEM1, CEM3 | S |
RA-IS-31 | Permite al alumno modelar un programa con estructura procedimental a partir del enunciado de un problema | CEM3 | C |
RA-IS-32 | Permite al alumno evaluar si un programa con estructura procedimental es la adecuada atendiendo al enunciado de un problema | CEM3 | P |
RA-IS-87 | Modelar un programa con la estructura de un paradigma de programación a partir del enunciado de un problema | CEM1, CEM3 | P |
RA-IS-88 | Evaluar si un programa se ha desarrollado adecuadamente siguiendo un paradigma de programación atendiendo al enunciado del problema | CEM3 | C |
Guía de Aprendizaje
Guía de aprendizaje: Retos de la Ingeniería del Software para el siglo XXI