Podstawowe składniki, czyliziarna kawy,mleko,woda. Żeby przygotować napój, użytkownik najpierw musi nimi uzupełnić odpowiednie pojemniki. O braku podstawowych składników użytkownik jest informowany za pomocą wyświetlacza.Składniki, czyliespresso,woda,mleko,spienione mleko. Baza do przygotowania napojów - są to podstawowe składniki po poddaniu ich opowiedniej obróbce, tzn. podgrzaniu do określonej temperatury oraz wykonaniu różnych innych czynności, w zależności od potrzeb (zmienielenie kawy, zaparzenie kawy, spienienie mleka).Instrukcja przygotowania napoju- składniki ułożone w ciąg w kolejności, w której powinny znaleźć się w szklance. Bazowe porcje składników są stałe, ale w danym ciągu mogą występować wielokrotnie (np. podwójne espresso).Napój- efekt końcowy wykonania przez ekspres odpowiedniej instrukcji. Przykłady:
Espresso: espresso
Double espresso: espresso, espresso
Americano: espresso, woda
Cortado: espresso, mleko
Flat white: espresso, spienione mleko
Caffè latte: espresso, mleko, spienione mleko
Latte macchiato: mleko, espresso, spienione mleko
Cappuccino: espresso, spienione mleko, spienione mleko
- Użytkownik naciskając odpowiedni guzik wybiera program przygotowujący pożądany napój.
- Ekspres analizuje dane z czujników w pojemnikach w celu sprawdzenia, czy znajduje się tam wystarczająco dużo podstawowych składników. Jeżeli nie, informuje o tym użytkownika i zawiesza dalsze działanie do czasu ich uzupełnienia.
- Ekspres przygotowuje wybrany napój na podstawie zaprogramowanej sekwencji. Podsystem odpowiedzialny za przygotowanie kawy na bieżąco przygotowuje składniki napoju i wlewa je do szklanki.
- Ekspres informuje użytkownika o zakończeniu przygotowywania napoju.
- Uzytkownik zabiera przygotowany napój.
CoffeeMachineSystem: główny komponent reprezentujący ekspres do kawy, który łączy pomniejsze komponenty w spójną całośćmain_controller: procesor główny odpowiedzialny za zarządzanie procesami obsługującymi interakcję systemu z użytkownikiem, a więc wybór napoju (drink_selection_process) oraz kontrolę ilości składników potrzebnych do przygotowania wybranego napoju (supplies_process)gpio_bus: połączenia umożliwiające komunikację urządzeń z procesorem
butttons: urządzenie przyjmujące od użytkownika wybór napojusignalizer: urządzenie sygnalizujące użytkownikowi konieczność uzupełnienia składników podstawowych lub zakończenie procesu przygotowywania napoju
water_container_sensor: monitoruje ilość wody w pojemnikucoffee_bean_container_sensor: monitoruje ilość ziaren kawy w pojemnikumilk_container_sensor: monitoruje ilość mleka w pojemniku
drink_selection_process: proces przetwarzający wybór użytkownika na instrukcję przygotowania napoju dla podsystemuCoffeeMaker- kolejność, w której powinny zostać uruchamiane poszczególne urządzenia tego podsystemusupplies_process: proces sprawdzający, czy w pojemnikach znajduje się wystarczająco dużo składników, aby przygotować wybrany napój. Jeżeli nie, informacja o tym jest przekazywana dosignalizeraodpowiedzialnego za poinformowanie o tym użytkownika, a dalsze działanie systemu zostaje zawieszone.
CoffeeMakerSystem: podsystem odpowiedzialny za przygotowanie napoju oraz dostarczenie go użytkownikowicoffee_controller: procesor zarządzający pracą urządzeń podsystemu
analyzer: urządzenie przetwarzające sygnały przychodzące z zewnątrz na rozkazy przekazywane do określonego urządzenia. Właściwie fukcjonalność ta równie dobrze mogłaby być realizowana przez procesor i zawierać się w procesiecoffe_making_process, jednak przypisanie jej osobnego komponentu rozjaśnia schemat przepływu danych na narysowanym modelu.heater: urządzenie odpowiedzialne za podgrzewanie wody / mlekagrinder: młynek do ziaren kawy. Mielenie kawy odbywa się zawsze bezpośrednio przed jej zaparzeniem i przygotowywana jest dokładnie jedna porcja.press: urządzenie odpowiedzialne za przelewowe zaparzenie zmielonej kawy. Jednorazowo przygotowuje jedną porcję espresso.foamer: speniacz do mlekapourer: urządzenie odpowiedzialne za dostarczenie składników do szklanki
temp_sensor: monitoruje temperaturę wody i mleka
coffee_making_process: proces odpowiedzialny za przygotowanie kawy. Odczytuje instrukcje przygotowania napoju i na ich podstawie zarządza poszczególnymi wątkami przypisanymi do urządzeń.





