Goals
Make flecsimo accessible also for pure online learning
Background and strategic fit
The COVID-19 pandemic does not allow students to work on flecsimo physical models. Since in the pre-prodcution release 0.1.3 already offers a basic simulation mode which relies only on software, this solution shall be extended to be accessible and deployable as a web-based service.
Assumptions
It assumed that flask is used for implementation
Requirements
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Accessibility | As a student I want to use a flecsimo site by a web-interface | Must have |
|
2 | Authentication | As a user I want to authenticate by a anonymous user and password to get access to the the system | Must have | |
3 | Roles | As user I want to interact with the system based on a role model to get appropriate access to the systems functionality | Must have | The system provides at least the following which have not to be fully implemented in first version:
The roles will be used to provide dedicated access rights and hide or make visible distinctive navigation elements. Multiple role cam be combined. There might be additional versions defined in later requirement versions |
4 | Single Mode | As a student I want to start a flecsimo-twin standard configuration consisting of one site, one area and four pre-defined stations to have a simple possibility to experiment with the system. | Must have | This option will not allow any configuration of the area layout. This mode will only allow to practice principal understanding on the topic |
5 | Role Mode | As students we want to run a shared flecsimo-twin configuration to use it in different Trainee roles. | Should have | This option will allow multiple students work together on one instance with dedicated roles, e. g. having one Planer, and four Workers, each for one station. This mode allows to execute more realistic experiments in the area of production logistics |
6 | Layout | As a Instructor or student I want to configure the layout of a an area to experiment on different production layouts | Could have | This requirements depends an major improvements in the core system which are not planned so far. |
7 |
User interaction and design
Didactic scenarios
- Average groups size is 18 - results in 4 teams of 4-5 students
- Single / offsite: provide a virtual machine for each student, running a flecsimo twin
- Concurrent: provide four scene plays
- Phase wise: have three other activities available like a 'Lernbar' feature, and two other lab things. Groups rotate experiments
- Hybrid (post COVID): use flecsimo twin for first online experiments - hypothesis - switch to physical experiment - analysis - ...
Use Cases and Wireframes
UC: Log in to the flecsimo Launcher | ||
A user wants to authenticate by a anonymous user and password to get access to the the system | ||
Pre | Launcher has to be started by instructor | |
Step | Actor intention | System responsibility |
---|---|---|
1 | The Trainee enters user name and password | The system checks if user exist and password matches. The system executes the log-in The system assigns defined role for user |
Alternatives | ||
1A | The user forgot the password | The systems opens the → Forget Password Use Case dialogue. |
1B | The user entered wrong user name or password | The system restarts this use case |
User Interaction | ||
UC: Launch a flecsimo twin configuration | ||
Trainees want to launch a specific flecsimo twin configuration for experiments. | ||
Pre | User has to be logged in at least with trainee role. | |
Step | Actor intention | System responsibility |
---|---|---|
1 | A trainee starts a flecsimo-twin standard configuration in single mode, i. e. consisting of one site, one area and four pre-defined stations to have a simple possibility to experiment with the system. | The system starts all required control instances. The system proceeds to the "run scene play" use case. |
Alternatives | ||
1A | A trainee wants to launch a role-mode configuration | |
1A.1 | The trainee selects "role mode" configuration | The system reads all available configurations for this flecsimo twin launcher and displays them in a selectable table grid. |
1A.2 | The trainee selects exactly one configuration and starts this configuration | The system starts all required control instances. The system proceeds to the "run scene play" use case. |
User Interaction | ||
UC: Run a Scene Play << abstract>> | ||
Trainees want to run a flecsimo twin configuration to use it for running a scene play. | ||
Pre | User has to be logged in at least with trainee role. | |
Step | Actor intention | System responsibility |
---|---|---|
1 | This is an abstract use case! The trainee decides to execute on of the following operations on site level:
On area level:
On each configured station:
| The system proceeds to the responsible uses cases. The system continuously display status and performance information. |
Alternatives | ||
N / A | ||
User Interaction | ||
Technical Considerations
To be discussed.
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|
How to handle multi process operations (e. g. a site controller, an area area and four station controller)? | Solution: multiple agents with own mqtt loop plus threading / queues for status bar; Alternative: status could be taken from MQTT messages. |
How to embed MQTT (needs an own thread-loop). Is Flask.MQTT a possible solution? | Flask.MQTT is not required. |
How to keep coding from physical flecsimo solution re-usable with flecsimo twin? (→ S/W Architecture) | S/W architecture has changed, so that the same components can be used for simulation and for execution on TXT-controller (since Gitlap commit a4a9e13a in devel-twin branch (not merged into master so far. |
Not Doing
Referred by
Github flecsimodev/flecsimo requirement REQ-1