Skip to main content

Treat Requirements Like Code

Project description

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 API users

For TRLC developers

Dependencies

Run-time

  • 3.8 <= Python3 <= 3.10

Optional dependencies (they are not installed automatically):

  • PyVCG (Linux or OSX only, required when using the --verify option)

Development tools

  • GNU Make
  • Graphviz
  • PyCodeStyle (from PyPI, for basic checking of source code style)
  • PyLint (from PyPI, for basic bug finding)
  • Coverage (from PyPI, to perform branch coverage when running the test suite)
  • Sphinx (from PyPI, for building the documentation)
  • PyVCG (from PyPI, for building verification conditions)
  • CVC5 (from PyPI, for discharging verification conditions)

You can install all Python dependencies by doing:

pip3 install -r requirements.txt

When building the traceability report you also need to install two lobster packages. Since there is a circular dependency, please install like this:

pip3 install bmw-lobster-core bmw-lobster-tool-python
pip3 install --no-deps bmw-lobster-tool-trlc

The most important make targets when developing TRLC are:

  • lint (runs pycodestyle and pylint)
  • test (performs unit and system tests and shows coverage)
  • tracing (generates traceability report)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trlc-1.1.8.tar.gz (68.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

trlc-1.1.8-py3-none-manylinux2014_x86_64.whl (74.8 kB view details)

Uploaded Python 3

trlc-1.1.8-py3-none-any.whl (74.8 kB view details)

Uploaded Python 3

File details

Details for the file trlc-1.1.8.tar.gz.

File metadata

  • Download URL: trlc-1.1.8.tar.gz
  • Upload date:
  • Size: 68.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for trlc-1.1.8.tar.gz
Algorithm Hash digest
SHA256 01fda3f584187f3207f705dcb6e0fc171841b596b3b69cf8555d052d50e9b7fc
MD5 cadd4c006f105513d2250c729d0d27c0
BLAKE2b-256 52ee41cf2be96191ccfa6672c068035f4c1e1053555838d72e75bd6a15019f76

See more details on using hashes here.

File details

Details for the file trlc-1.1.8-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for trlc-1.1.8-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c235acc231cd3abc2b085850ee911d3b88dd4a0ea50dafd14a96ea9bc7f6168d
MD5 3fa05727f67cfe3c99e053a5d62c8c01
BLAKE2b-256 60047701bfff217a47e5fa5b6d3072eba75d184ebdd190ab0d9973044e15fba3

See more details on using hashes here.

File details

Details for the file trlc-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: trlc-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 74.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for trlc-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 cc7e869eade6452d76d7a18a70cb958f9236dbabf233aa048fcc5e778c4a85a2
MD5 56a4ae849026c09b16a66b0bc37ea755
BLAKE2b-256 40f70afe289d711878b1a636d4408c2d9e311ff29c2e41c5a5feb61836c5afba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page