Our Traceability Model
- Roles
- Relations
- design → requirement
- design → design
- design → implementation, test, document
- implementation → requirement, design
- implementation → implementation
- implementation → test
- test → requirement
- test → design, implementation
- document → requirement, design
- use_case ↔ requirement
- process_requirement → requirement, design
- Reading the diagram
- Related
This page describes the traceability model that Antora Tracer uses to trace its own development artifacts. For the general concepts behind roles and relations, see The Traceability Model.
The diagram below is generated from the project’s configuration — examples/traceability.yml extending the built-in requirements-engineering preset.
Each node is a role.
Each arrow is a relation the configuration permits, labeled with its relation types.
Only declared directions are drawn: the diagram does not add the inverse direction that the extension derives for traversal.
Roles
user_need
A user need is a specific, actionable requirement or desire that a user has when interacting with a system, product, or service. It represents the goal, problem, or task the user wants to accomplish, often framed from their perspective. User needs are the foundation for deriving use cases, which describe how the system should behave to fulfill those needs.
Key Characteristics:
-
User-Centric: Focuses on what the user wants to achieve, not how the system works.
-
Actionable: Clearly defines a task or outcome (e.g., "I want to reset my password").
-
Problem-Oriented: Addresses a pain point or a job to be done.
-
Non-Technical: Avoids implementation details (e.g., "The system should use OAuth 2.0" is not a user need).
"As a bank customer, I want to transfer money to another account so that I can pay my rent on time."
It follows the pattern <WHO> <WHAT> <WHY>
Use Case
Use Case Name |
Transfer Funds |
|---|---|
Primary Actor |
Bank Customer |
Description |
Allows a customer to transfer money from their account to another account. |
Preconditions |
|
Main Success Scenario |
|
Extensions |
3a. Invalid recipient account: System displays an error message and prompts the customer to re-enter the details. 4a. Insufficient funds: System notifies the customer and aborts the transfer. 5a. Customer cancels: System returns to the dashboard without processing the transfer. |
Postconditions |
|
This project tracks eight roles.
- requirement
-
A functional requirement the extension must fulfill (
REQ-xxx). These are the "what the system must do" statements. - use_case
-
A user goal with actors, preconditions, a main flow, and postconditions (
UC-xxx). Use cases lead to requirements. - process_requirement
-
A requirement on the delivery process itself — how the team builds and ships (
PRQ-xxx). - constraint
-
A condition the system must not violate (
CON-xxx), such as runtime or output-format limits. This role currently has no relations declared, so it renders as an isolated node until the model is completed. - design
-
An architectural or design element that addresses requirements (
ARC-xxx,DES-xxx). - implementation
-
A code artifact that implements a design (
IMP-xxx). - test
-
A verification or validation procedure (
TST-xxx,TEST-xxx). - document
-
An external specification or standard the project references. This role is inherited from the preset and not yet populated by this project’s artifacts.
Relations
Relations are directional and typed: each states one fact per item, reading source → target. The sections below follow the source role, mirroring how the configuration declares them.
| From | Relation | To | Description |
|---|---|---|---|
Requirement |
refines |
Requirement |
The requirement narrows a broader requirement. |
Requirement |
depends on |
Requirement |
The requirement can only be satisfied after another requirement. |
Requirement |
conflicts with |
Requirement |
Two requirements cannot both be satisfied as stated. |
design → requirement
addresses-
The design responds to the requirement.
satisfies-
The design fulfills the requirement.
design → design
depends_on-
The design depends on another design element.
composed_of-
The design is composed of smaller design elements.
refined_by-
The design is refined by a more detailed design.
design → implementation, test, document
realized_by-
The design is realized by an implementation.
validated_by-
The design is validated by a test.
documented_by-
The design is documented by a document.
implementation → requirement, design
satisfies-
The implementation fulfills the requirement.
implements-
The implementation implements the design.
implementation → implementation
depends_on-
The implementation depends on another implementation.
uses-
The implementation reuses another implementation.
test → requirement
covers-
The test covers the requirement.
verifies-
The test verifies the requirement.
test → design, implementation
validates-
The test validates the design.
tests-
The test tests the implementation.
document → requirement, design
contains-
The document contains the requirement.
describes-
The document describes the design.
Reading the diagram
Three self-loops appear: requirement, design, and implementation each declare relations back to their own role.
These are intentional — intra-role refinement and dependency are part of the model.
The constraint role renders as an isolated node.
This is a known gap: the role has items (CON-001 through CON-005) but no relations are declared for it yet.
Related
-
The Traceability Model — the general concepts
-
How to define a custom domain model — put these concepts into practice
-
Configuration Reference — the YAML schema