Enduring Requirements
Definition
Enduring requirements are those requirements that are stable and unlikely to change over the life of the system — they represent the core, fundamental purpose of the software and remain relatively constant even as technology and business processes evolve.
Characteristics
- Rooted in the core business/domain need, not tied to a specific technology or implementation
- Remain valid across multiple versions/releases of the system
- Form the stable backbone of the SRS
- Changes to enduring requirements usually indicate a fundamental shift in the business itself
Examples
- "The system shall allow customers to place an order" (an e-commerce site will always need this, regardless of UI/tech changes)
- "The banking system shall maintain accurate account balances"
- "The library system shall track which books are checked out"
Why They Matter
- Provide a stable foundation for architecture and design decisions
- Help prioritize what must be protected/preserved during redesign or technology migration
- Reduce risk — building around enduring requirements means the core system won't need major rework due to changing trends
Enduring vs. Volatile Requirements (contrast)
| Enduring Requirements | Volatile Requirements |
|---|---|
| Stable over time | Change frequently |
| Tied to core business purpose | Tied to specific implementation, market trends, or short-term needs |
| Rarely need rework | Require ongoing tracking/management |
| Example: "track inventory levels" | Example: "support the latest payment gateway API" |
Exam tip: This topic is almost always asked together with Volatile Requirements as a compare/contrast question — memorize the table above.