Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_ardcase_cs:bankomat [2008/04/13 23:14]
miw
pl:miw:miw08_ardcase_cs:bankomat [2019/06/27 15:50] (aktualna)
Linia 3: Linia 3:
 ====== Introduction ====== ====== 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. 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: ==== ==== 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}}+P1: {{:​pl:​miw:​miw08_ardcase_cs:​cashpoint.pdf|Another quite good documented Cashpoint Model <local copy>}}
  
 == Pozostałe przykłady == == 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}}+P2: {{:​pl:​miw:​miw08_ardcase_cs:​uml_quickguide.pdf|Quite good documented Cashpoint Model <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}}+P3: {{:​pl:​miw:​miw08_ardcase_cs:​da_wimmel.ps.ps|One more Cashpoint Model <local copy>}}
  
 ==== Uzasadnienie wyboru i porównanie ==== ==== 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. 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.
 +
  
  
Linia 24: Linia 26:
 2. Wypłata pieniędzy 2. Wypłata pieniędzy
  
-Użycie bankomatu ogranicza się d o 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 porpawny ​praca jest kontynuowana,​ jeśli nie to następują kolejne próby, jeśli są udane - dalsza praca, jeśli nie karta jest zatrzymywana.+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 : Dalsza praca polega na :
  
-- dla zapytania o saldo na wypisaniu komunikatu/​wydrukowaniu potwierdzenia+- 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. - 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.
Linia 36: Linia 38:
 ===== Conceptualization ===== ===== Conceptualization =====
 W niniejszym rozdziale następuje próba specyfikacji wejść, wyjść, atrybutów, oraz reguł w systemie W niniejszym rozdziale następuje próba specyfikacji wejść, wyjść, atrybutów, oraz reguł w systemie
 +
  
  
 ==== Vocabulary ==== ==== Vocabulary ====
-Wejścia: ​Karta, ​PIN, decyzje podejmowane przez użytkownika na kolejnych ekranach (akcja, pożadana kwota)+Wejścia: PIN, decyzje podejmowane przez użytkownika na kolejnych ekranach (akcja, pożadana kwota)
  
 Wyjście: Potwierdzenie/​pieniądze/​komunikat 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), ​Mozliwosc ​wypłaty(czy bankomat ma pożądana kwotę/​banknoty)+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. 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 ==== ==== Original Rules ====
-Reguły: Z wybranej akcji wynika jakie reguły stosować dalej. Jeśli akcją jest zapytanie o saldo to uwierzytelnienie;​ jeśli uwierzytelnienie to wydruk potwierdzenia/​wypisanie na ekranie+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 akcją jest wypłata to pozostałe reguły.
  
 Jeśli dobry PIN -> kontynuacja Jeśli dobry PIN -> kontynuacja
 +
 Jeśli zły -> druga próba ; Jeśli dobry -> Kontynuacja ; Jeśli zły -> zabranie karty  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 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 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 ===== ===== Analysis =====
 +
  
  
 ===== Conceptual design ===== ===== Conceptual design =====
-**TBC: czy do fizycznej możliwości wypłaty (ilość dostępnych w bankomacie pieniędzy) nie powinna iść pożądana kwota, bo ten znacznik od tego zależy, ale czy moze sie zdarzyc, zeby od wybranej kwoty zależały dwie rzeczy i na ARD od kwoty odchodziły dwie zależności ; jak to zrobić w PROLOGu?​** ​ 
  
 Poziom 0: Bankomat Poziom 0: Bankomat
  
-Poziom 1: Życzenia KlientaDaneFizyczna Możliwość WypłatyDziałanie ​bankomatu+Poziom 1: Finalizacja Bankomatu na: Opcja menuAutentyfikajaCzy 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 ​2Życzenia Klienta + Dane + Fizyczna Możliwość Wypłaty ​-> Działanie ​bankomatu+Poziom ​4Split (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 ​3Dane (finalizacja ​na:) Wprowadzona KwotaPodanyPIN, PINwBanku, WolneSrodki,​ uwierzytelnienie, klient dysponuje środkami+Poziom ​5Finalizacja Czy klient dysponuje środkami ​na: Pożądana kwotaWolne środkiczy klient dysponuje środkami
  
-Poziom ​4Wprowadzona Kwota + PodanyPIN + PINwBanku + WolneSrodki ​-> uwierzytelnienie + klient dysponuje środkami+Poziom ​6Split: Pożądana kwota -> czy klient dysponuje środkami, Wolne środki -> czy klient dysponuje środkami, czy klient dysponuje środkami -> Aktywność bankomatu
  
-Poziom ​5Działanie ​bankomatu ​(finalizacja na:) działanie ​bankomatu+Poziom ​7Finalizacja Aktywność ​bankomatu ​-> aktywność ​bankomatu
  
-Poziom ​6Wprowadzona Kwota, Wolne Sroki, PodanyPINPINwBanku -> klient dysponuje ​środkami + uwierzytelnienie -> działanie bankomatu+Poziom ​8Finalizacja Czy bankomat posiada środki na: Ilość pieniędzy w bankomacie(znacznik) Czy bankomat ma dostatecznie dużo środków
  
-Poziom ​7Wprowadzona Kwota + Wolne Środki ​-> klient dysponuje ​środkami ; Podany PIN + PINwBanku ​-> uwierzytelnienie+Poziom ​9Split: Ilość pieniędzy ​-> Czy bankomat ma dostatecznie dużo środków, Czy bankomat ma dostatecznie dużo środków ​-> Aktywność bankomatu
  
-Poziom ​8 i kolejneSplity na [PodanyPINPINwBanku] ​-> [Podany PIN][PINwBanku] oraz [WprowadzonaKwota,WolneSrodki] = [WprowadzonaKwota],[WolneSrodki] + finalizacje+Poziom ​10-17Finalizacja Ilość pieniędzy -> ilość pieniędzyCzy 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 PINWolne środki -> wolne środkiPIN w bazie -> PIN w bazieIlość 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 ==== ==== General Conceptual Design ====
Linia 85: Linia 104:
  
  
 +===== V4 =====
  
  
  
 +==== Directed Conceptual Design ====
  
 +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_v4.pl|Kod w PROLOGu}}
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_v4-ard.dot|Plik .dot ARD}}
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_v4-tph.dot|Plik .dot TPH}}
 +
 +
 +=== Full ARD Model ===
 +
 +ARD:
 +
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint_v4-ard.dot">​
 +</​graphviz>​
 +
 +TPH:
 +
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint_v4-tph.dot">​
 +</​graphviz>​
 +
 +==== Refined Conceptual Design ====
  
  
  
 +===== V3 =====
  
  
Linia 98: Linia 141:
 ==== Directed Conceptual Design ==== ==== 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 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_v3.pl|Kod w PROLOGu}}
  
-{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard.dot|Plik .dot ARD}}+{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard_v3.dot|Plik .dot ARD}}
  
-{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-tph.dot|Plik .dot TPH}}+{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-tph_v3.dot|Plik .dot TPH}}
  
-{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt.dot|Plik .dot XTT}} 
  
-__//**TBC: Zapytac jak pisac sciezke do plikow lokalnychna wiki, bo  https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard.dot nie dziala - narazie wklejony kod!!!**//​__ ​+=== Full ARD Model ===
  
-jakby cos mialo nie dzialac ​kopie na studencie! http://student.agh.edu.pl/​~makamin/​MiW/​Graph/​bankomat/​+ARD: 
 + 
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard_v3.dot">​ 
 +</​graphviz>​ 
 + 
 +TPH: 
 + 
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint-tph_v3.dot">​ 
 +</graphviz>​ 
 + 
 +==== Refined Conceptual Design ==== 
 + 
 +===== V2 ===== 
 + 
 + 
 +==== Directed Conceptual Design ==== 
 + 
 +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_v2.pl|Kod w PROLOGu}} 
 + 
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard_v2.dot|Plik ​.dot ARD}} 
 + 
 +{{:pl:​miw:​miw08_ardcase_cs:​cashpoint-tph_v2.dot|Plik .dot TPH}} 
 + 
 + 
 +=== Full ARD Model ===
  
 ARD: ARD:
-<​graphviz+ 
-digraph G { +<​graphviz ​file="pl:​miw:​miw08_ardcase_cs:​cashpoint-ard_v2.dot">
- ​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>​ </​graphviz>​
  
 TPH: TPH:
-<​graphviz+ 
-digraph G { +<​graphviz ​file="pl:​miw:​miw08_ardcase_cs:​cashpoint-tph_v2.dot">
- ​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>​ </​graphviz>​
  
-XTT: + 
-<​graphviz>​ +==== Refined Conceptual Design ​==== 
-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"​ { +===== V1 ===== 
-"​[[authentication],​ [clientHasFreeFunds],​ [enoughCashInCashpoint],​ [menuOption],​ [numberOfFailedAttempts]]|[[cashpointActivity]]"​ + 
-+ 
-subgraph "​cluster_Cashpoint"​ { +==== Directed Conceptual Design ​==== 
-"​[[numberOfBills],​ [desiredAmount]]|[[enoughCashInCashpoint]]"​ + 
-+=== Full ARD Model === 
-subgraph "​cluster_Cashpoint"​ { +Kody w PROOGu, kod .dot i rysunki ARD/TPH i XTT wygenerowane przez VARDA dostępne dodatkowo pod linkiem poniżej 
-"​[[desiredAmount],​ [freeFunds]]|[[clientHasFreeFunds]]"​ + 
-+{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint.pl|Kod w PROLOGu}} 
-subgraph "​cluster_Data"​ { + 
-"​[[desiredAmount],​ [freeFunds]]|[[clientHasFreeFunds]]"​ +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-ard.dot|Plik .dot ARD}} 
-+ 
-subgraph "​cluster_Cashpoint"​ { +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-tph.dot|Plik .dot TPH}} 
-"​[[enteredPIN],​ [pINInDatabase]]|[[authentication]]"​ + 
-+ARD: 
-subgraph "​cluster_Data"​ { + 
-"​[[enteredPIN],​ [pINInDatabase]]|[[authentication]]"​ +<​graphviz file="pl:​miw:​miw08_ardcase_cs:​cashpoint-ard.dot"> 
-+</​graphviz>​ 
-subgraph "​cluster_Cashpoint"​ { + 
-label="​Cashpoint"​ + 
-color=blue +TPH: 
-fontcolor=blue + 
-fontsize=+<​graphviz file="pl:​miw:​miw08_ardcase_cs:​cashpoint-tph.dot">
-fontname=sans +
-labeljust=+
-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=+
-fontname=sans +
-labeljust=+
-subgraph "​cluster_Data"​ { +
-label="​Data"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=+
-+
-+
-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=+
-+
-+
-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>​ </​graphviz>​
  
Linia 940: Linia 229:
  
 ===== Logical design ===== ===== Logical design =====
 +
 +
 +
 +
 +
 +
 +==== V4 ====
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_v4-xtt.dot|Plik .dot XTT}}
 +
 +XTT:
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint_v4-xtt.dot">​
 +</​graphviz>​
 +
 +Plik HQED {{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_v4-xttml.xttml|XTTML}}
 +
 +
 +==== V3 ====
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt_v3.dot|Plik .dot XTT}}
 +
 +XTT:
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt_v3.dot">​
 +</​graphviz>​
 +
 +Plik HQED {{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-xttml_v3.xttml|XTTML}}
 +
 +==== V2 ====
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt_v2.dot|Plik .dot XTT}}
 +
 +XTT:
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt_v2.dot">​
 +</​graphviz>​
 +
 +Plik HQED {{cashpoint_v2.xttml|XTTML}}
 +
 +==== V1 ====
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt.dot|Plik .dot XTT}}
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​miw-cashpoint-xtt.pdf |Nieoficjalna (bez użycia HqEd) wersja XTT }}
 +
 +XTT:
 +
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint-xtt.dot">​
 +</​graphviz>​
 +
 +==== V0 - opis ogólny ====
 Wynikowe działanie bankomatu zależy od następujących rzeczy: Wynikowe działanie bankomatu zależy od następujących rzeczy:
 - czy klient podał prawidłowy PIN (uwierzytelnienie) - czy klient podał prawidłowy PIN (uwierzytelnienie)
Linia 947: Linia 282:
  
 Uwierzytelnienie zależy od PINu zapisanego na karcie/w bazie banku, oraz PINu podanego przez klienta 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 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 Tak powstałe reguły powinny być opisane w taki sposób aby otrzymane tabele były zupełne
 +
 +
 +
 +
 +===== CASE =====
 +Ze względów projektowych trzeba było dodawać zależności ręcznie (abstrahując,​ że i tak koncepcja później została zmieniona) pojawiły się dwie tabele o identycznych warunkach (czemu nie zostały połączone?​). Fakt nie były od początku projektowane jako jedna tabela o danych warunkach i dwóch konkluzjach (ale wynikło to z projektu, gdzie jedna z konkluzji była wywiedziona od innego atrybutu)
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_case.pl|Kod w PROLOGu}}
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_case-ard.dot|Plik .dot ARD}}
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_case-tph.dot|Plik .dot TPH}}
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_case-xtt.dot|Plik .dot XTT}}
 +
 +{{:​pl:​miw:​miw08_ardcase_cs:​cashpoint_case-xttml.xttml|Plik .dot XTTML}}
 +
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​cashpoint_case-xtt.dot">​
 +</​graphviz>​
 +
 +===== Ostatnie zmiany =====
 +26.05.2008 - dodanie case opisywanego w sprawozdaniu ; dodanie v4 - podczas dogrywania case autor zauważył brak uaktualniania atrybutu numberOfBills (o nieco mylącej nazwie - reprezentującego ilość pieniędzy w banknotach w bankomacie),​ zostało to poprawione w wersji v4
 +
 +24.05.2008 - uporządkowanie,​ usunięcie linków zewnętrznych i zastąpienie lokalnymi, drobne zmiany
 +
 +28.04.2008 - drobne modyfikacje modelu, użycie nowej wersji VARDA, oraz użycie HQED
 +
 +18.05.2008 - modyfikacja modelu, nowe ARD,XTT - na chwile obecna link do strony, wieczorem wklejenie localcopy etc
 +
 +19.05.2008 - poprawa(uaktualnienie) opisu, dodanie kopii lokalnych plików, usunięcie starych uwag, dodanie nowych uwag do sprawozdania
pl/miw/miw08_ardcase_cs/bankomat.1208121256.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (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