The functions or tasks required to be performed by a system or software to achieve a particular state or result are known as requirements.
Software requirements are given by the users or stakeholders of the software they can be called as business requirements or functional requirements. The supporting requirements needed to perform the particular action to achieve a particular state are called non-functional requirements.
These requirements are broadly classified into 3 types
These are the requirements which are specifically demanded by the users are stakeholders to achieve a specific functionality or a result state. These requirements can be a calculation, report, a task to be performed, data manipulation or any business task.
Non Functional Requirements:-
These are the requirements which define the quality constraints of the functionality of particular software. Nonfunctional requirements are defined as the speed, quality, loading pages color etc. Nonfunctional requirements are the deals with issues like probability, scalability, security, maintainability, performance, reusability etc.
These are the requirements which are particularly related to the domain. These will change from domain to domain, these can be functional or non-functional requirements.
The requirements are gathered by using requirements elicitation techniques. Some of the prominent requirements gathering techniques are as follows:-
Joint application development sessions
Use cases document
After the successful understanding of the requirements feasibility study is done to asses weather the requirement can be fulfilled with the current available resources or not.
Difference between needs and requirement:-
Needs are the long term goals or the business objectives the company has to achieve in order to be successful. Requirements are small data and functionalities derived from the needs of the business. Requirements are the small broken down pieces of needs.