Requirements
Conceptual Overview
Reqvire is a tool, framework, and methodology for requirements management. In Reqvire, a requirement represents a stakeholder’s need, system capability, or constraint that the system must fulfill. Requirements define:
- What the system must do
- How the system does it (including functional implementation details and non-functional aspects such as performance, security, and quality attributes)
These requirements serve as the foundation for system design, development, and verification.
Reqvire enforces a consistent structure for organizing and presenting requirements across the project. However, it does not impose a specific syntax for how the content of requirements is written. This provides flexibility for teams to tailor requirement expressions based on project context.
The use of structured syntaxes like EARS (Easy Approach to Requirements Syntax) is encouraged to enhance clarity and consistency but is not mandatory.
For detailed specifications on document structure and formatting, refer to: Specifications.
Requirement Types and Classification
Reqvire organizes requirements into two main categories:
-
User Requirements
(includes Stakeholder Needs, Mission Requirements, User Stories, and other WHAT-focused requirements) -
System Requirements
(detailed technical and functional specifications describing HOW the system will fulfill user needs)
This structure supports a progressive refinement approach, ensuring traceability from high-level stakeholder expectations down to technical implementation.
User Requirements
User requirements represent stakeholder needs, mission objectives, user expectations, and WHAT-focused requirements. These describe what the system must do from an external point of view, without specifying technical implementation details.
User requirements include:
- Stakeholder needs: High-level expressions of expectations from users, customers, operators, and regulatory bodies.
- Mission requirements: Enterprise-level objectives the system must support.
- User stories: Informal narratives that describe system interactions or functionalities from a user’s perspective.
- WHAT-focused requirements: Formalized requirements that define system capabilities, behaviors, or constraints without dictating the solution approach.
User requirements serve as the foundation for system design, ensuring that all stakeholder concerns and operational goals are captured before technical development begins.
System Requirements
System requirements specify HOW the system will fulfill the user and mission requirements. They define detailed technical and functional specifications, covering:
- System behaviors
- Performance criteria
- Interfaces and data flows
- Design and regulatory constraints
System requirements are derived from user requirements and are structured to map directly to subsystems or components of the overall system, ensuring modularity and traceability.
Diagram summary
The diagram below demonstrates how requirements, their relationships, and hierarchical structures are organized within the Reqvire methodology. It showcases the connection between stakeholder needs, user requirements, mission requirements, system requirements, and their links to verifications, specification documents, and other system elements.
graph TD
subgraph Requirements Design
subgraph System Requirements
subgraph IDP
REQ_ENCRYPT["**REQ_ID**: 2.1<br>**Text**: The system shall encrypt authentication data."]
style REQ_ENCRYPT font-color:#000000,fill:#FFCCCC,stroke:#FF0000,stroke-width:2px;
REQ_SESSION["**REQ_ID**: 2.2<br>**Text**: The system shall manage user sessions securely."]
style REQ_SESSION font-color:#000000,fill:#FFCCCC,stroke:#FF0000,stroke-width:2px;
REQ_PASSWORD["**REQ_ID**: 1.1<br>**Text**: The system shall support password-based authentication."]
style REQ_PASSWORD font-color:#000000,fill:#FFCCCC,stroke:#FF0000,stroke-width:2px;
REQ_OAUTH["**REQ_ID**: 1.2<br>**Text**: The system shall support federated login using OAuth."]
style REQ_OAUTH font-color:#000000,fill:#FFCCCC,stroke:#FF0000,stroke-width:2px;
%% Verifications (verifies)
VerifyPasswordStrength["Verification: Password Strength Validation"]
style VerifyPasswordStrength fill:#CCFFCC,stroke:#008000,stroke-width:2px;
end
end
subgraph Stakeholder Needs
subgraph Mission Requirements
MOE_CPD["MOE_CPD: Decrease Costs and Increase Profitability"]
REQ_LIMITS["**REQ_ID**: 3<br>**Text**:Specification Design Document for Resource Rates and Limits"]
style REQ_LIMITS font-color:#000001,fill:#FFCCCC,stroke:#FF0000,stroke-width:2px;
SDD_LIMITS["SDD_LIMITS_AND_RATES: Specification Design Document: Limits and Rates"]
style SDD_LIMITS font-color:#000001,fill:#FFA500,stroke:#db9d00,stroke-width:2px;
end
subgraph User Requirements
MOE_CR["MOE_CR: Maintain High Customer Retention by Reducing Churn"]
USER_STORY_PASSWORD["User Story: User Sign-Up and Sign-In"]
style USER_STORY_PASSWORD fill:#FFFF99,stroke:#FFD700,stroke-width:2px;
REQ_AUTH["**REQ_ID**: 1<br>**Text**: The system shall provide user authentication."]
style REQ_AUTH font-color:#000000,fill:#FFCCCC,stroke:#FF0000,stroke-width:2px;
REQ_SECURITY["**REQ_ID**: 2<br>**Text**: The system shall ensure authentication security."]
style REQ_SECURITY font-color:#000001,fill:#FFCCCC,stroke:#FF0000,stroke-width:2px;
end
end
MOE_CPD -.->|trace| REQ_LIMITS
SDD_LIMITS -.->|satisfiedBy| REQ_LIMITS
MOE_CR -.->|trace| USER_STORY_PASSWORD
REQ_AUTH -.->|refinedBy| USER_STORY_PASSWORD
REQ_SECURITY -.->|refinedBy| USER_STORY_PASSWORD
%% Relationships
REQ_ENCRYPT -.->|derivedFrom| REQ_SECURITY
REQ_SESSION -.->|derivedFrom| REQ_SECURITY
REQ_AUTH -.->|contain| REQ_PASSWORD
REQ_AUTH -.->|contain| REQ_OAUTH
VerifyPasswordStrength -.->|verifiedBy| REQ_PASSWORD
%% Click Actions
click VerifyPasswordStrength href "https://example.com/docs/test-case-222" "Test Case Documentation"
click USER_STORY_PASSWORD href "https://example.com/docs/user-story-password-login" "User Story Documentation"
click USER_STORY_OAUTH href "https://example.com/docs/user-story-google-login" "User Story Documentation"
click AuthenticationSubsystem href "https://example.com/docs/authentication-subsystem" "Subsystem Documentation"
click LoginBehavior href "https://example.com/docs/login-behavior" "Behavior Documentation"
end
Visual Representation
Reqvire automatically generates visual representations of requirements and their relationships using Mermaid diagrams. For more information on diagrams, see the User Guide and Specifications.