Requirements Elicitation and Analysis Techniques COMP8100
Course overview
Assumed knowledge & required skills
UML and programming design (any language)
Course description
Several alternatives for eliciting, describing and managing requirements during the early period of systems and software development will be presented and discussed. Several analysis techniques will be described and demonstrated including process, state and object-oriented techniques. Requirements Models will be discussed in detail together with the benefits and differences among the various modelling methods.
This course can be studied for credit in the following programs:
- Master of Computing/Master of Computing Honours
- Graduate Studies
- and as an elective in other programs.
Course content
• Requirements elicitation and analysis challenges
• Requirements elicitation methods
• Requirements analysis methods
• Requirements documentation approaches
• Requirements specification construction
• Requirements management practices
Rationale
Many projects fail because they don't meet the required specification. Many more fail because the required specification doesn't actually reflect what's needed.
This course is intended to ensure that the documented requirements accurately reflect the best possible system that can be built under the circumstances.
Ideas
What makes a project successful (or unsuccessful)?
Who are the stakeholders in a project?
How do we communicate our view of what's needed to Users? Developers? Those paying for the project?
Requirements change - how do we manage that?
Topics
1 The essential software requirement
2 Requirements from the customer’s
perspective
3 Good practices for requirements
engineering
4 The requirements analyst
5 Establishing the project vision and
scope
6 Finding the voice of the customer
7 Hearing the voice of the customer
8 Understanding user requirements
9 Playing by the rules
10 Documenting the requirements
11 A picture is worth a 1024 words
12 Software quality attributes
13. Prototyping
14. Setting requirements priorities
15. Validating requirements
16. Requirements development challenges
17. Beyond requirements development
18. Requirements management principles and practices
19. Change happens
20. Links in the requirements chain
21. Tools for requirements management
22. Improving your requirements processes
23. Software Requirements and Risk
Technical skills
Technical - documenting a set of requirements in a formal and unambiguous way that developers can understand.
Interpersonal - Interviewing stakeholders to elicit the requirements, a combination of detective work, communication, interrogation, inquisition, and negotiation.
Managerial - keeping track of and reacting to change. Collecting metrics to ensure continuous process improvement.
Textbooks
Textbook (Mandatory)
Software Requirements (2nd Edition) by
Karl Wiegers - 2003: Microsoft Press
ISBN 0-7356-1879-8
Reference (Recommended)
More Software Requirements by Karl Wiegers - 2006: Microsoft Press
Attendance
While attendance at every lecture is not absolutely mandatory, not everything is in the lecture notes.
Attending tutorials is required, as the course has a strong practical component, where learning is accomplished by doing.
Workload
Two 2-hour lectures per week. One 2-hour tutorial per week.
2 Assignments over the semester, each expected to take at least 10, but not more than 15, hours work.
Preparation for lectures and tutorials - at least one hour each.
