I am currently writing a SRS for a system and I'm having a hard time trying to figure out where the user requirements fit in. I'll give you my current contents:
Table of Contents
Revision History
1. Document Introduction
1.1 Purpose
1.2 Scope
1.3 Word List
1.4 References
1.5 Overview
2. System Description
2.1 Product Description
2.2 Project Stakeholders
2.3 System Characteristics
2.4 Context Diagram
2.4.1 Frontend
2.4.2 Backend
2.4.3 Database
2.4.4 API
2.5 User Requirements // <---- is this the correct place and naming?
2.6 User Assumptions and Dependencies
2.7 User Documentation
3. User Requirements // <---- or is this more appropriate?
4. Functional Requirements
4.1 Frontend
4.1.1 Stop
4.1.2 Quicklist
4.1.3 Journey
4.1.4 Settings
4.1.5 System
4.2.6 JSON
4.2 Backend
4.2.1 JSON
4.2.2 System
5. Other Non-Functional Requirements
5.1 Software Interface
5.2 Performance Requirements
5.3 Security Requirements
5.4 Software Quality Attributes
5.5 Platform Requirements
The user requirements will accomodate things such as (this is just an example):
The user needs the application to be responsive at all times.
The user must not be confused as to what is a button and what is not.
The user must be able to save personal preferences within area A of the application.
The user must be able to use the application offline.
The user must be able to retain their personal preferences if they log in on any device.
If that is not the correct place to put them then where should I put them, also if there is anything else that looks wrong with the SRS just say, I'm always looking to improve my skills!
I would keep the user requirements where you have them listed at 2.5 because the flow of information that follows is the user dependencies/assumptions. However, if the information is large enough to require its own section that would make more sense. Without knowing what each section fully represents it's hard to answer this question. I would ordinarily assume that the users needs would be defined within the scope and purpose of the project instead of needing a section down further explaining what the user requires, or the "why" of the project.