In fact, the most common reasons for project failure are directly related with this issue: communication between users and analysts. If analysts do not understand user needs, they will deliver a system that is not useful. If users do not understand how the solution will behave, they will have unrealistic expectations that will not be fulfilled by the delivered system.
In order to deal with these problems, Requirements Engineering has been developed as the branch of Systems Engineering that covers all of the techniques, methods, and procedures applied to the definition and management of the user needs that the system under study must satisfy.
Role of requirements in the system lifecycle:
Requirements are vital throughout the whole lifecycle of a system. The process of building a system begins with the identification of high level user requirements, that get completed and refined in later stages of the project lifecycle, and eventually evolve into technical specifications that define the system to be developed.
Requirements are the reference for a range of activities in system development: