21st Century Challenges for Software Engineering

Lecturer (Coordinator):
Andrés Silva
Nelson Medinilla


First semester




The major technological innovations taking place in the 21st century will in one way or another be connected to software development and how software is permeating all walks of life. Many of these innovations are actually technical and/or sociotechnical challenges that will not go away. When software enters new fields, it can lead to changes in work methods, cultural clashes and open the door to risk situations that should be dealt with promptly.

This subject aims to acquaint students with some software engineering problem areas warranting research on the grounds of their importance and durability. Another goal is to equip students with the knowledge and basic skills to be able to understand these problems, their importance, the state of the art and ongoing research.

Dictated by the profile of the Master in Software and Systems, the content of the subject will be linked to the lecturer's research experience and professional career.

Learning Goals

Examination of the state of the art to identify research problems related to the design, construction, use and evaluation of complex software-intensive sociotechnical systems


  1. Introduction and foundations
    1. Theoretical foundations of software engineering (SE)
    2. Organizational foundations of SE
  2. Challenges related to the requirements stage
    1. Introduction to requirements engineering (RE) and related problems
      1. RE problems in commercial software
      2. RE problems in critical software
    2. Sociotechnical ecosystems and RE related problems
    3. The Sensemaking-Coevolution-Implementation paradigm
  3. Challenges related to safety and accidents
    1. Accidents and modelling. Use of advanced software safety concepts
    2. Solutions: lessons learned systems and interaction-based analysis model
  4. Challenges related to critical infrastructures and software
    1. The problem of critical infrastructures
    2. Problem modelling and analysis in critical infrastructures

Recommended Reading

  • 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", 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", 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.pp. 295-315, November 2004
  • J. L. Mate and A. Silva: "Requirements Engineering for Sociotechnical Systems. Information Science Publishing", Feb. 2005.

Assessment Method

Students are required to submit four group papers related to several subject topics in order to pass the subject. For grading purposes, each paper shall be worth 1/4 of the final grade.

The work method throughout the subject will be based on two-week cycles as follows:

  • Every odd week, a topic (or subtopic) will be presented in the classroom. The lecturer will sometimes set application questions or examples.
  • Students will study the topic (or application example) and draft a report in groups.
  • The following (even) week students will have face-to-face tutorials with the lecturer to answer any questions about their draft report. This will provide students with the feedback that they require to move on to the following stage. Reports will also be presented in class.
  • Finally, each group will prepare the final version of the report (or solve the set problem/application example). Students will submit the reports to the lecturer, via Moodle, for grading.
  • This cycle will be repeated four times (covering a total of 8 weeks).

Tuition language


Subject-Specific Competences

Code, description and proficiency level for each subject-specific competence
Code Competence Proficiency Level
CEM1 Examination of the state of the art to identify research problems related to the design, construction, use and evaluation of complex software-intensive sociotechnical systems S
CEM3 Application of relevant research methods to open problems in the field of software engineering related to both the particular features of software and software development management S

Learning Outcomes

Code, description and proficiency level for each subject learning outcome
Code Learning Outcome Associated competences Proficiency level
RA-IS-4 Analyse groundbreaking research aimed at remedying the weaknesses in project requirements and design activities carried out using non-classical methodologies CEM1 S
RA-IS-7 Be able to coherently and clearly summarize the key aspects worth investigating related to different software engineering challenges CEM1 S
RA-IS-8 Be able to put together different research paths, structured as small-scale project proposals rooted in the weaknesses of the state of the art for aspects that are on the boundaries of knowledge in different software engineering fields CEM1, CEM3 S

Learning Guide

Learning Guide: 21st Century Challenges for Software Engineering