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

V2

Directed Conceptual Design

Full ARD Model

ARD:

XTT:

TPH:

XTT:

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

pl/miw/miw08_ardcase_cs/bankomat.1209455460.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