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 language reference manual for TRLC. Previous versions are also available.
-
A pure Python reference implementation of TRLC.
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
- Tutorial (read this as a first introduction)
- Release Notes (read this to find out whats new)
- License
For API users
- Language Reference Manual (for language lawyers)
- Python API Documentation (API reference for end-users)
- AST Hierarchy (overview over all classes in the AST)
For TRLC developers
- Lexer/Parser Hierarchy (overview over all classes releated to the lexing and parsing of TRLC)
- Tool Architecture Overview
Dependencies
Run-time
- 3.8 <= Python3 <= 3.10
Optional dependencies (they are not installed automatically):
- PyVCG (Linux or OSX only, required
when using the
--verifyoption)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01fda3f584187f3207f705dcb6e0fc171841b596b3b69cf8555d052d50e9b7fc
|
|
| MD5 |
cadd4c006f105513d2250c729d0d27c0
|
|
| BLAKE2b-256 |
52ee41cf2be96191ccfa6672c068035f4c1e1053555838d72e75bd6a15019f76
|
File details
Details for the file trlc-1.1.8-py3-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: trlc-1.1.8-py3-none-manylinux2014_x86_64.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c235acc231cd3abc2b085850ee911d3b88dd4a0ea50dafd14a96ea9bc7f6168d
|
|
| MD5 |
3fa05727f67cfe3c99e053a5d62c8c01
|
|
| BLAKE2b-256 |
60047701bfff217a47e5fa5b6d3072eba75d184ebdd190ab0d9973044e15fba3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc7e869eade6452d76d7a18a70cb958f9236dbabf233aa048fcc5e778c4a85a2
|
|
| MD5 |
56a4ae849026c09b16a66b0bc37ea755
|
|
| BLAKE2b-256 |
40f70afe289d711878b1a636d4408c2d9e311ff29c2e41c5a5feb61836c5afba
|