Software Requirements Specification (SRS) Template : Delete This Page After Reading/before Submission
Software Requirements Specification (SRS) Template : Delete This Page After Reading/before Submission
The document in this file is an annotated outline for specifying software requirements, adapted
from the IEEE Guide to Software Requirements Specifications (Std 830-1993).
Tailor this to your needs, removing explanatory comments as you go along. Where you decide
to omit a section, you might keep the header, but insert a comment saying why you omit the data.
In this template you will find text bounded by the “< >” symbols. This text appears in italics
and is intended to guide you through the template and provide explanations regarding the
different sections in this document. There are two types of comments in this document. These
comments that are in black are intended specifically for that course. These comments that are
in blue are more general and apply to any SRS. Please, make sure to delete all of the
comments before submitting the document.
The explanations provided below, do not cover all of the material, but merely, the general nature
of the information you would usually find in SRS documents. It is based on the IEEE
requirements and was adapted specifically for the needs of Software Engineering courses. Most
of the sections in this template are required sections, i.e. you must include them in your version
of the document. Failure to do so will result in marks deductions. Optional sections will be
explicitly marked as optional. >
Please write ‘to the point text’ in this proposal. No lengthy stories!
Software Requirements Specification for <Project> Page ii
Version: 1.0
Date: (dd/02/2020)
Number of hours spent on this document: <Total hours>
Software Requirements Specification for <Project> Page iii
Content
CONTENTS................................................................................................................................................................III
1 INTRODUCTION................................................................................................................................................1
1.1 DOCUMENT PURPOSE.................................................................................................................................1
1.2 PRODUCT SCOPE........................................................................................................................................1
1.3 INTENDED AUDIENCE AND DOCUMENT OVERVIEW....................................................................................1
1.4 DEFINITIONS, ACRONYMS AND ABBREVIATIONS........................................................................................1
1.5 REFERENCES AND ACKNOWLEDGMENTS...................................................................................................1
2 OVERALL DESCRIPTION...............................................................................................................................2
2.1 PRODUCT PERSPECTIVE.............................................................................................................................2
2.2 PRODUCT FUNCTIONALITY..........................................................................................................................2
2.3 USERS AND CHARACTERISTICS..................................................................................................................2
2.4 ASSUMPTIONS AND DEPENDENCIES...........................................................................................................2
3 SPECIFIC REQUIREMENTS...........................................................................................................................3
3.1 FUNCTIONAL REQUIREMENTS.....................................................................................................................3
3.2 EXTERNAL INTERFACE REQUIREMENTS.....................................................................................................4
3.3 USE CASE VIEW..........................................................................................................................................5
4 OTHER NON-FUNCTIONAL REQUIREMENTS..........................................................................................6
4.1 PERFORMANCE REQUIREMENTS................................................................................................................6
4.2 SAFETY AND SECURITY REQUIREMENTS...................................................................................................6
4.3 SOFTWARE QUALITY ATTRIBUTES..............................................................................................................6
APPENDIX A – TOP 10 USER STORIES...............................................................................................................7
APPENDIX B – ARCHITECTURAL SPIKE (ONE STORY).................................................................................8
APPENDIX C - GROUP LOG....................................................................................................................................9
APPENDIX D – CONTRIBUTION STATEMENT.................................................................................................10
Software Requirements Specification for <Project> Page 1
1 Introduction
<TO DO: Please provide a brief introduction to your project and a brief overview of what the reader
will find in this section.>
2 Overall Description
2.1 Product Perspective
<Describe the context and origin of the product being specified in this SRS. For example, state
whether this product is a follow-on member of a product family, a replacement for certain existing
systems, or a new, self-contained product. If the SRS defines a component of a larger system,
relate the requirements of the larger system to the functionality of this software and identify
interfaces between the two. In this part, make sure to include a simple diagram that shows the
major components of the overall system, subsystem interconnections, and external interface. In
this section it is crucial that you will be creative and provide as much information as possible.
TO DO: Provide at least one paragraph describing product perspective. Provide a general diagram
that will illustrate how your product interacts with the environment and in what context it is being
used.>
3 Specific Requirements
3.1 Functional Requirements
< Functional requirements capture the intended behavior of the system. This behavior may be
expressed as services, tasks or functions the system is required to perform. This section is the
direct continuation of section 2.2 where you have specified the general functional requirements.
Here, you should list in detail the different product functions with specific explanations regarding
every function.
TO DO: Brake the functional requirements to several functional areas and divide this section into
subsections accordingly. Provide a detailed list of all product operations related to these functional
areas. You can pick one of the two style shown below:
• Input
User login details (username and password)
• Processing
Authentication
• Output
User logged in and message is displayed
• Input
User login and Credit Card information
• Processing
Information Authentication
(<note here: the credit card will be authenticated using the external system – external
software interface>)
• Output
Customer account is updated and an email sent to the customer
RQ1: In case of a low balance in the customer account, the system will reject the payment.
RQ2: In case of a three wrong attempts, the system will block of the account for 15 minutes and
will send an email to the customer
< 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?>
<Describe the logical and physical characteristics of each interface between the software product
and the hardware components of the system. This may include the supported device types, the
nature of the data and control interactions between the software and the hardware. You are not
required to specify what protocols you will be using to communicate with the hardware, but it will
be usually included in this part as well.
TO DO: Please provide a short description of the different hardware interfaces. If you will be using
some special libraries to communicate with your software mention them here. In case you have
more than one hardware interface divide this section into subsections.>
<Describe the connections between this product and other specific software components (name
and version), including databases, operating systems (Windows? Linux? Etc…), tools, libraries,
and integrated commercial components. Identify the data items or messages coming into the
system and going out and describe the purpose of each. Describe the services needed and the
nature of communications. Identify data that will be shared across software components. If the
data sharing mechanism must be implemented in a specific way (for example, use of a global data
area in a multitasking operating system), specify this as an implementation constraint.
3
TO DO: The previous part illustrates some of the information you would usually include in this part
of the SRS document. To make things simpler, you are only required to describe the specific
interface with the operating system.>
Software Requirements Specification for <Project> Page 5
TO DO: Provide a use case diagram which will encapsulate the entire system and all
possible actors.
3.3.3 Use Case Description <Only provide description for the top 5 – most
important – user cases!>
Use Case 1:
Use Case 2:
TODO: Use subsections (e.g., 4.3.1 Reliability, 4.3.2 Portability, etc…) provide requirements
related to the different software quality attributes. Base the information you include in these
subsections on the material you have learned in the class. Make sure, that you do not just write
“This software shall be maintainable…” Indicate how you plan to achieve it, & etc…Do not forget to
include such attributes as the design for change. Please note that you need to include at least 2
quality attributes, but it is the mere minimum and it will not receive the full marks.>
Software Requirements Specification for <Project> Page 7
Software Requirements Specification for <Project> Page 8