-
reqT is an open source requirements engineering tool for software developers.
-
With reqT you can:
- model, analyse, visualize and prioritize requirements
- combine natural language with formal structure
- flexibly mix abstraction levels and modelling approaches
- integrate requirements and test specification
- export and import models via open formats
- manipulate models with powerful Scala scripts
- allocate requirements to releases by constraint solving
-
For more information on see https://reqt.github.io/
- You need Java JDK 21, install from here.
- Other Java versions may also work, but if you get strange errors make sure you have Java JDK 21.
- Download the latest
reqT.jarfrom https://github.com/reqT/reqT/releases by clicking on the jar file under "Assets". or by using the terminal command below for your system:- Linux:
wget https://github.com/reqT/reqT/releases/latest/download/reqT.jar - Windows Powershell:
curl -Uri "https://github.com/reqT/reqT/releases/latest/download/reqT.jar" -OutFile reqT.jar - MacOS:
curl -O https://github.com/reqT/reqT/releases/latest/download/reqT.jar
- Linux:
-
Run reqT either by double-clicking on the downloaded jar or using this terminal command:
java -jar reqT.jar
-
If
scalais missing on your system then install it from here: https://www.scala-lang.org/ -
Download reqT.jar (see above) and run reqT in the Scala repl with
java -jar reqT.jar repl`
- You can also start the Scala repl with reqT using this command, which does not require downloading reqT.jar:
scala repl -S 3.6.4 --dep reqT:reqT:4.6.2,url=https://github.com/reqT/reqT/releases/download/v4.6.2/reqT-4.6.2.jar
It is optional but convenient to install the reqt command on your path like so:
-
Linux/MacOS:
- Create a dir called
reqTin your home directory and put thereqT.jarthere. - Create a file named
reqt(name in lower case) in~/binwith the contents below:#!/bin/bash java -jar ~/reqT/reqT.jar $@
- Make
reqtexecutable bychmod +x ~/bin/reqt - This requires that
~/binis on your$PATHwhich is the default in e.g. Ubuntu. On MacOS you need tosudo nano /etc/pathsand add/Users/YOURUSERNAME/binat the bottom of the file. - Restart your computer and then the command
reqtshould work in terminal.
- Create a dir called
-
Windows:
- Create a dir called
reqTin your home directory and put thereqT.jar(see Download above) in that dir. - Create a file named
reqt.cmd(name in lower case) in thereqTdir with the contents below:@echo OFF set _jarfile=%HOMEDRIVE%%HOMEPATH%\reqT\reqT.jar call java -jar %_jarfile% %*
- Add the
reqTdir to your Windows Path by following these instructions. - Restart your computer and then the command
reqtshould work in terminal.
- Create a dir called
The reqT app primarily depends on reqT-lang, a zero-dependency, cross-platform, permissive-licensed library containing the underlying reqT language and api.
This repo uses the following open source projects, each with its own license:
- reqT-lang: the reqT language (external and embedded DSL for requirements) is provided as a zero-dependency platform-independent Scala library with a permissive license: Apache v2.
- reqT-jacop: an abstraction layer for integer constraint solving and interface to the JaCoP constraint solver (license: AGPLv3).
- JaCoP used by reqT-jacop under the hood for constraint solving (license: AGPLv3).
- RSyntaxTextArea: used for syntax coloring in the reqT swing editor (license: BSD3)
- Autocomplete: used for autocompletion in the reqT swing editor (license: BSD3)
- Scala: the leanest, most scalable and expressive programming language of planet Earth (license: Apache v2).
- sbt: the scala build tool (license: Apache v2).
- os-lib: used for IO and spawning OS processes (license: MIT).
- scala-xml: used for svg graphics generation (license: Apache v2).
- Open JDK: the underlying JVM platform and graphical user interface Swing (license: GPLv2)
The reqT desktop app is transitively, due to the JaCoP constraint solver, licensed as AGPLv3, but the aim is to eventually transfer to Choco to enable re-licensing of reqT as permissive Appache v2.
- Clone this repo locally. You may want to use
git clone --depth 1to avoid large history. - Make sure you have installed latest
scalaandsbt - Run
sbt assembly - You will find the jar in
target/scala-<version>/calledreqT-<version>.jar
For maintainers with github access to this repo:
- Run
scala run publish.sc -S 3.3.7and follow instructions