Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:miw:miw08_ardcase_cs:bankomat [2008/05/19 18:36]
miw
pl:miw:miw08_ardcase_cs:bankomat [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Analiza bankomatu i design ====== 
  
-====== Introduction ====== 
-Celem niniejszego opracowania jest próba zamodelowania bankomatu w ARD/XTT bazując na wiedzy ogólnej na temat budowy i zasady działania, oraz korzystania z bankomatu, dostępnych dokumentacjach,​ a przede wszystkim modelach UML systemu. Do stworzenia modelu, należy bazując na modelu UML wyszczególnić iterakcje pomiędzy zewnętrzem,​ a modelowanym systemem, wyodrębnienić wejścia i wyjścia modelowanego systemu (IMHO może to być zależne od przypadku użycia), następnie próba specyfikacji elementów wiedzy (w postaci atrybutów),​ na podstawie której działa system, oraz odnalezienia i opisania za pomocą zdefiniowanych atrybutów reguł według jakich działa system. 
- 
-==== Wybrany przykład: ==== 
-P1: [[http://​www.emn.fr/​x-info/​jroyer/​cashpoint.pdf|Another quite good documented Cashpoint Model]] {{:​pl:​miw:​miw08_ardcase_cs:​cashpoint.pdf|local copy}} 
- 
-== Pozostałe przykłady == 
-P2: [[http://​cis.paisley.ac.uk/​mcmo-ci0/​SoftDev/​Text/​UML%20QuickGuide.pdf|Quite good documented Cashpoint Model]] {{:​pl:​miw:​miw08_ardcase_cs:​uml_quickguide.pdf|local copy}} 
- 
-P3: [[http://​www4.in.tum.de/​lehre/​da/​DA_Wimmel.ps.gz|One more Cashpoint Model]] {{:​pl:​miw:​miw08_ardcase_cs:​da_wimmel.ps.ps|local copy}} 
- 
-==== Uzasadnienie wyboru i porównanie ==== 
-Wybrałem przykład P1 ponieważ zawiera stosunkowo najwięcej opisu UML i jest merytorycznie najlepszy. Przykład P2 zawiera mniej diagramów UML, mniej danych o systemie, a przedstawione diagramy w mniejszym stopniu oddają specyfikę systemu. Przykład P3 zawiera diagramy UML, ale przedstawione tam diagramy wydają się być niekompletne i dobrane tak, aby tłumaczyć myśl główną zawartą w dokumencie tj. testowanie systemów. 
- 
- 
- 
- 
-===== Description ===== 
-W przypadku podstawowym w bankomacie wyróżnić możemy dwa podstawowe przypadki użycia: 
- 
-1. Zapytanie o saldo 
- 
-2. Wypłata pieniędzy 
- 
-Użycie bankomatu ogranicza się do dwóch akcji prezentowanych na use-case. Może to być zapytanie o saldo lub wypłata środków. Dla każdej z akcji trzeba się uwierzytelnić poprzez podanie PINu. PIN jest sprawdzany w bazie, jeśli jest poprawny praca jest kontynuowana,​ jeśli nie to następują kolejne próby, jeśli są udane - dalsza praca, jeśli nie karta jest zatrzymywana. 
- 
-Dalsza praca polega na : 
- 
-- dla zapytania o saldo na wypisaniu komunikatu 
- 
-- dla wypłaty pieniędzy wybraniu z dostępnych lub podaniu niestandardowej kwoty, następnie sprawdzana jest ilość środków na koncie i jeśli są wolne środki lub limit kredytowy to sprawdzane jest, czy bankomat posiada środki, jeśli wszystko OK to wypłata i potwierdzenie,​ jeśli nie, to odpowiedni komunikat. 
- 
-Możliwe działania wynikowe bankomatu - drukowanie potwierdzenia,​ wydawanie pieniędzy, zabranie karty, prośba o ponowne wprowadzenie PINu 
- 
-===== Conceptualization ===== 
-W niniejszym rozdziale następuje próba specyfikacji wejść, wyjść, atrybutów, oraz reguł w systemie 
- 
- 
- 
-==== Vocabulary ==== 
-Wejścia: PIN, decyzje podejmowane przez użytkownika na kolejnych ekranach (akcja, pożadana kwota) 
- 
-Wyjście: Potwierdzenie/​pieniądze/​komunikat 
- 
-Stany wewnętrzne:​ Uwierzytelnienie (jeśli wpisany PIN jest zgodny z PINem w bazie), Saldo (kwota wolnych środków na koncie klienta), Możliwość wypłaty(czy bankomat ma pożądana kwotę/​banknoty) 
- 
-Elementy wiedzy: Akcja wybrana przez użytkownika (dziedzina: saldo/​wyplata),​ wpisany pin (dziedzina 0000-9999), uwierzytelnianie,​ saldo, pożądana kwota, czy istnieje możliwość wypłaty, czy bankomat posiada środki. 
- 
- 
-==== Original Rules ==== 
-Reguły: Z wybranej akcji wynika jakie reguły stosować dalej. ​ 
-Jeśli akcją jest zapytanie o saldo to najpierw należy się uwierzytelnić,​ po uwierzytelnieniu dla tej akcji następuje wypisanie na ekranie stanu konta, w przypadku błędnej autentyfikacji podejmowane mogą być kolejne próby, jednak po trzeciej nieudanej próbie karta jest zatrzymywana przez bankomat. 
- 
-Jeśli akcją jest wypłata to pozostałe reguły. 
-Jeśli dobry PIN -> kontynuacja 
-Jeśli zły -> druga próba ; Jeśli dobry -> Kontynuacja ; Jeśli zły -> zabranie karty  
-Jeśli stan konta (+ ew.prowizja) lub karta debetowa -> (autoryzowany użytkownik posiadający środki) możliwość wypłaty 
-Jeśli są pieniądze i możliwość wypłaty -> wyplata pieniędzy/​drukowanie potwierdzenia lub stan konta dla akcji sprawdzania konta 
-Po wypłacie należy zaktualizować ilość pieniędzy w bankomacie 
- 
-===== Analysis ===== 
- 
- 
- 
-===== Conceptual design ===== 
- 
-Poziom 0: Bankomat 
- 
-Poziom 1: Finalizacja Bankomatu na: Opcja menu, Autentyfikaja,​ Czy klient dysponuje środkami, Czy bankomat posiada środki, Aktywność bankomatu 
- 
-Poziom 2: Split (ustalenie zależności):​ Opcja menu -> Aktywność bankomatu, 
-Opcja menu -> Aktywność bankomatu, Autentyfikaja -> Aktywność bankomatu, Czy klient dysponuje środkami -> Aktywność bankomatu, Czy bankomat posiada środki -> Aktywność bankomatu 
- 
-Poziom 3: Finalizacja Autentyfikacji:​ Podany PIN, PINwBanku, Ilość nieudanych prób, uwierzytelnienie ​ 
- 
-Poziom 4: Split (ustalenie zależności):​ Podany PIN -> uwierzytelnienie , PINwBanku -> uwierzytelnienie , Ilość nieudanych prób -> uwierzytelnienie,​ Podany PIN -> Ilość nieudanych prób, PINwBanku -> Ilość nieudanych prób, uwierzytelnienie -> Aktywność bankomatu, Ilość nieudanych prób-> Aktywność bankomatu 
- 
-Poziom 5: Finalizacja Czy klient dysponuje środkami na: Pożądana kwota, Wolne środki, czy klient dysponuje środkami 
- 
-Poziom 6: Split: Pożądana kwota -> czy klient dysponuje środkami, Wolne środki -> czy klient dysponuje środkami, czy klient dysponuje środkami -> Aktywność bankomatu 
- 
-Poziom 7: Finalizacja Aktywność bankomatu -> aktywność bankomatu 
- 
-Poziom 8: Finalizacja Czy bankomat posiada środki na: Ilość pieniędzy w bankomacie, (znacznik) Czy bankomat ma dostatecznie dużo środków 
- 
-Poziom 9: Split: Ilość pieniędzy -> Czy bankomat ma dostatecznie dużo środków, Czy bankomat ma dostatecznie dużo środków -> Aktywność bankomatu 
- 
-Poziom 10-17: Finalizacja Ilość pieniędzy -> ilość pieniędzy, Czy bankomat ma dostatecznie dużo środków -> czy bankomat ma dostatecznie dużo środków, Opcja menu -> opcja menu, Pożądana kwota -> pożądana kwota, Podany PIN -> podany PIN, Wolne środki -> wolne środki, PIN w bazie -> PIN w bazie, Ilość nieudanych prób -> ilość nieudanych prób 
- 
-Poziom 18: Ręczne dodanie zależności (do poziomu 9) pożądana kwota -> czy bankomat ma dostatecznie dużo środków 
- 
-==== General Conceptual Design ==== 
- 
- 
- 
-====== V3 ====== 
-link do strony z plikami http://​student.agh.edu.pl/​~makamin/​MiW/​v3/​bankomat/​ 
-==== Directed Conceptual Design ==== 
-=== Full ARD Model === 
-==== Refined Conceptual Design ==== 
- 
-====== V2 ====== 
-==== Directed Conceptual Design ==== 
- 
-Chwilowo kod tutaj: http://​student.agh.edu.pl/​~makamin/​MiW/​ARD%20XTT/​ 
- 
-=== Full ARD Model === 
- 
-ARD: 
- 
-<​graphviz url="​http://​student.agh.edu.pl/​~makamin/​MiW/​ARD%20XTT/​bankomat/​cashpoint-ard.dot">​ 
-</​graphviz>​ 
- 
-TPH: 
- 
-<​graphviz url="​http://​student.agh.edu.pl/​~makamin/​MiW/​ARD%20XTT/​bankomat/​cashpoint-tph.dot">​ 
-</​graphviz>​ 
- 
-XTT: 
- 
-<​graphviz url="​http://​student.agh.edu.pl/​~makamin/​MiW/​ARD%20XTT/​bankomat/​cashpoint-xtt.dot">​ 
-</​graphviz>​ 
- 
-Plik HQED http://​student.agh.edu.pl/​~makamin/​MiW/​ARD%20XTT/​bankomat/​xtt.svg 
- 
-==== Refined Conceptual Design ==== 
- 
-====== V1 ====== 
- 
-==== Directed Conceptual Design ==== 
- 
-=== Full ARD Model === 
-Kody w PROOGu, kod .dot i rysunki ARD/TPH i XTT wygenerowane przez VARDA dostępne dodatkowo pod linkiem poniżej 
- 
-{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint.pl|Kod w PROLOGu}} 
- 
-{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard.dot|Plik .dot ARD}} 
- 
-{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-tph.dot|Plik .dot TPH}} 
- 
-{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt.dot|Plik .dot XTT}} 
- 
-__//**TBC: Zapytac jak pisac sciezke do plikow lokalnych na wiki, bo  https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard.dot nie dziala - narazie wklejony kod!!!**//​__ ​ 
- 
-Kopie na studencie! http://​student.agh.edu.pl/​~makamin/​MiW/​Graph/​bankomat/​ 
- 
-ARD: 
- 
-<​graphviz>​ 
-digraph G { 
- ​rankdir=LR 
- node [shape=box, fontsize=9, height=0.1, width=0.05 ] 
- edge [arrowsize=0.5,​ len=0.1] 
-"​cashpointActivity\n"​ 
-"​clientHasFreeFunds\n"​ 
-"​authentication\n"​ 
-"​numberOfBills\n"​ 
-"​enoughCashInCashpoint\n"​ 
-"​menuOption\n"​ 
-"​desiredAmount\n"​ 
-"​enteredPIN\n"​ 
-"​freeFunds\n"​ 
-"​pINInDatabase\n"​ 
-"​numberOfFailedAttempts\n"​ 
-"​authentication\n"​->"​cashpointActivity\n"​ 
-"​clientHasFreeFunds\n"​->"​cashpointActivity\n"​ 
-"​numberOfBills\n"​->"​enoughCashInCashpoint\n"​ 
-"​enoughCashInCashpoint\n"​->"​cashpointActivity\n"​ 
-"​menuOption\n"​->"​cashpointActivity\n"​ 
-"​desiredAmount\n"​->"​clientHasFreeFunds\n"​ 
-"​enteredPIN\n"​->"​authentication\n"​ 
-"​freeFunds\n"​->"​clientHasFreeFunds\n"​ 
-"​pINInDatabase\n"​->"​authentication\n"​ 
-"​numberOfFailedAttempts\n"​->"​cashpointActivity\n"​ 
-"​desiredAmount\n"​->"​enoughCashInCashpoint\n"​ 
-} 
-</​graphviz>​ 
- 
-TPH: 
- 
-<​graphviz>​ 
-digraph G { 
- ​rankdir=LR 
- node [shape=box, fontsize=9, height=0.1, width=0.05 ] 
- edge [arrowsize=0.5,​ len=0.1] 
-"​Cashpoint\n"​->"​MenuOption\nData\nDoesCashpointHaveEnoughCash\nNumberOfFailedAttempts\nCashpointActivity\n"​ 
-"​MenuOption\nData\nDoesCashpointHaveEnoughCash\nNumberOfFailedAttempts\nCashpointActivity\n"​->"​MenuOption\n"​ 
-"​MenuOption\nData\nDoesCashpointHaveEnoughCash\nNumberOfFailedAttempts\nCashpointActivity\n"​->"​Data\n"​ 
-"​MenuOption\nData\nDoesCashpointHaveEnoughCash\nNumberOfFailedAttempts\nCashpointActivity\n"​->"​DoesCashpointHaveEnoughCash\n"​ 
-"​MenuOption\nData\nDoesCashpointHaveEnoughCash\nNumberOfFailedAttempts\nCashpointActivity\n"​->"​NumberOfFailedAttempts\n"​ 
-"​MenuOption\nData\nDoesCashpointHaveEnoughCash\nNumberOfFailedAttempts\nCashpointActivity\n"​->"​CashpointActivity\n"​ 
-"​Data\n"​->"​DesiredAmount\nEnteredPIN\nFreeFunds\nPINInDatabase\nauthentication\nclientHasFreeFunds\n"​ 
-"​DesiredAmount\nEnteredPIN\nFreeFunds\nPINInDatabase\nauthentication\nclientHasFreeFunds\n"​->"​DesiredAmount\nFreeFunds\nEnteredPIN\nPINInDatabase\n"​ 
-"​DesiredAmount\nEnteredPIN\nFreeFunds\nPINInDatabase\nauthentication\nclientHasFreeFunds\n"​->"​clientHasFreeFunds\nauthentication\n"​ 
-"​CashpointActivity\n"​->"​cashpointActivity\n"​ 
-"​clientHasFreeFunds\nauthentication\n"​->"​clientHasFreeFunds\n"​ 
-"​clientHasFreeFunds\nauthentication\n"​->"​authentication\n"​ 
-"​DesiredAmount\nFreeFunds\nEnteredPIN\nPINInDatabase\n"​->"​DesiredAmount\nFreeFunds\n"​ 
-"​DesiredAmount\nFreeFunds\nEnteredPIN\nPINInDatabase\n"​->"​EnteredPIN\nPINInDatabase\n"​ 
-"​EnteredPIN\nPINInDatabase\n"​->"​EnteredPIN\n"​ 
-"​EnteredPIN\nPINInDatabase\n"​->"​PINInDatabase\n"​ 
-"​DesiredAmount\nFreeFunds\n"​->"​DesiredAmount\n"​ 
-"​DesiredAmount\nFreeFunds\n"​->"​FreeFunds\n"​ 
-"​DoesCashpointHaveEnoughCash\n"​->"​NumberOfBills\nEnoughCashInCashpoint\n"​ 
-"​NumberOfBills\nEnoughCashInCashpoint\n"​->"​NumberOfBills\n"​ 
-"​NumberOfBills\nEnoughCashInCashpoint\n"​->"​EnoughCashInCashpoint\n"​ 
-"​NumberOfBills\n"​->"​numberOfBills\n"​ 
-"​EnoughCashInCashpoint\n"​->"​enoughCashInCashpoint\n"​ 
-"​MenuOption\n"​->"​menuOption\n"​ 
-"​DesiredAmount\n"​->"​desiredAmount\n"​ 
-"​EnteredPIN\n"​->"​enteredPIN\n"​ 
-"​FreeFunds\n"​->"​freeFunds\n"​ 
-"​PINInDatabase\n"​->"​pINInDatabase\n"​ 
-"​NumberOfFailedAttempts\n"​->"​numberOfFailedAttempts\n"​ 
-} 
-</​graphviz>​ 
- 
-XTT: 
- 
-<​graphviz>​ 
-digraph G{  node [shape=record,​ fontsize=9, height=0.1, width=0.05];​ edge [style=dashed,​ arrowsize=0.5,​ len=0.1] ​ 
-subgraph "​cluster_Cashpoint"​ { 
-"​[[authentication],​ [clientHasFreeFunds],​ [enoughCashInCashpoint],​ [menuOption],​ [numberOfFailedAttempts]]|[[cashpointActivity]]"​ 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-"​[[numberOfBills],​ [desiredAmount]]|[[enoughCashInCashpoint]]"​ 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-"​[[desiredAmount],​ [freeFunds]]|[[clientHasFreeFunds]]"​ 
-} 
-subgraph "​cluster_Data"​ { 
-"​[[desiredAmount],​ [freeFunds]]|[[clientHasFreeFunds]]"​ 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-"​[[enteredPIN],​ [pINInDatabase]]|[[authentication]]"​ 
-} 
-subgraph "​cluster_Data"​ { 
-"​[[enteredPIN],​ [pINInDatabase]]|[[authentication]]"​ 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_MenuOption"​ { 
-label="​MenuOption"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_DoesCashpointHaveEnoughCash"​ { 
-label="​DoesCashpointHaveEnoughCash"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_NumberOfFailedAttempts"​ { 
-label="​NumberOfFailedAttempts"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_CashpointActivity"​ { 
-label="​CashpointActivity"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_menuOption"​ { 
-label="​menuOption"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_DesiredAmount"​ { 
-label="​DesiredAmount"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_FreeFunds"​ { 
-label="​FreeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_desiredAmount"​ { 
-label="​desiredAmount"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_freeFunds"​ { 
-label="​freeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_EnteredPIN"​ { 
-label="​EnteredPIN"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_PINInDatabase"​ { 
-label="​PINInDatabase"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_enteredPIN"​ { 
-label="​enteredPIN"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_pINInDatabase"​ { 
-label="​pINInDatabase"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_clientHasFreeFunds"​ { 
-label="​clientHasFreeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_authentication"​ { 
-label="​authentication"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_NumberOfBills"​ { 
-label="​NumberOfBills"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_EnoughCashInCashpoint"​ { 
-label="​EnoughCashInCashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_numberOfBills"​ { 
-label="​numberOfBills"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_enoughCashInCashpoint"​ { 
-label="​enoughCashInCashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_numberOfFailedAttempts"​ { 
-label="​numberOfFailedAttempts"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Cashpoint"​ { 
-label="​Cashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_cashpointActivity"​ { 
-label="​cashpointActivity"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_MenuOption"​ { 
-label="​MenuOption"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_menuOption"​ { 
-label="​menuOption"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_DesiredAmount"​ { 
-label="​DesiredAmount"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_FreeFunds"​ { 
-label="​FreeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_desiredAmount"​ { 
-label="​desiredAmount"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_freeFunds"​ { 
-label="​freeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_EnteredPIN"​ { 
-label="​EnteredPIN"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_PINInDatabase"​ { 
-label="​PINInDatabase"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_enteredPIN"​ { 
-label="​enteredPIN"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_pINInDatabase"​ { 
-label="​pINInDatabase"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_clientHasFreeFunds"​ { 
-label="​clientHasFreeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_Data"​ { 
-label="​Data"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_authentication"​ { 
-label="​authentication"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_DoesCashpointHaveEnoughCash"​ { 
-label="​DoesCashpointHaveEnoughCash"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_NumberOfBills"​ { 
-label="​NumberOfBills"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_DoesCashpointHaveEnoughCash"​ { 
-label="​DoesCashpointHaveEnoughCash"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_EnoughCashInCashpoint"​ { 
-label="​EnoughCashInCashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_DoesCashpointHaveEnoughCash"​ { 
-label="​DoesCashpointHaveEnoughCash"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_numberOfBills"​ { 
-label="​numberOfBills"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_DoesCashpointHaveEnoughCash"​ { 
-label="​DoesCashpointHaveEnoughCash"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_enoughCashInCashpoint"​ { 
-label="​enoughCashInCashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_NumberOfFailedAttempts"​ { 
-label="​NumberOfFailedAttempts"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_numberOfFailedAttempts"​ { 
-label="​numberOfFailedAttempts"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_CashpointActivity"​ { 
-label="​CashpointActivity"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_cashpointActivity"​ { 
-label="​cashpointActivity"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_DesiredAmount"​ { 
-label="​DesiredAmount"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_desiredAmount"​ { 
-label="​desiredAmount"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_EnteredPIN"​ { 
-label="​EnteredPIN"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_enteredPIN"​ { 
-label="​enteredPIN"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_FreeFunds"​ { 
-label="​FreeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_freeFunds"​ { 
-label="​freeFunds"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_PINInDatabase"​ { 
-label="​PINInDatabase"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_pINInDatabase"​ { 
-label="​pINInDatabase"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_NumberOfBills"​ { 
-label="​NumberOfBills"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_numberOfBills"​ { 
-label="​numberOfBills"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-subgraph "​cluster_EnoughCashInCashpoint"​ { 
-label="​EnoughCashInCashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=8 
-fontname=sans 
-labeljust=l 
-subgraph "​cluster_enoughCashInCashpoint"​ { 
-label="​enoughCashInCashpoint"​ 
-color=blue 
-fontcolor=blue 
-fontsize=10 
-fontname=sans 
-labeljust=l 
-} 
-} 
-"​[[numberOfBills],​ [desiredAmount]]|[[enoughCashInCashpoint]]"​->"​[[authentication],​ [clientHasFreeFunds],​ [enoughCashInCashpoint],​ [menuOption],​ [numberOfFailedAttempts]]|[[cashpointActivity]]"​ 
-"​[[desiredAmount],​ [freeFunds]]|[[clientHasFreeFunds]]"​->"​[[authentication],​ [clientHasFreeFunds],​ [enoughCashInCashpoint],​ [menuOption],​ [numberOfFailedAttempts]]|[[cashpointActivity]]"​ 
-"​[[enteredPIN],​ [pINInDatabase]]|[[authentication]]"​->"​[[authentication],​ [clientHasFreeFunds],​ [enoughCashInCashpoint],​ [menuOption],​ [numberOfFailedAttempts]]|[[cashpointActivity]]"​ 
-} 
-</​graphviz>​ 
- 
-Wstępna wersja xtt (nie wrzucana na wiki, ponieważ jest wstępna) tutaj: http://​student.agh.edu.pl/​~makamin/​MiW/​Graph/​bankomat/​MIW-cashpoint-xtt.pdf 
- 
-==== Refined Conceptual Design ==== 
- 
-===== Physical Attribute Specification ===== 
- 
-===== Structuralization ===== 
- 
- 
- 
- 
- 
-===== Logical design ===== 
-Wynikowe działanie bankomatu zależy od następujących rzeczy: 
-- czy klient podał prawidłowy PIN (uwierzytelnienie) 
-- czy środki na koncie klienta są w stanie pokryć koszty transakcji (klient dysponuje środkami) 
-- życzenie klienta (wybrana akcja) 
-- fizyczna możliwość wypłaty (czy bankomat dysponuje pożądaną kwotą/​odpowiednimi banknotami) 
- 
-Uwierzytelnienie zależy od PINu zapisanego na karcie/w bazie banku, oraz PINu podanego przez klienta 
- 
-To czy klient dysponuje środkami zależy od pożądanej przez klienta kwoty, oraz stanu jego konta 
- 
-Tak powstałe reguły powinny być opisane w taki sposób aby otrzymane tabele były zupełne 
- 
- 
- 
-===== Ostatnie zmiany ===== 
-28.04.2008 - drobne modyfikacje modelu, użycie nowej wersji VARDA, oraz użycie HQED 
- 
-19.05.2008 - modyfikacja modelu, nowe ARD,XTT - na chwile obecna link do strony, wieczorem wklejenie localcopy etc 
pl/miw/miw08_ardcase_cs/bankomat.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0