Samoobsługowa Stacja Benzynowa

Transkrypt

Samoobsługowa Stacja Benzynowa
Samoobsługowa Stacja Benzynowa
Opis problemu
1. Samoobsługowa Stacja Benzynowa (SSB) znajduje się na dużym osiedlu mieszkaniowym przy
ruchliwej ulicy.
2. SSB jest wyposażona w kilka (maks. 10) dystrybutorów i jedną kasę.
3. Dystrybutor umożliwia tankowanie. Na SSB można zatankować różne rodzaje paliwa. Każdy
dystrybutor może mieć kilka dozowników, z których każdy wydaje tylko jeden rodzaj paliwa.
4. Każdy dystrybutor ma trzy wyświetlacze. Pierwszy z nich podaje ilość zatankowanego paliwa (w
litrach), drugi cenę za 1. litr, trzeci kwotę do zapłaty.
5. Po odłożeniu dozownika dystrybutor jest blokowany, aż do czasu uiszczenia przez klienta zapłaty w
kasie lub do wymuszonego odblokowania go przez kasjera.
6. W momencie zablokowania po tankowaniu dystrybutor wystawia na swoim interfejsie stan
wyświetlaczy z momentu zakończenia tankowania.
7. Klient płaci w kasie, podając przedtem numer dystrybutora.
8. Jeśli upłynie zadany czas od zakończenia tankowania, a klient nie zapłaci w kasie należności, kasjer
powinien być o tym powiadomiony.
9. Klient może zażądać faktury, która wystawiana jest na podstawie danych zapisanych w rejestrze
klientów. Jeżeli dane klienta nie znajdują się w rejestrze, możliwe jest wprowadzenie ich do rejestru
przez kasjera.
10. Informacje o transakcjach muszą być przechowywane przez 5 lat.
11. Aktualne ceny paliwa powinny być ustwiane przez uprzywilejowanego użytkownika – administratora.
Zadania do wykonania
I Model systemu
1)
2)
3)
4)
Utwórz model przypadków użycia systemu obsługi SSB.
Utwórz diagram klas.
Utwórz diagram sekwencji obejmujący przebieg tankowania i przebieg płacenia.
Utwórz diagram stanów dla najważniejszych klas modelu.
II Projekt systemu
1) Podejmij istotne decyzje dotyczące projektu systemu.
a) podział na podsystemy i moduły
b) identyfikacja wątków sterowania i zaproponowanie obsługi współbieżności
c) rozmieszczenie poszczególnych komponentów systemu na jego węzłach
d) określenie pojemników na dane (rodzaj, oszacowanie wielkości po roku i przyrostu rocznego)
e) obsługa sytuacji przejściowych i awaryjnych
f) ew.optymalizacje i kompromisy
g) schemat menu systemu
2) Zaprojektuj klasy.
a) zweryfikuj i razie potrzeby popraw strukturę klas
b) dodaj brakujące klasy (ew. klasy interfejsu użytkownika, klasy sterujące, ...)
c) przydziel klasy do warstw systemu
d) utwórz schemat bazy danych
e) zdefiniuj najważniejsze metody klas
3) Zaprojektuj najważniejsze algorytmy
4) Zaprojektuj związki.
PPoow
wooddzzeenniiaa!!