Treat Requirements Like Code (TRLC)
TRLC is a domain-specific language developed at BMW for writing (and
linking) requirements with meta-data.
The repository contains:
The implementation is not very fast, but designed to be pedantically
correct in following the language definition. The tools also include a
powerful static analysis tool to find issues with types and
user-defined check rules.
The Python implementation can be used for several purposes:
-
It can be used to validate other TRLC implementations.
-
It can be used to validate a body of requirements (e.g. a CI check
that all requirements are well formed)
-
The API can be used to write other tools based on TRLC (for example
a tool to render the requirements in HTML, a tool to diff
requirements or perform an impact analysis, or a tool to perform
software traceability, etc.)
Documentation
For normal users
For advanced users
For TRLC developers
Dependencies
Run-time
- 3.8 <= Python3 <= 3.11
- PyVCG
Optional dependencies (they are not installed automatically):
- PyPI CVC5 (Linux or OSX only,
required when using the
--verify
option) - Binary CVC5
(An alternative to PyPI CVC5, make sure to rename the binary to
cvc5
and put it on your PATH).