Introduction
Now that we have covered the initial stages of software development, such as requirement inception and elicitation, we will now shift our focus to requirement analysis.

Figure 7.1 Stages of the methodology.
As the usual, we open up with the definition of requirement analysis:
- The bare bones definition of requirement analysis is to understand how the software behaves and interact with other parts of the system.
- A more formal definition is the process of identifying, documenting, analyzing, and prioritizing the needs and expectations of stakeholders for a software or project.
It allows us to elaborate on basic requirements established during the inception, elicitation, and negotiation tasks that are part of requirements engineering. An important step in requirement analysis is requirement modelling.
Analysis Model
The requirement model must achieve three primary objectives:
- To describe what the customer requires.
- To establish a basis for the creation of a software design.
- To define a set of requirements that can be validated once the software is built.
The analysis model bridges the gap between a system-level description that describes the overall system and a software design.

Figure 7.2 The analysis model as a bridge.
When creating the analysis model, there’s a number of worthwhile rules of thumb that should be followed:
- The model should focus on requirements that are visible within the problem or business domain. The level of abstraction should be relatively high.
- Each element of the requirements model should add to an overall understanding of software requirements and provide insight into the information domain, function, and behavior of the system.
- Delay consideration of infrastructure and other nonfunctional models until design.