Section 1
Section Goals
- To describe the discipline of requirements engineering;
- To describe the requirements engineering process, and its relationship to other disciplines;
- To describe the approaches and techniques used in requirements elicitation.
Learning Objectives
Learning Objective 1
- Define software requirements.
- Describe the major types of requirements (product vs. process, functional vs. nonfunctional), and their emergent properties.
- Describe the importance of quantifiable requirements, and distinguish between system requirements and software requirements.
- Describe the importance of the requirements engineering discipline.
Objective Leading Questions
- Describe the three main types of requirements.
- What are quantifiable requirements?
- What is the difference between system requirements and software requirements?
- Why is requirements engineering important?
- What are the main findings of The Chaos Report [1994]?
- What are the main reasons for failed or challenged projects, and how can requirements engineering help prevent this from occurring?
- What are the most important aspects of requirements engineering, according to Sommerville [2005a]?
- What are the main challenges of the requirements engineering discipline?
- What technologies, disciplines, or approaches are the most promising for the future of requirements engineering?
Objective Readings
Required Readings
Chapter 1: "Introduction" and "Section 1: Software Requirements Fundamentals" of SWEBOK [Bourque and Fairley 2014].
The CHAOS report, (1994), Standish Group International, Boston. https://www.standishgroup.com/sample_research_files/chaos_report_1994.pdf
Dominguez, J. (2021), "The Curious Case of the CHAOS report 2009,". https://www.projectsmart.co.uk/it-project-management/the-curious-case-of-the-chaos-report-2009.php
Sommerville, I. (2005a), "Integrated Requirements Engineering: A Tutorial," IEEE Software 22, 1, 16-23. https://doi.org/10.1109/MS.2005.13
Supplemental Readings
Glass, R.L. (2006), "The Standish Report: Does it Really Describe a Software Crisis?" Communications of the ACM 49, 8, 15-16. https://doi.org/10.1145/1145287.1145301
Maiden, N. (2005), "What has Requirements Research ever done for us?" IEEE Software 22, 4, 104-105. https://doi.org/10.1109/MS.2005.113
Neill, C.J. and P.A. Laplante (2003), "Requirements Engineering: The State of the Practice," IEEE Software 20, 6, 40-45. https://doi.org/10.1109/MS.2003.1241365
Cheng, B.H.C. and J.M. Atlee (2007), "Research Directions in Requirements Engineering," In Future of Software Engineering [Conference Proceedings] , Institute of Electrical and Electronic Engineers, Los Alamitos, CA, pp. 285-303. https://doi.org/10.1109/FOSE.2007.17
Learning Objective 2
- Describe the requirements process.
- Describe how requirements engineering fits in with other software engineering processes.
- Describe process models, process actors, process support and management, and process quality and improvement.
- Describe the importance of stakeholders in the requirements engineering process.
Objective Leading Questions
- How would you describe the requirements engineering process?
- What are the most relevant approaches to the requirements engineering process?
- Define process model, process actors, process support and management, process quality and improvement.
- How would you describe the current state of support and management of the requirements processes?
- How would you describe the role of stakeholders in today's requirements engineering?
- How much do requirements engineers usually know about the stakeholders, and what are the main challenges in that process?
Objective Readings
Required Readings
Chapter 1: "Section 2: Requirement Process" of SWEBOK [Bourque and Fairley 2014].
Glinz, M. and R.J. Wieringa (2007a), "Stakeholders in Requirements Engineering," IEEE Software 24, 2, 18-20. http://dx.doi.org/10.1109/MS.2007.42
Supplemental Readings
Alexander, I. (2003b), "Stakeholders: Who is your System for?" Computing & Control Engineering Journal 14, 2, 22- 26. https://www.researchgate.net/publication/3363641_Stakeholders_Who_is_your_system_for
Learning Objective 3
- Define requirements elicitation.
- Describe the sources from which software requirements can be elicited, and how a software engineer can learn about software requirements.
- Describe the techniques and tools used in requirements elicitation.
Objective Leading Questions
- How would you describe the current use of techniques and tools in requirements elicitation?
- What are the biggest challenges of requirements elicitation?
- Give examples of the different types of settings (e.g., different types of companies, in terms of their size, organization, and outsourcing) where requirements elicitation can be carried out. Recommend techniques and tools that could be used. Discuss the pros and cons of your strategy.
- What are the most important aspects to address, in order to advance the current state of the art of requirements elicitation?
Objective Readings
Required Readings
Chapter 1: "Section 3: Requirement Elicitation" of SWEBOK [Bourque and Fairley 2014].
Zowghi, D. and C. Coulin (2005), "Requirements Elicitation: A Survey of Techniques, Approaches, and Tools," In Engineering and Managing Software Requirements, A. Aurum and C. Wohlin, Eds., Springer, Berlin, Germany, pp. 19-46. https://0-link-springer-com.aupac.lib.athabascau.ca/chapter/10.1007/3-540-28244-0_2
Supplemental Readings
Sinha, V., B. Sengupta and S. Chandra (2006), "Enabling Collaboration in Distributed Requirements Management," IEEE Software 23, 5, 52-61. https://doi.org/10.1109/MS.2006.123
Coughlan, J. and R.D. Macredie (2004), "Effective Communication in Requirements Elicitation: A Comparison of Methodologies," Requirements Engineering 7, 2, 47-60. https://doi.org/10.1007/s007660200004