Skip to content

Feature Requirements List

Use this template when specifying a new feature that requires domain modeling, functional requirements, data constraints, behavioral rules, and integration contracts.

  • Defining a new product capability with multiple requirement types.
  • Establishing domain concepts and their relationships before implementation.
  • Creating a traceable requirements document with MoSCoW prioritization.
  1. Overview — Feature summary, scope, target personas, related documents.
  2. Domain Modeling — Concepts, conceptual model (PlantUML class diagram), relationships, business rules.
  3. Functional Requirements (FR) — What the system shall do.
  4. Data Requirements (DR) — Entity constraints, validation rules, cardinality.
  5. Behavioral Requirements (BR) — State transitions, lifecycle events, side effects.
  6. Integration Requirements (IR) — API contracts, external system interactions.
  7. User Interface Requirements (UIR) — Views, actions, validation feedback.
  8. Non-Functional Requirements (NFR) — Performance, security, scalability targets.
  9. Requirements Summary — Cross-reference index with MoSCoW breakdown.
PrefixCategoryExample
FRFunctionalFR-ORD-001
DRDataDR-ORD-001
BRBehavioralBR-ORD-001
IRIntegrationIR-ORD-001
UIRUser InterfaceUIR-ORD-001
NFRNon-FunctionalNFR-ORD-001

The full template is extensive. Key sections are shown below; see the complete source at workspace/knowledge-base/templates/incremental-service/requirements-list.md.

## Domain Modeling
### Domain Concepts
| Concept | Definition | Related Arda Entity |
|---|---|---|
| Concept 1 | Brief definition in business terms | `EntityName` or "New" |
### Conceptual Model
PlantUML class diagram showing domain concepts with `<<concept>>` and `<<existing>>` stereotypes, using domain language for relationships.
### Key Business Rules
1. Business Rule 1: e.g., "An Order must have at least one OrderLine before it can be submitted."
2. Business Rule 2: e.g., "An ItemSupply can only be deleted if no Items reference it."
### FR-CODE-001: Requirement Title
- **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**: FR-CODE-002
- **Notes**: Additional context or edge cases.
### BR-CODE-001: Behavior Title
- **Trigger**: What event or action initiates this behavior?
- **Pre-conditions**: What must be true before execution?
- **Description**: Detailed description of the behavior.
- **Post-conditions**: What is guaranteed after success?
- **Side Effects**: What other entities or systems are affected?
- **Error Scenarios**:
| Condition | Error Type | Error Message/Code |
|---|---|---|
| Condition 1 | `AppError.Type` | Message |

State transition diagrams (PlantUML) should accompany behavioral requirements that involve lifecycle states.