Skip to content

Requirements List Template

Use this template to document the functional, data, behavioral, integration, UI, and non-functional requirements for a product feature before implementation begins.

See Requirements Best Practices for guidance on writing high-quality requirements.


Brief description of the feature being specified. What problem does it solve? What value does it provide to the user or system?

Define the boundaries of this requirements list. What is included and what is explicitly excluded?

List the primary users or system actors that will interact with this feature.

  • Persona 1: Description
  • Persona 2: Description
  • Link to Parent Specification
  • Link to Design Document
  • Link to API Documentation

Provide a high-level conceptual view of the domain before diving into detailed requirements. This section establishes the vocabulary and relationships referenced throughout the document.

ConceptDefinitionRelated Arda Entity
Concept 1Brief definition in business termsEntityName or “New”
Concept 2Brief definition in business termsEntityName or “New”

Provide an analysis-level PlantUML class diagram showing the relationships between domain concepts. This is NOT an implementation diagram — it represents the business domain, not code structure.

FromRelationshipToCardinalityDescription
Concept1verb phraseConcept21:NBusiness meaning
  1. Business Rule 1
  2. Business Rule 2

Each requirement should be atomic, testable, and traceable. Use the format FR-<FeatureCode>-<Number> for identifiers.

  • Priority: Must Have | Should Have | Could Have | Won’t Have
  • Status: Proposed | Approved | Implemented | Verified
  • Description: Clear, concise statement of what the system shall do.
  • Rationale: Why this requirement exists and its business value.
  • Acceptance Criteria:
    1. Measurable criterion 1
    2. Measurable criterion 2
  • Dependencies: List any requirements this depends on.
  • Notes: Additional context, edge cases, or implementation hints.

Use DR-<FeatureCode>-<Number> identifiers.

  • Entity/Field: EntityName.fieldName
  • Constraint Type: Validation | Cardinality | Integrity | Format
  • Description: What constraint or behavior applies.
  • Validation Rules:
    • Rule 1
  • Error Behavior: What happens when validation fails? Reference AppError subclass.

Document state transitions, lifecycle events, and system behaviors. Use BR-<FeatureCode>-<Number> identifiers.

  • Trigger: What event or action initiates this behavior?
  • Pre-conditions: What must be true before this behavior can execute?
  • Description: Detailed description of the behavior.
  • Post-conditions: What is guaranteed to be true after successful execution?
  • Side Effects: What other entities or systems are affected?
  • Error Scenarios:
ConditionError TypeError Message/Code
Condition 1AppError.TypeMessage

Use IR-<FeatureCode>-<Number> identifiers.

  • Integration Type: API | Event | Webhook | File
  • Direction: Inbound | Outbound | Bidirectional
  • Description: What integration is required?
  • Contract: Link to API spec, event schema, or file format.
  • Error Handling: How integration failures are handled.

Use UIR-<FeatureCode>-<Number> identifiers.

  • View Type: List | Detail | Form | Lookup | Action
  • Description: What the user sees or can do.
  • Contents: What data elements are displayed?
  • Actions:
    • Action 1: Description
  • Validation/Feedback: User-visible validation messages or feedback.

Use NFR-<FeatureCode>-<Number> identifiers.

NFR-XXX-001: Non-Functional Requirement Title

Section titled “NFR-XXX-001: Non-Functional Requirement Title”
  • Category: Performance | Security | Reliability | Usability | Scalability
  • Description: Clear statement of the quality attribute.
  • Metric: How this requirement is measured.
  • Target: Quantitative target value.

IDCategoryTitlePriorityStatus
FR-XXX-001FunctionalTitlePriorityStatus
DR-XXX-001DataTitlePriorityStatus
BR-XXX-001BehavioralTitlePriorityStatus
IR-XXX-001IntegrationTitlePriorityStatus
UIR-XXX-001User InterfaceTitlePriorityStatus
NFR-XXX-001Non-FunctionalTitlePriorityStatus

IDQuestionOwnerStatusResolution
Q-001Question textPersonOpen/ResolvedAnswer when resolved

VersionDateAuthorChanges
1.0.0YYYY-MM-DDAuthorInitial draft