Software Requirements Specification Template
Software Requirements Specification Template
<Project Name>
Specification
Software Requirements (SRS)
Version <1.1.0>
Revision History
Date Version Description Author
2. General Description..................................................................................................4
2.1. Functional Specification..............................................................................4
2.2. Assumptions and Dependencies..................................................................4
2.3. Agreements with the Client for the Administration of Requirements.........5
3. Requirements Specification......................................................................................5
3.1. Use Case Reports.........................................................................................5
3.2. Functional Requirements.............................................................................5
3.3. Additional requirements..............................................................................7
3.4. Non-Functional Requirements.....................................................................7
3.5. Technical requirements...............................................................................8
3.6. Process Requirements..................................................................................8
4. Requirements Administration...................................................................................8
4.1. Set of Requirements...........................................................................................9
4.2. Individual Requirements....................................................................................9
4.3. Requirements Review Criteria.........................................................................10
1. Introduction
[The introduction to the Software Requirements Specification should
be a summary of the entire document. Should include the purpose,
scope, definitions, acronyms, abbreviations, references, and executive
summary of this document]
1.1. Purpose
The purpose of this document is to capture all of the software requirements of the
system, or a subset of the system.
1.2. Ambit
[Mandatory paragraph.]
1.4. References
[Mandatory paragraph if there are references.]
[This subsection should describe the rest of the document containing and
explaining how it is organized.]
2. General Description
[The description of the main factors affecting the solution space is
considered in this part. Include those items such as product perspective,
product features, user features, limitations, assumptions and
dependencies. The description of the requirements is not included in this
section.]
[If you use use case modeling, this section should contain the reference
to it, and a description or summary of the model or the most
representative subset of it. This includes a list of names and brief
descriptions of the use cases, actors, applicable diagrams and
relationships...
If there is no use case model, all existing descriptions of the
functionalities must be referenced, whether meeting minutes, emails, etc.
It is necessary to add those descriptions in this section and in section 1.4
References of the document all sources of the requirements need to be
mentioned.]
3. Requirements Specification
[This section should describe in detail all the software requirements, in
order to allow the designers to design the system to satisfy the
requirements as well as the testers to design an appropriate test plan to
verify compliance with them. When use case modeling is used, these
requirements are captured in the use cases, and in the applicable
additional specifications. If use case modeling is not used, the definition
of additional specifications should be inserted directly here.]
[In use case modeling, they define most of the functional requirements of
the system, and some non-functional requirements. For each use case in
the top model, or subset thereof, refer to or close the use case report in
this section. Make sure each requirement is clearly labeled.]
[For small projects, lasting less than a month and a team of less than 3
people, this paragraph can be replaced with a document reference
Analysis Preliminary.]
4. Requirements Administration
[Mandatory paragraph.]
[This section specifies how the requirements will be monitored, and the
documents associated with this monitoring, likewise, this section
describes how possible changes or new modifications that exist during the
project will be made. This can normally be followed with the
Requirements Management template which should be referenced in this
section.]
Normally these controls are carried out using Excel for greater ease in
control and administration.
4.1. Set of Requirements
Result
Characteristic
R1 R2 R3 Observations
Complete
Consistent
Correct
Prioritized
Understandable
Organized
(1) Requirement refers to Non-Functional and Functional when they are expressed in
sentences and not in C
4.3. Requirements Review Criteria
APPLY TO THE SET OF REQUIREMENTS
Applies to
All system software requirements are taken. These can be given in use cases or specification in Action to follow if
statements. Case of NOT compliant
Judgment
use
The software requirement set is complete if:
to). It includes requirements aimed at: functionality,
performance, reliability, usability, availability, error handling,
x x ALERT
configuration, maintenance, data loading, backup, debugging
and external interfaces.
to). The use case provides the interactions and behavior necessary to
x ARREST
satisfy the actors' goals or objectives.
d). For each use case, the software responses are defined.
Complete
to all actor inputs for both valid and invalid flows. x ARREST
to). There are no non-verifiable words or phrases such as: works well,
x x ARREST
fast, good performance, usually happens, among others.
Verifiable b). The requirement is stated in quantifiable and verifiable terms
x x ARREST
b). The requirement is written in the 'language' of the clients and users,
Understandable
using terms that are used in the business domain (Glossary). x x ALERT
The 'Use Case Reports' section in an SRS is meant to define most functional and some non-functional requirements of the system by detailing use cases. Each use case provides a scenario describing actor interactions necessary to achieve a goal, ensuring clear labeling and enhancing requirements understanding. This report supports both system design and validation efforts .
The SRS document suggests that changes to software requirements should be managed through agreements with the client, typically governed by the Service Order. This includes setting a percentage limit on changes to control their impacts, measured by the additional man-hours required. This structured approach ensures that requirements management accommodates necessary flexibility while maintaining project scope and timeline .
Consistency in software requirements is ensured by verifying that behavior specified in requirements does not conflict or repeat unnecessarily between different requirements. For example, there should be no conflicting preconditions between use cases, no repeated behavior across requirements, and no inconsistency in using different terms for the same behavior. Additionally, requirements for a given package should align with the theme or idea of that package .
Traceability is crucial as it ensures each software requirement is linked to both the business needs it addresses and the design components implementing it, allowing for easy verification of fulfillment. Forward traceability requires each requirement to be linked to design components, while backward traceability demands explicit reference to the source of each requirement, facilitating verification and impact analysis .
A set of software requirements is considered organized if they are presented using multiple diagrams or packages to divide and organize the system functionality in a way that is understandable to stakeholders. Requirements packages should intuitively organize the model, especially when the model is large or responsibilities are distributed. Examples of packages include those organized by functional area, by actor, or by dependency .
The 'General Description' includes product perspective, product features, user features, limitations, and assumptions and dependencies, which collectively outline factors influencing the solution space. This section shapes the solution space by elucidating the environment, identifying constraints, and specifying interactions between the system and its users and other systems. It sets foundational elements that define how requirements are developed and implemented .
A requirement is verifiable if stated in quantifiable and testable terms, with clear preconditions and postconditions in use cases. This ensures testers can create objective test cases to confirm each requirement's implementation. Ensuring verifiability is vital as it provides measurable criteria to assess project delivery and compliance with specified needs .
An unambiguous requirement has a single interpretation by users and implementers, avoiding words or phrases that allow multiple meanings, such as conjunctions or disjunctions, and vague terms. Ambiguity risks confusion, misinterpretation, and errors in implementing the requirement, leading to defects and unmet expectations .
Non-functional requirements must specify aspects like response time, aesthetics, navigation ease, and other performance metrics. Each requirement should include fields such as versioning, the date requested, priority, state, category, and a brief description, enabling detailed understanding and tracking of each non-functional aspect's implementation .
Functional requirements should be thoroughly detailed, ensuring clarity for designers, programmers, and testers. This involves a comprehensive description of required functionalities, allowing the corresponding design, implementation, and testing plans to be properly formulated. Data definition includes prioritization, current status, category, and state of each requirement, providing complete visibility into each functional aspect .