Requirement Gathering
Requirement Gathering
Requirement Gathering
Requirement Gathering
What happens if you skip gathering requirements
for your software project?
4
Requirements abstraction
5
Requirements specification
The process of writing down the user and system requirements in a
requirements document.
System requirements are more detailed requirements and may include more
technical information.
6
Ways of writing a system requirements
specification
Notation Description
Natural language The requirements are written using numbered sentences in natural language. Each sentence should
express one requirement.
Structured natural The requirements are written in natural language on a standard form or template. Each field provides
language information about an aspect of the requirement.
Design description This approach uses a language like a programming language, but with more abstract features to
languages specify the requirements by defining an operational model of the system. This approach is now rarely
used although it can be useful for interface specifications.
Graphical notations Graphical models, supplemented by text annotations, are used to define the functional requirements
for the system; UML use case and sequence diagrams are commonly used.
Mathematical These notations are based on mathematical concepts such as finite-state machines or sets. Although
specifications these unambiguous specifications can reduce the ambiguity in a requirements document, most
customers don’t understand a formal specification. They cannot check that it represents what they
want and are reluctant to accept it as a system contract
7
Types of requirement
8
User and system requirements
9
Functional and non-functional requirements
• Functional requirements
• Statements of services the system should provide, how the system should react to
particular inputs and how the system should behave in particular situations.
• May state what the system should not do.
• Non-functional requirements
• Constraints on the services or functions offered by the system such as timing
constraints, constraints on the development process, standards, etc.
• Often apply to the system as a whole rather than individual features or services.
• Domain requirements
• Constraints on the system from the domain of operation
10
Functional requirements
• Describe functionality or system services.
• Depend on the type of software, expected users and the type of
system where the software is used.
• Functional user requirements may be high-level statements of what
the system should do.
• Functional system requirements should describe the system services
in detail.
11
Functional requirement examples for a
Mental Care System
• A user shall be able to search the appointments lists for all clinics.
• The system shall generate each day, for each clinic, a list of patients
who are expected to attend appointments that day.
• Each staff member using the system shall be uniquely identified by his
or her 8-digit employee number.
12
Non-functional requirements
• These define system properties and constraints e.g. reliability,
response time and storage requirements. Constraints are I/O device
capability, system representations, etc.
13
Types of non-functional requirement
14
Non-functional requirements implementation
• Non-functional requirements may affect the overall architecture of a
system rather than the individual components.
• For example, to ensure that performance requirements are met, you may
have to organize the system to minimize communications between
components.
15
Outline
• Introduction
• Stakeholder analysis
• Artefact-driven elicitation techniques
• Background study
• Questionnaires
• Storyboards
• Scenarios
• Stakeholder-driven elicitation techniques
• Interviews
• Observation & ethnographic studies
• Requirements validation
• Requirements Prioritization
16
Stakeholder analysis
• Stakeholder cooperation is essential for successful req. gathering
• Elicitation = cooperative learning
18
Questionnaires
• Submit a list of questions to selected stakeholders, each with a list of
possible answers (+ brief context if needed)
• Multiple choice question: one answer to be selected from answer list
• Weighting question: list of statements to be weighted...
• qualitatively (‘high’, ‘low”, ...), or
• quantitatively (percentages)
• to express perceived importance, preference, risk etc.
19
Questionnaires should be carefully
prepared
20
Storyboards
• Goal: acquire or validate info from concrete examples
through narratives ...
• how things are running in the system-as-is
• how things should be running in the system-to-be
21
Storyboards: Color Blind Example
22
Scenarios
• Illustrate typical sequences of interaction among system components
to meet an implicit objective
• Widely used for...
• explanation of system-as-is
• exploration of system-to-be + elicitation of further info ...
e.g. WHY this interaction sequence ?
WHY among these components ?
• specification of acceptance test cases
24
Outline
• Introduction
• Stakeholder analysis
• Artefact-driven elicitation techniques
• Background study
• Questionnaires
• Storyboards
• Scenarios
• Stakeholder-driven elicitation techniques
• Interviews
• Observation & ethnographic studies
• Requirements validation
• Requirements Prioritization
25
Interviews
• Primary technique for knowledge elicitation
1. Select stakeholder specifically for info to be acquired
(domain expert, manager, salesperson, end-user, consultant, ...)
2. Organize meeting with interviewee, ask questions, record answers
3. Write report from interview transcripts
4. Submit report to interviewee for validation & refinement
• Single interview may involve multiple stakeholders
J saves times
L weaker contact; individuals less involved, speak less freely
• Interview effectiveness (measured as weighted ratio):
(utility x coverage of acquired info) / time needed
26
Types of interview
27
Interviews: strengths & difficulties
30
Outline
• Introduction
• Stakeholder analysis
• Artefact-driven elicitation techniques
• Background study
• Questionnaires
• Storyboards
• Scenarios
• Stakeholder-driven elicitation techniques
• Interviews
• Observation & ethnographic studies
• Requirements validation
• Requirements Prioritization
31
Requirements Validation
• Concerned with demonstrating that the requirements define the system that the customer
really wants.
• Requirements error costs are high so validation is very important
• Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an
implementation error.
• Requirements checking, includes:
• Validity. Does the system provide the functions which best support the customer’s
needs?
• Consistency. Are there any requirements conflicts?
• Completeness. Are all functions required by the customer included?
• Realism. Can the requirements be implemented given available budget and technology
• Verifiability. Can the requirements be checked?
32
Requirements validation techniques
• Requirements reviews
• Systematic manual analysis of the requirements.
• Verifiability: Is the requirement realistically testable?
• Comprehensibility: Is the requirement properly understood?
• Traceability: Is the origin of the requirement clearly stated?
• Adaptability: Can the requirement be changed without a large impact on other
requirements?
• Prototyping
• Using an executable model of the system to check requirements.
• Test-case generation
• Developing tests for requirements to check testability.
33
Requirement Prioritization
• Prioritization can be applied to requirements/User Stories, tasks, products,
use cases, acceptance criteria and tests.
• MoSCoW prioritization, also known as the MoSCoW method or MoSCoW
analysis, is a popular prioritization technique for managing requirements.
• The acronym MoSCoW represents four categories of initiatives:
• Must-have:
Non-negotiable product needs that are mandatory for the team.
• Should-have:
Important initiatives that are not vital but add significant value.
• Could-have:
Nice to have initiatives that will have a small impact if left out.
• Will not have right now:
Initiatives that are not priority for this specific time frame.
• Categorizing a requirement as a Should Have or Could Have does not mean
it won’t be delivered; simply that delivery is not guaranteed.
34
Must Have
• These provide the Minimum Usable SubseT (MUST) of requirements
which the project guarantees to deliver. These may be defined using
some of the following:
• No point in delivering on target date without this; if it were not delivered,
there would be no point deploying the solution on the intended date
• Not legal without it
• Unsafe without it
• Cannot deliver a viable solution without it
• Ask the question ‘what happens if this requirement is not met?’ If the
answer is ‘cancel the project – there is no point in implementing a
solution that does not meet this requirement’, then it is a Must Have
requirement.
35
Should & Could Have
• Should Have requirements are defined as:
• Important but not vital
• May be painful to leave out, but the solution is still viable
• May need some kind of workaround, e.g. management of expectations, some
inefficiency, an existing solution, paperwork etc. The workaround may be just a
temporary one