Analyze software requirements in AECO industry
Project description
RASAECO (“Requirements Analysis for Software in AECO Industry”) is a tool we developed within the BIMprove Project to help us analyze the software requirements after the finished elicitation phase.
Introduction
Digitalization is forging its path in the architecture, engineering, construction, operation (AECO) industry. This trend demands not only solutions for data governance but also sophisticated cyber-physical systems with a high variety of stakeholder background and very complex requirements. Existing approaches to general requirements engineering ignore the context of the AECO industry. This makes it harder for the software engineers usually lacking the knowledge of the industry context to elicit, analyze and structure the requirements and to effectively communicate with AECO professionals.
To live up to that task, we implemented a tool for collecting AECO-specific software requirements as scenarios with the aim to foster reuse and leverage domain knowledge. The tool is based on a common pre-defined scenario space. It allows you to represent and relate the scenarios in that scenario space, as well as specifically mark how the individual parts of the scenario relate to other scenarios and the space in general.
The scenarios are written in markdown with additional special markup tags. The tool renders the scenarios into a collection of HTML documents giving you an introductory overview as well as pleasant reading experience based on multi-media and hyper-text.
Please refer to the corresponding publication for more details (see the next section, Contributors and Citation).
Contributors and Citation
The tools was developed by:
Marko Ristin (rist@zhaw.ch),
Dag Fjeld Edvardsen (dag.fjeld.edvardsen@catenda.no), and
Hans Wernher van de Venn (vhns@zhaw.ch).
If you want to cite the tool, please cite the corresponding publication:
Ristin, Marko and Edvardsen, Dag Fjeld and van de Venn, Hans Wernher: “RASAECO: Requirements Analysis of Software for the AECO Industry”, 29th IEEE International Requirements Engineering Conference, 2021.
Installation
Single-File Release
Please download and unzip the latest release from the GitHub release page.
From PyPI
The tool is also available on PyPI.
Create a virtual environment:
python -m venv venv-rasaeco
Activate it (in Windows):
venv-rasaeco\Scripts\activate
or in Linux:
source venv-rasaeco/bin/activate
Install the tool in the virtual environment:
pip3 install rasaeco
Usage
Start your native Windows command prompt.
(Please be careful not to start “Developer Command Prompt for VS 2019” or similar as it includes a 32bit version of Python3 in its environment!)
Change to the directory where you unzipped the release.
Render once
Render the scenarios in-place once:
pyrasaeco-render.exe once --scenarios_dir c:\some\path\to\scenarios
(Change c:\some\path\to\scenarios to fit your system.)
Open the scenario ontology with your browser from: c:\some\path\to\scenarios\ontology.html.
(Don’t forget to change c:\some\path\to\scenarios again to fit your system.)
Render continuously
Monitor the scenario files and re-render on changes:
pyrasaeco-render.exe continuously --scenarios_dir c:\some\path\to\scenarios
(Change c:\some\path\to\scenarios to fit your system.)
Open the scenario ontology with your browser from: c:\some\path\to\scenarios\ontology.html.
(Don’t forget to change c:\some\path\to\scenarios again to fit your system.)
Render continuously + automatic refresh
pyrasaeco-render can also start a demo server for you so that you do not have to manually re-load in the browser. You have to specify the port and the server will be automatically started:
pyrasaeco-render.exe continuously
--scenarios_dir c:\some\path\to\scenarios
--port 8000
(Change c:\some\path\to\scenarios to fit your system.)
The ontology will be available on: http://localhost:8000.
Help
pyrasaeco-render.exe -h
pyrasaeco-render.exe once -h
pyrasaeco-render.exe continuously -h
Cheat-sheet
Directory Structure
Write documents in the following directory structure:
ontology/
some-scenario/
scenario.md
some-group/
another-scenario/
scenario.md
yet-another-scenario/
scenario.md
...
The identifier of a scenarios is given by the POSIX path of the scenario directory relative to the ontology directory.
For example, some-scenario and some-group/another-scenario.
Header
Write a <rasaeco-meta> header at the beginning of a scenario.
Here is an example:
<rasaeco-meta>
{
"title": "Some Scenario",
"contact": "Marko Ristin <rist@zhaw.ch>, Somebody Else <somebody@else.ch>",
"relations": [
{ "target": "some-group/another_scenario", "nature": "is instance of" }
{ "target": "some-group/yet_another_scenario", "nature": "refines" }
],
"volumetric": [
{
"aspect_from": "as-planned", "aspect_to": "safety",
"phase_from": "construction", "phase_to": "construction",
"level_from": "site", "level_to": "site"
}
]
}
</rasaeco-meta>
Aspects |
Phases |
Levels |
|
|
|
Further Examples
Please see Sample scenarios for further examples.
Known Issues
Markdown can be sometimes unintuitive when mixed with the mark-up (XML) tags. You have to be careful when inserting new lines as they are going to be automatically converted by marko library to <p>.
This can result in invalid HTML. For example, make sure you do not write:
<model name="something">first line
second line</model>
as this results in invalid HTML:
<p><model name="something">first line</p>
<p>second line</model></p>
Note the inverted </p> and </model>. This should be correctly written as:
<model name="something">
first line
second line
</model>
(Note the empty lines after the opening tag and before the closing tag, respectively.)
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
File details
Details for the file rasaeco-0.0.15.tar.gz
.
File metadata
- Download URL: rasaeco-0.0.15.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdb020899af294c02bc884a8d6c159b5c7627f06907cc3eb3eeb95be23a82728 |
|
MD5 | 1bf48c662a1e093f1cce5ff8d717945a |
|
BLAKE2b-256 | e93af00ee26548fe425d2d64ede41a40882c608e6a30bbc8b9ffb128900f90ec |