Template · SRS

Software Requirements Specification Template

A fill-in SRS, context and assumptions, interfaces at field level, a data dictionary, non-functional requirements with derived numbers, acceptance criteria and a glossary.

Markdown. No sign-up, no email.

The engineering contract. Every requirement here should be verifiable, and every number should have been derived from something rather than chosen because it sounded reasonable.

Structure follows the conventional introduction / description / requirements shape; the international reference for requirements engineering is ISO/IEC/IEEE 29148.

System: _______________ Version: ____ Date: _______ Author: _______________ Engineering owner: _______________

1. Introduction#

Purpose of this document: _______________ System scope: _______________ Explicitly excluded: _______________ Intended readers: _______________

2. Overall description#

Context. What this system sits between: _______________

Users and their characteristics: _______________

Operating environment (platforms, browsers, devices, networks): _______________

Assumptions#

#AssumptionWho confirmsConfirmed
A1

Dependencies#

#Depends onOwnerRisk if unavailable
D1

The assumptions table is where a project's real risk usually sits. "We assume the upstream system provides a unique identifier" is one line, and a quarter of work when wrong.

3. Functional requirements#

IDThe system shall…Verification methodPriority
SR-001test / demo / inspect / analyse

If the verification method for any row is "inspect the code" or "the developer confirms", it will not be verified. Rewrite it.

4. External interfaces#

Complete one per integration.

Interface name / counterparty
Protocol and format
Authentication
Expected volume (average / peak)
Timeout
Retry policy
Idempotent, safe to repeat?yes / no
Error codes and meanings
Behaviour when the far end is down
Contact when it misbehaves

5. Data dictionary#

FieldTypeRange / formatMandatorySource of truthRetention

6. Non-functional requirements#

Each with a number and the condition it applies under. A figure nobody derived is worse than no figure, because it will be designed to: mark placeholders as such with a date to resolve.

RequirementDerived from
Performance___ operation at p95 under ___ concurrent users
Volume___ records today, ___ growth/year, peak ___
Availability___%, measured as ___, excluding ___
RPO (data loss tolerable)
RTO (time to recover)
Securityauthn ___, authz model ___, encryption ___
Auditwhat is logged, retained ___
Accessibilitystandard and level (build to WCAG 2.2 AA unless stated otherwise)
Compliance / residency

RPO and RTO shape the architecture more than anything else on this page. Fill them before design starts, not after.

7. Acceptance criteria#

Requirement IDHow acceptance is demonstratedBy whom

8. Glossary#

TermDefinition in THIS system

Most requirement disputes are vocabulary disputes. Two teams using "customer" differently will agree on every sentence and build incompatible systems.

9. Open issues#

#IssueOwnerNeeded by

10. Sign-off#

NameDate
Author
Engineering
Business owner
Security

Back to SRS

Get new material when it is published

Everything here is free and stays free. There is no form in front of any document. If you want to know when new guides and templates go up, leave an email.

Roughly monthly. Unsubscribe in one click. We do not share your address, and we will not call you.