Professional Documents
Culture Documents
SRS Template
SRS Template
Introduction
o Purpose
o Project scope
o Definitions, acronyms, and abbreviations
o References
o Overview
Overall Description
o Product perspective
o Product functions
o User classes and characteristics
o Operating environment
o Design and implementation constraints
o User documentation
o Assumptions and dependencies
System features
o System feature 1
Description and priority
Stimulus/Response sequences
Functional requirements
o System feature 2
Description and priority
Stimulus/Response sequences
Functional requirements
o System feature....
External interface requirements
o User interfaces
o Software interfaces
o Hardware interfaces
o Communication interfaces
Non functional requirements
o Performance requirements
o Safety requirements
o Software quality attributes
o Security requirements
Other requirements
Appendix A: Glossary
Appendix B: Analysis Models
Appendix C: Issues list
1
Introduction
This section gives a scope description and overview of everything included in this SRS document. Also,
the purpose for this document is described and a list of abbreviations and definitions is provided.
Purpose
This subsection should:
Project Scope
This part should
Identify the software product(s) to be produced by name (e.g., Host DBMS, Report Generator,
etc.);
Explain what the software product(s) will, and, if necessary, will not do;
Describe the application of the software being specified, including relevant benefits, objectives,
and goals;
Be consistent with similar statements in higher-level specifications (e.g., the system
requirements specification), if they exist.
References
This subsection should
Overview
This subsection should:
Overall Description
This section of the SRS should describe the general factors that affect the product and its requirements.
This section does not state specific requirements. Instead, it provides a background for those
requirements, which are defined in detail in Section 3 of the SRS, and makes them easier to understand.
Product Perspective
This subsection of the SRS should put the product into perspective with other related products. If the
product is independent and totally self-contained, it should be so stated here. If the SRS defines a
2
product that is a component of a larger system, as frequently occurs, then this subsection should relate
the requirements of that larger system to functionality of the software and should identify interfaces
between that system and the software.
Product Functions
This subsection of the SRS should provide a summary of the major functions that the software will
perform. For example, an SRS for an accounting program may use this part to address customer account
maintenance, customer statement, and invoice preparation without mentioning the vast amount of
detail that each of those functions requires.
Note that:
a. The functions should be organized in a way that makes the list of functions understandable to
the customer or to anyone else reading the document for the first time.
b. Textual or graphical methods can be used to show the different functions and their
relationships. Such a diagram is not intended to show a design of a product, but simply shows
the logical relationships among variables.
Some systems provide different sets of functions to different classes of users. For example, an elevator
control system presents different capabilities to passengers, maintenance workers, and fire fighters.
Operating environment
This subsection describes in which environment the application will function(OS, database type,
software, hardware, with which applications to function).
User Documentation
Defines what documentation does the user need to use this product. I.e. a manual.
3
System features
Here are described the main features of the product which will be analyzed to make documentation for
test execution.
System feature 1
In this subsection the name and unique identifier are given to the feature. Don’t really say “System
Feature 1.” State the feature name in just a few words.
Stimulus\Response Sequences
The trigger to launch the feature. Here is described how the feature is launched and how it
behaves during launch sequence.
Functional Requirements
Describes how the feature must work, how reacts to failures, what must it check, how it
represents data, how and where it saves data etc. Each requirement should be uniquely identified
with a sequence number or a meaningful tag of some kind:
REQ-1:
REQ-2:
This section provides a detailed description of all inputs into and outputs from the system. It also gives a
description of the hardware, software and communication interfaces and provides basic prototypes of
the user interface.
User Interfaces
Describe the logical characteristics of each user interface that the system needs. Some possible items to
include are:
References to GUI standards or product family style guides that are to be followed.
Standards for fonts, icons, button labels, images, color schemes, field tabbing sequences,
commonly used controls, and the like.
Screen layout or resolution constraints.
Standard buttons, functions, or navigation links that will appear on every screen, such as a help
button.
Shortcut keys.
4
Message display conventions.
Layout standards to facilitate software localization.
Document the user interface design details, such as specific dialog box layouts, in a separate user
interface specification, not in the SRS. Including screen mock-ups in the SRS to communicate another
view of the requirements is helpful, but make it clear that the mock-ups are not the committed screen
designs. If the SRS is specifying an enhancement to an existing system, it sometimes makes sense to
include screen displays exactly as they are to be implemented. The developers are already constrained
by the current reality of the existing system, so it's possible to know up front just what the modified, and
perhaps the new, screens should look like.
Software Interfaces
Describe the connections between this product and other software components (identified by name and
version), including databases, operating systems, tools, libraries, and integrated commercial
components. State the purpose of the messages, data, and control items exchanged between the
software components. Describe the services needed by external software components and the nature of
the intercomponent communications. Identify data that will be shared across software components. If
the data-sharing mechanism must be implemented in a specific way, such as a global data area, specify
this as a constraint.
Hardware Interfaces
Describe the characteristics of each interface between the software and hardware components of the
system. This description might include the supported device types, the data and control interactions
between the software and the hardware, and the communication protocols to be used.
Communication Interfaces
State the requirements for any communication functions the product will use, including e-mail, Web
browser, network communications protocols, and electronic forms. Define any pertinent message
formatting. Specify communication security or encryption issues, data transfer rates, and synchronization
mechanisms.
Safety Requirements
Specify those requirements that are concerned with possible loss, damage, or harm that could result
from the use of the product. Define any safeguards or actions that must be taken, as well as actions that
must be prevented. Refer to any external policies or regulations that state safety issues that affect the
product’s design or use. Define any safety certifications that must be satisfied.
5
Software Quality Attributes
Specify any additional quality characteristics for the product that will be important to either the customers
or the developers. Some to consider are: adaptability, availability, correctness, flexibility, interoperability,
maintainability, portability, reliability, reusability, robustness, testability, and usability. Write these to be
specific, quantitative, and verifiable when possible. At the least, clarify the relative preferences for
various attributes, such as ease of use over ease of learning.
Security Requirements
Specify any requirements regarding security or privacy issues surrounding use of the product or
protection of the data used or created by the product. Define any user identity authentication
requirements. Refer to any external policies or regulations containing security issues that affect the
product. Define any security or privacy certifications that must be satisfied.
Other Requirements
Define any other requirements not covered elsewhere in the SRS. This might include database
requirements, internationalization requirements, legal requirements, reuse objectives for the project, and
so on. Add any new sections that are pertinent to the project.
Appendix A: Glossary
Define all the terms necessary to properly interpret the SRS, including acronyms and abbreviations. You
may wish to build a separate glossary that spans multiple projects or the entire organization, and just
include terms specific to a single project in each SRS.