2010-10-12
Projektowanie systemów obiektowych
Samoobsługowa stacja beznynowa
ETAP I
Analiza i modelowanie
Adam Soliński, 113790
Tomasz Krzyżanowski, 113701
Spis treści
Przypadki użycia
Diagram
Opis aktorów
Dostęp do poszczególnych realizowanych za pomocą systemu działań jest regulowany z użyciem odpowiedniego systemu uprawnień.
Kasjer
Zewnętrzy aktor ożywiony
Pracownik stacji paliw, zajmuje się obsługą transakcji, zatwierdza je, wystawia faktury, wprowadza nowych klientów do rejestru, obsługuje sytuacje alarmowe w razie braku płatności za paliwo, może ręcznie odblokować dystrybutor.
Super Kasjer
Zewnętrzy aktor ożywiony
Ponad funkcjonalność zwykłego kasjera, superkasjer może dokonywać zmian w cenie paliwa oraz składać zamówienia na paliwo.
Administrator
Zewnętrzy aktor ożywiony
Rolą administratora jest wprowadzanie i modyfiikacja kont pracowników na stacji benzynowej.
Monitor poziomu paliwa
Wewnętrzy aktor nieożywiony
Aktor nieożywiony wewnątrz systemu odpowiedzialny za monitorowanie bieżącego stanu paliwa, obsługi zdarzeń związanych z osiągnieciem stanu alarmowego paliwa.
Dystrybutor
Zewnętrzy aktor nieożywiony
Dystrybutor jest interfejsem za pomocą którego fizyczny klient komunikuje się z systemem. Posiada wewnętrzną pamięć, w której przechowuje dane odnoszące się do aktualnego procesu tankowania. Pamięć ta jest czyszczona (resetowana) przy każdym odblokowaniu dystrybutora. Odrębny obszar pamięci odpowiedzialny za przechowywanie par wartości dozownik - cena_paliwa będzie zmieniany tylko pod wpływem komunikatu ze strony systemu o aktualizacji cen paliw.
Gdy klient użył dowolnego dozownika dystrybutora (w sensie rozpoczął tankowanie jakiegoś rodzaju paliwa) i następnie go odłożył z powrotem na swoje miejsce, dystrybutor generuje komunikat wysyłany dalej do systemu, w którym jest on przetwarzany. Gdy system rzeczywiście stwierdzi, że paliwo zostało pobrane, wysyła komunikat do dysrybutora, by ten się zablokował na czas nieokreślony. Dystrybutor może zostać ponownie odblokowany w momencie gdy otrzyma od systemu stosowny komunikat.
Dystrybutor może otrzymać polecenie blokady, bądź odblokowania danego dozownika (posiada diody, która może być użyta do zasygnalizowania braku paliwa danego typu na stacji). Polecenie takie będzie zawierać odpowiedni numer dozownika, gdyż informacja ta zostanie przygotowana przez sam system.
Opis przypadków
ID : UC_01
Ustalenie ceny paliwa
Warunki początkowe
Użytkownik zalogowany.
Użytkownik ma wystarczające uprawnienia do modyfikacji ceny paliwa.
Zdarzenie inicjujące
Nastąpiła potrzeba zmiany ceny paliwa
Przebieg główny
Użytkownik zgłasza żądanie zmiany ceny paliwa.
System zwraca ekran z zapytaniem o rodzaj paliwa, którego cene chcemy zmienić.
Użytkownik wybiera pożądany typ paliwa.
System zwraca ekran z aktualną ceną paliwa oraz formularzem do wprowadzenia nowej wartości.
Użytkownik wprowadza nową wartość ceny paliwa.
System monituje o potwierdzenie wprowadzonej zmiany.
Użytkownik potwierdza wprowadzoną zmianę.
Koniec przypadku użycia.
Przebiegi alternatywne
7A. Użytkownik chce ponownie przeprowadzić proces zmiany ceny paliwa.
7A1. Przejście do punktu 2.
Warunki końcowe
Cena jednostkowa paliwa wybranego przez użytkownika została zmieniona w bazie danych.
ID : UC_02
Złożenie zamówienia na paliwo
Warunki początkowe
Użytkownik zalogowany.
Użytkownik ma wystarczające uprawnienia do złożenia zamówienia na paliwo.
Zdarzenie inicjujące
Na stacji zabrakło danego typu paliwa.
Menadżer zgłosił zapotrzebowanie na zamówienie paliwa.
Przebieg główny
Użytkownik zgłasza żądanie zamówienia paliwa.
System zwraca widok formularza służącego do zamówienia paliwa (typ, ilość, dostawca).
Użytkownik wprowadza wymagane dane.
System monituje o potwierdzenie wysłania zamówienia wg wcześniej wprowadzonych danych.
Użytkownik potwierdza poprawność wprowadzonych danych.
System wysyła zamówienie do dostawcy paliwa.
Koniec przypadku użycia.
Przebiegi alternatywne
5A. Użytkownik chce poprawić wcześniej wprowadzone dane.
5A1. Przejście do punktu 3.
Warunki końcowe
Zamówienie na paliwo zostało pomyślnie złożone.
ID : UC_03
Dokonanie płatności
Warunki początkowe
Użytkownik zalogowany.
Użytkownik ma wystarczające uprawnienia do zatwierdzenia transakcji.
W systemie istnieje niezatwierdzona transakcja.
Dystrybutor, którego dotyczy transakcja jest zablokowany.
Zdarzenie inicjujące
Klient zgłasza chęć zapłaty za utworzoną transakcję w ramach tankowania i podaje numer dystrybutora, którego dotyczy transakcja.
Przebieg główny
Użytkownik zgłasza żądanie zatwierdzenia transakcji.
System zwraca widok stanu transakcji (koszt, status, stan liczników … )
Użytkownik potwierdza stan transakcji i wprowadza należnośc pobraną od klienta do kasy.
System zatwierdza transakcję i odblokowuje dystrybutor o podanym numerze.
Koniec przypadku użycia
Przebiegi alternatywne
brak
Warunki końcowe
Transakcja, której dotyczył przypadek użycia została zatwierdzona.
Dystrybutor, którego dotyczyła transakcja został odblokowany.\
ID : UC_04
Wystawienie faktury
Warunki początkowe
Użytkownik zalogowany.
Użytkownik ma wystarczające uprawnienia do wystawienia faktury.
Dokonano płatności za daną transakcję.
Zdarzenie inicjujące
Klient zgłasza chęć otrzymania faktury VAT na opłaconą transakcję.
Przebieg główny
Użytkownik zgłasza żądanie wystawienia faktury.
System zwraca formularz do wprowadzenia NIP.
Użytkownik wprowadza NIP osoby, dla której ma zostać wystawiona faktura.
System wydaje wydruk faktury.
Koniec przypadku użycia.
Przebiegi alternatywne
4A. W systemie nie ma wpisu dotyczącego podanego NIPu.
4A1. Przejście do przypadku użycia „Wprowadzenie klienta do rejestru”
4A2. Przejście do punktu 4.
Warunki końcowe
W systemie pojawiła się faktura dotycząca omawianej transakcji.
Klient otrzymał wydruk faktury dotyczącej danej transakcji.
ID : UC_05
Logowanie
Warunki początkowe
Użytkownik niezalogowany.
Użytkownik posiada konto w systemie.
Zdarzenie inicjujące
Zgłoszenie chęci dostępu do systemu.
Przebieg główny
Użytkownik zgłasza żądanie zalogowania się do systemu.
System zwraca widok z formularzem do zalogowania (login, hasło).
Użytkownik wprowadza wymagane dane.
System wyświetla komunikat o poprawnym logowaniu.
Koniec przypadku użycia.
Przebiegi alternatywne
4A. System wyświetla komunikat o błędnym logowaniu.
4A1. Przejście do punktu 2.
Warunki końcowe
Użytkownik zalogowany w systemie.
ID : UC_06
Tworzenie kont pracowników
Warunki początkowe
Użytkownik zalogowany.
Użytkownik ma wystarczające uprawnienia do tworzenia kont pracowników.
Zdarzenie inicjujące
Zaszła potrzeba dodania nowego użytkownika do systemu.
Przebieg główny
Użytkownik zgłasza żądanie dodania nowego użytkownika do systemu.
System zwraca widok z formularzem do wypełnienia (login. hasło, uprawnienia, imie, nazwisko, PESEL…).
Użytkownik wypełnia pola formularza i go wysyła.
System zwraca widok wcześniej wprowadzonych danych i monituje o potwierdzenie ich poprawności.
Użytkownik potwierdza poprawność wprowadzonych wcześniej danych.
System wyświetla komunikat o pomyslnym utworzeniu konta użytkownika w systemie.
Koniec przypadku użycia.
Przebiegi alternatywne
5A. Użytkownik nie potwierdza poprawności wprowadzonych danych.
5A1. Przejście do punktu 2.
6A. System nie mógł stworzyć nowego użytkownika.
6A1. System zwraca komunikat dot. Błędu.
6A2. Przejście do punktu 2.
Warunki końcowe
W systemie pojawił się nowy użytkownik o podanym w procesie loginie.
ID : UC_07
Zarządzanie istniejącym kontem pracownika.
Warunki początkowe
Użytkownik zalogowany.
Użytkownik ma wystarczające uprawnienia do modyfikacji kont pracowników.
Zdarzenie inicjujące
Zaszła potrzeba modyfikacji konta danego pracownika.
Przebieg główny
Użytkownik zgłasza żądanie modyfikacji konta użytkownika.
System zwraca listę dostępnych kont pracowników.
Użytkownik wybiera z listy konto do modyfikacji.
System zwraca szczegółowy widok informacji dot. konta w postaci formularza.
Użytkownik wprowadza pożądane zmiany i wysyła formularz.
System zwraca widok wcześniej wprowadzonych danych i monituje o potwierdzenie ich poprawności.
Użytkownik potwierdza poprawność wprowadzonych wcześniej danych.
System wyświetla komunikat o pomyslnej modyfiacji konta użytkownika w systemie.
Koniec przypadku użycia.
Przebiegi alternatywne
7A. Użytkownik nie potwierdza poprawności wprowadzonych danych.
7A1. Przejście do punktu 4.
Warunki końcowe
Konto danego użytkownika zostało zmodyfikowane w odpowiedni sposób.
ID : UC_08
Powiadomienie o alarmowym stanie paliwa
Warunki początkowe
Poziom danego paliwa osiągnął stan alarmowy.
Zdarzenie inicjujące
Czujnik paliwa danego typu wykrył stan alarmowy i wzniósł alarm.
Przebieg główny
Monitor poziomu paliwa odebrał sygnał alarmowy od czujnika.
Monitor wysyła do systemu żądanie zapisania w logu systemowym informacji o alarmowym stanie paliwa danego typu.
System potwierdza otrzymanie informacji o alarmowym stanie paliwa ("niski stan paliwa").
Monitor po otrzymaniu potwierdzenia zaprzestaje wysyłania dalszych informacji dot. wzbudzenia czujnika paliwa danego typu.
Koniec przypadku użycia.
Przebiegi alternatywne
3A. System potwierdza otrzymanie informacji o alarmowym stanie paliwa ("brak paliwa").
3A1. System blokuje dozowniki wydające dane paliwo w dystrybutorach.
3A2. Przejście do punktu 4.
3B. Monitor nie dostał potwierdzenia od systemu o zarejestrowaniu alarmu.
3B1. Przejście do punktu 2.
Warunki końcowe
Alarm został zapisany do logu systemowego.
ID : UC_09
Obsłużenie tankowania
Warunki początkowe
Dystrybutor odblokowany.
Dozownik paliwa danego typu odblokowany.
Zdarzenie inicjujące
Otrzymano od dystrybutora sygnał o odłożeniu dozownika.
Przebieg główny
Dystrybutor powiadamia system o odłożeniu dozownika.
System pobiera dane dotyczące procesu tankowania z danego dystrybutora.
System zgłasza żądanie o zablokowanie dystrybutora.
System zgłasza żądanie utworzenia nowej transakcji.
System uruchamia proces monitorowania czasu dot. uregulowania płatności.
Koniec przypadku użycia.
Przebiegi alternatywne
3A. System nie wykrył rozpoczęcia procesu tankowania.
3A1. Koniec przypadku użycia.
Warunki końcowe
W systemie powstała transakcja dotycząca danego tankowania.
Uruchomiony został monitor nadzorujący czas pozostały do zapłacenia za paliwo.
Dystrybutor zablokowany.
ID : UC_10
Wywołanie procedury alarmowej
Warunki początkowe
Kasjer zalogowany.
Transakcja nie jest zatwierdzona.
Dystrybutor zablokowany.
Zdarzenie inicjujące
Minął czas na zatwierdzenie transakcji.
Przebieg główny
System rozpoczyna procedurę alarmową, zapisuje do logu systemowego informację o sytuacji i powiadamia kasjera o przekroczonym czasie w sprawie uregulowania płatności za transakcję.
System uruchamia sygnał alarmowy.
Kasjer rejestruje sytuację i żąda wyłączenia alarmu, powiadamia odpowiednie służby mundurowe.
System wyłącza alarm.
Kasjer unieważnia transakcję i zgłasza żądanie odblokowania dystrybutora.
System odblokowuje odpowiedni dystrybutor.
Koniec przypadku uzycia.
Przebiegi alternatywne
brak
Warunki końcowe
Transakcja unieważniona.
Dystrybutor odblokowany.
Diagram klas
Diagram klas
Opis klas
Klasa |
Opis |
Użytkownik |
Klasa ta opisuje użytkownika systemu. Każdy użytkownik posiada przypisany pewien poziom uprawnień. Na jego podstawie możliwe jest wykonywanie pewnych operacji specyficznych dla konretnego poziomu uprawnień. Pod tę klasę podlegają aktorzy zewnętrzni: kasjer, super kasjer oraz administrator. Użytkownik by móc korzystać z funkcji systemu musi się wpierw zalogować. |
Transakcja |
Klasa ta opisuje transakcje wykonywane w ramach działalności stacji benzynowej. Może być w 3 stanach: nowo utworzona (bezpośrednio po zakończeniu tankowania), zatwierdzona (w razie uregulowania płatności przez klienta) lub unieważniona (w przypadku, gdy klient uciekł nie płacąc, a chcemy odblokować dystrybutor, bądź zaszedł jakiś błąd w systemie). Każde wykonane tankowanie musi zostać obsłużone w formie transakcji. |
Faktura |
Klasa ta opisuje faktury mogące zostać wystawione dla transakcji. Faktura posiada opcję drukowania. Faktury trzymane są przez 5 lat od daty wystawienia. |
MonitorFaktur |
Klasa zarządzająca fakturami. Faktury starsze niż 5 lat usuwane są przez tę klasę. Monitor faktur zajmuje się procesem wystawienia faktury, łącznie z obsługą czynności związanych z pobraniem danych klienta z rejestru klientów firmy. |
Klient |
Klasa ta opisuje klientów dla których zdarzyło się w historii działania systemu wystawić fakturę VAT. |
Paliwo |
Klasa ta tyczy się paliwa, będącego bezpośrednim „produktem”, z którego sprzedaży utrzymuje się firma. Dla każdego paliwa określono poziom minimalny (by alarmować w przypadku pojawienia się braków w zbiorniku) oraz poziom maksymalny (by ułatwić kalkulację wymaganego do zamówienia paliwa). Cena paliwa jest zmienna. |
MonitorPaliwa |
Klasa nadzorująca stan paliwa w zbiornikach. Alarmuje ona system w razie wykrycia przez czujniki poziomów alarmowych. Alarm może dotyczyć zarówno niskiego poziomu paliwa, jak też jego braku. Za pomocą tej klasy możliwe jest złożenie zamówienia na paliwo, a także ustanowienie nowej ceny paliwa. Po zmianie ceny, jest ona uaktualniana w każdym z dystrybutorów. |
Dozownik |
Klasa określająca pojedynczy dozownik. Jeden dystrybutor może mieć wiele dozowników różnego typu. Typ ten dotyczy rodzaju wydawanego przez niego paliwa. Dozownik może być zablokowany odgórnie przez dystrybutor, gdy ktoś zakończył proces tankowania, bądź przez monitor paliwa w przypadku, gdy zabrakło paliwa danego typu. |
Dystrybutor |
Klasa odwzorowująca aktora „dystrybutor” w systemie. Za jej pomocą odbywa się komunikacja z urządzeniem fizycznym dystrybutora. Nadaje oraz odbiera od niego sygnały. Ważną funkcją pełnioną przez klasę dystrybutora jest monitoring uregulowania płatności za dokonane tankowanie. Klasa ta potrafi określić na podstawie sygnałów od dystrybutora jaką transakcję utworzyć w systemie. |
Diagramy stanów
Transakcja
Transakcja może przebywać w 3 stanach. Zaraz na początku, po jej utworzeniu w wyniku zakończenia tankowania, przybiera ona stan „nowo utworzonej”. System czeka na to aż należność za transakcję zostanie uregulowana w kasie. Zatwierdzenie powoduje, że jej stan zmienia się na „zatwierdzoną”. Natomiast może zajść przypadek, że klient nie będzie chciał zapłacić za transakcję, wtedy poza oczywiście wywołaniem pewnych procedur alarmowych i zawiadomieniem odpowiednich organów ścigania, wymagane jest, by w końcu odblokować dystrybutor i umożliwić korzystanie z niego. W związku z tym, transakcja taka jest unieważniana.
Dystrybutor
Dystrybutor może przebywać w 3 stanach. Wszystkie one tworzą pętle przejść. Początkowym stanem dystrybutora jest stan „odblokowany”, wtedy to możliwe jest rozpoczęcie tankowania. Wchodząc w ten stan zerują się liczniki dystrybutora. Pod warunkiem, że dozownik nie jest zablokowany wskutek braku danego paliwa, po podniesieniu i naciśnięciu dozownika dystrybutor przyjmuje stan „w użyciu”, kiedy to zaczyna obliczać ilość wydawanego paliwa. Po odłożeniu dozownika na swoje miejsce, dystrybutor przechodzi w stan „zablokowany”. System powiadamiany jest o tym zdarzeniu i rozpoczyna się weń odliczanie czasu do rozpoczęcia procedury alarmowej związanej z niechęcią klienta do uiszczenia opłaty. Kiedy nastąpi opłacenie transakcji, dystrybutor jest odblokowywany. Może on zostać również ręcznie odblokowany przez kasjera we wspomnianych sytuacjach awaryjnych.
Dozownik
Dozownik może być w 3 stanach. Początkowo jest on „odblokowany”. Przechodzi on w stan „zablokowany na czas uiszczenia płatności” pod warunkiem, że zakończono tankowanie. Powraca do stanu „odblokowany” wskutek odblokowania całego dystrybutora. Innym stanem kiedy nie działa, jest sytuacja gdy znajduje się w stanie „zablokowany z powodu braku paliwa”. Dzieje się tak pod warunkiem braku paliwa danego typu. Zapalana jest lampka związana z tym dozownikiem sygnalizująca o jego niedostępności. Może on powrócić do stanu „odblokowany” gdy jest już paliwo, a z tym konkretnym dozownikiem nie związane są żadne nieuregulowane transakcje. Mało prawdopodobne, ale możliwe jest przejście pomiędzy stanami blokady dozownika, np. gdy pojawiło się paliwo, a brakuje nadal płatności lub podczas płacenia zabrakło już paliwa danego typu. W obu przypadkach odpowiednio włączana i wyłączana jest sygnalizacja dotycząca trwałej niedostępności dozownika (tj. braku paliwa tego typu).
Diagramy sekwencji
Dokonanie płatności
Dystrybutor powiadamia system o zakończeniu tankowania. Ten sprawdza czy rozpoczęto tankowanie, czy niezdecydowany klient tylko podniósł i odłożył dozownik. W przypadku gdy jednak system stwierdził, że rozpoczęto tankowanie na podstawie niezerowych odczytów przesłanych przez urządzenie, wymusza on na nim zablokowanie się, a następnie na podstawie przesłanych danych tworzona jest transakcja. Obiekt komunikujący się z fizycznym dystrybutorem rozpoczyna odliczanie czasu ustalonego jako limit czasowy na dokonanie płatności za transakcję. Możliwe są dwa wyjścia: albo transakcja została zatwierdzona, albo nie. Zatem w pierwszym przypadku następuje automatyczne odblokowanie dystrybutora, natomiast w drugim rozpoczynana jest procedura alarmowa. Zostanie on dopiero ręcznie odblokowany przez pracownika stacji paliw.
Obsłużenie tankowania
Kasjer po uzyskaniu należności od klienta, który korzysta z usług stacji benzynowej zatwierdza transakcję. Wywołuje to powiadomienie danego dystrybutora o pojawieniu się płatności dotyczącej ostatniego tankowania z jego użyciem. Jest on odblokowywany. Opcjonalne jest wystawienie faktury dla klienta. Odwołując się do monitora faktur kasjer żąda wystawienia faktury. Ten sprawdza, czy klient o podanym NIP figuruje w rejestrze klientów. Jeśli nie, kasjer dodaje do rejestru nowego klienta. W dalszym etapie pobierane są od klienta szczegółowe dane niezbędne do przygotowania faktury. Faktura jest tworzona, a potem następuje jej wydruk.
Diagram klas |
14 |
|