reqT is an open source requirements engineering tool for software developers based on reqT-lang, a flexible requirements modelling language with essential requirements engineering concepts, giving structure to natural language requirements, while enabling analysis, visualization and automation.
The reqT-lang syntax is a subset of Markdown using bullet lists with indentation and special keywords to express textual requirements models by connecting entities, such as a Feature, with relations, such as has, to attributes, such as Spec, as in the example below:
* Feature: helloWorld has
* Spec: Print a nice greeting.
* Why: First step to get started.
See the Quickref to explore reqT keywords covering essential requirements engineering concepts.
Maintainer of reqT: Prof. Björn Regnell. Used at Lund University in this course.
Latest version: 4.6.2 All versions: reqT reqT-lang
Latest reqT.jar from: tinyurl.com/get-reqT
curl -L https://tinyurl.com/get-reqT -o reqT.jar
Make sure you have Java
21 and Scala 3
installed for your system. Check this in terminal using:
java -version
scala -version
Download the reqT
desktop app and run in terminal using:
java -jar reqT.jar
Learn more about using the reqT app
Start reqT in the Scala
REPL using: java -jar reqT.jar repl
-jar reqT.jar repl
$ java
4.5.6 https://reqT.github.io
Welcome to reqT Type 'edit' to open a new reqT window.
Type ':quit' or press Ctrl+D to exit.
-run with -h for help on main program args
Re
-S 3.6.4-RC1 --jar reqT.jar -- --repl-init-script "import reqt.*"
scala repl 3.6.4-RC1 (17.0.13, Java OpenJDK 64-Bit Server VM).
Welcome to Scala Type in expressions for evaluation. Or try :help.
> val helloModel = m"* Feature: helloWorld has Spec: print greeting"
scalaval helloModel: reqt.Model =
Model(Rel(Ent(Feature,helloWorld),Has,
Model(StrAttr(Spec,print greeting))))
> scala
hello-reqt.scala
and run in terminal using: scala run hello-reqt.scala
//> using scala 3.6.3
//> using dep "reqt:reqt:4.4.1,url=https://github.com/reqT/reqT/releases/download/v4.4.1/reqT-4.4.1.jar"
import reqt.*
val m = Model(
Feature("helloWorld").has(
Spec("Print a nice greeting."),
Why("First step to get started."),
)
)
def hello =
@main println(m.toMarkdown)
TODO: example usage of the reqT-lang api
TODO: example usage of the reqT command-line args