RTM-001: Requirements Traceability Matrix
| Property |
Value |
| ID |
RTM-001 |
| Version |
2.0 |
| Status |
Active |
| Last Updated |
2026-03-06 |
1. Master Traceability
| URS ID |
Requirement |
FS ID |
DS Ref |
Risk (RA) |
OQ Ref |
PQ Ref |
Status |
Notes |
| URS-MFG-001.1 |
Create manufacturing process |
FS-MFG-001.1 |
DS-001 |
Medium |
OQ-MFG |
— |
Implemented |
|
| URS-MFG-001.2 |
Process state transitions |
FS-MFG-001.2 |
DS-001 |
High |
OQ-MFG |
— |
Implemented |
|
| URS-MFG-001.3 |
Query manufacturing processes |
FS-MFG-001.3 |
DS-001 |
Low |
OQ-MFG |
— |
Implemented |
|
| URS-MFG-001.4 |
Delete manufacturing process |
FS-MFG-001.4 |
DS-001 |
Medium |
OQ-MFG |
— |
Implemented |
|
| URS-PRD-001.1 |
Product CRUD |
FS-PRD-001.1 |
DS-001 |
Medium |
OQ-PRD |
— |
Implemented |
|
| URS-PRD-001.2 |
Version management |
FS-PRD-001.2 |
DS-001 |
High |
OQ-PRD |
— |
Implemented |
|
| URS-PRD-001.3 |
Product/version search |
FS-PRD-001.3 |
DS-001 |
Low |
OQ-PRD |
— |
Implemented |
|
| URS-PRD-001.4 |
Bulk operations |
FS-PRD-001.4 |
DS-001 |
Medium |
OQ-PRD |
— |
Implemented |
|
| URS-PRD-001.5 |
Cascading delete |
FS-PRD-001.5 |
DS-001, DS-003 |
High |
OQ-PRD |
— |
Partial |
Delete cascades to versions but not to parameter mappings across 17+ types. See FEAT-001. |
| URS-QUA-001.1 |
Record measurements |
FS-QUA-001.1 |
DS-001 |
High |
OQ-QUA |
— |
Partial |
4 of 14 measurement types implemented (EGP, Kann, Length, Valve). See FEAT-004. |
| URS-QUA-001.2 |
Current message management |
FS-QUA-001.2 |
DS-001, DS-003 |
Low |
OQ-QUA |
— |
Implemented |
|
| URS-QUA-001.3 |
Message archiving |
FS-QUA-001.3 |
DS-001 |
Medium |
OQ-QUA |
— |
Implemented |
|
| URS-QUA-001.4 |
Process statistics |
FS-QUA-001.4 |
DS-001 |
Low |
OQ-QUA |
— |
Implemented |
|
| URS-QUA-001.5 |
Real-time notifications |
FS-QUA-001.5 |
DS-003 |
Low |
OQ-QUA |
— |
Implemented |
|
| URS-ROB-001.1 |
Store master data |
FS-ROB-001.1 |
DS-001 |
Medium |
OQ-ROB |
— |
Implemented |
|
| URS-ROB-001.2 |
Store position data |
FS-ROB-001.2 |
DS-001 |
Medium |
OQ-ROB |
— |
Implemented |
|
| URS-ROB-001.3 |
Calculate positions |
FS-ROB-001.3 |
DS-001 |
High |
OQ-ROB |
— |
Implemented |
|
| URS-ROB-001.4 |
Master teach |
FS-ROB-001.4 |
DS-001 |
High |
OQ-ROB |
— |
Implemented |
|
| URS-WPC-001.1 |
Create WPC |
FS-WPC-001.1 |
DS-001 |
Medium |
OQ-WPC |
— |
Implemented |
|
| URS-WPC-001.2 |
Query WPCs |
FS-WPC-001.2 |
DS-001 |
Low |
OQ-WPC |
— |
Implemented |
|
| URS-WPC-001.3 |
Update/delete WPCs |
FS-WPC-001.3 |
DS-001 |
Low |
OQ-WPC |
— |
Implemented |
|
| URS-PAR-001.1 |
Setup CRUD |
FS-PAR-001.1 |
DS-001, DS-003 |
Medium |
OQ-PAR |
— |
Implemented |
17+ types via generic ParameterMappingRepository |
| URS-PAR-001.2 |
Mapping CRUD |
FS-PAR-001.2 |
DS-001, DS-003 |
Medium |
OQ-PAR |
— |
Implemented |
|
| URS-PAR-001.3 |
15+ parameter types |
FS-PAR-001.3 |
DS-003 |
Medium |
OQ-PAR |
— |
Implemented |
20+ types after SCHEMA-001 |
| URS-PAR-001.4 |
Cascading delete |
FS-PAR-001.4 |
DS-003 |
High |
OQ-PAR |
— |
Partial |
Handler exists but not wired into product/version delete path. See FEAT-001. |
| URS-PAR-001.5 |
All mappings for version |
FS-PAR-001.5 |
DS-001 |
Low |
OQ-PAR |
PQ-PAR |
Implemented |
|
| URS-SYS-001.1 |
System variables |
FS-SYS-001.1 |
DS-001 |
Low |
OQ-SYS |
— |
Implemented |
|
| URS-SYS-001.2 |
Version history |
FS-SYS-001.2 |
DS-001 |
Low |
OQ-SYS |
— |
Implemented |
|
| URS-SYS-001.3 |
Health check |
FS-SYS-001.3 |
DS-001 |
Low |
OQ-SYS |
PQ-SYS |
Partial |
Only checks db_essert. Should check all 8 databases. See FEAT-003. |
| URS-SYS-001.4 |
Automated CI pipeline |
FS-SYS-001.4 |
— |
Low |
— |
— |
Implemented |
FEAT-008. GitHub Actions: build-and-test, publish-release, integration-tests workflows. |
| URS-INT-001.1 |
REST API |
FS-INT-001.1 |
DS-001 |
Medium |
OQ-INT |
PQ-REST |
Implemented |
31 controllers (exceeds documented 21) |
| URS-INT-001.2 |
OPC UA |
FS-INT-001.2 |
DS-001 |
High |
OQ-INT |
— |
Implemented |
2 NodeManagers, 59 tests |
| URS-INT-001.3 |
GraphQL |
FS-INT-001.3 |
DS-001 |
Medium |
OQ-INT |
— |
Partial |
Core contexts covered (24Q/26M/4S). Parameter CRUD not in GraphQL. See FEAT-005. |
| URS-INT-001.4 |
Cross-protocol consistency |
FS-INT-001.4 |
DS-001 |
High |
OQ-INT |
— |
Implemented |
All APIs share Application layer handlers |
| URS-INT-001.5 |
Container-based deployment |
FS-INT-001.5 |
— |
Low |
OQ-INT |
— |
Draft |
FEAT-006. Docker containers for REST, GraphQL, OPC UA with Docker Compose orchestration. |
| URS-INT-001.6 |
Native Windows Service deployment |
FS-INT-001.6 |
— |
Low |
OQ-INT |
— |
In Progress |
FEAT-007. Unified host for S7-1500 Open Controller. Single-process deployment as Windows Service. |
| URS-DAT-001.1 |
ALCOA+ records |
FS-DAT-001.1 |
DS-002 |
Critical |
OQ-DAT |
— |
Implemented |
All 8 databases follow UID/Timestamp/Creator/CRC pattern |
| URS-DAT-001.2 |
CRC integrity |
FS-DAT-001.2 |
DS-002, DS-003 |
Critical |
OQ-DAT |
— |
Partial |
CRC calculated on write. No verification on read. See FEAT-002. |
| URS-DAT-001.3 |
Changelog audit trail |
FS-DAT-001.3 |
DS-002 |
High |
OQ-DAT |
— |
Partial |
72 changelog entities exist (read). Write path has placeholder stubs. See DEBT-001. |
| URS-DAT-001.4 |
Transaction atomicity |
FS-DAT-001.4 |
DS-003 |
High |
OQ-DAT |
— |
Implemented |
CrossDatabaseUnitOfWork with rollback |
2. Test Mapping by Context
Manufacturing (URS-MFG-001)
| URS |
FS |
Handler |
Test Files |
OQ Section |
| URS-MFG-001.1 |
FS-MFG-001.1 |
CreateManufacturingProcessHandler |
CreateManufacturingProcessHandlerTests, ManufacturingControllerTests |
OQ-MFG |
| URS-MFG-001.2 |
FS-MFG-001.2 |
CompleteProcessHandler, FailProcessHandler |
CompleteProcessHandlerTests, FailProcessHandlerTests |
OQ-MFG |
| URS-MFG-001.3 |
FS-MFG-001.3 |
GetProcessByIdHandler |
GetProcessByIdHandlerTests |
OQ-MFG |
| URS-MFG-001.4 |
FS-MFG-001.4 |
DeleteProcessHandler |
DeleteProcessHandlerTests |
OQ-MFG |
Products (URS-PRD-001)
| URS |
FS |
Handler |
Test Files |
OQ Section |
| URS-PRD-001.1 |
FS-PRD-001.1 |
CreateProductHandler |
CreateProductHandlerTests, ProductsControllerTests |
OQ-PRD |
| URS-PRD-001.2 |
FS-PRD-001.2 |
CreateVersionHandler, SetFactorySetupHandler |
CreateVersionHandlerTests, SetFactorySetupHandlerTests |
OQ-PRD |
| URS-PRD-001.3 |
FS-PRD-001.3 |
SearchProductsHandler |
SearchProductsHandlerTests |
OQ-PRD |
| URS-PRD-001.4 |
FS-PRD-001.4 |
BulkCreateProductsHandler |
BulkCreateProductsHandlerTests |
OQ-PRD |
| URS-PRD-001.5 |
FS-PRD-001.5 |
DeleteProductWithAllVersionsHandler |
DeleteProductWithAllVersionsHandlerTests |
OQ-PRD |
Quality (URS-QUA-001)
| URS |
FS |
Handler |
Test Files |
OQ Section |
| URS-QUA-001.1 |
FS-QUA-001.1 |
RecordLengthMeasurementHandler (etc.) |
RecordLengthMeasurementHandlerTests, StatisticsControllerTests |
OQ-QUA |
| URS-QUA-001.2 |
FS-QUA-001.2 |
AddCurrentMessageHandler |
AddCurrentMessageHandlerTests |
OQ-QUA |
| URS-QUA-001.3 |
FS-QUA-001.3 |
ArchiveMessageHandler |
ArchiveMessageHandlerTests |
OQ-QUA |
| URS-QUA-001.4 |
FS-QUA-001.4 |
GetProcessStatisticsHandler |
GetProcessStatisticsHandlerTests |
OQ-QUA |
| URS-QUA-001.5 |
FS-QUA-001.5 |
StatisticsSubscriptions |
StatisticsSubscriptionsTests |
OQ-QUA |
Parameters (URS-PAR-001)
| URS |
FS |
Handler Pattern |
Test Files |
OQ Section |
| URS-PAR-001.1-2 |
FS-PAR-001.1-2 |
Create{Type}SetupHandler |
{Type}ParametersControllerTests (17+ types) |
OQ-PAR |
| URS-PAR-001.3 |
FS-PAR-001.3 |
Generic base class |
ParameterMappingIntegrationTests |
OQ-PAR |
| URS-PAR-001.4 |
FS-PAR-001.4 |
DeleteMappingsForVersionHandler |
DeleteMappingsForVersionHandlerTests |
OQ-PAR |
| URS-PAR-001.5 |
FS-PAR-001.5 |
GetAllMappingsForVersionHandler |
GetAllMappingsForVersionHandlerTests |
OQ-PAR |
Data Integrity (URS-DAT-001)
| URS |
FS |
Service/Pattern |
Test Files |
OQ Section |
| URS-DAT-001.1 |
FS-DAT-001.1 |
EF Core configurations |
DbContext tests (all 8 contexts) |
OQ-DAT |
| URS-DAT-001.2 |
FS-DAT-001.2 |
ICrcService / CrcService |
CrcServiceTests, Persistence.Operations tests |
OQ-DAT |
| URS-DAT-001.3 |
FS-DAT-001.3 |
ChangelogsDbContext |
ChangelogsDbContextTests |
OQ-DAT |
| URS-DAT-001.4 |
FS-DAT-001.4 |
IUnitOfWork |
UnitOfWorkTests, transaction rollback tests |
OQ-DAT |
3. Test Coverage Summary
| Context |
URS Items |
Domain Tests |
Application Tests |
Infrastructure Tests |
API Tests |
Total |
| MFG |
4 |
~15 |
~50 |
~20 |
~15 |
~100 |
| PRD |
5 |
~10 |
~55 |
~30 |
~30 |
~125 |
| QUA |
5 |
~8 |
~60 |
~25 |
~20 |
~113 |
| ROB |
4 |
— |
~40 |
~15 |
~15 |
~70 |
| WPC |
3 |
~15 |
~35 |
~10 |
~15 |
~75 |
| PAR |
5 |
— |
~50 |
~40 |
~200 |
~290 |
| SYS |
4 |
— |
~40 |
~15 |
~15 |
~70 |
| INT |
4 |
— |
— |
— |
~50 |
~50 |
| DAT |
4 |
~5 |
~20 |
~30 |
~10 |
~65 |
| Total |
38 |
~53 |
~350 |
~185 |
~370 |
~958 |
Note: Approximate counts. Actual test counts may vary as the product evolves. Run dotnet test for current numbers.
4. Status Legend
| Status |
Meaning |
| Draft |
Requirement defined, not yet implemented |
| In Progress |
Actively being worked on |
| Implemented |
Code exists, handler + repository + endpoints work |
| Verified |
Tests pass, traceability confirmed, functionality complete |
| Partial |
Partially implemented — see Notes column for details |
5. Status Summary
| Status |
Count |
Percentage |
| Implemented |
25 |
63% |
| Partial |
7 |
18% |
| Draft |
1 |
3% |
| In Progress |
1 |
3% |
| Verified |
0 |
0% |
| Total |
40 |
— |
Note: "Implemented" items need formal test verification pass to move to "Verified". Partial items are tracked as backlog items in docs/requirements/BACKLOG.md.
6. Backlog Cross-References
Partial items link to backlog work items for resolution:
| URS ID |
Backlog ID |
Work Item |
| URS-PRD-001.5 |
FEAT-001 |
Cascading delete for parameter groups |
| URS-QUA-001.1 |
FEAT-004 |
Missing measurement type handlers |
| URS-PAR-001.4 |
FEAT-001 |
Cascading delete for parameter groups |
| URS-SYS-001.3 |
FEAT-003 |
Health check — multi-database connectivity |
| URS-INT-001.3 |
FEAT-005 |
GraphQL parameter operations |
| URS-DAT-001.2 |
FEAT-002 |
CRC read-time verification |
| URS-DAT-001.3 |
DEBT-001 |
Changelog write path for new groups |
Supporting Evidence (Archived)