Skip to content

bmw-software-engineering/trlc

Repository files navigation

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).