To jest stara wersja strony!
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:
Pozostałe przykłady
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ę 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.
Dalsza praca polega na :
- dla zapytania o saldo na wypisaniu komunikatu/wydrukowaniu potwierdzenia
- 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: Karta, 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), Mozliwosc 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 uwierzytelnienie; jeśli uwierzytelnienie to wydruk potwierdzenia/wypisanie na ekranie
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
Analysis
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 1: Życzenia Klienta, Dane, Fizyczna Możliwość Wypłaty, Działanie bankomatu
Poziom 2: Życzenia Klienta + Dane + Fizyczna Możliwość Wypłaty → Działanie bankomatu
Poziom 3: Dane (finalizacja na:) Wprowadzona Kwota, PodanyPIN, PINwBanku, WolneSrodki, uwierzytelnienie, klient dysponuje środkami
Poziom 4: Wprowadzona Kwota + PodanyPIN + PINwBanku + WolneSrodki → uwierzytelnienie + klient dysponuje środkami
Poziom 5: Działanie bankomatu (finalizacja na:) działanie bankomatu
Poziom 6: Wprowadzona Kwota, Wolne Sroki, PodanyPIN, PINwBanku → klient dysponuje środkami + uwierzytelnienie → działanie bankomatu
Poziom 7: Wprowadzona Kwota + Wolne Środki → klient dysponuje środkami ; Podany PIN + PINwBanku → uwierzytelnienie
Poziom 8 i kolejne: Splity na [PodanyPIN, PINwBanku] → [Podany PIN], [PINwBanku] oraz [WprowadzonaKwota,WolneSrodki] = [WprowadzonaKwota],[WolneSrodki] + finalizacje
General Conceptual Design
Directed Conceptual Design
Full ARD Model
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