Software Requirements Document Template: Complete Guide with Examples
Author
ZTABS Team
Date Published
A Software Requirements Document (SRD) is the bridge between what your business needs and what your development team builds. When done well, it eliminates ambiguity, prevents scope creep, and gives every stakeholder — from executives to engineers — a shared understanding of what the software must do.
This guide provides a complete, copy-ready SRD template with example text for every section. Whether you are working with an internal team or an external development agency, this template will help you document your requirements in a way that is clear, complete, and actionable.
What Is a Software Requirements Document?
A Software Requirements Document (also called a Software Requirements Specification or SRS) is a detailed description of what a software system must do. It covers the functional requirements (what the system does), non-functional requirements (how well it does it), and the constraints within which it must operate.
The SRD serves as the authoritative source of truth for the project. Developers build against it. Testers validate against it. Project managers track scope against it. When a question arises about whether something is "in scope," the SRD provides the answer.
A good SRD is:
- Specific — each requirement is detailed enough that two developers would implement it the same way
- Measurable — acceptance criteria define what "done" looks like for each requirement
- Prioritized — stakeholders know which requirements are essential and which are nice-to-have
- Traceable — each requirement has a unique identifier so it can be referenced in design documents, test plans, and change requests
SRD vs BRD vs PRD: When to Use Which
These three documents serve different audiences and purposes. Many organizations need all three, but for smaller projects, the SRD alone may be sufficient.
| Document | Full Name | Audience | Focus | When to Use | |----------|-----------|----------|-------|-------------| | BRD | Business Requirements Document | Executives, business stakeholders | Why the project exists, business objectives, ROI | Early stage — justifying the investment and getting approval | | PRD | Product Requirements Document | Product managers, designers, business analysts | What the product should do from a user perspective, user stories, personas | After business approval — defining the product vision and user experience | | SRD | Software Requirements Document | Developers, QA engineers, technical architects | How the system should work technically, detailed specifications | Before development — translating product needs into technical specifications |
In practice:
- Startups and small projects often combine all three into a single document
- Enterprise projects typically maintain separate documents with cross-references
- If you are hiring an external development agency, the SRD is the most critical document because it defines what they are contractually obligated to deliver
Complete Software Requirements Document Template
Section 1: Introduction
1.1 Purpose
Example:
This document defines the software requirements for the Meridian Patient Portal, a web-based application that enables patients to access their health records, schedule appointments, and communicate with their care providers. This document is intended for the development team, QA team, project manager, and business stakeholders.
1.2 Scope
Example:
The Meridian Patient Portal is a new patient-facing web application that integrates with the existing Meridian EHR platform. The portal will provide self-service capabilities for patients across all Meridian client practices.
In Scope:
- Patient authentication and profile management
- Medical records viewing and download
- Appointment scheduling and management
- Secure messaging between patients and providers
- Billing and payment processing
Out of Scope:
- Provider-facing features (managed by the existing EHR)
- Medical device integrations
- Insurance claim processing
- Telemedicine and video consultations (planned for Phase 2)
1.3 Definitions, Acronyms, and Abbreviations
Example:
| Term | Definition | |------|-----------| | EHR | Electronic Health Record — the existing Meridian system used by healthcare providers | | MFA | Multi-Factor Authentication — a security method requiring two or more verification steps | | PHI | Protected Health Information — any health information that can be linked to a specific individual | | HIPAA | Health Insurance Portability and Accountability Act — federal law governing health data privacy | | HL7 FHIR | Health Level 7 Fast Healthcare Interoperability Resources — a standard for exchanging healthcare information electronically |
1.4 References
- Meridian EHR API Documentation v3.2
- HIPAA Security Rule (45 CFR Part 160 and Part 164)
- WCAG 2.1 AA Accessibility Guidelines
- Meridian Brand Style Guide (2025 Edition)
Section 2: Overall Description
2.1 Product Perspective
Example:
The Patient Portal is a new component within the Meridian ecosystem. It interfaces with the existing EHR platform via REST APIs and shares the same PostgreSQL database cluster (read-only access for patient data). It operates as an independent web application with its own authentication system, linked to EHR accounts through a secure patient identity verification process.
2.2 User Classes and Characteristics
Example:
| User Class | Description | Technical Proficiency | Frequency of Use | |-----------|-------------|----------------------|-------------------| | Patient | Primary user. Adults aged 25-80 managing their healthcare. | Low to moderate | Weekly to monthly | | Caregiver | Family member or legal guardian managing care for another patient. | Moderate | Weekly | | Practice Admin | Staff member at a healthcare practice who manages portal settings. | Moderate to high | Daily | | System Admin | Meridian internal staff who manage platform configuration. | High | As needed |
2.3 Operating Environment
- Browsers: Chrome 100+, Firefox 100+, Safari 16+, Edge 100+
- Mobile: iOS 15+ (Safari), Android 12+ (Chrome)
- Screen Sizes: 320px to 2560px width (responsive)
- Internet: Must function on connections as slow as 3G for basic operations
2.4 Design and Implementation Constraints
- Must comply with HIPAA Security Rule requirements for all PHI handling
- Must use the existing AWS infrastructure (us-east-1 region)
- Must integrate with the EHR API without modifications to the existing API
- All patient data must remain within US-based data centers
- Must support English and Spanish at launch
2.5 Assumptions and Dependencies
Assumptions:
- The EHR API will remain stable during development (v3.2)
- Patient identity verification will use existing EHR patient IDs
- The existing SSL certificates and domain infrastructure can be extended to the portal
Dependencies:
- EHR API uptime and performance
- Stripe payment processing availability
- Twilio SMS delivery infrastructure
- AWS service availability in us-east-1
Section 3: Functional Requirements
This is the core of your SRD. Each requirement should have a unique ID, clear description, priority level, and acceptance criteria.
3.1 User Authentication and Access Management
| Req ID | Description | Priority | Acceptance Criteria | |--------|-------------|----------|-------------------| | FR-101 | The system shall allow new patients to register using their email address and a verification code sent to their email. | Must | Patient receives a verification email within 60 seconds of registration. Account is created only after email verification. | | FR-102 | The system shall support multi-factor authentication using SMS or authenticator app as a second factor. | Must | Users can enable MFA from their profile settings. Login requires MFA when enabled. SMS codes are delivered within 30 seconds. | | FR-103 | The system shall lock accounts after 5 consecutive failed login attempts for 30 minutes. | Must | Account is locked after 5 failures. User is notified via email. Account automatically unlocks after 30 minutes. Admin can manually unlock. | | FR-104 | The system shall allow patients to reset their password using email verification. | Must | Password reset email is sent within 60 seconds. Reset link expires after 24 hours. Previous sessions are invalidated after password change. | | FR-105 | The system shall support role-based access control with the following roles: Patient, Caregiver, Practice Admin, System Admin. | Must | Each role has defined permissions. Users can only access features permitted by their role. Role changes are audit-logged. | | FR-106 | The system shall allow caregivers to access a patient's portal with documented legal authorization. | Should | Caregiver access requires admin approval. Caregivers can view records but cannot modify patient profile information. |
3.2 Medical Records
| Req ID | Description | Priority | Acceptance Criteria | |--------|-------------|----------|-------------------| | FR-201 | The system shall display lab results with date, ordering provider, test name, result value, and reference range. | Must | Lab results appear within 5 seconds of page load. Results are sorted by date (most recent first). Abnormal values are visually highlighted. | | FR-202 | The system shall allow patients to download their medical records as a PDF document. | Must | PDF includes all available records. Download completes within 10 seconds for records up to 100 pages. PDF is formatted for readability. | | FR-203 | The system shall display visit summaries including date, provider, diagnosis, and prescribed medications. | Must | Visit summaries are available within 24 hours of the visit being documented in the EHR. | | FR-204 | The system shall display current medications with name, dosage, frequency, prescribing provider, and refill status. | Should | Medication list is synced from EHR within 1 hour of changes. Discontinued medications appear in a separate section. | | FR-205 | The system shall allow patients to view immunization records with date, vaccine name, and administering provider. | Could | Records are displayed in chronological order. Records can be exported for school or employer documentation. |
3.3 Appointment Scheduling
| Req ID | Description | Priority | Acceptance Criteria | |--------|-------------|----------|-------------------| | FR-301 | The system shall display available appointment slots filtered by provider, location, and appointment type. | Must | Available slots reflect real-time EHR availability. Slots update within 5 minutes of changes in the EHR. | | FR-302 | The system shall allow patients to book an appointment by selecting an available slot. | Must | Booked appointment appears in the EHR within 1 minute. Patient receives confirmation via email and optional SMS. | | FR-303 | The system shall send automated appointment reminders 48 hours and 2 hours before the scheduled time. | Must | Reminders are sent via email. SMS reminders are sent if the patient has opted in. | | FR-304 | The system shall allow patients to cancel appointments up to 24 hours before the scheduled time. | Must | Cancelled slot is released back to availability within 5 minutes. Patient receives cancellation confirmation. | | FR-305 | The system shall allow patients to reschedule appointments to a different available slot. | Should | Rescheduling preserves the appointment type and provider. Both old and new times are documented. |
Section 4: Non-Functional Requirements
4.1 Performance
| Req ID | Description | Priority | |--------|-------------|----------| | NFR-101 | Pages shall load within 2 seconds for 95% of requests under normal traffic (up to 1,000 concurrent users). | Must | | NFR-102 | The system shall handle up to 5,000 concurrent users during peak hours without degradation. | Must | | NFR-103 | API responses shall return within 500 milliseconds for 99% of requests. | Should | | NFR-104 | Search results shall return within 3 seconds for queries across patient records. | Must |
4.2 Security
| Req ID | Description | Priority | |--------|-------------|----------| | NFR-201 | All data in transit shall be encrypted using TLS 1.2 or higher. | Must | | NFR-202 | All PHI at rest shall be encrypted using AES-256 encryption. | Must | | NFR-203 | The system shall maintain audit logs of all data access for a minimum of 7 years. | Must | | NFR-204 | User sessions shall expire after 15 minutes of inactivity. | Must | | NFR-205 | The system shall undergo annual penetration testing by an independent third party. | Must |
4.3 Scalability
| Req ID | Description | Priority | |--------|-------------|----------| | NFR-301 | The system shall scale horizontally to handle a 10x increase in user base without architecture changes. | Should | | NFR-302 | Database queries shall remain performant with up to 10 million patient records. | Must |
4.4 Availability
| Req ID | Description | Priority | |--------|-------------|----------| | NFR-401 | The system shall maintain 99.9% uptime during business hours (6 AM to 10 PM EST, Monday through Saturday). | Must | | NFR-402 | Planned maintenance windows shall be limited to Sundays between 2 AM and 6 AM EST. | Should | | NFR-403 | The system shall recover from a failure within 15 minutes (Recovery Time Objective). | Must |
Section 5: External Interface Requirements
5.1 User Interfaces
- The portal shall follow Meridian's brand style guide for colors, typography, and visual elements
- Navigation shall use a responsive sidebar on desktop and bottom navigation on mobile
- All forms shall provide inline validation with clear error messages
- The interface shall support keyboard navigation and screen readers (WCAG 2.1 AA)
5.2 Software Interfaces
| System | Interface Type | Purpose | |--------|---------------|---------| | Meridian EHR | REST API (v3.2) | Read patient records, sync appointments, verify patient identity | | Stripe | REST API | Process credit card and ACH payments | | Twilio | REST API | Send SMS notifications and MFA codes | | SendGrid | REST API | Send transactional emails (confirmations, reminders, notifications) | | AWS S3 | SDK | Store patient document uploads and generated PDFs | | AWS CloudWatch | SDK | Application monitoring and alerting |
5.3 Communication Interfaces
- HTTPS for all client-server communication
- WebSocket for real-time messaging notifications
- SMTP for outbound email via SendGrid
- REST/JSON for all API integrations
Section 6: Data Requirements
6.1 Data Model (Key Entities)
- Patient: Demographics, contact information, authentication credentials, preferences
- Medical Record: Lab results, visit summaries, medications, immunizations
- Appointment: Date/time, provider, location, type, status
- Message: Sender, recipient, content, attachments, timestamps, read status
- Payment: Amount, method, status, transaction ID, billing period
6.2 Data Migration
- Historical patient records from the EHR (read-only access, no migration needed)
- Existing patient contact information from the EHR for initial account setup
- No data migration from legacy systems is required
6.3 Data Retention
- Patient account data: Retained for the life of the account plus 7 years after deactivation
- Audit logs: Retained for 7 years per HIPAA requirements
- Secure messages: Retained for 7 years
- Payment records: Retained for 7 years per financial record-keeping requirements
- Session logs: Retained for 90 days
Section 7: Quality Attributes
- Maintainability: Code shall follow established patterns and include documentation sufficient for a new developer to understand any module within 1 day.
- Testability: Minimum 80% code coverage with unit tests. All critical paths shall have integration tests.
- Portability: The application shall be containerized (Docker) and deployable to any cloud provider with Kubernetes support.
- Usability: A first-time patient user shall be able to complete registration, view records, and schedule an appointment without external help within 10 minutes.
Section 8: Appendices
Include supporting materials that provide additional context:
- Appendix A: EHR API endpoint documentation
- Appendix B: Brand style guide
- Appendix C: Regulatory compliance requirements (HIPAA checklist)
- Appendix D: User research findings and persona documents
- Appendix E: Wireframes and mockups (if available)
How to Prioritize Requirements: The MoSCoW Method
Not every requirement is equally important. The MoSCoW method provides a clear framework for prioritization that both business and technical stakeholders can understand.
| Priority | Meaning | Guideline | |----------|---------|-----------| | Must | Essential for launch. The system cannot go live without these features. | Typically 60% of requirements. If these are not delivered, the project has failed. | | Should | Important but not critical for launch. Can be delivered shortly after launch. | Typically 20% of requirements. Significant value, but workarounds exist. | | Could | Desirable features that enhance the product but are not necessary. | Typically 15% of requirements. Include if time and budget allow. | | Will not (this time) | Acknowledged requirements that are explicitly excluded from this release. | Typically 5%. Documenting these prevents scope creep and sets expectations for future phases. |
Tips for effective prioritization:
- Involve both business stakeholders and technical leads in prioritization discussions
- Prioritize based on user impact and business value, not on what is easiest to build
- Be honest about "Must" — if you label everything as "Must," the prioritization is meaningless
- Revisit priorities at each milestone, as business context may change during development
- Use the "Will not" category explicitly to manage stakeholder expectations
Common Mistakes in Software Requirements Documents
Writing requirements as solutions instead of needs. A requirement like "use a dropdown menu for state selection" prescribes a specific UI element. A better requirement: "The system shall allow users to select their state from the list of 50 US states." This gives designers and developers the flexibility to choose the best implementation.
Missing acceptance criteria. A requirement without acceptance criteria is a requirement that no one can test. For every functional requirement, define what "done" looks like in measurable terms.
Scope ambiguity. Failing to explicitly define what is out of scope is just as dangerous as failing to define what is in scope. When boundaries are unclear, stakeholders assume features are included and developers assume they are not.
Writing requirements in isolation. The SRD should be a collaborative document. Requirements written by a single person inevitably miss edge cases, business context, or technical constraints. Involve product, engineering, and QA from the beginning.
Treating the SRD as final. Requirements will change during development. The SRD should be a living document with version control and a change management process. Define how changes are proposed, reviewed, and approved.
Next Steps
Not sure what to include in your requirements document? Book a free discovery session with our team. We help companies translate business goals into clear technical requirements, whether you are building with us or using the document to evaluate other vendors. Schedule a free consultation to get started.
For related resources, see our software development RFP template if you are preparing to send requirements to multiple vendors, or our guide on how to hire a software development company for a broader view of the vendor selection process.
Explore Related Solutions
Need Help Building Your Project?
From web apps and mobile apps to AI solutions and SaaS platforms — we ship production software for 300+ clients.
Related Articles
Agile vs Waterfall: Which Methodology Is Right for Your Project?
Agile and Waterfall both work — for different projects. This practical comparison explains when each methodology makes sense, with real decision criteria instead of ideology.
13 min readHow We Build Software: Our Development Process From Discovery to Launch
A transparent look at our 7-phase software development process — from the first stakeholder interview through post-launch optimization. Real timelines, real deliverables, no black boxes.
11 min readSoftware Development Timeline: How Long Does It Actually Take?
Honest timelines for every type of software project — from landing pages to enterprise platforms. Learn what affects development speed and how to keep your project on schedule.