Requirements Analysis is the process of determining user expectations for a new or modified product. It is also the first stage in the systems engineering process and software development process. It is critical to the success or failure of a systems or software project. Requirements analysis is an important aspect of project management. It can be functional and non-functional. It is a subdiscipline of systems engineering and software engineering that is concerned with determining the goals, functions, and constraints of hardware and software systems.