Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
wiki:software:beuthbot:requirement-analysis [10.12.2019 19:34] Christopher Lehmann |
wiki:software:beuthbot:requirement-analysis [23.01.2020 15:32] (aktuell) Timo Bruns |
||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
==== Functional requirements ==== | ==== Functional requirements ==== | ||
- | /F100/ The system must allow the user to enter requests by text or language\\ | + | '' |
- | /F101/ The system should be able to learn from errors from incoming messages\\ | + | '' |
- | /F102/ The system must understand user input\\ | + | '' |
- | /F103/ The system must be able to respond contextually to user input\\ | + | '' |
- | /F104/ The system must persist messages in a database anonymously\\ | + | '' |
- | /F105/ The system must be able to persist and retrieve specified preferences for users\\ | + | '' |
- | /F200/ The system must be able to retrieve the Beuth Mensa menu for a specific day from the [OpenMensa API](https:// | + | '' |
- | /F201/ The system must be able to forward the menu from the OpenMensa API\\ | + | '' |
- | /F202/ The system must be able to filter and probe the menu according to the user's specifications\\ | + | '' |
- | /F203/ The system must be able to cache the food plan\\ | + | '' |
- | /F300/ The system must be able to access the learning rooms of Beuth University of Applied Sciences Berlin\\ | + | '' |
- | /F301/ The system must be able to forward where the learning rooms are located.\\ | + | '' |
- | /F400/ System must be able to remind user of appointments | + | '' |
- | /F401/ The system must have access to the user's appointment calendar | + | '' |
- | /F500/ The system must be able to call up the opening hours of the Beuth University buildings. | + | '' |
- | /F501/ The system must be able to cache opening hours | + | '' |
- | /F600/ The system must be able to retrieve the current weather for Berlin via a [Weather API] (https:// | + | '' |
- | /F601/ The system must be able to forward the current weather | + | '' |
- | /F602/ The system must be able to cache the current weather | + | '' |
- | /F700/ The system must be able to call up the examination dates for exams at the Beuth University for Applied Sciences | + | '' |
- | /F701/ The system must be able to forward the test dates | + | '' |
- | /702/ The system must be able to filter and probe the examination dates according to user specifications | + | '' |
- | /F703/ The system must be able to cache the test dates | + | '' |
- | /F800/ The system must be able to call up the winding rooms at the Beuth University for Applied Sciences. | + | '' |
- | /F801/ The system must be able to forward where the winding rooms are located. | + | '' |
- | /F802/ The system must be able to cache the winding rooms | + | '' |
==== Non-functional requirements ==== | ==== Non-functional requirements ==== | ||
- | /NF100/ The system must respond to a message within 3 seconds | + | '' |
- | /NF101/ The system must retrieve data from the microservices within a few milliseconds | + | '' |
- | /NF102/ The system must be able to process and evaluate a message within 1.5 seconds | + | '' |
- | /NF103/ The system must have enough memory for persistence of data from ~13k students | + | '' |
- | /NF200/ Service downtime (NLP component, microservices, | + | '' |
- | /NF201/ ref. /NF100/ | + | '' |
- | /NF202/ ref. /NF101/ | + | '' |
- | /NF203/ ref. /NF102/ | + | '' |
- | /NF204/ Database downtime should be less than 1% | + | '' |
- | /NF300/ The system should be as modular as possible | + | '' |
- | /NF301/ The system should be easily scalable | + | '' |
- | /NF302/ The system should contain easily replaceable components | + | '' |
- | /NF303/ The system should store understandable error messages | + | '' |
- | /NF400/ The system should be easily portable to other systems | + | '' |
- | /NF500/ The system should comply with DSGVO guidelines | + | '' |
- | /NF501/ The system should be based on security standards | + | '' |
- | /NF502/ Databases should be protected from unwanted access | + | '' |
- | /NF503/ The databases should be password protected | + | '' |
- | /NF504/ The databases should be based on security standards | + | '' |
- | /NF600/ The system should restart the service independently in the event of a service failure | + | '' |
- | /NF700/ The system should be well documented | + | '' |
- | /NF701/ The system should be easy to understand | + | '' |
==== Use cases ==== | ==== Use cases ==== | ||
+ | |||
+ | In the following we present three usecases in detail, which exemplarily describe our functional requirements. | ||
=== Use case /F103/ === | === Use case /F103/ === | ||
Zeile 77: | Zeile 79: | ||
**Actor**: User | **Actor**: User | ||
- | **Preconditions**: | + | **Preconditions**: |
- | **Basic flow**: The user writes a message to the bot via telegram. This message is processed and evaluated by the NLP component, then the message, including the evaluation of the NLP component, is persisted in the database and forwarded to a corresponding | + | **Basic flow**: The user writes a message to the bot via telegram. This message is processed and evaluated by the NLP component, then the message, including the evaluation of the NLP component, is persisted in the database and forwarded to a corresponding |
**Effects**: | **Effects**: | ||
Zeile 86: | Zeile 88: | ||
=== Use case /F200/ === | === Use case /F200/ === | ||
- | **Title**: User asks for today' | + | **Title**: User asks for today' |
- | **Short description**: | + | **Short description**: |
**Actor**: User | **Actor**: User | ||
- | **Preconditions**: | + | **Preconditions**: |
- | **Basic flow**: The user writes a message to the bot via telegram. The NLP component recognizes that the user wants to have today' | + | **Basic flow**: The user writes a message to the bot via telegram. The NLP component recognizes that the user wants to have today' |
- | **Effects**: | + | **Effects**: |
=== Use case /F300/ === | === Use case /F300/ === | ||
Zeile 104: | Zeile 106: | ||
**Short description**: | **Short description**: | ||
- | **Actor**: | + | **Actor**: |
**Preconditions**: | **Preconditions**: | ||
- | **Basic flow**: | + | **Basic flow**: |
**Effects**: | **Effects**: | ||
- | + | <WRAP pagebreak></ | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | **OFFENE FRAGEN** | + | |
- | Beuthbot erinnert an Terminanfragen. Wollen wir das wirklich umsetzen? | + | |
- | Beuthbot gibt schnellste Route zur Beuth Hochschule aus. Wirklich umsetzen? | + | |
- | Nichtfunktionale Anforderungen besprechen! | + | |
- | + | ||
- | Qualitätsanforderungen: | + | |
- | + | ||
- | Performanz (Anwortzeiten, | + | |
- | Zuverlässigkeit (Cachen) | + | |
- | Änderbarkeit und Wartbarkeit | + | |
- | Portabilität (Docker) | + | |
- | Sicherheit | + | |
- | + | ||
- | Benutzeranforderungen: | + | |
- | + | ||
- | Robustheit bezüglich Fehlern (Rechtschreibfehler und Umgangssprache) | + | |
- | Erlernbarkeit (gute Dokumentation) | + | |
- | Verständlichkeit (Schön formatierte Antworten) | + |