Requirements Elicitation and Analysis
Requirements Elicitation and Analysis
Elicitation and
Analysis
Sommerville Book: Sections 4.5 and 4.6
• In this activity, software engineers work with the customers and end-
users to elicit the requirements
• It may involve different stakeholdes
• a stakeholder is a person who should have direct or indirect influence on the
system requirements
• Following are the main activities in the requirements elicitation and
analysis process:
• requirements discovery
• requirements classification and organization
• requirements prioritization and negotiation
• requirements specification
Challenges of Requirements
Elicitation
• Stakeholders often have a high-level vision of the system
• they may not be able to articulate exactly what they expect from the system
• Stakeholders may not describe many important aspects
• they take for granted this knowledge
• Requirements engineers have to discover commonalities and conflicts
among the requirements elicited from different stakeholders
• Political factors may try to influence requirements
• The economic and business environment may change the priorities of
the requirements
Requirements Discovery
• It is also called requirements elicitation
• We elicit requirements from stakeholders
• They also come from:
• the application domain
• other systems that interact with the application
Interviewing
• They are one of the most common techniques for requirements
elicitation
• Interviewer asks questions about:
• the current system that is being used
• the proposed system
• A closed interview has pre-defined questions
• An open interview has no pre-defined agenda
• Typically, interviews are a mix of the both
• It has the following limitations:
• Interviewees may not communicate implicit domain knowledge
• Interviewees may not communicate the actual power structure to an outsider
• Interviewer may misunderstand the domain-specific terminology
• An interviewer must be:
• open-minded without any pre-conceived ideas about requirements
Use Cases
• A use case is a scenario of how a user will interact with the system
• They help in adding detail to the outline requirements
• A typical scenario may include:
• what are the expectations at the start of the scenario
• normal flow of events
• what can go wrong and how to handle it
• any other parallel activities
• what would be the system state at the end of the scenario
• A use case diagram presents an overview of the system
• how each role interacts with the system
• Prepare a couple of use cases for your project
Ethnography
• A software system is used in a social and organizational context
• and its requirements may be constrained by these contexts
• Lack of consideration of these contexts may make a system unusable
• Contrary to our assumptions, actual work practices at the workplaces are
often
• far richer
• more complex
• more dynamic
• In ethnography, an anlyst immerses itself into the target working
environment of the system
• It helps to elicit requirements not implicitly stated by the stakeholders
• Ethnography can be combined with prototyping to reduce the refinement
cycles
• Prototyping may focus the ethnographic studies
• Becuase of the focus of ethnography on end-users, it may not be suitable
for discovering:
• organizational requirements
• domain requirements
• Therefore, we should use it in combination with other elicitation techniques