Creating Requirements Modules for Software Projects
1. Overview
This guide defines the standard structure, content, and best practices for creating a requirements module in Antora documentation projects for software systems. It ensures consistency across projects and comprehensive coverage of requirements documentation.
|
Location: This guide is maintained in the doc-standard repository and referenced by all software documentation projects. Purpose: Establish consistent structure and content for requirements modules across all software projects. |
1.1. When to Use This Guide
Use this guide when:
-
Creating requirements documentation for a new software system
-
Documenting the modernization or replacement of an existing system
-
Structuring business requirements, functional specifications, and user stories
-
Converting Business Requirements Documents (BRDs) into structured Antora documentation
1.2. Key Principles
-
Comprehensive Coverage - Address all aspects of requirements (functional, data, integration, UI)
-
Structured Organization - Follow consistent module structure across projects
-
Placeholder Transparency - Clearly mark missing or incomplete content
-
Cross-Reference Integration - Link requirements to architecture, design, and implementation docs
-
Living Documentation - Requirements evolve; documentation must be maintainable
2. Requirements Module Structure
2.1. Standard Directory Layout
modules/requirements/
├── nav.adoc # Navigation structure
├── pages/
│ ├── index.adoc # Requirements overview and index
│ │
│ ├── business-context.adoc # Business context and overview
│ ├── functional-overview.adoc # High-level functional capabilities
│ ├── business-processes.adoc # Process models and workflows
│ ├── user-stories.adoc # Detailed user stories
│ │
│ ├── data-model.adoc # Data entities and relationships
│ ├── data-migration.adoc # Legacy data migration requirements
│ │
│ ├── integrations.adoc # System integration requirements
│ ├── api-requirements.adoc # API specifications
│ │
│ ├── screen-designs.adoc # UI mockups and specifications
│ └── ux-requirements.adoc # User experience requirements
│
├── images/ # Process diagrams, ERDs, wireframes
└── examples/ # Sample data, API examples
2.2. Navigation Structure
The nav.adoc file should organize requirements hierarchically:
* xref:index.adoc[Requirements Overview]
** Functional Requirements
*** xref:business-context.adoc[Business Context]
*** xref:functional-overview.adoc[Functional Overview]
*** xref:business-processes.adoc[Business Processes]
*** xref:user-stories.adoc[User Stories]
** Data Requirements
*** xref:data-model.adoc[Data Model]
*** xref:data-migration.adoc[Data Migration]
** Integration Requirements
*** xref:integrations.adoc[System Integrations]
*** xref:api-requirements.adoc[API Requirements]
** User Interface
*** xref:screen-designs.adoc[Screen Designs]
*** xref:ux-requirements.adoc[User Experience]
3. Core Requirements Pages
3.1. 1. Requirements Index (index.adoc)
Purpose: Overview and navigation hub for all requirements documentation.
Required Content:
-
Lead paragraph summarizing the system and its purpose
-
Overview of the system scope and business context
-
Organization of requirements into categories
-
Links to all requirements pages
-
Source documentation references
-
Document status and known gaps
-
Related documentation links
Template Structure:
= [System Name] Requirements
:description: Business and functional requirements for [system]
:keywords: requirements, [domain-specific keywords]
[.lead]
This module contains the business and functional requirements for [system],
derived from [source documents] and stakeholder input.
== Overview
[Brief description of the system, its business purpose, and scope]
== Requirements Categories
=== Functional Requirements
* xref:business-context.adoc[Business Context]
* xref:functional-overview.adoc[Functional Overview]
* xref:business-processes.adoc[Business Processes]
* xref:user-stories.adoc[User Stories]
=== Data Requirements
* xref:data-model.adoc[Data Model]
* xref:data-migration.adoc[Data Migration]
=== Integration Requirements
* xref:integrations.adoc[System Integrations]
* xref:api-requirements.adoc[API Requirements]
=== User Interface Requirements
* xref:screen-designs.adoc[Screen Designs]
* xref:ux-requirements.adoc[User Experience]
== Source Documentation
[List source BRDs, specifications, and input documents]
== Document Status
[NOTE or IMPORTANT block describing completeness and gaps]
== Related Documentation
* xref:ROOT:index.adoc[Project Overview]
* xref:design:index.adoc[System Design] (if exists)
* xref:non-functional:index.adoc[Non-Functional Requirements] (if exists)
3.2. 2. Business Context (business-context.adoc)
Purpose: Provide business context, stakeholder landscape, and domain overview.
Required Content:
-
Business domain overview
-
Product or service descriptions
-
Key stakeholders (internal and external)
-
Business environment and regulatory context
-
Business lifecycle or workflow summary
-
Alignment with organizational strategy (if applicable)
Key Sections:
-
[Product/Service] Overview - Description of what the system manages
-
Key Stakeholders - Internal and external stakeholders with their roles
-
Business Environment - Regulatory, competitive, and market context
-
[Business Process] Lifecycle - High-level business workflow stages
-
Integration with [Strategy] - How this system aligns with broader initiatives
-
Related Requirements - Cross-references to other requirement pages
Example:
= Business Context
:description: Business context and overview of [system] operations
:keywords: [domain], business context, stakeholders
[.lead]
This section provides an overview of [organization's] [business domain],
including the types of [products/services] offered, key stakeholders,
and the business environment.
== [Product/Service] Overview
[Description of what the system manages - products, services, transactions]
=== [Category 1]
[Details of first category]
=== [Category 2]
[Details of second category]
== Key Stakeholders
=== Internal Stakeholders
* **[Role 1]** - [Responsibilities]
* **[Role 2]** - [Responsibilities]
=== External Stakeholders
* **[Role 1]** - [Relationships]
* **[Role 2]** - [Relationships]
== Business Environment
[Regulatory context, market dynamics, competitive landscape]
== [Business Process] Lifecycle
[High-level stages of the business process]
== Integration with [Organizational Strategy]
[How this system supports broader organizational goals]
3.3. 3. Functional Overview (functional-overview.adoc)
Purpose: High-level functional capabilities and features of the system.
Required Content:
-
Core functional areas (major capability groups)
-
Brief description of each functional area’s purpose
-
Key features within each functional area
-
Integration touchpoints
-
User roles and access requirements
-
Data migration requirements (if replacing legacy system)
Key Sections:
-
Core Functional Areas - Major feature groups (e.g., Application Management, Transaction Processing)
-
Integration Requirements - Summary of external system touchpoints
-
User Roles and Access - Role-based access requirements
-
Data Migration Requirements - Legacy system migration needs
Example:
= Functional Overview
:description: High-level functional capabilities of [system]
:keywords: functional requirements, capabilities, features
[.lead]
This section provides a high-level overview of the functional capabilities
required for [system].
== Core Functional Areas
=== [Functional Area 1]
[Purpose and scope of this functional area]
* **[Capability 1]** - [Description]
* **[Capability 2]** - [Description]
* **[Capability 3]** - [Description]
=== [Functional Area 2]
[Purpose and scope]
* **[Capability 1]** - [Description]
* **[Capability 2]** - [Description]
== Integration Requirements
The system must integrate with:
* **[System 1]** - [Integration purpose]
* **[System 2]** - [Integration purpose]
See xref:integrations.adoc[System Integrations] for details.
== User Roles and Access
[Table of roles, functions, and access levels]
== Data Migration Requirements
[Summary of legacy data migration needs]
3.4. 4. Business Processes (business-processes.adoc)
Purpose: Document business process models, workflows, and process narratives.
Required Content:
-
BPMN diagrams for core processes
-
Process narratives describing each step
-
Decision points and business rules
-
Process inputs and outputs
-
Performance metrics and SLAs (if applicable)
Key Sections:
-
Critical Processes - List of core business processes requiring documentation
-
Supporting Processes - Secondary processes
-
Recommended Documentation Approach - Standards for process modeling
-
Impact on System Design - How missing processes affect design
-
Next Steps - Actions to complete process documentation
Handling Missing Content:
[WARNING]
====
**PLACEHOLDER - CONTENT MISSING**
This section requires detailed business process documentation including:
* Process flow diagrams showing workflow steps
* Swim-lane diagrams showing roles and handoffs
* Decision points and business rules
* Process inputs and outputs
* Performance metrics and SLAs
====
== Missing Content
The source documentation does not include comprehensive process diagrams.
The following processes should be documented:
=== Critical Processes
1. **[Process 1 Name]**
* [Step descriptions]
* [Key decision points]
* [Inputs/outputs]
[Continue for each critical process]
== Recommended Documentation Approach
Business process documentation should include:
* **BPMN 2.0 diagrams** - Standard business process notation
* **Swim-lane diagrams** - Showing role responsibilities
* **Decision trees** - For complex business rules
* **Process narratives** - Textual description of each step
* **Exception handling** - How errors and exceptions are managed
== Next Steps
[Table with Priority, Action, Owner columns]
3.5. 5. User Stories (user-stories.adoc)
Purpose: Detailed user stories with acceptance criteria.
Required Content:
-
User stories in standard format (As a… I want… So that…)
-
Acceptance criteria for each story
-
Story organization by functional area
-
Story prioritization (if known)
Standard Format:
= User Stories
:description: Detailed user stories for [system] functionality
:keywords: user stories, requirements, acceptance criteria
[.lead]
This section contains detailed user stories for [system] functionality.
== User Story Format
User stories follow the standard format:
[quote]
____
**As a** [role]
**I want** [capability]
**So that** [benefit]
**Acceptance Criteria:**
* [Criterion 1]
* [Criterion 2]
* [Criterion 3]
____
== Story Categories
=== [Functional Area 1] Stories
==== US-001: [Story Title]
**As a** [role]
**I want** [capability]
**So that** [benefit]
**Acceptance Criteria:**
* [Criterion 1]
* [Criterion 2]
**Priority:** [High/Medium/Low]
**Dependencies:** [Other stories or systems]
Handling Extraction Needed:
[WARNING]
====
**PLACEHOLDER - CONTENT TO BE EXTRACTED**
User stories need to be extracted from the Business Requirements Document
and structured in standard format.
====
== Next Steps
Extract user stories from the BRD and supporting documentation.
3.6. 6. Data Model (data-model.adoc)
Purpose: Document data entities, relationships, and data dictionary.
Required Content:
-
Entity Relationship Diagrams (ERD)
-
Data dictionary with field definitions
-
Referential integrity rules
-
Data validation rules
-
Historical data and audit requirements
Key Sections:
-
Core Entities - List of major data entities
-
Relationships - Entity relationships
-
Data Model Diagrams - ERDs (using PlantUML or images)
-
Data Dictionary - Comprehensive field definitions
-
Data Migration Considerations - Legacy data mapping
-
Data Quality Requirements - Validation, integrity, audit requirements
Example PlantUML ERD:
.Entity Relationship Diagram
[source,plantuml]
@startuml entity Entity1 { * entity_id : INT — name : VARCHAR description : TEXT }
entity Entity2 { * id : INT — * entity1_id : INT [FK] status : VARCHAR }
Entity1 ||--o{ Entity2 @enduml
Handling Missing Content:
[WARNING]
====
**PLACEHOLDER - CONTENT MISSING**
This section requires:
* Entity Relationship Diagrams (ERD)
* Data dictionary with field definitions
* Referential integrity rules
* Data validation rules
====
== Next Steps
[Table with actions for data analysis, ERD creation, data dictionary]
3.7. 7. Data Migration (data-migration.adoc)
Purpose: Requirements for migrating data from legacy systems.
Required Content:
-
Migration scope (what data to migrate)
-
Migration strategy (approach and phasing)
-
Data mapping specifications
-
Data cleansing requirements
-
Cutover planning considerations
Example:
= Data Migration Requirements
:description: Requirements for migrating data from legacy systems
:keywords: data migration, legacy systems, data mapping
[.lead]
Requirements for migrating [business data] from legacy [system] to the modern platform.
== Migration Scope
=== Data to Migrate
* [Data category 1] - [Description]
* [Data category 2] - [Description]
=== Migration Strategy
Aligns with [organization's architecture/strategy document].
[NOTE]
====
**PLACEHOLDER:** Define detailed migration strategy including:
* Migration approach (big bang vs. phased)
* Data mapping specifications
* Data cleansing requirements
* Cutover planning
* Rollback procedures
====
3.8. 8. System Integrations (integrations.adoc)
Purpose: Document integration points with external systems.
Required Content:
-
List of internal system integrations
-
List of external system integrations
-
Integration patterns (API, file transfer, messaging)
-
Integration architecture approach
-
Security and authentication requirements
Example:
= System Integrations
:description: Integration requirements with external systems
:keywords: integrations, APIs, external systems
[.lead]
Integration requirements for [system] with internal and external systems.
== Integration Points
=== Internal [Organization] Systems
* **[System 1]** - [Purpose and data exchanged]
* **[System 2]** - [Purpose and data exchanged]
=== External Systems
* **[System 1]** - [Purpose and data exchanged]
* **[System 2]** - [Purpose and data exchanged]
=== Integration Architecture
[Reference to architectural approach - API-first, event-driven, etc.]
3.9. 9. API Requirements (api-requirements.adoc)
Purpose: Specify API design principles and required endpoints.
Required Content:
-
API design principles (REST, GraphQL, etc.)
-
Authentication and security approach
-
Required API endpoints (high-level)
-
API versioning strategy
-
API documentation standards
Example:
= API Requirements
:description: API specifications and requirements
:keywords: API, REST, integration, specifications
[.lead]
API requirements for exposing [system] functionality.
== API Principles
* **RESTful Design** - Standard REST conventions
* **JSON Format** - JSON request/response payloads
* **API Gateway** - Expose via [gateway technology]
* **Security** - OAuth 2.0 authentication and authorization
* **Versioning** - Semantic versioning strategy
* **Documentation** - OpenAPI/Swagger specifications
== Required API Endpoints
[NOTE]
====
**PLACEHOLDER:** Define specific API endpoints for:
* [Functional area 1] APIs
* [Functional area 2] APIs
* Reporting and analytics APIs
====
3.10. 10. Screen Designs (screen-designs.adoc)
Purpose: UI mockups, wireframes, and screen specifications.
Required Content:
-
Screen mockups or wireframes
-
Navigation flows
-
Responsive design requirements
-
Accessibility requirements
-
UI design standards
Handling Missing Content:
= Screen Designs
:description: User interface mockups and screen specifications
:keywords: UI, screen designs, mockups, wireframes
[.lead]
This section should contain screen designs, wireframes, and UI specifications.
[WARNING]
====
**PLACEHOLDER - CONTENT MISSING**
This section requires:
* Screen mockups and wireframes
* UI component specifications
* Navigation flows
* Responsive design specifications
* Accessibility requirements
====
== Missing Content
The source documentation does not include comprehensive UI designs.
The following screens should be documented:
=== [Functional Area 1] Screens
* **[Screen 1]** - [Purpose and key elements]
* **[Screen 2]** - [Purpose and key elements]
== UI Design Principles
* **Clear Navigation** - Intuitive menu structure
* **Consistent Layout** - Standard page templates
* **Responsive Design** - Support all device sizes
* **Accessibility** - WCAG 2.1 AA compliance
== Next Steps
[Table with design tasks and ownership]
3.11. 11. User Experience Requirements (ux-requirements.adoc)
Purpose: UX principles, usability requirements, and accessibility standards.
Required Content:
-
UX design principles
-
Usability requirements
-
Accessibility standards (WCAG compliance)
-
Performance expectations (page load times)
-
Browser and device support matrix
4. Creating a Requirements Module
4.1. Pre-Generation Questions
Before creating the requirements module, gather the following information:
-
What is the system name and purpose?
-
What source documentation is available? (BRD, specifications, existing docs)
-
Is this a new system or modernization of an existing system?
-
Are there legacy systems being replaced? (migration requirements needed?)
-
What is the business domain? (finance, insurance, healthcare, etc.)
-
Are there known documentation gaps? (processes, UI designs, data models)
-
Should I create placeholder pages for missing content? (recommended: yes)
4.2. Step-by-Step Creation Process
4.2.2. Step 2: Create Core Pages
Create all standard pages following the templates in this guide:
-
index.adoc (requirements overview)
-
business-context.adoc
-
functional-overview.adoc
-
business-processes.adoc (with placeholders if content missing)
-
user-stories.adoc (with extraction note if from source docs)
-
data-model.adoc (with placeholders if ERD missing)
-
data-migration.adoc (if legacy system exists)
-
integrations.adoc
-
api-requirements.adoc
-
screen-designs.adoc (with placeholders if mockups missing)
-
ux-requirements.adoc
4.2.3. Step 3: Populate Business Context
Based on source documentation and user input:
-
Describe the business domain and products/services
-
Identify key stakeholders (internal and external)
-
Document business environment and regulatory context
-
Summarize high-level business processes
4.2.4. Step 4: Document Functional Capabilities
-
Identify major functional areas (groupings of capabilities)
-
List key features within each area
-
Document user roles and access requirements
-
Note integration touchpoints
4.2.5. Step 5: Handle Missing Content Transparently
For any missing content, use clear placeholder warnings:
[WARNING]
====
**PLACEHOLDER - CONTENT MISSING**
This section requires [specific content type].
====
Include:
-
What content is missing
-
Why it’s important (impact on design/development)
-
Recommended approach to create the content
-
Next steps and ownership
4.2.6. Step 6: Create Navigation Structure
Update nav.adoc with hierarchical structure organized by requirement category.
4.2.7. Step 7: Register Module in antora.yml
nav:
- modules/ROOT/nav.adoc
- modules/requirements/nav.adoc
5. Quality Checklist
Before finalizing the requirements module, verify:
5.1. Content Completeness
-
All 11 standard pages created
-
Business context clearly described
-
Functional areas comprehensively covered
-
Missing content clearly marked with placeholders
-
User roles and stakeholders identified
5.2. Structure and Navigation
-
Navigation hierarchy is logical and intuitive
-
All xrefs work correctly
-
Module registered in antora.yml
-
Page titles and descriptions are clear
5.3. Documentation Gaps
-
All missing content identified
-
Placeholders include impact assessment
-
Next steps documented for each gap
-
TODO.adoc created or updated with gap tracking
6. Common Pitfalls to Avoid
|
DO NOT:
|
7. Integration with Project Architecture
Requirements documentation should align with and reference:
7.1. Organizational Architecture Documentation
If the organization has architecture documentation (e.g., "Project Rise" for CGIC):
-
Reference strategic themes - Show how requirements align with strategy
-
Link to roadmaps - Cross-reference relevant roadmap initiatives
-
Align with technology standards - Ensure requirements follow approved tech stack
-
Reference architectural patterns - API-first, event-driven, microservices, etc.
Example alignment:
== Integration with [Organizational Strategy]
The [system] modernisation aligns with [strategy name] themes:
[cols="1,3"]
|===
|Theme |Impact on [System]
|**[Theme 1]**
|[How requirements support this theme]
|**[Theme 2]**
|[How requirements support this theme]
|===
See xref:[architecture-doc]:ROOT:roadmap.adoc[Strategic Roadmap] for context.
7.2. Design and Architecture Modules
If design/architecture modules exist or will be created:
-
Cross-reference design decisions - Link requirements to architectural choices
-
Reference integration patterns - Show how integration requirements map to architecture
-
Align with deployment model - Cloud, on-premises, hybrid considerations
8. Customization Guidelines
8.1. When to Customize the Standard Structure
The standard 11-page structure is comprehensive but can be adapted:
Add pages for:
-
Complex domain models - If business domain requires extensive modeling
-
Regulatory requirements - If compliance is a major driver (e.g., financial services)
-
Mobile-specific requirements - If mobile is a major delivery channel
-
Security requirements - If security requirements are extensive (can be separate from UX)
-
Performance requirements - If performance is critical (may warrant own page vs. NFR module)
Combine pages when:
-
Small system scope - Integrations + APIs can be combined for small systems
-
Limited UI complexity - Screen designs + UX can be one page
-
No legacy migration - Skip data-migration.adoc if new system
Split pages when:
-
Large functional scope - Multiple functional-overview pages by subsystem
-
Complex integrations - Separate pages per major integration
-
Extensive user base - Separate user-stories pages by user type or functional area
8.2. Domain-Specific Adaptations
8.2.1. Insurance Systems
-
Add pages for: product definitions, underwriting rules, claims workflows, regulatory compliance
-
Emphasize: business processes, data migration, integration with legacy systems
8.2.2. E-Commerce Systems
-
Add pages for: product catalog, order management, payment processing, fulfillment
-
Emphasize: user experience, API requirements, scalability, performance
9. Cross-Team Implementation Guidance
Many use cases span multiple implementation teams - for example, a frontend Angular team and a backend Java team. This section provides guidance for documenting implementation scope to enable clear work breakdown.
9.1. The Challenge
A single use case (e.g., "Manual Payment with QR Code") represents a coherent user journey but requires work from multiple teams:
-
Frontend Team - UI components, user interactions, client-side validation
-
Backend Team - APIs, business logic, integrations, data persistence
Without clear guidance, this creates ambiguity when creating Azure DevOps work items.
9.2. Implementation Scope Section
Add an Implementation Scope section to each scenario after the Acceptance Criteria. This section identifies the work required by each team/layer.
Template:
**Implementation Scope:**
[cols="1,1,2"]
|===
| Area | Component | Deliverables
| Frontend
| [UI Component Name]
| [Specific UI deliverables]
| Backend
| [Service Name]
| [Specific API/service deliverables]
| Integration
| [Integration Point]
| [End-to-end or cross-cutting deliverables]
|===
Example:
**Implementation Scope:**
[cols="1,1,2"]
|===
| Area | Component | Deliverables
| Frontend
| Registration Portal (Angular)
| Payment selection screen, QR code display component, payment status polling
| Backend
| admin-service (Java)
| Payment reference generation API, payment status endpoint, callback webhook handler
| Integration
| Payment Gateway
| Callback integration, payment confirmation flow
|===
9.3. Benefits
This approach provides:
-
Single coherent use case - User journey documented from user perspective
-
Clear team ownership - Each row maps to a team’s Area in Azure DevOps
-
Traceable work items - User Stories can be created per Area from a single use case
-
Reduced ambiguity - Teams know exactly what they’re responsible for
9.4. Azure DevOps Work Item Mapping
When creating Azure DevOps work items from use cases with implementation scope:
-
Feature - One per major use case or group of related use cases
-
User Stories - Create separate stories per Area (Frontend, Backend, etc.)
-
Tasks - Technical tasks under each User Story
Use the Azure DevOps Area field to indicate the implementation layer. This enables:
-
Team-specific backlog views
-
Capacity planning per team
-
Clear sprint assignment
See Azure DevOps Integration Guide for detailed AI guidance on work item creation.
9.5. When to Use Implementation Scope
Always include when:
-
Multiple teams will implement the use case
-
Frontend and backend work is required
-
Third-party integrations are involved
Optional when:
-
Single team owns the entire use case
-
Use case is purely backend or purely frontend
-
Simple CRUD operations with no cross-cutting concerns
10. Example: CGIC Bonds Requirements Module
The CGIC Bonds system documentation serves as a reference implementation of this guide:
Context: Insurance guarantee and surety bonds system, part of organizational modernization (Project Rise)
Key Features:
-
Comprehensive placeholder strategy for missing content (processes, UI, data model)
-
Strong alignment with organizational architecture (Project Rise themes)
-
Clear documentation of gaps in TODO.adoc
-
Integration with broader CGIC architecture documentation
Pages Created:
-
business-context.adoc - Bonds business overview, stakeholders, product types
-
functional-overview.adoc - Facility management, guarantee issuance, premium management, claims
-
business-processes.adoc - Placeholder with detailed gap analysis
-
user-stories.adoc - Placeholder with extraction guidance
-
data-model.adoc - Placeholder with ERD requirements
-
data-migration.adoc - Adabas to SQL migration requirements
-
integrations.adoc - Internal and external system touchpoints
-
api-requirements.adoc - API-first design principles
-
screen-designs.adoc - Placeholder with comprehensive screen catalog
-
ux-requirements.adoc - Accessibility and usability requirements
Lessons Learned:
-
Binary source documents (DOCX, PDF, Excel) require explicit extraction planning
-
Placeholder pages with impact assessment are better than skipping missing content
-
Business process gaps have highest impact on downstream design and development
-
Cross-referencing organizational strategy strengthens requirements justification
11. Additional Resources
-
AsciiDoc Style Guide - Content formatting standards
-
Antora Configuration Guide - Module management
-
BABOK Guide - Business analysis best practices
-
IREB Requirements Engineering - Requirements engineering standards
-
SAFe - Agile requirements at scale
This guide ensures consistent, comprehensive requirements documentation across all software projects.