For initiating any project, the most important thing is the requirement gathering.
If any organisation wish to deliver the project or a software within the time and budget constraint, the most important thing is to gather the requirements properly.
One of the most important requirements for any software or the project is it’s functionality and use.
So before developing any software it is important to know what will be the use and how the software need to work. To achieve this purpose SRS plays a vital role.
SRS means for software requirements specification.
It is a document which describes what the product or software will do and how it will be going to perform. It describes the functionality of the software which meet the requirements of the client.
SRS describes what are the requirements of client and hence shows the picture of the project that we are going to deliver.
SRS document is very important for the smooth development of the project or the software.
SRS is generally prepared by the business analyst as he is communicating with client and gathering the requirements.
BA knows better about what the client is expecting from that project or software.
Following are the key elements of the Software requirements specification (SRS) which should be included in the document:
- System requirements
- Functional requirements
- Non-functional requirements
- Technical requirements
- Assumptions
- Acceptance criteria
- System requirements:
System requirements defines the requisite configuration which should be present in the system so as to perform it smoothly. Due to this we can avoid future problems which may rise related to the installation and the performance of the system.
- Functional requirements:
Functional requirements describe the functionality of the software. Hence the SRS document should contain the functional requirements so that developers can plan better to deliver it.
- Non-functional requirements:
Non- functional requirements do not directly relate to the functionality of the software but rather describe the environmental conditions under which the software must remain effective or the qualities the software must have. These are the requirements related to the security, speed, capacity of the software.
- Technical requirements:
Technical requirements refer to the technical aspects for the development of the software. It includes the system performance, reliability of the software and how readily accessible it is.
It will mention about the programming language, operation system that is supposed to use. This helps users and developers to understand the way to use the software.
- Assumptions:
Assumptions are the circumstances or the events that we assume to be happen during the software development. While doing the project planning team should make assumptions of the events that is going to happen during the software development so as to prepare a better plan to handle it.
- Acceptance Criteria:
Acceptance criteria is the requirement that must be meet by the developed software which will show whether the software is acceptable by the client or not.
It is different for each user story. It gives guidelines to the development team on how the function must be developed so that it will be accepted by the client.