Software Requirement Specification
Software Requirement Specification
Requirements document present on overview of product features and summaries the processing
requirement for development operation and maintance of product.
The format of software requirement specification are presented as follows,
1) Product overview and summary
2) Development operating and maintance
3) External interfaces and data flow
4) Functional requirement
5) Performance requirement
6) Exception handling
7) Early subset and implementation properties
8) Foreseeable modification and enchancement
9) Acceptance criteria
10) Design hints and guide lines
11) Cross reference syntax
12) Glossary of terms.
Characteristics of an SRS
Software requirements specification should be accurate, complete, efficient, and of high quality, so that it does
not affect the entire project plan. An SRS is said to be of high quality when the developer and user easily
understand the prepared document. Other characteristics of SRS are discussed below.
Correct
SRS is correct when all user requirements are stated in the requirements document.
The stated requirements should be according to the desired system.
This implies that each requirement is examined to ensure that it (SRS) represents user requirements.
Note that there is no specified tool or procedure to assure the correctness of SRS. Correctness
ensures that all specified requirements are performed correctly.
Unambiguous
SRS is unambiguous when every stated requirement has only one interpretation.
This implies that each requirement is uniquely interpreted.
In case there is a term used with multiple meanings, the requirements document should
specify the meanings in the SRS so that it is clear and easy to understand.
Complete
SRS is complete when the requirements clearly define what the software is required to do.
This includes all the requirements related to performance, design and functionality.
Ranked for importance/stability
All requirements are not equally important, hence each requirement is identified to make
differences among other requirements.
For this, it is essential to clearly identify each requirement. Stability implies the probability of
changes in the requirement in future.
Modifiable
The requirements of the user can change, hence requirements document should be created in such a
manner that those changes can be modified easily, consistently maintaining the structure and style
of the SRS.
Traceable
SRS is traceable when the source of each requirement is clear and facilitates the reference of
each requirement in future.
For this, forward tracing and backward tracing are used.
Forward tracing implies that each requirement should be traceable to design and code elements.
Backward tracing implies defining each requirement explicitly referencing its source.
Verifiable
SRS is verifiable when the specified requirements can be verified with a cost-effective
process to check whether the final software meets those requirements.
The requirements are verified with the help of reviews. Note that unambiguity is essential for
verifiability.
Consistent
SRS is consistent when the subsets of individual requirements defined do not conflict with
each other.
For example, there can be a case when different requirements can use different terms to refer
to the same object.
There can be logical or temporal conflicts between the specified requirements and some
requirements whose logical or temporal characteristics are not satisfied.
For instance, a requirement states that an event 'a' is to occur before another event 'b'. But then
another set of requirements states (directly or indirectly by transitivity) that event 'b' should
occur before event 'a'.
(2) Functional and Non-Functional Requirements
Functional requirements
These describe the functionality of a system -- how a system should react to a particular set of
inputs and what should be the corresponding output.
Given a problem statement, the functional requirements could be identified by focusing on the
following points:
̶ Identify the high level functional requirements simply from the conceptual understanding of
the problem. For example, a Library Management System, apart from anything else, should be
able to issue and return books.
̶ Identify the cases where an end user gets some meaningful work done by using the system.
For example, in a digital library a user might use the "Search Book" functionality to obtain
information about the books of his interest.
̶ If we consider the system as a black box, there would be some inputs to it, and some output
in return. This black box defines the functionalities of the system. For example, to search for
a book, user gives title of the book as input and get the book details and location as the
output.
̶ Any high level requirement identified could have different sub-requirements. For example,
"Issue Book" module could behave differently for different class of users, or for a particular
user who has issued the book thrice consecutively.
Non-Functional requirements
They are not directly related what functionalities are expected from the system.
However, NFRs could typically define how the system should behave under certain situations.
For example, a NFR could say that the system should work with 128MB RAM.
Product requirements
Requirements which specify that the delivered product must behave in a particular way e.g.
execution speed, reliability, etc.
Organisational requirements
Requirements which are a consequence of organisational policies and procedures e.g. process
standards used, implementation requirements, etc.
External requirements
Requirements which arise from factors which are external to the system and its development process
e.g. interoperability requirements, legislative requirements, etc.
Example:
Functional Requirements for Hotel Management System
1. Reservation/Booking
1.1. The system shall record reservations.
1.2. The system shall record the customer’s first name.
1.3. The system shall record the customer’s last name.
1.4. The system shall record the number of occupants.
1.5. The system shall record the room number.
1.6. The system shall display the default room rate.
1.7. The system shall record the customer’s phone number.
1.8. The system shall display whether or not the room is guaranteed.
1.9. The system shall generate a unique confirmation number for each reservation.
1.10. The system shall record the expected check-in date and time.
1.11. The system shall record the expected checkout date and time.
1.12. The system shall check-in customers.
1.13. The system shall allow reservations to be modified without having to reenter all the
customer information.
1.14. The system shall checkout customers.
1.15. The system shall charge the customer for an extra night if they checkout after 11:00 a.m.
1.16. The system shall mark guaranteed rooms as “must pay” after 6:00 pm on the check-
in date.
1.17. The system shall record customer feedback.
2. Food
2.1. The system shall track all meals purchased in the hotel (restaurant and room service).
2.2. The system shall record payment and payment type for meals.
2.3. The system shall bill the current room if payment is not made at time of service.
2.4. The system shall accept reservations for the restaurant and room service.
3. Management
3.1. The system shall display the hotel occupancy for a specified period of time (days;
including past, present, and future dates).
3.2. The system shall display projected occupancy for a period of time (days).
3.3. The system shall display room revenue for a specified period of time (days).
3.4. The system shall display food revenue for a specified period of time (days).
3.5. The system shall display an exception report, showing where default room and food
prices have been overridden.
3.6. The system shall allow for the addition of information, regarding rooms, rates, menu
items, prices, and user profiles.
3.7. The system shall allow for the deletion of information, regarding rooms, rates, menu
items, prices, and user profiles.
3.8. The system shall allow for the modification of information, regarding rooms, rates,
menu items, prices, and user profiles.
3.9. The system shall allow managers to assign user passwords.