Elements
graph TD;
%% REQVIRE-AUTOGENERATED-DIAGRAM
%% Graph styling
classDef userRequirement fill:#D1C4E9,stroke:#7E57C2,stroke-width:2px;
classDef systemRequirement fill:#E1D8EE,stroke:#673AB7,stroke-width:1.5px;
classDef verification fill:#DCEDC8,stroke:#4CAF50,stroke-width:2px;
classDef folder fill:#FAFAFA,stroke:#9E9E9E,stroke-width:3px;
classDef file fill:#FFF8E1,stroke:#FFCA28,stroke-width:2px;
classDef default fill:#F5F5F5,stroke:#424242,stroke-width:1.5px;
subgraph 295862b78f71931e["📁 requirements/Functional/Integration"]
subgraph 46ddebdb4f22c8ba["📄 CodeAlignment.md"]
3221acc9f28ad2e8["BAT style comment"];
class 3221acc9f28ad2e8 systemRequirement;
click 3221acc9f28ad2e8 "CodeAlignment.html#bat-style-comment";
cb2d46c673c86826["Code Traceability"];
class cb2d46c673c86826 userRequirement;
click cb2d46c673c86826 "CodeAlignment.html#code-traceability";
1fa67e6ca679696f["Comment Style by File Extension"];
class 1fa67e6ca679696f systemRequirement;
click 1fa67e6ca679696f "CodeAlignment.html#comment-style-by-file-extension";
ed34b4e6f6f62d59["CSS style comment"];
class ed34b4e6f6f62d59 systemRequirement;
click ed34b4e6f6f62d59 "CodeAlignment.html#css-style-comment";
7b894127c574ddcc["Dash style comment"];
class 7b894127c574ddcc userRequirement;
click 7b894127c574ddcc "CodeAlignment.html#dash-style-comment";
76973148d3c8f875["Slash style comment"];
class 76973148d3c8f875 systemRequirement;
click 76973148d3c8f875 "CodeAlignment.html#slash-style-comment";
c6b7e74445a27ce1["SQL style comment"];
class c6b7e74445a27ce1 systemRequirement;
click c6b7e74445a27ce1 "CodeAlignment.html#sql-style-comment";
c71fb60381800071["Traceability Format"];
class c71fb60381800071 systemRequirement;
click c71fb60381800071 "CodeAlignment.html#traceability-format";
43da2919bb21bb21["Validating Traceability Format"];
class 43da2919bb21bb21 systemRequirement;
click 43da2919bb21bb21 "CodeAlignment.html#validating-traceability-format";
274e7f2bddc1ffb["XML style comment"];
class 274e7f2bddc1ffb systemRequirement;
click 274e7f2bddc1ffb "CodeAlignment.html#xml-style-comment";
end
subgraph 36a0666ce9e433d6["📄 Specifications.md"]
e65459f80f414a8d["Comment Style Specification"];
class e65459f80f414a8d default;
click e65459f80f414a8d "Specifications.html#comment-style-specification";
end
end
cb2d46c673c86826 -.->|deriveReqT| c71fb60381800071;
1fa67e6ca679696f -.->|deriveReqT| 3221acc9f28ad2e8;
1fa67e6ca679696f -.->|deriveReqT| ed34b4e6f6f62d59;
1fa67e6ca679696f -.->|deriveReqT| 7b894127c574ddcc;
1fa67e6ca679696f -.->|deriveReqT| 76973148d3c8f875;
1fa67e6ca679696f -.->|deriveReqT| c6b7e74445a27ce1;
1fa67e6ca679696f -.->|deriveReqT| 274e7f2bddc1ffb;
1fa67e6ca679696f -->|satisfiedBy| e65459f80f414a8d;
c71fb60381800071 -.->|deriveReqT| 1fa67e6ca679696f;
c71fb60381800071 -.->|deriveReqT| 43da2919bb21bb21;
Code Traceability
The system shall support code traceability by using structured comments to link code implementations to corresponding requirements in the System model.
Metadata
Relations
When parsing a source file for traceability, the system shall identify and extract all [reqvire::...] markers along with their associated requirement element identifiers.
Details
Syntax used for [reqvire::...] markers:
[reqvire::<relation_type>: <element identifier>] START [reqvire::<relation_type>: <element idetifier>] END
Where:
<relation_type> specifies the type of relation with only 2 types allowed:
<element identifier> is the identifier of the requirement being traced.
Metadata
Relations
The system shall use different comment style based of file extension of the code source file.
Details
The system shall define comment style specification for each file extension.
Metadata
Relations
When a source file has a .bat or .cmd extension, the system shall use REM for comments.
Details
REM [reqvire::satisfies: Req1] START
echo Hello, World!
REM [reqvire::satisfies: Req1] END
Metadata
Relations
When a source file has a .css or .scss extension, the system shall use /* */ for comments.
Details
/* [reqvire::satisfies: Req1] START */
.button { background-color: blue; }
/* [reqvire::satisfies: Req1] END */
Metadata
Relations
When a source file has a .py, .sh, .rb, or .yml extension, the system shall use # for single-line comments.
Details
# [reqvire::satisfies: Req1] START
def process_sensor_data():
pass # Implementation logic
# [reqvire::satisfies: Req1] END
Metadata
Relations
When a source file has a .sql extension, the system shall use -- for single-line comments.
-- [reqvire::satisfies: Req1] START
SELECT * FROM users;
-- [reqvire::satisfies: Req1] END
Metadata
Relations
When a source file has a .c, .cpp, .cs, .java, .js, or .ts extension, the system shall use // for single-line comments.
Details
// [reqvire::satisfies: Req1] START
void processSensorData() {
// Implementation logic
}
// [reqvire::satisfies: Req1] END
Metadata
Relations
When a source file has a .html, .xml, or .xsl extension, the system shall use <!-- --> for comments.
Details
<!-- [reqvire::satisfies: Req1] START -->
<div> UI Component </div>
<!-- [reqvire::satisfies: Req1] END -->
Metadata
Relations
While processing traceability in code, the system shall ensure that each [reqvire::...] START tag has a corresponding [reqvire::...] END tag.
Metadata
Relations