Projekt_APO_Restauracja/use-case-1.md

152 lines
5.6 KiB
Markdown
Raw Normal View History

2021-11-01 19:39:59 +01:00
Use Case 1: Zarządzanie zamówieniami
=====================
**Aktor podstawowy: Kelner**
Główni odbiorcy i oczekiwania względem systemu:
-----------------------------------------------
- Kelner:
- chce mieć możliwość prostego i szybkiego tworzenia zamówień
- chce móc w prosty sposób dodawać potrawy do zamówień
- chce móc w prosty i intuicyjny sposób modyfikować potrawy istniejące w zamówieniu
- Klient:
- chce móc w szybki i prosty sposób złożyć zamówienie
- chce aby utworzone zamówienie zawierało dokładnie takie potrawy jakie opisywał
Warunki wstępne:
----------------
2021-11-09 21:32:26 +01:00
System połączenia TK ze spiżarnią oraz kuchnią działa poprawnie.
2021-11-01 19:39:59 +01:00
Warunki końcowe:
----------------
Zamówienie jest poprawnie utworzone, a potrawy składające się
na zamówienie muszą zgadzać się z potrawami wymienionymi przez
klienta. Koszty za dania są poprawnie policzone. Informacje na
temat zamówienia są poprawnie przechowywane.
Scenariusz główny (ścieżka podstawowa):
---------------------------------------
1. Kelner tworzy nowe zamówienie dla klienta
2021-12-01 11:02:13 +01:00
2. Klient wymienia potrawę, jaką pragnie nabyć w restauracji
2021-11-09 21:32:26 +01:00
3. Kelner dodaje do zamówienia wymienioną przez klienta potrawę <br>
2021-12-01 11:02:13 +01:00
*Kroki 2-3 są powtarzane do momentu, aż wszystkie dania, jakie klient pragnie zamówić zostaną wprowadzone do zamówienia*
2021-11-09 21:32:26 +01:00
4. Kelner po dodaniu wszystkich wymienionych przez klienta potraw zatwierdza zamówienie
2021-11-01 19:39:59 +01:00
Rozszerzenia (ścieżki alternatywne):
------------------------------------
*a. Zawieszenie się systemu
2021-11-09 21:32:26 +01:00
1. Kelner restartuje przenośny terminal
2021-12-01 11:02:13 +01:00
2. Kelner sprawdza, czy system działa poprawnie po ponownym uruchomieniu
2021-11-01 19:39:59 +01:00
2021-11-01 19:57:44 +01:00
2a. System działa poprawnie
2021-11-01 19:39:59 +01:00
1. Kelner odtwarza stan systemu sprzed zrestartowania terminalu i kontynuuje scenariusz główny
2021-11-01 19:57:44 +01:00
2b. System nie działa poprawnie
2021-11-09 21:32:26 +01:00
1. Kelner wymienia TK na nowy
2021-11-01 19:39:59 +01:00
2. Kelner próbuje odtworzyć zamówienie
3. Kelner kontynuuje tworzenie zamówienia
2021-11-09 21:32:26 +01:00
3a Wprowadzenie złej potrawy
2021-11-01 19:39:59 +01:00
2021-11-09 21:32:26 +01:00
1. Kelner usuwa złą potrawę
2. Kelner dodaje do zamówienia dobrą potrawę
2021-11-01 19:39:59 +01:00
2021-11-09 21:32:26 +01:00
3b. Zmiana składników potrawy
2021-11-01 19:39:59 +01:00
2021-11-09 21:32:26 +01:00
1. Klient mówi, że chce zmienić skład jednej z potraw z jego zamówienia
2. Klient podaje jakiej potrawy składniki chce zmienić
2021-11-09 21:37:11 +01:00
2a. Klient mówi, że chce dodać nowy składnik do potrawy
2021-11-09 21:32:26 +01:00
1. Klient mówi jaki składnik ma być dodany
2. Kelner dodaje składnik do wcześniej wspomnianej przez klienta potrawy
2021-11-09 21:37:11 +01:00
2b. Klient mówi, że chce usunąć istniejący dodatek z potrawy
2021-11-09 21:32:26 +01:00
1. Klient uściśla jaki składnik chce usunąć z potrawy dodatek
2. Kelner usuwa wspomniany dodatek z potrawy
*Krok 1 jest powtarzany do momentu, aż klient nie będzie chciał dalej edytować potrawy.*
3. Kelner zapisuje zedytowaną potrawę
2021-11-01 19:39:59 +01:00
3c. Usuwanie potrawy
1. Klient mówi, że chce usunąć pewną potrawę
2021-11-09 21:32:26 +01:00
2. Klient wskazuje potrawę jaką pragnie usunąć
3. Kelner zaznacza potrawę wskazaną przez klienta
4. Kelner usuwa zaznaczoną potrawę
2021-11-01 19:39:59 +01:00
3d. Dodanie wielu potraw naraz
1. Klient mówi, że chce aby do zamówienia zostało dodanych kilka identycznych potraw
2021-11-09 21:32:26 +01:00
2. Klient informuje kelnera o typie potrawy i o tym ile sztuk tej potrawy pragnie zamówić
3. Kelner wybiera wymienioną potrawę
4. Kelner zmienia liczbę dodawanej potrawy na liczbę podaną przez klienta
5. Kelner dodaje zbiór potraw do zamówienia
3e. Próba dodania potrawy, dla której nie ma niektórych składników w spiżarni
1. Klient prosi o dodanie potrawy do jego zamówienia
2. Klient próbuje dodać potrawę do zamówienia
3. System wyświetla informacje, że nie wszystkie składniki potrzebne do przygotowania potrawy są dostępne w spiżarni <br>
*Dodanie tej potrawy do zamówienia kończy się niepowodzeniem*
4. Kelner przeprasza klienta, informuje o niedostępności potrawy i kontynuuje scenariusz główny
2021-11-01 19:39:59 +01:00
2021-11-09 21:32:26 +01:00
3f. Sprawdzenie kosztu zamówienia
2021-11-01 19:39:59 +01:00
1. Klient prosi o sprawdzenie kosztu zamówienia
2. Kelner wchodzi w podsumowanie zamówienia w TK
3. Kelner sprawdza koszt zamówienia
4. Kelner przekacuje informacje klientowi
2021-11-09 21:32:26 +01:00
4a. Klient anuluje zamówienie
2021-11-01 19:39:59 +01:00
1. Klient mówi, że chce odwołać zamówienia
2. Kelner anuluje zamówienie
3. Klient wychodzi z restauracji
2021-11-09 21:32:26 +01:00
4b. Klient chce skorzystać z promocji
2021-11-01 19:39:59 +01:00
1. Klient mówi, że chce skorzystać z promocji
2. Klient wyszczególnia nazwę promocji
3. Kasjer wybiera w zamówieniu jedną, lub więcej z dostępnych promocji
4. System na nowo oblicza koszta i szczegóły zamówienia
5. Kelner kontynuuje tworzenie zamówienia
Wymagania specjalne:
--------------------
- TK musi posiadać ekran dotykowy, a interfejs musi być dobrze widoczny z odległości 1 metra.
- Wszystkie operacje na TK muszą wykonywać się w co najwyżej 5 sekund.
Wymagania technologiczne oraz ograniczenia na wprowadzane dane:
---------------------------------------------------------------
- 3a. Potrawy dodawane za pomocą wprowadzania identyfikatora potrawy, lub za pomocą dodania z listy potraw (za pomocą ekranu dotykowego)
- 3b. Potrawy dodawane tylko jeśli wszystkie składniki są dostępne w spiżarni (dostępność składników udostępniana przez API spiżarni)
Kwestie otwarte:
----------------
- Na jakie sposoby powinno się móc dodawać potrawy do zamówienia?
- Czy powinno istnieć zaawansowane narzędzie do wyszukiwania potraw?
- Do którego momentu klient powinien być w stanie anulować zamówienie?