Skip to content

Commit 55c93d6

Browse files
committed
more work on docs
1 parent accfdf0 commit 55c93d6

4 files changed

Lines changed: 335 additions & 175 deletions

File tree

index.html

Lines changed: 156 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
77
<title>reqT - Requirements Engineering Tool</title>
88
<style>
9+
/* Default styles provided by pandoc.
10+
** See https://pandoc.org/MANUAL.html#variables-for-html for config info.
11+
*/
912
code{white-space: pre-wrap;}
1013
span.smallcaps{font-variant: small-caps;}
1114
div.columns{display: flex; gap: min(4vw, 1.5em);}
@@ -99,44 +102,21 @@ <h1 class="title">reqT - Requirements Engineering Tool</h1>
99102
</header>
100103
<nav id="TOC" role="doc-toc">
101104
<ul>
102-
<li><a href="#what-is-reqt" id="toc-what-is-reqt">What is reqT?</a></li>
103105
<li><a href="#download" id="toc-download">Download</a></li>
106+
<li><a href="#what-is-reqt" id="toc-what-is-reqt">What is reqT?</a></li>
107+
<li><a href="#why-reqt" id="toc-why-reqt">Why reqT?</a></li>
104108
<li><a href="#getting-started" id="toc-getting-started">Getting
105109
started</a></li>
106-
<li><a href="#why-reqt" id="toc-why-reqt">Why reqT?</a></li>
107110
<li><a href="#using-the-reqt-desktop-app"
108111
id="toc-using-the-reqt-desktop-app">Using the reqT desktop app</a></li>
109112
<li><a href="#using-reqt-with-scala"
110113
id="toc-using-reqt-with-scala">Using reqT with Scala</a></li>
114+
<li><a href="#reqt-command-line-arguments"
115+
id="toc-reqt-command-line-arguments">reqT command line
116+
arguments</a></li>
111117
<li><a href="#publications" id="toc-publications">Publications</a></li>
112118
</ul>
113119
</nav>
114-
<h2 id="what-is-reqt">What is reqT?</h2>
115-
<p><strong>reqT</strong> is a <em>flexible</em> and <em>scalable</em>
116-
open source <strong>requirements engineering tool</strong> for software
117-
developers and learners, available as a desktop application and a Scala
118-
library.</p>
119-
<p>With reqT you can specify requirements using a simple requirements
120-
modelling language called <strong>reqT-lang</strong> with essential
121-
requirements engineering concepts, giving structure to natural language
122-
requirements, while enabling analysis, visualization and automation.</p>
123-
<p>The reqT-lang syntax is a small subset of <a
124-
href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> using bullet
125-
lists with indentation and special keywords, to express textual
126-
requirements models by connecting <span
127-
class="EntType"><em>entities</em></span> via <span
128-
class="RelType"><em>relations</em></span> to <span
129-
class="StrAttrType"><em>attributes</em></span>, as in this example:</p>
130-
<pre><code>* <span class="EntType">Feature</span>: helloWorld <span class="RelType">has</span>
131-
* <span class="StrAttrType">Spec</span>: Print a nice greeting.
132-
* <span class="StrAttrType">Why</span>: First step to get started.
133-
</code></pre>
134-
<p>Visit the
135-
<a href="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf"><strong>Quickref</strong></a>
136-
to explore requirements engineering concepts in reqT-lang.</p>
137-
<p>Maintainer of reqT: <a
138-
href="https://cs.lth.se/bjorn-regnell">Prof. Björn Regnell</a>. Used at
139-
Lund University in <a href="https://cs.lth.se/krav">this course</a>.</p>
140120
<h2 id="download">Download</h2>
141121
<p>Latest version: <b> 4.6.3 </b>   All versions:   <a
142122
href="https://github.com/reqT/reqT/releases">reqT</a>   <a
@@ -147,7 +127,7 @@ <h2 id="download">Download</h2>
147127
<a href="https://github.com/reqT/reqT/releases/latest/download/reqT.jar"> Desktop App </a>
148128
</button>
149129

150-
<button type="button" class="button" onclick='window.location.href="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf"'>
130+
<button type="button" class="buttMaintainer of reqT: Prof. Björn Regnell. Used at Lund University in this course.on" onclick='window.location.href="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf"'>
151131
<a href="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf"> Quickref </a>
152132
</button>
153133

@@ -166,39 +146,133 @@ <h2 id="download">Download</h2>
166146
tinyurl.com/get-reqT</a>
167147
</p>
168148
<pre>curl -L https://tinyurl.com/get-reqT -o reqT.jar</pre>
149+
<h2 id="what-is-reqt">What is reqT?</h2>
150+
<p><strong>reqT</strong> is a <em>flexible</em> and <em>scalable</em>
151+
open source <strong>requirements engineering tool</strong> for software
152+
developers and learners, available as a desktop application and a Scala
153+
library.</p>
154+
<p>With reqT you can specify requirements using a simple requirements
155+
modelling language called <strong>reqT-lang</strong> with essential
156+
requirements engineering concepts, giving structure to natural language
157+
requirements, while enabling analysis, visualization and automation.</p>
158+
<p>Visit the
159+
<a href="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf"><strong>Quickref</strong></a>
160+
to explore requirements engineering concepts in reqT-lang.</p>
161+
<p>The reqT-lang syntax is a small subset of <a
162+
href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> using bullet
163+
lists with indentation and special keywords, to express textual
164+
requirements models by connecting <span
165+
class="EntType"><em>entities</em></span> via <span
166+
class="RelType"><em>relations</em></span> to <span
167+
class="StrAttrType"><em>attributes</em></span>, as in this example:</p>
168+
<pre><code>* <span class="EntType">Feature</span>: helloWorld <span class="RelType">has</span>
169+
* <span class="StrAttrType">Spec</span>: Print a nice greeting.
170+
* <span class="StrAttrType">Why</span>: First step to get started.
171+
</code></pre>
172+
<p><em>Maintainer of reqT:</em> <a
173+
href="https://cs.lth.se/bjorn-regnell">Prof. Björn Regnell</a>. reqT is
174+
used at Lund University in <a
175+
href="https://lunduniversity.github.io/krav/">this course</a>.</p>
176+
<h2 id="why-reqt">Why reqT?</h2>
177+
<p>With reqT you can…</p>
178+
<ol type="1">
179+
<li>Model, analyse, visualize and prioritize requirements.</li>
180+
<li>Manage requirements in issues and git using simple markdown
181+
syntax.</li>
182+
<li>Combine natural language with formal structure.</li>
183+
<li>Flexibly mix abstraction levels and modelling approaches.</li>
184+
<li>Integrate requirements and test specification.</li>
185+
<li>Export, import and visualize requirements via open formats.</li>
186+
<li>Manipulate models with expressive, safe and convenient Scala
187+
programs.</li>
188+
<li>Allocate requirements to releases with constraint solving.</li>
189+
<li>Express prompts for spec-driven development with generative AI
190+
.</li>
191+
</ol>
192+
<p>… using a simple markdown-based language in an open source tool and
193+
library.</p>
169194
<h2 id="getting-started">Getting started</h2>
170195
<ul>
171196
<li><p>Make sure you have <a
172197
href="https://adoptium.net/temurin/releases/?package=jdk&amp;version=21">Java
173198
21 - LTS</a> and <a href="https://www.scala-lang.org/download/">Scala
174-
3</a> installed for your system. Check this in terminal using:
199+
3</a> installed for your specific system. Check this in terminal using:
175200
</br><code>java -version</code></br><code>scala -version</code></br> (If
176-
you use later versions than Java 21 - LTS and Scala 3.6.4 you may get
177-
some warnings, but things should work fine anyway.)</p></li>
178-
<li><p>Download the <a
179-
href="https://github.com/reqT/reqT/releases/latest/download/reqT.jar">reqT
180-
desktop app</a> and run in terminal using:
201+
you use other versions you may get warnings, but things could work
202+
anyway.)</p></li>
203+
<li><p>Download <a
204+
href="https://github.com/reqT/reqT/releases/latest/download/reqT.jar"><strong>reqT.jar</strong></a>
205+
and double-click the downloaded file or run in terminal using:
181206
<code>java -jar reqT.jar</code></p></li>
207+
<li><p>Learn more about <a href="#using-the-reqt-desktop-app">using the
208+
reqT desktop app</a> and <a href="#using-reqt-with-scala">using reqT
209+
with Scala</a>.</p></li>
182210
<li><p>Visit the reqT <a
183-
href="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf">Quickref</a>
184-
to learn about available concepts in reqT-lang.</p></li>
185-
<li><p>Learn more about <a href="#using-the-reqt-app">using the reqT
186-
app</a></p></li>
187-
<li><p>Do the reqT labs to learn about using reqT in Requirements
188-
Engineering:</p>
211+
href="https://github.com/reqT/reqT-lang/releases/latest/download/reqT-quickref-GENERATED.pdf"><strong>Quickref</strong></a>
212+
to learn about the concepts in reqT-lang.</p></li>
213+
<li><p>Do the <strong>reqT labs</strong> to learn about using reqT in
214+
Requirements Engineering:</p>
189215
<ul>
190-
<li><a href="https://github.com/reqT/reqT/blob/4.x/docs/lab1.md">Lab 1:
191-
Context, Features and Priorities</a></li>
192-
<li><a href="https://github.com/reqT/reqT/blob/4.x/docs/lab2.md">Lab 2:
193-
Quality Requirements and Release Planning</a></li>
194-
<li>Labs are part of this course at Lund University: <a
195-
href="https://lunduniversity.github.io/krav/">ETSN15 Requirements
196-
Eng.</a></li>
216+
<li><a
217+
href="https://github.com/reqT/reqT/blob/4.x/docs/lab1.md"><strong>Lab
218+
1</strong>: Context, Features and Priorities</a></li>
219+
<li><a
220+
href="https://github.com/reqT/reqT/blob/4.x/docs/lab2.md"><strong>Lab
221+
2</strong>: Quality Requirements and Release Planning</a></li>
222+
<li>These labs are part of the <a
223+
href="https://lunduniversity.github.io/krav/"><em>ETSN15 Requirements
224+
Eng.</em></a> course at Lund Univ.</li>
197225
</ul></li>
198-
<li><p>Start reqT in the <a
226+
</ul>
227+
<h2 id="using-the-reqt-desktop-app">Using the reqT desktop app</h2>
228+
<ul>
229+
<li><p>Download <a
230+
href="https://github.com/reqT/reqT/releases/latest/download/reqT.jar">reqT.jar</a>
231+
and start by double-click or open a terminal and navigate to the folder
232+
with the downloaded file and type:
233+
<code>java -jar reqT.jar</code></p></li>
234+
<li><p>The main window of the reqT desktop app has menus and three panes
235+
as shown in the image below:
236+
<img src="img/screen1.png" alt="reqT Main Window" width="100%"/></p>
237+
<ol type="1">
238+
<li><p>The left pane is called the <strong>Tree</strong> where your reqT
239+
model is shown as a hierarchy of (un)foldable and selectable nodes. The
240+
model is updated by the <em>Tree</em> menu. If you want to edit a
241+
selected Tree node then select <em>Tree -&gt; Edit Selected Node in
242+
Editor (Ctrl+E)</em>. The Tree is not updated until you explicitly issue
243+
an update, for example using <em>Tree -&gt; Replace Selected Node from
244+
Editor (Ctrl+R)</em></p></li>
245+
<li><p>The middle pane is a text <strong>Editor</strong> with reqT-lang
246+
syntax highlighting and completion using <em>Ctrl+Space</em>. It can be
247+
manipulated using the <em>Editor</em> menu. Editing of model fragments
248+
is <em>independent</em> of the Tree pane. You can copy your edits into
249+
the Tree <em>explicitly</em> by using the <em>Tree</em> menu or the
250+
shortcuts shown in that menu.</p></li>
251+
<li><p>The right pane contains the <strong>Log</strong> where help
252+
messages are printed. You can use the <em>Log</em> menu to change line
253+
wrapping, increase/decrease font size, and clear the log.</p></li>
254+
</ol></li>
255+
<li><p>You can use the <em>View</em> menu to toggle pane orientation,
256+
fullscreen, window title, and increase/decrease the menu and tree font
257+
size.</p></li>
258+
<li><p>You can use the <em>Tools</em> menu to apply different
259+
pre-defined tools to your model.</p></li>
260+
<li><p>You can use the <em>Export</em> menu to save your model in
261+
different formats, such as html and LaTex. If you have <a
262+
href="https://graphviz.org/">GraphViz</a> installed on your path, you
263+
can visualize your model as a nested or flat graph.</p></li>
264+
<li><p>You can use the <em>Template</em> menu to enter example models
265+
into the editor.</p></li>
266+
<li><p>You can use the <em>Help</em> menu to print help messages in the
267+
Log and see the current version of reqT using the <em>About</em> menu
268+
item.</p></li>
269+
</ul>
270+
<h2 id="using-reqt-with-scala">Using reqT with Scala</h2>
271+
<ul>
272+
<li>Start reqT in the <a
199273
href="https://docs.scala-lang.org/scala3/book/taste-repl.html">Scala
200274
REPL</a> using: <code>java -jar reqT.jar repl</code> </br> You can
201-
create a requirements Model in the scala repl like so:</p></li>
275+
create a requirements Model in the scala repl like so:</li>
202276
</ul>
203277
<div class="sourceCode" id="cb1"><pre
204278
class="sourceCode scala"><code class="sourceCode scala"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a>scala<span class="op">&gt;</span> <span class="kw">val</span> m <span class="op">=</span> <span class="st">&quot;* Feature: helloWorld has Spec: print greeting&quot;</span><span class="op">.</span>toModel</span>
@@ -235,40 +309,39 @@ <h2 id="getting-started">Getting started</h2>
235309
<span id="cb2-12"><a href="#cb2-12" aria-hidden="true" tabindex="-1"></a></span>
236310
<span id="cb2-13"><a href="#cb2-13" aria-hidden="true" tabindex="-1"></a>@main <span class="kw">def</span> hello <span class="op">=</span> </span>
237311
<span id="cb2-14"><a href="#cb2-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">println</span><span class="op">(</span>m<span class="op">.</span>toMarkdown<span class="op">)</span></span></code></pre></div>
238-
<h2 id="why-reqt">Why reqT?</h2>
239-
<p>With reqT you can…</p>
240-
<ol type="1">
241-
<li>Model, analyse, visualize and prioritize requirements.</li>
242-
<li>Manage requirements in issues and git using simple markdown
243-
syntax.</li>
244-
<li>Combine natural language with formal structure.</li>
245-
<li>Flexibly mix abstraction levels and modelling approaches.</li>
246-
<li>Integrate requirements and test specification.</li>
247-
<li>Export, import and visualize requirements via open formats.</li>
248-
<li>Manipulate models with expressive, safe and convenient Scala
249-
programs.</li>
250-
<li>Allocate requirements to releases with constraint solving.</li>
251-
<li>Express prompts for spec-driven development with generative AI
252-
.</li>
253-
</ol>
254-
<p>… using a simple markdown-based language in an open source tool and
255-
library.</p>
256-
<h2 id="using-the-reqt-desktop-app">Using the reqT desktop app</h2>
257-
<p>Download <a
258-
href="https://github.com/reqT/reqT/releases/latest/download/reqT.jar">reqT.jar</a>
259-
and start by double-click or open a terminal and navigate to the folder
260-
with the downloaded file and type: <code>java -jar reqT.jar</code></p>
261-
<figure>
262-
<img src="img/screen1.png" alt="reqT Main Window" />
263-
<figcaption aria-hidden="true">reqT Main Window</figcaption>
264-
</figure>
265-
<h2 id="using-reqt-with-scala">Using reqT with Scala</h2>
266312
<ul>
267-
<li><p>TODO: example usage of the <a
268-
href="https://github.com/reqT/reqT-lang">reqT-lang api</a></p></li>
269-
<li><p>TODO: example usage of the <a
270-
href="https://github.com/reqT/reqT/blob/4.x/src/main/scala/Main.scala">reqT
271-
command-line args</a></p></li>
313+
<li><p>Visit the <a
314+
href="https://fileadmin.cs.lth.se/reqt-lang/api"><strong>reqT-lang
315+
api</strong></a> and <a
316+
href="https://github.com/reqT/reqT-lang/"><strong>source
317+
code</strong></a></p></li>
318+
<li><p>Visit the <a
319+
href="https://fileadmin.cs.lth.se/reqt/api"><strong>reqT app
320+
api</strong></a> and <a
321+
href="https://github.com/reqT/reqT/"><strong>source
322+
code</strong></a></p></li>
323+
</ul>
324+
<h2 id="reqt-command-line-arguments">reqT command line arguments</h2>
325+
<ul>
326+
<li>See the command line arguments available using the <code>help</code>
327+
argument:</li>
328+
</ul>
329+
<pre><code>$ java -jar reqT.jar help
330+
331+
Welcome to reqT 4.6.3 https://reqT.github.io
332+
333+
Main program args:
334+
335+
&lt;none&gt; open a reqT window with empty model
336+
edit f1 f2 for each file open a window with model from file
337+
repl start the scala repl and do &#39;import reqt.*&#39;
338+
quiz start a quiz game in terminal
339+
version print version, also -v --version
340+
help print this message, also -h, --help
341+
</code></pre>
342+
<ul>
343+
<li>Visit the reqT main program code: <a
344+
href="https://github.com/reqT/reqT/blob/4.x/src/main/scala/Main.scala">Main.scala</a></li>
272345
</ul>
273346
<h2 id="publications">Publications</h2>
274347
<ul>

quiz/index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
77
<title>reqT Quiz</title>
88
<style>
9+
/* Default styles provided by pandoc.
10+
** See https://pandoc.org/MANUAL.html#variables-for-html for config info.
11+
*/
912
code{white-space: pre-wrap;}
1013
span.smallcaps{font-variant: small-caps;}
1114
div.columns{display: flex; gap: min(4vw, 1.5em);}

0 commit comments

Comments
 (0)