From a2dc6c1f7cc50ee8270fde04d9d806d2edb246e0 Mon Sep 17 00:00:00 2001 From: MikoPat Date: Sun, 31 Jan 2021 11:46:07 +0100 Subject: [PATCH] diagram_9-X --- .DS_Store | Bin 0 -> 6148 bytes Test.md | 7 --- UseCase.md | 67 ++++++++++++++++++++++++ models/10.session | 10 ++++ models/128138.diagram | 117 ++++++++++++++++++++++++++++++++++++++++++ models/128266.diagram | 31 +++++++++++ models/134658.diagram | 18 +++---- models/134794.diagram | 38 ++++++++++++++ models/141322.diagram | 46 +++++++++++++++++ models/models.prj | 59 ++++++++++++++++++++- use-case 9.md | 110 +++++++++++++++++++++++++++++++++++++++ 11 files changed, 485 insertions(+), 18 deletions(-) create mode 100644 .DS_Store delete mode 100644 Test.md create mode 100644 models/10.session create mode 100644 models/128138.diagram create mode 100644 models/128266.diagram create mode 100644 models/134794.diagram create mode 100644 models/141322.diagram create mode 100644 use-case 9.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..48f7b7b588ae859add36375278ee4abfa6d215ff GIT binary patch literal 6148 zcmeHKyG{c!5S)b+0fdy22FX7_BuctVxD*sLAbQB73rc~~`;YiUn0*9Y!j%Xiv@6-O zXYcqi(%D`BGTkn(ff0Zqi=wF0W7^!?briwJM6ogMF~bVQ$ykUhaEbwAp!Od>xU8YTW zv{WD!NCi@XRN$u+;GL~DJaf!C6-WhAfiDI0d?+l6O<;Ajql1;D0K@^C&FJfcSve)J z39OFnp@~z8PL)V8#OZ7=5!VD(N2fy~`H+}-m%ND0&hd+dLmJ1dQ-M@qUjfa1X(PS= zXZ&S)lY9%wDiuft{;L8qXdl}tcNcf-w|(keTUef1)HJTDL!-a<2;hgFBNx``{Y8Do XHG$PpN6~hp6Z0Wpf@GBn{DK0XsBko= literal 0 HcmV?d00001 diff --git a/Test.md b/Test.md deleted file mode 100644 index 59c172c..0000000 --- a/Test.md +++ /dev/null @@ -1,7 +0,0 @@ -Test q dadsfdsasdn -savfsdfanfkasljdasd -sadvsadkjvnkasdjasdnvs -avdsvgn -hhnfgn -fn -ggh diff --git a/UseCase.md b/UseCase.md index ecc3c97..926522d 100644 --- a/UseCase.md +++ b/UseCase.md @@ -1,3 +1,4 @@ +<<<<<<< HEAD #**Projekt: Automat** ##Opis skrócony przypadków użycia @@ -37,5 +38,71 @@ Dokładanie towaru do automatu(potwierdzenie stanu, który automatycznie uzupeł 7. **Use Case7: Serwisant –** Naprawa automatu w przypadku awarii (awaria systemu) (wyłączenie automatu jako osobny use case)(lista błędów) +======= +# **Projekt: Automat** + +## Opis skrócony przypadków użycia + +### Aktorzy procesu i ich cele: +| Aktor | Cel | +|---|---| +| Klient | zakup produktów | +| Zaopatrzeniowiec | uzupełnienie brakujących produktów (lub tych które się kończą) | +| Zaopatrzeniowiec | aktualizuje stanu maszyny (w tym gotówkę) | +| Serwisant | przeprowadzenie serwisu automatu | +| Serwisant | naprawa systemu w przypadku awarii | +| System płatniczy | realizacja transakcji gotówkowych i płatności kartą | +| Automat | maszyna wydająca posiłki i produkty | +| Dział zaopatrzeniowy | osoby odpowiedzialne za dostawę i zaopatrywanie automatu (w produkty i gotówkę) | + +### Słownik: +| Hasło | Opis | +|---|---| +| Stan magazynowy | ilość produktów danego typu w maszynie | +| Minima stan magazynowy | ilość produktu danego typu, przy której maszyna wysyła informację o konieczności jej uzupełnienia | +| Gotowy produkt | Produkt niewymagający przygotowania, np. Baton, napój w puszcze | +| Przygotowany produkt | Produkt wymagający wcześniejszego przygotowania np. Obróbki termicznej: ciepła bułka lub zalania wrzątkiem: kawa, herbata | +| Kasetka | miejsce, gdzie wpadają monety które są w nadmiarze | +| Terminal | urządzenie umożliwiające płacenie kartą wyłącznie zbliżeniowo | +| Serwisant | odpowiedzialna za utrzymanie poprawnego działania automatu, wsparcie techniczne | + +### UseCases: + +**Use Case 1: Automat - Wysłanie komunikatu o stanie magazynowym produktów** +Dział zaopatrzeniowy wysyła prośbę o raport stanu magazynowego wszystkich produktów do maszyny o odpowiednim ID. Automat sprawdza stan wszystkich produktów. Automat wysyła raport stanu do działu zaopatrzenia (ilość każdego z produktów). + +**Use Case 2: Automat- sprzedaż produktu** +Klient wprowadza dostępny numer produktu. Automat wyświetla konieczną do zapłacenia kwotę. Klient dokonuje płatności(patrz UC 3 lub UC4). Automat przygotowuje i wydaje produkt. Automat sprawdza stan magazynowy zakupionego produktu. Jeśli, stan magazynowy tego produktu jest równy minimalnemu stanowi magazynowemu, automat poprzez sieć internetową wysyła informację do działu zaopatrzenia ze swoim ID i ID produktu. + +**Use Case 3: Automat - płatność gotówką** +Klient wrzuca monety lub podaje banknoty. Automat sumuje pieniądze i wyświetla pozostałą wartość w czasie rzeczywistym. Jeśli wartość zamówienia zostanie osiągnięta, automat akceptuje płatność. Nadwyżka salda oznacza wydanie reszty. Jeżeli stan któregoś z nominałów jest mniejszy od minimalnego, automat wysyła informację do działu zaopatrzenia ze swoim ID, nominałem i jego ilością. + +**Use Case 4: Automat - płatność kartą** +Klient wybiera płatność kartą. Automat uruchamia terminal. Terminal łączy się z serwisem płatniczym. Automat wyświetla wartość zamówienia na terminalu. Klient dokonuje płatności kartą. Automat wysyła dane potrzebne do przelewu. Automat przetwarza informacje zwrotną. Automat akceptuje transakcje. + +**Use Case 5: Serwisant - Przeprowadzenie serwisu automatu - “diagnostyka automatu”** +Serwisant, przy pomocy dedykowanego systemu uruchamia opcję “diagnostyka automatu”. Automat zmienia swój stan z “gotowy do użytku” na “tryb diagnostyczny”. Automat przeprowadza przygotowaną procedurę diagnozy. Automat generuje raport i wysyła go do działu serwisu. Automat zmienia swój stan na “gotowy do użytku”. + +**Use Case 6: Zaopatrzeniowiec – Dodanie pieniędzy do automatu** +Zaopatrzeniowiec wybiera w systemie opcję “Dodanie pieniędzy”. Zaopatrzeniowiec dodaje monety do poszczególnych przegródek na odpowiednie nominały. Zaopatrzeniowiec włącza funkcję “przeliczenia pieniędzy”. Automat przelicza monety i banknoty oraz wysyła informację do działu zaopatrzeniowego o nowym stanie kasetki. Zaopatrzeniowiec wyłącza funkcję dodawania pieniędzy i przełącza automat w tryb “gotowy do użytku”. + +**Use Case 7: Zaopatrzeniowiec – Dodanie towaru do automatu** +Zaopatrzeniowiec uzupełnia brakujący towar w automacie. Po uzupełnieniu wybiera w systemie opcję “Uzupełniono towar”. Następnie system czujników w automacie sprawdza nowy stan poszczególnych produktów i wysyła odpowiedni raport do działu zaopatrzeniowego. Automat przechodzi w stan gotowości do zamknięcia. Po zamknięciu automat przechodzi w tryb “gotowy do użytku”. + +**Use Case 8: Serwisant – Naprawa automatu w przypadku awarii systemu** +Serwisant wyłącza automat. Następnie pobiera logi systemowe z automatu w celu ich analizy (znalezienia błędu). Po analizie serwisant podpina się do systemu i przełącza go w stan naprawy. Po naprawie serwisant przeprowadza scenariusz zakupu (patrz UC2) a następnie gdy przeszedł on testy to przełącza go w stan gotowości do działania. + +**Use Case 9 Automat- Generowanie raportu ze sprzedaży** +Po wybraniu funkcji “Raport sprzedaży” automat generuje raport, w którym znajdują się informacje kiedy dany produkt został wykupiony i po jakim czasie od ostatniego uzupełninia towaru. Raport po wygenerowaniu zostanie wysłany na działu zaopatrzeniowego. + +**Use Case 10 Zaopatrzeniowiec - Pobranie pieniędzy z automatu** +Zaopatrzeniowiec przełącza automat w stan pobrania pieniędzy. Czujniki w kasetce przeliczają ilość pieniędzy do wydania i następnie generują raport i wysyłają go do działu zaopatrzeniowego i właściciela automatu. Zaopatrzeniowiec pobiera pieniądze. Zaopatrzeniowiec wyłącza funkcję pobierania pieniędzy i przełącza automat w tryb “gotowy do użytku”. + +**Use Case 11 Automat - Awaryjne wyłączenie się automatu** +Automat jest odporny na pojawienie się błędów systemowych podczas działania. W przypadku natrafienia na jeden z nich, automat nie wyłącza się. Zostaje automatycznie pobierany raport błędu, a szczegółowe dane w nim zawarte zostają przesłane do specjalnego systemu powiadomień serwisanta. + +**Use Case 12 Automat - Alarm przy próbie włamania** +Automat za pomocą specjalnego czujnika wykrywa nieautoryzowane otwarcie. Oznacza to próbę włamania. Automat włącza alarm dźwiękowy oraz wysyła powiadomienie z dokładnym czasem oraz identyfikatorem maszyny. Serwisant otrzymuje powiadomienie w specjalnym systemie i jest w stanie wyłączyć alarm dźwiękowy zdalnie. +>>>>>>> 97fd1b48ee913845d319571fb4cc68aa99c6fe54 diff --git a/models/10.session b/models/10.session new file mode 100644 index 0000000..7fe2028 --- /dev/null +++ b/models/10.session @@ -0,0 +1,10 @@ +window_sizes 1920 1027 450 1465 870 104 + +show_stereotypes +selected sequencediagram_ref 128266 // 9-1-wybranieOpcji"GenerowanieRaportu" +open + class_ref 129166 // Serwisant + class_ref 129422 // Zwrot_monet + classview_ref 128002 // design +end +end diff --git a/models/128138.diagram b/models/128138.diagram new file mode 100644 index 0000000..d4477d8 --- /dev/null +++ b/models/128138.diagram @@ -0,0 +1,117 @@ +format 223 + +classinstancecanvas 128130 classinstance_ref 128514 // KontrolerAutomatu + xyz 107 26 2010 life_line_z 2000 +end +classinstancecanvas 128258 classinstance_ref 128642 // + xyz 450 29 2015 life_line_z 2000 +end +classinstancecanvas 132226 classinstance_ref 128770 // + xyz 811 27 2000 life_line_z 2000 +end +classinstance 133890 class_ref 128142 // Klient + name "" xyz 8 15 2000 life_line_z 2000 +classinstancecanvas 134146 classinstance_ref 135682 // + xyz 647 29 2020 life_line_z 2000 +end +durationcanvas 128770 classinstance_ref 128130 // KontrolerAutomatu:Automat + xyzwh 197 146 2010 11 158 + overlappingdurationcanvas 129538 + xyzwh 203 257 2020 11 27 + end + overlappingdurationcanvas 134914 + xyzwh 203 150 2020 11 25 + end +end +durationcanvas 129026 classinstance_ref 128258 // :ManagerTransakcji + xyzwh 514 191 2010 11 329 +end +durationcanvas 132354 classinstance_ref 132226 // :ModulPlatnosciGotowkowej + xyzwh 902 222 2010 11 260 + overlappingdurationcanvas 135170 + xyzwh 908 250 2020 11 26 + end + overlappingdurationcanvas 136706 + xyzwh 908 450 2020 11 26 + end +end +durationcanvas 134274 classinstance_ref 134146 // :Sprzedaz + xyzwh 681 225 2010 11 315 + overlappingdurationcanvas 135810 + xyzwh 687 498 2020 11 26 + end + overlappingdurationcanvas 136450 + xyzwh 687 406 2020 11 25 + end +end +durationcanvas 134786 classinstance_ref 133890 // :Klient + xyzwh 24 149 2010 11 27 +end +msg 129154 synchronous + from durationcanvas_ref 128770 + to durationcanvas_ref 129026 + yz 204 2015 explicitmsg "rozpocznijTransakcje()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "idProdukt:String" + label_xy 249 187 +msg 129666 synchronous + from durationcanvas_ref 129026 + to durationcanvas_ref 129538 + yz 272 2025 explicitmsg "wyswietlKwote()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "kwota:Kwota" + label_xy 260 252 +msg 134402 synchronous + from durationcanvas_ref 129026 + to durationcanvas_ref 134274 + yz 230 3005 explicitmsg "create()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "status:State, idProduktu:String, kwota:Kwota" + label_xy 547 212 +msg 135042 synchronous + from durationcanvas_ref 134786 + to durationcanvas_ref 134914 + yz 153 2025 explicitmsg "wybranyProdukt()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "numerProduktu:Int" + label_xy 26 129 +msg 135298 synchronous + from durationcanvas_ref 134274 + to durationcanvas_ref 135170 + yz 264 2025 explicitmsg "aktywuj()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + label_xy 832 247 +msg 135426 return + from durationcanvas_ref 132354 + to durationcanvas_ref 134274 + yz 336 2015 explicitmsg "kwota:Kwota" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + label_xy 818 319 +msg 135938 synchronous + from durationcanvas_ref 129026 + to durationcanvas_ref 135810 + yz 498 2025 explicitmsg "end()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "status:State" + label_xy 580 481 +msg 136066 return + from durationcanvas_ref 134274 + to durationcanvas_ref 129026 + yz 354 2015 explicitmsg "kwota:Kwota" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + label_xy 592 337 +msg 136578 synchronous + from durationcanvas_ref 129026 + to durationcanvas_ref 136450 + yz 413 2025 explicitmsg "reszta()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "kwota:Kwota" + label_xy 546 396 +msg 136834 synchronous + from durationcanvas_ref 134274 + to durationcanvas_ref 136706 + yz 450 2025 explicitmsg "zwrocReszte()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "kwota:Kwota" + label_xy 772 433 +end diff --git a/models/128266.diagram b/models/128266.diagram new file mode 100644 index 0000000..2c1f6f1 --- /dev/null +++ b/models/128266.diagram @@ -0,0 +1,31 @@ +format 223 + +classinstance 129930 class_ref 128010 // Zaopatrzeniowec + name "" xyz 9.11687 31.8376 2000 life_line_z 2000 +classinstance 130186 class_ref 128014 // Automat + name "KontrolerAutormat" xyz 184.978 36.5859 2000 life_line_z 2000 +classinstance 130954 class_ref 128014 // Automat + name "" xyz 817.479 26.438 2005 life_line_z 2000 +durationcanvas 130314 classinstance_ref 129930 // :Zaopatrzeniowec + xyzwh 63 173.582 2010 11 40 +end +durationcanvas 130442 classinstance_ref 130186 // KontrolerAutormat:Automat + xyzwh 272 173.902 2010 11 122 +end +durationcanvas 131082 classinstance_ref 130954 // :Automat + xyzwh 846 185.789 2010 11 178 +end +msg 130570 synchronous + from durationcanvas_ref 130314 + to durationcanvas_ref 130442 + yz 197 2015 explicitmsg "generujRaportSprzedazy()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + label_xy 89 182 +msg 131210 synchronous + from durationcanvas_ref 130442 + to durationcanvas_ref 131082 + yz 244 2015 explicitmsg "generujRaportSprzedazy()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "data:Data_Poczatek,data:Data_Koniec,idProdukt:String" + label_xy 293 230 +end diff --git a/models/134658.diagram b/models/134658.diagram index c986a22..d4477d8 100644 --- a/models/134658.diagram +++ b/models/134658.diagram @@ -15,33 +15,33 @@ classinstancecanvas 134146 classinstance_ref 135682 // xyz 647 29 2020 life_line_z 2000 end durationcanvas 128770 classinstance_ref 128130 // KontrolerAutomatu:Automat - xyzwh 230 146 2010 11 158 + xyzwh 197 146 2010 11 158 overlappingdurationcanvas 129538 - xyzwh 236 257 2020 11 27 + xyzwh 203 257 2020 11 27 end overlappingdurationcanvas 134914 - xyzwh 236 150 2020 11 25 + xyzwh 203 150 2020 11 25 end end durationcanvas 129026 classinstance_ref 128258 // :ManagerTransakcji xyzwh 514 191 2010 11 329 end durationcanvas 132354 classinstance_ref 132226 // :ModulPlatnosciGotowkowej - xyzwh 990 222 2010 11 260 + xyzwh 902 222 2010 11 260 overlappingdurationcanvas 135170 - xyzwh 996 250 2020 11 26 + xyzwh 908 250 2020 11 26 end overlappingdurationcanvas 136706 - xyzwh 996 450 2020 11 26 + xyzwh 908 450 2020 11 26 end end durationcanvas 134274 classinstance_ref 134146 // :Sprzedaz - xyzwh 712 225 2010 11 315 + xyzwh 681 225 2010 11 315 overlappingdurationcanvas 135810 - xyzwh 718 498 2020 11 26 + xyzwh 687 498 2020 11 26 end overlappingdurationcanvas 136450 - xyzwh 718 406 2020 11 25 + xyzwh 687 406 2020 11 25 end end durationcanvas 134786 classinstance_ref 133890 // :Klient diff --git a/models/134794.diagram b/models/134794.diagram new file mode 100644 index 0000000..7aa74fb --- /dev/null +++ b/models/134794.diagram @@ -0,0 +1,38 @@ +format 223 + +classinstance 129930 class_ref 128010 // Zaopatrzeniowec + name "" xyz 40 32 2000 life_line_z 2000 +classinstance 130186 class_ref 128014 // Automat + name "KontrolerAutormat" xyz 265 38 2000 life_line_z 2000 +classinstance 130954 class_ref 128014 // Automat + name "" xyz 703 36 2005 life_line_z 2000 +durationcanvas 130442 classinstance_ref 130186 // KontrolerAutormat:Automat + xyzwh 353 155 2010 11 184 +end +durationcanvas 131082 classinstance_ref 130954 // :Automat + xyzwh 732 216 2010 11 132 +end +durationcanvas 131978 classinstance_ref 129930 // :Zaopatrzeniowec + xyzwh 94 151 2010 11 86 +end +msg 131210 synchronous + from durationcanvas_ref 130442 + to durationcanvas_ref 131082 + yz 249 2015 explicitmsg "modyfikujDaty()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "data:Data_Poczatek,data:Data_Koniec" + label_xy 371 235 +msg 131722 synchronous + from durationcanvas_ref 130442 + to durationcanvas_ref 131082 + yz 294 2015 explicitmsg "modyfikujProdukt()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "idProdukt:string" + label_xy 437 277 +msg 132106 synchronous + from durationcanvas_ref 131978 + to durationcanvas_ref 130442 + yz 177 2015 explicitmsg "modyfikujDane()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + label_xy 176 160 +end diff --git a/models/141322.diagram b/models/141322.diagram new file mode 100644 index 0000000..7450807 --- /dev/null +++ b/models/141322.diagram @@ -0,0 +1,46 @@ +format 223 + +classinstance 129930 class_ref 128010 // Zaopatrzeniowec + name "" xyz 40 32 2000 life_line_z 2000 +classinstance 130186 class_ref 128014 // Automat + name "KontrolerAutormat" xyz 446 42 2000 life_line_z 2000 +classinstance 130954 class_ref 128014 // Automat + name "" xyz 900 44 2005 life_line_z 2000 +durationcanvas 130442 classinstance_ref 130186 // KontrolerAutormat:Automat + xyzwh 534 150 2010 11 212 +end +durationcanvas 131082 classinstance_ref 130954 // :Automat + xyzwh 929 246 2010 11 116 +end +durationcanvas 131978 classinstance_ref 129930 // :Zaopatrzeniowec + xyzwh 94 143 2010 11 158 +end +msg 131210 synchronous + from durationcanvas_ref 130442 + to durationcanvas_ref 131082 + yz 286 2015 explicitmsg "ramyCzasowe()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "data:Data_Poczatek,data:Data_Koniec" + label_xy 562 271 +msg 131722 synchronous + from durationcanvas_ref 130442 + to durationcanvas_ref 131082 + yz 315 2015 explicitmsg "wybranyProdukt()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "idProdukt:string" + label_xy 616 302 +msg 132106 synchronous + from durationcanvas_ref 131978 + to durationcanvas_ref 130442 + yz 186 2015 explicitmsg "wybierzRamyCzasowe()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "data:Data_Poczatek,data:Data_Koniec" + label_xy 112 168 +msg 132490 synchronous + from durationcanvas_ref 131978 + to durationcanvas_ref 130442 + yz 227 2015 explicitmsg "wybierzProdukt()" + show_full_operations_definition default show_class_of_operation default drawing_language default show_context_mode default + args "idProdukt:string" + label_xy 264 210 +end diff --git a/models/models.prj b/models/models.prj index af42b72..40292e9 100644 --- a/models/models.prj +++ b/models/models.prj @@ -1,7 +1,7 @@ format 223 "models" - revision 13 - modified_by 13 "Kuba" + revision 18 + modified_by 10 "Mikoaj" @@ -1818,5 +1818,60 @@ format 223 sequencediagramsettings end overlapping_bars size A3 end + + sequencediagram 128266 "9-1-wybranieOpcji\"GenerowanieRaportu\"" + sequencediagramsettings end + size A3 + end + + class 128010 "Zaopatrzeniowec" + visibility package stereotype "actor" + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + classinstance 128138 "Raport" + type class_ref 136962 // Raport_sprzedazy + attributes + end + relations + end + end + + classinstance 134666 "Raport" + type class_ref 136962 // Raport_sprzedazy + attributes + end + relations + end + end + + class 134666 "KontrolerAutomat" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + sequencediagram 141322 "9-2-wyborDatyIProduktow" + sequencediagramsettings end + size A3 + end + + sequencediagram 134794 "9-3-modufikacjaDatyIProduktwo" + sequencediagramsettings end + size A3 + end end end diff --git a/use-case 9.md b/use-case 9.md new file mode 100644 index 0000000..23999eb --- /dev/null +++ b/use-case 9.md @@ -0,0 +1,110 @@ + +Use Case 9: Automat- Generowanie raportu ze sprzedaży +===================== + +**Aktor podstawowy: Zaopatrzeniowiec** + + +Główni odbiorcy i oczekiwania względem systemu: +----------------------------------------------- + - Dział zaopatrzeniowy: uzyskanie informacji, które produkty są najszybciej kupowane. + +Warunki wstępne: +---------------- +Zaopatrzeniowiec jest zalogwany do systemu. + +Warunki końcowe: +---------------- +Dział zaopatrezniowy otrzymał od automatu poprawnie wygenerownay raport sprzedazy. + +Scenariusz główny (ścieżka podstawowa): +--------------------------------------- + + 1. Zaopatrzenieowiec wybiera w systemie funkcję *Generowanie raportu sprzedży*. + 2. Zaopatrezniowec wybiera produkt (jeden,kilka lub wszytkie), którego ten raport bedzie dotyczył i go/je akceptuje. + 3. Zapatrezniowec akceptuje zamy czasowe raportu (data_od_kiedy, data_do_kiedy). + 4. Autoamt generuje raport sprzedaży. + Raport zawiera: + - id_automatu + - id_produktu + - nazwa_produktu + - data_od_kiedy (domyślnie: od dnia ostatniego dołozenia produktu do autoamtu) + - data_do_kiedy (domyślnie: do dnia wybrania opcji (włącznie)) + - liczby_zakupów_danego_produktu_w_jednym_dniu (w kazdym dniu) + - liczby_zakupów_danego_produktu_w_jednym_tygodniu (w kazdym tygodniu) + - liczba_zakupów_danego_produktu_w_całym okresie + - liczba_wszystkich_kupionych_produktów_w_jednym_dniu (w kazdym dniu) + - liczba_wszystkich_kupionych_produktów_w_tygodniu (w kazdym tygodniu) + - liczba_wszystkich_kupionych_produktów_w_całym_okresie + - stosunek_liczby_zakupów_danego_produktu_w_jednym_dniu_do_liczby_wszystkich_kupionych_produktów_w_jednym_dniu (w kazdym dniu) + - stosunek_liczby_zakupów_danego_produktu_w_jednym_tygodniu_do_liczby_wszystkich_kupionych_produktów_w_tygodniu (w kazdym tygodniu) + - stosunek_liczby_zakupów_danego_produktu_w_całym_okresie_do_liczby_wszystkich_kupionych_produktów_w_całym_okresie + 5. Automat wysyła raport do działu zaopatrzeniowego. + +Rozszerzenia (ścieżki alternatywne): +------------------------------------ + + *a. Brak prądu/ nagłe wyłączenie zasilania + 1. Ponowane włączenie automatu + 2. Automat przechodzi w tryb *Gotowy do działania* + 3. Funkcje przerwane, nalezy rozpocząć od nowa + + *b Resetowanie sytemu (uruchamianie ponowanie) + 1. Automat przechodzi w tryb *Gotowy do działania* + 2. Funkcje przerwane, nalezy rozpocząć od nowa + + 1a. Wybranie niewłaściwej funkcji + 1. Zaopatrezniowec wybiera opcję cofnij + 1a. Brak mozliwości przejścia do listy z dostepnymi funkcajmi + 1. Po odczekaniu 15s, zaopatrzeniowiec resetuje system + 2. Wybranie funkcji *Generowanie raportu sprzedazy* + + 2a. Zaopatrzeniowiec modyfikuje/zmienia wybrany/-e produkt/-y, którego/-ych będzie dotyczył raport + 1. Zaopatrzeniowiec wybiera opcję *Zmień produkt/-y* + 2. Automat wyświetla listę produktów + 3. Zaopatrzeniowiec modyfikuje listę po przez kliknięcie na dany produkt + + 3a. Zaopatrzeniowiec modyfikuje ramy czasowe raportu (data_od_kiedy, data_do_kiedy) + 1. Zaopatrzeniowiec wybiera opcję *Modyfikuj* + 2. Zaopatrzeniowec wpisuje nowe ramy czasowe (recznie- z klawiatury) + + 4a. Błąd w generowaniu raportu + 1. Automat wyświetla komunikat o błędym wykonaniu funkcji + 2. Zaopatrzeniowiec wybiera opcję *Wyświetl szczegóły błędu* + 3. Automat wyświetla szczegóły błędu + 3a. Automat nie wyświetla szczegółów błędu + 1. Powrót do kominikatu o błędzie + 2. Zaopatrzeniowiec wybiera *Wyświetl szczegóły błędu* + 3. System poprawnie wyświetlił szczegóły błędu + 3a System nie wyświetlił szczegółów błędu - wyświetlił np. puste okienko + 1. Ponownie uruchominie systemu w automacie + 4. Powrót do menu głównego + 5. Automat przechodzi w stan *Gotowy do uzytku* + + 5a. Niepowdzenie w wyłaniu raportu + 1. Automaty wyświetla kominikat o niepowodzeniu wysłania raportu + 2. Zapatrezniowiec wybiera opcję *Wyślij ponowanie* + 3. Automata wysyła raport do działu zaopatrezniowego + 3a. Automaty wyświetla kominikat o niepowodzeniu wysłania raportu + 1. Ponownie uruchominie systemu w automacie + 4. Powrót do menu głównego + 5. Automat przechodzi w stan *Gotowy do uzytku* + + +Wymagania specjalne: +-------------------- + - Raport jest generowny w języku polskim + + - Po wybraniu produktu z listy, dany produkt zostaje podświetlony (jego tło zmienia kolor) + + - W raporcie statystyki/liczby poszczególnych produktów, rozpoczynają się od nowe strony (by potem mozna było łatwo wydzielić statystyki poszczegónego produktu) + +Wymagania technologiczne oraz ograniczenia na wprowadzane dane: +--------------------------------------------------------------- + - Automat ma dostęp do internetu + + +Kwestie otwarte: +---------------- + - Raport genrowany w języku obcym +