Requirements Engineering
# Software Requirement Specification (SRS)
A software requirement specification is a document, written for engineers and stakeholders alike, that describes what the project’s features are and its business model.
Generally, a requirements document should cover:
- Project scope (a summary of what the project is, its features, its target audience, its boundaries, deliverable deadlines, etc.).
- Functional requirements in the form of epics and user stories.
- System architecture.
- UI prototype.
- Non-functional requirements.
Communication should be the priority, not formality, so you should make liberal use of diagrams, graphs and images.
# Functional Requirements
Functional requirements are product features that are implementable by developers. They define what the system does and roughly look like the following:
- Authentication system allows user to log in with their Google account.
- The user can create new blogs.
- The user can comment on existing blogs.
# Non-Functional Requirements
Non-function requirements are requirements on the product that aren’t features. They roughly look like this:
- Must support 10000 concurrent users.
- Latency must be below 100ms.
- The bundle size must be below 1mb.