SRS Document Template
SRS Document Template
SRS Document Template
17.12.2015
Revision History
Date Description Author Comments
<date> <Version 1> <Your Name> <First Revision>
Document Approval
The following Software Requirements Specification has been accepted and approved by the following:
Signature Printed Name Title Date
Dr. Supervisor, CSIT 21306 <date>
ii
Project Title
Table of Contents
1. Introduction 1
1.1 Purpose 1
1.2 Scope 1
1.3 Definitions, Acronyms, and Abbreviations. 1
1.4 References 1
1.5 Overview 1
3. Specific Requirements 4
3.1 External Interface Requirements 5
3.1.1 System Interfaces 5
3.1.2 Interfaces 5
3.1.3 Hardware Interfaces 5
3.1.4 Software Interfaces 5
3.1.5 Communications Interfaces 6
3.2 Functional Requirements 6
3.2.1 <Functional Requirement or Feature #1> 6
3.2.2 <Functional Requirement or Feature #2> 6
3.3 Use Cases 7
3.3.1 Use Case #1 7
3.3.2 Use Case #2 7
3.4 Classes / Objects 7
3.4.1 <Class / Object #1> 7
3.4.2 <Class / Object #2> 7
3.5 Non-Functional Requirements 7
3.5.1 Performance 7
3.5.2 Reliability 7
3.5.3 Availability 7
3.5.4 Security 7
3.5.5 Maintainability 7
3.5.6 Portability 7
3.6 Inverse Requirements 7
3.7 Logical Database Requirements Error! Bookmark not defined.
3.8 Design Constraints Error! Bookmark not defined.
iii
Project Title
iv
Project Title
1. Introduction
The following subsections of the Software Requirements Specifications (SRS) document should
provide an overview of the entire SRS. The thing to keep in mind as you write this document is
that you are telling what the system must do – so that designers can ultimately build it. Do not use
this document for design!!!
1.1 Purpose
Identify the purpose of this SRS and its intended audience. In this subsection, describe the purpose
of the particular SRS and specify the intended audience for the SRS.
1.2 Scope
In this subsection:
(1) Identify the software product(s) to be produced by name
(2) Explain what the software product(s) will, and, if necessary, will not do
(3) Describe the application of the software being specified, including relevant
benefits, objectives, and goals
(4) Be consistent with similar statements in higher-level specifications if they
exist
This should be an executive-level summary. Do not enumerate the whole requirements list here.
1.4 References
In this subsection:
(1) Provide a complete list of all documents referenced elsewhere in the SRS
(2) Identify each document by title, report number (if applicable), date, and
publishing organization
(3) Specify the sources from which the references can be obtained.
This information can be provided by reference to an appendix or to another document. If your
application uses specific protocols or RFC’s, then reference them here so designers know where
to find them.
1.5 Overview
In this subsection:
(1) Describe what the rest of the SRS contains
2.1.1 Operations
Specify the normal and special operations required by the user such as:
(1) The various modes of operations in the user organization
(2) Periods of interactive operations and periods of unattended operations
(3) Data processing support functions
(4) Backup and recovery operations
(Note: This is sometimes specified as part of the User Interfaces section.) If you separate this
from the UI stuff earlier, then cover business process type stuff that would impact the design. For
instance, if the company brings all their systems down at midnight for data backup that might
impact the design. These are all the work tasks that impact the design of an application, but which
might not be located in software.
(1) Define the requirements for any data or initialization sequences that are specific to a
given site, mission, or operational mode
(2) Specify the site or mission-related features that should be modified to adapt the
software to a particular installation
If any modifications to the customer’s work area would be required by your system, then document
that here. For instance, “A 100Kw backup generator and 10000 BTU air conditioning system must
be installed at the user site prior to software installation”.
This could also be software-specific like, “New data tables created for this system must be installed
on the company’s existing DB server and populated prior to system activation.” Any equipment
the customer would need to buy or any software setup that needs to be done so that your system
will install and operate correctly should be documented here.
3. Specific Requirements
This will be the largest and most important section of the SRS. The customer requirements will
be embodied within Section 2, but this section will give the D-requirements that are used to guide
the project’s software design, implementation, and testing.
Each requirement in this section should be:
Correct
Traceable (both forward and backward to prior/future artifacts)
Unambiguous
Verifiable (i.e., testable)
Prioritized (with respect to importance and/or stability)
Complete
Consistent
Uniquely identifiable (usually via numbering like 3.4.5.6)
Attention should be paid to the carefully organize the requirements presented in this section so that
they may easily accessed and understood. Furthermore, this SRS is not the software design
document, therefore one should avoid the tendency to over-constrain (and therefore design) the
software project within this SRS.
3.1.2 Interfaces
Specify:
(1) The logical characteristics of each interface between the software product and its
users.
(2) All the aspects of optimizing the interface with the person who must use the system
This is a description of how the system will interact with its users. Is there a GUI, a command line
or some other type of interface? Are there special interface requirements? If you are designing
for the general student population for instance, what is the impact of ADA (American with
Disabilities Act) on your interface?
(1) Discussion of the purpose of the interfacing software as related to this software
product
(2) Definition of the interface in terms of message content and format
Here we document the APIs, versions of software that we do not have to write, but that our system
has to use. For instance if your customer uses SQL Server 7 and you are required to use that, then
you need to specify i.e.
3.1.4.1 Microsoft SQL Server 7
The system must use SQL Server as its database component. Communication with the DB is
through ODBC connections. The system must provide SQL data table definitions to be provided
to the company DBA for setup.
A key point to remember is that you do NOT want to specify software here that you think would
be good to use. This is only for customer-specified systems that you have to interact with.
Choosing SQL Server 7 as a DB without a customer requirement is a Design choice, not a
requirement. This is a subtle but important point to writing good requirements and not over-
constraining the design.
3.2.1.2 Inputs
3.2.1.3 Processing
3.2.1.4 Outputs
3.4.1.2 Functions
<Reference to functional requirements and/or use cases>
3.5.1 Performance
3.5.2 Reliability
3.5.3 Availability
3.5.4 Security
3.5.5 Maintainability
3.5.6 Portability