\documentclass{bschlangaul-aufgabe}
\bLadePakete{uml}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Essen in Gasthausen},
  Thematik = {Gasthausen},
  Referenz = OOMUP.Diagramme.Struktur.Klassendiagramm.Gasthausen,
  RelativerPfad = Module/20_OOMUP/Diagramme/10_Struktur/10_Klassendiagramm/Aufgabe_Gasthausen.tex,
  ZitatSchluessel = net:pdf:wikiversity:klassendiagramm,
  ZitatBeschreibung = {Seite 4-5},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Klassendiagramm},
}

% https://upload.wikimedia.org/wikiversity/de/b/b9/Klassendiagramme.pdf

In diesem kleinen Städtchen gibt es fünf Restaurants, aber egal, ob es
sich um ein 2*-Restaurant, oder um ein 5*-Restaurant handelt, alle haben
Gemeinsamkeiten. In jedem Restaurant sind mehrere \textbf{Mitarbeiter}
angestellt. Im kleinsten Restaurant nur zwei, aber im größten verdienen
16 Mitarbeiter ihr Geld. Die Mitarbeiter bekommen in jedem Restaurant
ein anderes \emph{Gehalt}, aber alle machen ihre Arbeit. Die
\textbf{Kellner}
\emph{nehmen bestellungen entgegen}, \emph{servieren das Essen} und
\emph{kassieren das Geld} von den Gästen. Jeder Kellner gibt die
Bestellungen der Gäste an die Köche weiter. Die \textbf{Köche} kennen
verschiedene \textbf{Rezepte}, nach denen sie die \textbf{Menüs} dann
zubereiten. Jedes Menü hat einen anderen \emph{Preis}, aber es besteht
nach Tradition immer aus einem \textbf{Salat} und einer
\textbf{Hauptspeise}. An manchen Tagen ist kein \textbf{Gast} da. Dann
werden Sie in ganz familiärem Rahmen bewirtet. Aber auch an guten Tagen
gibt es, bei 100 Plätzen im größten Restaurant, sicher für jeden
hungrigen Gast einen \textbf{Platz}. Wer in Gasthausen Essen geht sollte
hungrig sein! Natürlich hat jeder Gast unterschiedlich viel Geld zur
Verfügung, aber bei entsprechender Wahl des Restaurants reicht es sicher
für sein Lieblingsessen.
\index{Klassendiagramm}
\footcite[Seite 4-5]{net:pdf:wikiversity:klassendiagramm}

\begin{bAntwort}
\begin{tikzpicture}[scale=0.8, transform shape]
\umlclass[x=0,y=5]{Restaurant}{- anzahlSterne: int}{}

\umlclass[x=8,y=5]{Mitarbeiter}{
- gehalt: double
}{}

\umlclass
[below left=0.5cm and -1cm of Mitarbeiter]
{Kellner}{}
{
  + nehmeBestellungenAuf()\\
  + serviereEssen()\\
  + kassiereGeld()
}

\umlclass[below right=0.5cm and -1cm of Mitarbeiter]{Koch}{}{}

\umlclass[below left=0.5cm and 0cm of Restaurant]{Sitzplatz}{}{}

\umlclass[x=8cm,y=0cm]{Menü}{- preis: float}{}
\umlsimpleclass[below left=0.5cm of Menü]{Salat}
\umlsimpleclass[below right=0.5cm of Menü]{Hauptspeise}
\umlcompo[mult1=1,mult2=1]{Menü}{Salat}
\umlcompo[mult1=1,mult2=1]{Menü}{Hauptspeise}

\umlclass{Gast}{
  hungrig: boolean = true\\
  lieblingsEssen: String\\
  geld: double
}{}

\umlassoc[mult1=2..16,mult2=5,stereo=beschäftigt]{Mitarbeiter}{Restaurant}
\umlassoc[mult1=0..100,mult2=0..5,stereo=besucht]{Gast}{Restaurant}
\umlassoc[stereo=bedient]{Kellner}{Gast}
\umlassoc[stereo=bestellt]{Gast}{Menü}
\umlassoc[stereo=Bestellung weiter geben]{Kellner}{Koch}

\end{tikzpicture}
\end{bAntwort}
\end{document}
