background image

Projekt systemu sterowania 

automatem do sterowania 

gorących napojów

background image

Przykład - założenia 

• System sterowania automatem SSA po 

pobraniu zapłaty przygotowuje gorące 

napoje takie jak: herbata i kawa. Z uwagi na 

potrzebę uniknięcia skomplikowania 

diagramów UML założono, że cena obu 

napojów jest jednakowa oraz że zasoby takie 

jak: woda, kawa, herbata i cukier są 

niewyczerpalne. 

• Model zbudowano w oparciu o diagramy 

przypadków użycia, diagram klas oraz 

zestaw diagramów przedstawiających 

strukturę wewnętrzną i zachowanie 

modelowanych kapsuł (maszyny stanowe).

background image

Wymagania wobec SSA

• Klient korzysta z usług systemu sterowania 

automatem, pozostając w jego otoczeniu. 

Mierzalną wartość klientowi dostarczają tu 

jedynie: przypadek użycia (usługa systemu) 

Zakup herbaty

 i przypadek 

Zakup kawy

 w 

postaci kubka z gorącym napojem (herbatą 

lub kawą). Oba te przypadki stanowią 

specjalizację generalizacji przypadku użycia 

Zakup napoju

 (są jego uszczegółowieniem), 

który zostanie uszczegółowiony w dalszej 

części opisu modelu SSA.

background image

uc Use Case View

Klient

zakup herbaty

zakup kawy

zakup napoju

Model przypadków użycia systemu Automat

Przypadki użycia Zakup kawy i Zakup herbaty jako 
uszczegółowienie przypadku Zakup napoju różnią się w 
swoich przebiegach głównych jedynie decyzją o wyborze 
herbaty lub decyzją o wyborze kawy przez klienta.

background image

class Logical View

Automat

Kasjer

Kucharz

background image

stm Kasjer

Initial

oczekiwanie na 

monetę

zwrot monet

jestcena

przygotowanie napoju

jestreszta

initial

zwrot monet

wrzut monety

nie

tak

koniec

tak

nie

zwrócono monety

Stanem bezczynności klasy Kasjer jest tu stan oczekiwanie na 
monetę. W chwili gdy nadchodzi sygnał, że Klient wrzucił monetę, 
następuje sprawdzenie warunku, czy suma wartości dotychczas 
wrzuconych monet wystarcza, aby przygotować napój. Jeśli tak, 
kapsuła przechodzi w stan przygotowania napoju. 

background image

stm Kucharz

Initial

oczekiwanie na 

zlecenie

oczekiwanie na 

wybór napoju

dodawanie herbaty

dodawanie kawy

oczekiwanie na 

słodzenie

dodawanie cukru

dodawnaie wody

wystawienie kubka

nalewanie

Stan oczekiwania na 
decyzję Klienta czy 
dodać cukru

zlecono przygotowanie

wybrano herbate wybrano kawe

wsypano herbate

wybrano TAK

wybrano NIE

dodano cukier

wstawiono kubek

wystawiono

nalano

background image

Maszyna stanowa kapsuły 

Kucharz

• Stanem bezczynności jest OczekiwanieNaZlecenie. 

Komunikat zlecający pracę Kucharza jest sygnałem 

zdefiniowanym w protokole komunikacji między protokołami 

kapsuł Kasjer i Kucharz (są to portZlecenia i 

protokolZlecenia). Gdy tylko nadejdzie sygnał zlecenia 

przygotowania napoju, maszyna przechodzi do stanu 

oczekiwania na decyzję klienta odnośnie wyboru napoju. 

Następnie w zależności od tej decyzji (typu sygnału) 

przygotowywany jest żądany napój. Dalej automat wchodzi 

w stan oczekiwania, czy klient życzy sobie dodać cukier. 

Proces przygotowania napoju jest kontynuowany. Składa się 

z ciągu stanów i przejść między nimi, w trakcie których 

wysyłane są zlecenia do dozowników składników, takich jak: 

woda, cukier i kubek. Proces kończy się ponownym 

przejściem w stan oczekiwania na kolejne zlecenie 

przygotowania napoju.

background image

System SSA

• Przedstawiony przykład stanowi uproszczenie 

SSA i w przypadku jego budowy niezbędne 

byłoby jego rozszerzenie. Wówczas 

należałoby zaniechać uproszczeń i rozszerzyć 

zakres systemu poprzez serwowanie napojów 

w różnych cenach oraz uwzględniać obsługę 

sytuacji wyjątkowych, takich jak awarie 

elementów systemu. Można również 

rozbudować kapsułę wewnętrzną 

DozownikWody o elementy pomiaru 

temperatury wody i wprowadzić inne nowe 

funkcje.

background image

stm egzaminowanie

Tworzony

Planowany

Edytowany

Zatwierdzony

History

Anulowany

Usuniety

Monitorowany

Aktywowany

Przeprowadzany

Wstrzymany

Initial

History

Przerwany

Rozliczany

Zakończony

[nieuwaznienie]

[else]


Document Outline