Lecture 4: Elicitation
This is the phase of requirements engineering where requirements are gathered.
Requirements Sources
There are 3 different kinds on requirements sources.
- Stakeholders: people or organizations that (directly or indirectly) influence the requirements of a system
- e.g. users of the system, operators of the system, developers, architects, customers, and testers
- Documents: they often contain important information that can provide requirements
- e.g. standards, legal documents, organization-specific documents, error reports of legacy systems
- System in Operation: The legacy system + competing systems
Elicitation Techniques
The main goal of all elicitation techniques is to support the requirements engineer in ascertaining the knowledge and requirements of the stakeholders. How and when a technique can be applied depends on the given conditions.
Every project has its individual constraints and characteristics that make certain elicitation techniques more suitable than others. The most important factors when choosing a certain technique are:
- The distinction between conscious, unconscious, and subconscious requirements that are to be elicited
- The time and budget constraints, as well as the availability of the stakeholders
- The experience of the requirements engineer with a particular elicitation technique
- The chances and risks of the project
Survey Techniques
Aim at eliciting as precise and unbiased statements as possible from stakeholders regarding their requirements. Survey techniques are usually driven by the requirements engineer because she asks the questions. They include:
Interview: asks predetermined questions to one or more stakeholders and documents the answers
- An experienced interviewer ensures the completeness of the answers (follow-up questions)
- very time-consuming
Questionnaire: use of open and/or closed questions (MCQ)
If there is a large number of participants that must be surveyed, an online questionnaire is a viable option
can elicit a magnitude of information in a short amount of time and at low costs
can be employed only to gather requirements that the requirements engineer already knows or conjectures
often tricky and time-consuming; requires thorough knowledge of the domain in question
As opposed to interviews, do not provide immediate feedback
Creativity Techniques
Creativity techniques serve the purpose of developing innovative requirements, delineating an initial vision of the system, and eliciting excitement factors.
They are usually not well-suited for establishing fine-grained requirements for the system behavior. Examples include
- Brainstorming: ideas are collected within a certain time frame, usually in groups of 5 to 10 people.
- ideas are documented by a moderator without discussing, judging, or commenting on them at first
- use ideas of other participants to develop new original ideas or to modify existing ideas
- After collection, ideas are subjected to a thorough analysis
- effective when a large number of people from different stakeholder groups are involved
- A large number of ideas can be collected in a short amount of time
- Less effective when the dynamics of the group are muddled, or when participants with very varied levels of dominance are involved
- Brainstorming Paradox: modification of regular brainstorming in that events that must not occur are collected
- risks can be identified early on, and countermeasures can be developed
- Advantages and disadvantages are identical to brainstorming
- Change of Perspective: One example is the 6 hats, where each hat represents a certain perspective that is adopted by each of the participants.
- resulting solutions approach the problem from different standpoints
- stakeholders who are very convinced of their own opinion is persuaded to adopt a different standpoint
- useful when stakeholders can only express their knowledge in a biased way
- cannot be applied if the requirements require a fine-grained level of detail
Document-Centric Techniques
Document-centric techniques reuse solutions and experiences made with existing systems.
Document-centric techniques should be combined with other elicitation techniques so that the validity of the elicited requirements can be determined and new requirements for the new system can be identified.
Examples include:
System archaeology: extracts information required to build a new system from the documentation or implementation (code) of a legacy system or a competitor’s system
- applied when explicit knowledge about the system logic has been lost
- leads to a large amount of very detailed requirements
- very hard to apply
- the only technique that can ensure that all functionalities of the legacy system will be implemented in the new system
Perspective-Based: applied when documents need to be read with a particular perspective in mind
Ignores document aspects that do not pertain the current perspective
allows for an analysis that is strictly focused on particular parts of existing documentation
Reuse: Reusing requirements that have been previously compiled and brought upto a certain quality standard
e.g. login-security, online payment
significantly reduces the costs involved with the elicitation procedures
original requirements have to be stored to be reused
Observation Techniques
Observation techniques are helpful when domain specialists are unable to spend the time needed to share their expertise with the requirements engineer.
During observation, the requirements engineer observes the stakeholders while they go about their work.
Observation techniques are well-suited to elicit detailed requirements
Examples include:
Field Observation: requirements engineer is on location with the specialist or the users of the system and observes and documents the processes and operational procedures carried out
can be further aided by audio and video recordings
well-suited for operational procedures that are difficult to express verbally
With Apprenticing: the requirements engineer must actively learn and perform the procedures of the stakeholders
- The requirements engineer is encouraged to question unclear and complex operational procedures to gain domain experience