Module Code - Title:
CS5702
-
SOFTWARE ENGINEERING REQUIREMENTS
Year Last Offered:
2024/5
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
Rationale and Purpose of the Module:
System and software requirements exist at the boundary between the often conflicting needs and expectations of stakeholders and the myriad capabilities and potential of software to fulfil them. This module aims to provide students with a critical awareness of the inherent challenges and barriers to success in the engineering of requirements in addition to the knowledge and skills to elicit, document, verify, validate and manage software requirements in a variety of development situations. There is less emphasis on modelling than might be normally expected since UML notation is the focus of other M.Sc. modules such as System Design.
Syllabus:
The Requirements Process: Requirements in the Software Life Cycle; Requirements and Design; Requirements and Testing; Requirements Engineering;
The elicitation and discovery of requirements: The sources of requirements; The roles of Stakeholders; Discovering and Inventing Requirements; Elicitation techniques: Prototyping and Scenarios; Task Analysis; Joint techniques; Requirements workshops; Facilitation techniques; Usercentred requirements elicitation; Requirements situations;
The modelling and analysis of requirements: Uses of modelling; Models, descriptions and specifications; data requirements; analysis patterns; Problem Frames; Problem domain descriptions; Goals, Constraints, and Proposed Solutions in requirements documentation;
Requirements Documentation: Standards and Templates; Documentation styles: Domain level and product level Task Descriptions; Glossaries and data dictionaries; Domain-level requirements; Product-level requirements; Requirements Templates: IEEE-830 and Volere. Writing non-functional requirements; Interface requirements; Quality factors and quality requirements; Making requirements measurable;
Management of requirements: Keeping track of requirements; Change control; The requirements management process; Requirements attributes; Traceability; Tools;
Requirements validation: verification and validation of requirements; reviews and walkthroughs; the Quality of requirements; requirements defects; Requirements inspection techniques; Negotiation and agreement of requirements: Organisational and Social Issues.
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
1. Define, distinguish and discuss a wide range of requirements concepts and terminology including quality and other types of non-functional requirements.
2. Plan, describe and justify how requirements would be elicited, verified and validated with the stakeholders in different project situations.
3. Using a specification template such as the IEEE-830 or the Volere template, specify the functional requirements and the non-functional requirements for a given software product or system.
4. Select and justify appropriate requirements elicitation techniques for use in a given project or situation.
5. Select and justify appropriate requirements modelling techniques for use with different kinds of stakeholders.
6. Select and justify appropriate requirements management practices and requirements management tools.
7. Evaluate new or proposed requirements techniques and/or practices for suitability in a range of requirements situations.
Affective (Attitudes and Values)
1. Demonstrate an appreciation of the value and the need for involvement of all kinds of stakeholders in the requirements process.
2. Demonstrate an awareness of the inherent difficulty of achieving an ideal requirements specification.
Psychomotor (Physical Skills)
N/A
How the Module will be Taught and what will be the Learning Experiences of the Students:
Research Findings Incorporated in to the Syllabus (If Relevant):
Prime Texts:
S. Lauesen (2002)
Software Requirements, Styles and Techniques
, Addison Wesley
B. L. Kovitz (1997)
Practical Software Requirements: A Manual of Content and Style
, New York, Manning
M. Jackson (1995)
Software Requirements and Specifications: A Lexicon of Principles, Practices and Prejudices
, New York, ACM Press
S. Robertson and J. Robertson (2000)
Mastering the Requirements Process
, Addison Wesley
Other Relevant Texts:
E. Gottesdiener (2005)
The Software Requirements Memory Jogger
, GOAL/QPC
H. Beyer and K. Holtzblatt (1998)
Contextual Design: Defining Customer Centred Systems
, San Francisco, Morgan Kaufmann
D. C. Gause and G. M. Weinberg (1989)
Exploring Requirements: Quality before Design
, New York, Dorset House
M. Jackson (2000)
Problem Frames and Methods: Structuring and Analysing Software Development Problems
, Addison Wesley
Programme(s) in which this Module is Offered:
Semester(s) Module is Offered:
Module Leader:
John.Noll@ul.ie