It's a primary requirement needed in the development of a software product. These requirements works as a base and is being used in developing a particular software product to perform specifically for a targeted group or audience and for the specific environment.
Basically, these requirements imparts the appearance or an overview of a desired software product such as how will it look its functionality, features, how it should perform, etc. based on which, developer carries out the development of a software development.
These requirements are of very much importance as any sort of compromise to them may produce undesirable final product and may fail to meet the needs & expectations of a client or a user. Therefore, there exists a separate phase in a SDLC to gather, study and analyse the software requirements so as to avoid such type of circumstances.
Further, these requirements may also be categorized into multiple types, based on different perspective. Let’s go through each of them.
These requirements are specified from the business point of view. It generally involves the specified objectives and goals of a particular project that needs to be fulfilled. It provides an abstract of a project. These requirements are not meant for specifying the functionalities or technicalities of a desired software product rather it outlines a general overview of a product, such as its primary use, why it is needed, its scope & vision, what business benefits will be gain, intended audience or users, etc. It generally involves the participation of the client, stakeholders, business and project managers for gathering and analyzing the business requirements.
Through business requirements, it is easy to assess the project cost, time required, business risks involved and many such things associated with a software development project.
Requirements to be incorporated in a software product under development to make a software product perform and function in a specific manner to achieve a specific target and goal falls under the category of system requirements. These system requirements may be broadly classified in two types functional requirements and non-functional requirements.
Functional requirements: Requirements encompassing the functional attributes and behaviour of a software product are called functional requirements. These requirements reflects the working and functionalities of an intended software product.
These requirements defines and describes the functions to be performed, and features to be possessed by a software product. What and how does a product suppose to perform on accepting inputs from the user, and what desirable output it should provide to the users. These requirements should be complete and clearly well defined so as to meet all the specified feature and functionalities without misunderstanding or leaving the requirement so as to achieve a desirable quality product.
Non-Functional Requirements: Requirements other than functional requirements which are essential and contribute towards the performance of a software product under variant type of conditions and multiple environments are commonly known as Non-functional requirements. These requirements are used to evaluate and assess the software product behaviour other than its specific or desired behaviour under unexpected conditions and environment, contrary to what is favourable for its functioning. It also covers the standards, rules and regulation that a software product must adhere and conform to it.
These requirements are accountable for system's performance and quality and, generally cover the following requirements and attributes:
As there is no a specific criterion or rule to assess these non-functional aspects, it becomes a tedious job to verify these attributes of a software product. Hence, it requires the usage of metrics to validate a software product, quantitatively against these requirements.
Further, these requirements are documented in the form of Software Requirement Specification(SRS) by the project manager, which works as a manual for the development team to proceed the development process in a particular and correct direction.
Requirements generated from a users point of view and scenarios of using a software product in a multiple manner under real environment by a targeted user to execute a particular task, specifies the user requirements. It defines the user's expectation from a software product. As user’s exhaustive needs may not be covered under the domain of system requirement, it may be covered separately by business analysts through studying and analyzing the user requirements.
These types of requirements are generally gathered and documented using use cases, user scenarios, and user stories. These requirements are documented in a user requirement document (URD) format by making use of narrative text and are usually signed off by the intended users.