diff --git a/models/128023.diagram b/models/128023.diagram index 38bae54..e15dd62 100644 --- a/models/128023.diagram +++ b/models/128023.diagram @@ -1,7 +1,163 @@ format 224 +classcanvas 128003 class_ref 128003 // Karta + classdiagramsettings member_max_width 0 end + xyz 262 52 2000 +end classcanvas 128023 class_ref 128023 // Klient classdiagramsettings member_max_width 0 end - xyz 98 63 2000 + xyz 152 18 2000 +end +classcanvas 128131 class_ref 128131 // Bankomat + classdiagramsettings member_max_width 0 end + xyz 355 132 2005 +end +classcanvas 128259 class_ref 128259 // Konto + classdiagramsettings member_max_width 0 end + xyz 92 240 2000 +end +classcanvas 128387 class_ref 128387 // PIN + classdiagramsettings member_max_width 0 end + xyz 43 75 2005 +end +classcanvas 128515 class_ref 128515 // Home_screen + classdiagramsettings member_max_width 0 end + xyz 239 205 2000 +end +classcanvas 128643 class_ref 128643 // System + classdiagramsettings member_max_width 0 end + xyz 447 69 2000 +end +classcanvas 128771 class_ref 128771 // Bank + classdiagramsettings member_max_width 0 end + xyz 33 177 2005 +end +classcanvas 128899 class_ref 128899 // Sesja + classdiagramsettings member_max_width 0 end + xyz 147 137 2000 +end +classcanvas 129027 class_ref 129027 // Rachunek + classdiagramsettings member_max_width 0 end + xyz 548 246 2000 +end +classcanvas 129155 class_ref 129155 // Piniondz + classdiagramsettings member_max_width 0 end + xyz 348 31 2005 +end +classcanvas 129283 class_ref 129283 // Paragon + classdiagramsettings member_max_width 0 end + xyz 431 288 2000 +end +classcanvas 129411 class_ref 129411 // Pre_Paid + classdiagramsettings member_max_width 0 end + xyz 632 161 2000 +end +classcanvas 129539 class_ref 129539 // Wyplata + classdiagramsettings member_max_width 0 end + xyz 208 343 2000 +end +classcanvas 129667 class_ref 129667 // Wplata + classdiagramsettings member_max_width 0 end + xyz 73 318 2000 +end +classcanvas 129795 class_ref 129795 // Przelew + classdiagramsettings member_max_width 0 end + xyz 633 52 2000 +end +classcanvas 130051 class_ref 130051 // Opcja + classdiagramsettings member_max_width 0 end + xyz 550 148 2000 +end +classcanvas 130179 class_ref 130179 // Sejf + classdiagramsettings member_max_width 0 end + xyz 373 362 2000 +end +classcanvas 130307 class_ref 130307 // Operacja + classdiagramsettings member_max_width 0 end + xyz 380 214 2005 +end +classcanvas 130435 class_ref 130435 // Komunikat + classdiagramsettings member_max_width 0 end + xyz 633 365 2000 +end +classcanvas 130563 class_ref 130563 // Serwisant + classdiagramsettings member_max_width 0 end + xyz 738 259 2000 +end +classcanvas 130691 class_ref 130691 // Czytnik + classdiagramsettings member_max_width 0 end + xyz 197 287 2000 +end +classcanvas 130819 class_ref 130819 // Wprowadzanie + classdiagramsettings member_max_width 0 end + xyz 497 388 2000 +end +classcanvas 130947 class_ref 130947 // Drukarka + classdiagramsettings member_max_width 0 end + xyz 737 81 2000 +end +classcanvas 131075 class_ref 131075 // Glosnik + classdiagramsettings member_max_width 0 end + xyz 280 146 2000 +end +classcanvas 131331 class_ref 131331 // Awaria + classdiagramsettings member_max_width 0 end + xyz 102 404 2000 +end +classcanvas 131459 class_ref 131459 // Regula_przerwania + classdiagramsettings member_max_width 0 end + xyz 510 22 2005 +end +classcanvas 131587 class_ref 131587 // Ekran + classdiagramsettings member_max_width 0 end + xyz 128 80 2000 +end +classcanvas 131715 class_ref 131715 // jezyk + classdiagramsettings member_max_width 0 end + xyz 48 35 2010 +end +classcanvas 131843 class_ref 131843 // Kasetka + classdiagramsettings member_max_width 0 end + xyz 322 294 2000 +end +classcanvas 131971 class_ref 131971 // Regula_druku + classdiagramsettings member_max_width 0 end + xyz 568 102 2000 +end +classcanvas 132099 class_ref 132099 // Autoryzacja + classdiagramsettings member_max_width 0 end + xyz 445 151 2005 +end +classcanvas 132227 class_ref 132227 // Papier + classdiagramsettings member_max_width 0 end + xyz 86 132 2000 +end +classcanvas 132355 class_ref 132355 // Zlecenie_przelewu + classdiagramsettings member_max_width 0 end + xyz 213 94 2005 +end +classcanvas 132483 class_ref 132483 // Blokada + classdiagramsettings member_max_width 0 end + xyz 650 283 2000 +end +classcanvas 132611 class_ref 132611 // Reklama + classdiagramsettings member_max_width 0 end + xyz 147 203 2005 +end +classcanvas 132739 class_ref 132739 // Walidacja_karty + classdiagramsettings member_max_width 0 end + xyz 272 378 2005 +end +classcanvas 132867 class_ref 132867 // Alarm + classdiagramsettings member_max_width 0 end + xyz 504 221 2005 +end +classcanvas 132995 class_ref 132995 // Usluga + classdiagramsettings member_max_width 0 end + xyz 774 162 2000 +end +classcanvas 133123 class_ref 133123 // terminal + classdiagramsettings member_max_width 0 end + xyz 383 89 2010 end end diff --git a/models/3.session b/models/3.session new file mode 100644 index 0000000..12d6d0c --- /dev/null +++ b/models/3.session @@ -0,0 +1,12 @@ +window_sizes 1920 1016 450 1464 812 152 +cleanlooks_style +diagrams + active classdiagram_ref 128023 // domain-model + 1458 783 170 A4 0 0 +end +show_stereotypes +selected classdiagram_ref 128023 // domain-model +open + classview_ref 128023 // domain +end +end diff --git a/models/models.prj b/models/models.prj index 367191a..516166c 100644 --- a/models/models.prj +++ b/models/models.prj @@ -1,7 +1,7 @@ format 224 "models" - revision 1 - modified_by 23 "Lenovo" + revision 2 + modified_by 3 "leero" @@ -80,5 +80,497 @@ format 224 mysql_decl "" end + + class 128003 "Karta" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128131 "Bankomat" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128259 "Konto" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128387 "PIN" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128515 "Home_screen" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128643 "System" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128771 "Bank" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 128899 "Sesja" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129027 "Rachunek" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129155 "Piniondz" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129283 "Paragon" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129411 "Pre_Paid" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129539 "Wyplata" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129667 "Wplata" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129795 "Przelew" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 129923 "Czas" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130051 "Opcja" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130179 "Sejf" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130307 "Operacja" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130435 "Komunikat" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130563 "Serwisant" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130691 "Czytnik" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130819 "Wprowadzanie" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 130947 "Drukarka" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131075 "Glosnik" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131203 "Zasilanie" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131331 "Awaria" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131459 "Regula_przerwania" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131587 "Ekran" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131715 "jezyk" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131843 "Kasetka" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 131971 "Regula_druku" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132099 "Autoryzacja" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132227 "Papier" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132355 "Zlecenie_przelewu" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132483 "Blokada" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132611 "Reklama" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132739 "Walidacja_karty" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132867 "Alarm" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 132995 "Usluga" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end + + class 133123 "terminal" + visibility package + cpp_decl "" + java_decl "" + php_decl "" + python_2_2 python_decl "" + idl_decl "" + explicit_switch_type "" + mysql_decl "" + + end end end diff --git a/models/stereotypes b/models/stereotypes index f884450..0473775 100644 --- a/models/stereotypes +++ b/models/stereotypes @@ -3,7 +3,7 @@ -_-> 3 "access" "import" "from" end - class_stereotypes 22 "actor" "auxiliary" "boundary" "control" "entity" "enum" "enum_class" "enum_pattern" "exception" "focus" "implementationClass" "interface" "@interface" "metaclass" "stereotype" "struct" "table" "type" "typedef" "template_typedef" "union" "utility" + class_stereotypes 23 "actor" "auxiliary" "boundary" "control" "entity" "enum" "enum_class" "enum_pattern" "exception" "focus" "implementationClass" "interface" "@interface" "metaclass" "stereotype" "struct" "table" "type" "typedef" "template_typedef" "union" "utility" "trait" ---- 4 "list" "set" "vector" "map" ---> 4 "list" "set" "vector" "map" ---|> 4 "{complete,disjoint}" "{incomplete,disjoint}" "{complete,overlapping}" "{incomplete,overlapping}" diff --git a/use-case-1.md b/use-case-1.md new file mode 100644 index 0000000..8776a27 --- /dev/null +++ b/use-case-1.md @@ -0,0 +1,128 @@ +Use Case 8: Operacja zlecenia przelewu +===================== + +**Aktor podstawowy:** Klient + + +Główni odbiorcy i oczekiwania względem systemu: +----------------------------------------------- + + - Klient : chce przesłać pieniądze, na inne konto + + - Bank: chce otrzymać informację o nowym zleceniu przelewu + + +Warunki wstępne: +---------------- +Klient posiada działającą kartę bankową i odblokowaną funkcję przelewów. +Bankomat jest sprawny, ma działające klawisze i ekran, który wyświetla ekran główny + +Warunki końcowe: +---------------- +Bank otrzymał zlecenie przelewu + +Scenariusz główny (ścieżka podstawowa): +--------------------------------------- + + 1. Klient wkłada kartę do bankomatu + 2. System prosi o wprowadzenie pinu + 3. Klient wprowadza pin + 4. System potwierdza poprawność PINu + 5. Wyświetla wyświetla okno wyboru możliwości + 6. Klient wybiera opcję zlecenia przelewu + 7. System prosi o wprowadzenie numeru konta, na który ma zostać zrobiony przelew + 8. Klient wprowadza numer konta + 9. Bank potwierdza, że podane konto jest aktywne i ma odblokowaną funckję przelewów + 10. System prosi o wprowadzenie kwoty + 11. Klient wprowadza kwotę + 12. System wysyła do banku request przelewu + 13. Bank informuje system o przyjęciu zgłoszenia + 14. System informuje o powodzeniu procesu + 15. System wysuwa kartę + 16. Klient zabiera kartę i odchodzi + +Rozszerzenia (ścieżki alternatywne): +------------------------------------ + + *a. Przerwa w dostawie prądu + + 1. System załącza tryb oszczędzania energii + 2. Bankomat wydaje sygnał dzwiękowy + 3. System załącza prodedurę awaryjną: + i. System informuje klienta o tym co nastąpi w najbliższym czasie + ii. System przerywa wszystkie trwające operację + iii. System informuje bank o zaistniałym problemie + 4. System wydaje kartę klientowi + 5. Klient odbiera kartę + 6. System wyświetla informację o niedostępności, do odzyskania zasilania + + + 1a. Klient wkłada kartę złą stroną + + 1. System wysuwa kartę i informuje o błędzie + + 3a. Niepoprawny PIN + + 1. System informuje użytkownika o nieprawidłowym PIN'ie i 2 możliwych próbach + 2. Klient wprowadza PIN + 3. Przejście do kroku 4 scenariusza głównego + + 2a. Klient wprowadził niepoprawny PIN 2 razy + + 1. System wysyła do banku informację o możliwej próbie nieautoryzowanego dostępu. + 2. Bank blokuje kartę. + 3. System informuje o blokadzie + 4. Przejście do kroku 15 scenariusza głównego + + + 9a. Wybrane konto nie isntnieje + + 1. System informuje Klienta o braku numeru konta w systemie + 2. Przejście do kroku 5 scenariusza głównego + + 9b. Wybrane konto ma zablokowaną funckję przelewów + + 1. System informuje Klienta o zaistniałej sytuacji + 2. System pyta użytkownika, czy chcę zlecić operację, mimo tego, że będzie wstrzymana do odblokowania tej funkcji na końcie odbiorcy + 3. Klient akceptuje warunki + 4. Przejście do kroku 10 scenariusza głównego + + + 11a. Brak wystarczającej ilości środków na koncie + + 1. System informuje Klienta o braku wystarczającej liczbie środków na koncie + 2. Przejście do kroku 10 scenariusza głównego + + 2-11a Klient chce przerwać operację + + 1. Klient informuje o chęci zakończenia operacji + 2. System przerywa trwający proces + 3. Przejście do kroku 15 scenariusza głównego + +Wymagania specjalne: +-------------------- + + - Interfejs użytkownika musi być dostępny w języku polskim i angielskim + + - Ekran dodytowy, z matrycą przeciwrefleksyjną + + - Klawiatura mechaniczna z osłonką + + - Głośnik + +Wymagania technologiczne oraz ograniczenia na wprowadzane dane: +--------------------------------------------------------------- + + 1a. Karta jest poprawną, nieuszkodzoną kartą bankomatową + + 11a. Wprowadzona kwota musi być liczbą całkowitą z zakresu ( 0, 1000000 > + + 3a. PIN składa się z 4 cyfr + +Kwestie otwarte: +---------------- + + - Czy dopuszczamy inne formy uwierzytalniania? + + - Czy powinna istnieć kamera, dzięki której bankomat może zablokować proces w przypadku próby interakcji osób 3 + diff --git a/use-case-1.md.backup b/use-case-1.md.backup new file mode 100644 index 0000000..cf4d384 --- /dev/null +++ b/use-case-1.md.backup @@ -0,0 +1,128 @@ +Use Case 8: Operacja zlecenia przelewu +===================== + +**Aktor podstawowy:** Klient + + +Główni odbiorcy i oczekiwania względem systemu: +----------------------------------------------- + + - Klient : chce przesłać pieniądze, na inne konto + + - Bank: chce otrzymać informację o nowym zleceniu przelewu + + +Warunki wstępne: +---------------- +Klient posiada działającą kartę bankową i odblokowaną funkcję przelewów. +Bankomat jest sprawny, ma działające klawisze i ekran, który wyświetla ekran główny + +Warunki końcowe: +---------------- +Pieniądze z jednego konta zostały przelane na drugie + +Scenariusz główny (ścieżka podstawowa): +--------------------------------------- + + 1. Klient wkłada kartę do bankomatu + 2. System prosi o wprowadzenie pinu + 3. Klient wprowadza pin + 4. System potwierdza poprawność PINu + 5. Wyświetla wyświetla okno wyboru możliwości + 6. Klient wybiera opcję zlecenia przelewu + 7. System prosi o wprowadzenie numeru konta, na który ma zostać zrobiony przelew + 8. Klient wprowadza numer konta + 9. Bank potwierdza, że podane konto jest aktywne i ma odblokowaną funckję przelewów + 10. System prosi o wprowadzenie kwoty + 11. Klient wprowadza kwotę + 12. System wysyła do banku request przelewu + 13. Bank informuje system o przyjęciu zgłoszenia + 14. System informuje o powodzeniu procesu + 15. System wysuwa kartę + 16. Klient zabiera kartę i odchodzi + +Rozszerzenia (ścieżki alternatywne): +------------------------------------ + + *a. Przerwa w dostawie prądu + + 1. System załącza tryb oszczędzania energii + 2. Bankomat wydaje sygnał dzwiękowy + 3. System załącza prodedurę awaryjną: + i. System informuje klienta o tym co nastąpi w najbliższym czasie + ii. System przerywa wszystkie trwające operację + iii. System informuje bank o zaistniałym problemie + 4. System wydaje kartę klientowi + 5. Klient odbiera kartę + 6. System wyświetla informację o niedostępności, do odzyskania zasilania + + + 1a. Klient wkłada kartę złą stroną + + 1. System wysuwa kartę i informuje o błędzie + + 3a. Niepoprawny PIN + + 1. System informuje użytkownika o nieprawidłowym PIN'ie i 2 możliwych próbach + 2. Klient wprowadza PIN + 3. Przejście do kroku 4 scenariusza głównego + + 2a. Klient wprowadził niepoprawny PIN 2 razy + + 1. System wysyła do banku informację o możliwej próbie nieautoryzowanego dostępu. + 2. Bank blokuje kartę. + 3. System informuje o blokadzie + 4. Przejście do kroku 15 scenariusza głównego + + + 9a. Wybrane konto nie isntnieje + + 1. System informuje Klienta o braku numeru konta w systemie + 2. Przejście do kroku 5 scenariusza głównego + + 9b. Wybrane konto ma zablokowaną funckję przelewów + + 1. System informuje Klienta o zaistniałej sytuacji + 2. System pyta użytkownika, czy chcę zlecić operację, mimo tego, że będzie wstrzymana do odblokowania tej funkcji na końcie odbiorcy + 3. Klient akceptuje warunki + 4. Przejście do kroku 10 scenariusza głównego + + + 11a. Brak wystarczającej ilości środków na koncie + + 1. System informuje Klienta o braku wystarczającej liczbie środków na koncie + 2. Przejście do kroku 10 scenariusza głównego + + 2-11a Klient chce przerwać operację + + 1. Klient informuje o chęci zakończenia operacji + 2. System przerywa trwający proces + 3. Przejście do kroku 15 scenariusza głównego + +Wymagania specjalne: +-------------------- + + - Interfejs użytkownika musi być dostępny w języku polskim i angielskim + + - Ekran dodytowy, z matrycą przeciwrefleksyjną + + - Klawiatura mechaniczna z osłonką + + - Głośnik + +Wymagania technologiczne oraz ograniczenia na wprowadzane dane: +--------------------------------------------------------------- + + 1a. Karta jest poprawną, nieuszkodzoną kartą bankomatową + + 11a. Wprowadzona kwota musi być liczbą całkowitą z zakresu ( 0, 1000000 > + + 3a. PIN składa się z 4 cyfr + +Kwestie otwarte: +---------------- + + - Czy dopuszczamy inne formy uwierzytalniania? + + - Czy powinna istnieć kamera, dzięki której bankomat może zablokować proces w przypadku próby interakcji osób 3 +