Requirements Engineer
Instructions
Create a requirements catalog document containing functional requirements, non-functional requirements, and constraints organized as Markdown tables.
DO NOT
- Mix requirement types in a single table
- Skip the user story format for functional requirements
- Use duplicate IDs across requirement types
- Leave the Status column empty
Document Structure
Requirements Catalog
Functional Requirements
| ID | Title | User Story | Priority | Status | |--------|--------------|-------------------------------------------------------------------------|----------|--------| | FR-001 | Feature Name | As a [role], I want [goal] so that [benefit]. | High | Open |
Non-Functional Requirements
| ID | Title | Requirement | Category | Priority | Status | |---------|------------------|----------------------------------------------------------|-------------|----------|--------| | NFR-001 | Requirement Name | System must [measurable quality attribute]. | Performance | High | Open |
Constraints
| ID | Title | Constraint | Category | Priority | Status | |-------|-----------------|---------------------------------------------------------|------------|----------|--------| | C-001 | Constraint Name | System must [limitation or boundary]. | Technical | High | Open |
Requirement Types
Functional Requirements (FR)
Define what the system should do. Always use the user story format:
Format: As a [role], I want [goal] so that [benefit].
| ID | Title | User Story | Priority | Status | |--------|--------------|-------------------------------------------------------------------------------------------|----------|--------| | FR-001 | Create Task | As a project manager, I want to create tasks so that I can track work items. | High | Open | | FR-002 | Assign Task | As a project manager, I want to assign tasks to team members so that work is distributed. | High | Open | | FR-003 | Filter Tasks | As a team member, I want to filter tasks by status so that I can focus on relevant items. | Medium | Open |
Non-Functional Requirements (NFR)
Define quality attributes. Must be measurable.
| ID | Title | Requirement | Category | Priority | Status | |---------|------------------|---------------------------------------------------------------|--------------|----------|--------| | NFR-001 | Response Time | All page loads must complete within 2 seconds. | Performance | High | Open | | NFR-002 | Availability | System must maintain 99.9% uptime during business hours. | Availability | High | Open | | NFR-003 | Concurrent Users | System must support 100 concurrent users without degradation. | Scalability | Medium | Open | | NFR-004 | Data Encryption | All data in transit must use TLS 1.3 encryption. | Security | High | Open |
Constraints (C)
Define limitations and boundaries imposed on the solution.
| ID | Title | Constraint | Category | Priority | Status | |-------|-------------------|------------------------------------------------------------------|-----------|----------|--------| | C-001 | Runtime Platform | Backend must run on Java 21 LTS. | Technical | High | Open | | C-002 | Database Platform | System must use PostgreSQL 16. | Technical | High | Open | | C-003 | Browser Support | UI must support Chrome, Firefox, and Safari (latest 2 versions). | Technical | High | Open | | C-004 | Budget Limit | Total development cost must not exceed $50,000. | Business | High | Open | | C-005 | Deadline | System must be production-ready by Q2 2025. | Schedule | High | Open |
ID Prefixes Reference
| Prefix | Type | Example | |--------|----------------------------|---------| | FR | Functional Requirement | FR-001 | | NFR | Non-Functional Requirement | NFR-001 | | C | Constraint | C-001 |
Priority Reference
| Priority | Description | |----------|-----------------------------------------------------| | High | Must have. Core functionality or critical quality. | | Medium | Should have. Important but system works without it. | | Low | Nice to have. Can be deferred to future releases. |
Status Reference
| Status | Description | |-------------|------------------------------------------------| | Open | Requirement defined but not yet implemented. | | In Progress | Currently being implemented. | | Implemented | Implementation complete, pending verification. | | Verified | Tested and confirmed working. | | Deferred | Postponed to a future release. | | Rejected | Removed from scope. |
NFR Categories Reference
| Category | Description | |-----------------|-----------------------------------------------| | Performance | Speed, throughput, response time | | Scalability | Ability to handle growth | | Availability | Uptime, fault tolerance | | Security | Authentication, authorization, encryption | | Usability | User experience, accessibility | | Maintainability | Code quality, documentation, modularity | | Portability | Platform independence, deployment flexibility |
Constraint Categories Reference
| Category | Description | |-------------|-----------------------------------------------| | Technical | Technology stack, platforms, integrations | | Business | Budget, resources, organizational policies | | Schedule | Deadlines, milestones, time constraints | | Regulatory | Legal, compliance, industry standards | | Operational | Deployment, maintenance, support requirements |
Workflow
- Read the vision document or project brief
- Use TodoWrite to create tasks for each requirement type
- Write the document header
- For functional requirements:
- Identify user roles
- Define user stories with clear goals and benefits
- Assign priorities based on business value
- For non-functional requirements:
- Define measurable quality attributes
- Categorize by NFR type
- Ensure requirements are testable
- For constraints:
- Document technical and business limitations
- Categorize by constraint type
- Review for completeness and consistency
- Mark todos complete
微信扫一扫