You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/index-GENERATED.md
+30-20Lines changed: 30 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,15 @@
1
-
**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.
1
+
## What is reqT?
2
2
3
-
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 <spanclass="EntType">Feature</span>, with *relations*, such as <spanclass="RelType">has</span>, to *attributes*, such as <spanclass="StrAttrType">Spec</span>, as in the example below:
3
+
**reqT** is an open source requirements engineering tool for software developers and learners, available as a desktop application and a Scala library. With reqT you can specify requirements using a flexible requirements modelling language called **reqT-lang** with essential requirements engineering concepts, giving structure to natural language requirements, while enabling analysis, visualization and automation.
4
+
5
+
The reqT-lang syntax is a small subset of [Markdown](https://en.wikipedia.org/wiki/Markdown) using bullet lists with indentation and special keywords, to express textual requirements models by connecting <spanclass="EntType">*entities*</span> via <spanclass="RelType">*relations*</span> to <spanclass="StrAttrType">*attributes*</span>, as in this example:
* <spanclass="StrAttrType">Spec</span>: Print a nice greeting.
7
9
* <spanclass="StrAttrType">Why</span>: First step to get started.
8
10
</code></pre>
9
11
10
-
See the <ahref="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf">**Quickref**</a> to explore reqT keywords covering essential requirements engineering concepts.
12
+
Visit the <ahref="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf">**Quickref**</a> to explore requirements engineering concepts of reqT.
11
13
12
14
Maintainer of reqT: [Prof. Björn Regnell](https://cs.lth.se/bjorn-regnell).
13
15
Used at Lund University in [this course](https://cs.lth.se/krav).
@@ -48,26 +50,22 @@ Latest version: <b>
48
50
49
51
50
52
## Getting started
51
-
* Make sure you have [Java 21](https://adoptium.net/temurin/releases/?package=jdk&version=21) and [Scala 3](https://www.scala-lang.org/download/) installed for your system. Check this in terminal using: </br>`java -version`</br>`scala -version`
53
+
* Make sure you have [Java 21 - LTS](https://adoptium.net/temurin/releases/?package=jdk&version=21) and [Scala 3](https://www.scala-lang.org/download/) installed for your system. Check this in terminal using: </br>`java -version`</br>`scala -version`</br> (If you use later versions than Java 21 - LTS and Scala 3.6.4 you may get some warnings, but things should work fine anyway.)
52
54
53
55
* Download the [reqT desktop app](https://github.com/reqT/reqT/releases/latest/download/reqT.jar) and run in terminal using: `java -jar reqT.jar`
54
56
55
-
* Learn more about [using the reqT app](#using-the-reqt-app)
56
-
57
-
* Start reqT in the [Scala REPL](https://docs.scala-lang.org/scala3/book/taste-repl.html) using: `java -jar reqT.jar repl`
57
+
* Visit the reqT [Quickref](https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf) to learn about available concepts in reqT-lang.
58
58
59
-
```
60
-
$ java -jar reqT.jar repl
59
+
* Learn more about [using the reqT app](#using-the-reqt-app)
61
60
62
-
Welcome to reqT 4.5.6 https://reqT.github.io
63
-
Type 'edit' to open a new reqT window.
64
-
Type ':quit' or press Ctrl+D to exit.
65
-
Re-run with -h for help on main program args
61
+
* Do the reqT labs to learn about using reqT in Requirements Engineering:
62
+
*[Lab 1: Context, Features and Priorities](https://github.com/reqT/reqT/blob/4.x/docs/lab1.md)
63
+
*[Lab 2: Quality Requirements and Release Planning](https://github.com/reqT/reqT/blob/4.x/docs/lab2.md)
64
+
* Labs are part of this course at Lund University: [ETSN15 Requirements Eng.](https://lunduniversity.github.io/krav/)
Welcome to Scala 3.6.4-RC1 (17.0.13, Java OpenJDK 64-Bit Server VM).
69
-
Type in expressions for evaluation. Or try :help.
66
+
* Start reqT in the [Scala REPL](https://docs.scala-lang.org/scala3/book/taste-repl.html) using: `java -jar reqT.jar repl` </br> You can create a requirements Model in the scala repl like so:
70
67
68
+
```scala
71
69
scala>valm="* Feature: helloWorld has Spec: print greeting".toModel
72
70
valm: reqt.Model=
73
71
Model(Rel(Ent(Feature,helloWorld),Has,
@@ -79,7 +77,8 @@ Model(
79
77
)
80
78
81
79
```
82
-
* You can use reqT as a library in Scala programs for specification analysis and automation. Download example below here: [`hello-reqt.scala`](https://github.com/reqT/reqT.github.io/blob/master/src/hello-reqt.scala) and run in terminal using: <br> `scala run hello-reqt.scala`
80
+
* You can use reqT in Scala programs for automated requirements analysis.
81
+
* Download example: [`hello-reqt.scala`](https://github.com/reqT/reqT.github.io/blob/master/src/hello-reqt.scala) and run in terminal using: <br> `scala run hello-reqt.scala`
83
82
84
83
```scala
85
84
//>usingscala3.6.4
@@ -100,11 +99,22 @@ val m = Model(
100
99
101
100
## Why reqT?
102
101
103
-
* TODO: add rationale for requirements as code from old site here: [reqt.org](https://reqt.org/index.html)
102
+
With reqT you can...
103
+
104
+
1. Model, analyse, visualize and prioritize requirements.
105
+
1. Combine natural language with formal structure.
106
+
1. Flexibly mix abstraction levels and modelling approaches.
107
+
1. Integrate requirements and test specification.
108
+
1. Export and import models via open formats.
109
+
1. Manipulate models with expressive, safe and convenient Scala programs.
110
+
1. Allocate requirements to releases with constraint solving.
111
+
1. Express prompts for spec-driven development with generative AI .
112
+
113
+
... using a simple markdown-based language in an open source tool and library.
104
114
105
-
## Using the reqT App
115
+
## Using the reqT desktop app
106
116
107
-
* TODO: more screendumps and explanations
117
+
Download [reqT.jar](https://github.com/reqT/reqT/releases/latest/download/reqT.jar) and start by double-click or open a terminal and navigate to the folder with the downloaded file and type: `java -jar reqT.jar`
0 commit comments