\documentclass{bschlangaul-aufgabe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 4}, Thematik = {Objektorientierte Analyse}, Referenz = 66116-2020-H.T2-TA1-A4, RelativerPfad = Examen/66116/2020/09/Thema-2/Teilaufgabe-1/Aufgabe-4.tex, ZitatSchluessel = examen:66116:2020:09, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Objektorientierung, Sequenzdiagramm}, EinzelpruefungsNr = 66116, Jahr = 2020, Monat = 09, ThemaNr = 2, TeilaufgabeNr = 1, AufgabeNr = 4, } Betrachten Sie das folgende Szenario: Entwickeln Sie für einen Kunden eine einheitliche Online-Plattform, in welcher mehrere Restaurants angebunden sind. Die Nutzer des Systems sollen Essen wie Pizzen, Burger oder Pasta bestellen und dabei aus einer Liste von verschiedenen Gerichten auswählen können. Die Plattform soll zusätzliche Optionen (\zB Lieferung durch einen Lieferdienst oder direkte Abholung, inkl. Salat oder einer Flasche Wein) ermöglichen. Die Bestellung soll dann von der Plattform an den jeweiligen Gaststättenbetreiber gesendet werden. Die Besteller sollen zudem eine Bestätigung als Nachricht erhalten. Die jeweiligen Gerichte und Optionen haben unterschiedliche Preise, die dem Internetnutzer angezeigt werden müssen, bevor er diese auswählt. Der Endpreis muss vor der endgültigen Zahlung des Auftrags angezeigt werden. Kunden können (optional) einen Benutzeraccount anlegen und erhalten bei häufigen Bestellungen einen Rabatt.\index{Objektorientierung} \footcite{examen:66116:2020:09} \begin{enumerate} %% % a) %% \item Beschreiben Sie kurz ein Verfahren, wie Sie aus der Szenariobeschreibung mögliche Kandidaten für Klassen erhalten können. \begin{bAntwort} Verfahren nach Abbott; \bFussnoteUrl{http://info.johpie.de/stufe_q1/info_01_verfahren_abbott.pdf} Objektorientierte Analyse und Design (OOAD) \end{bAntwort} %% % b) %% \item Beschreiben Sie kurz ein Verfahren, um Vererbungshierarchien zu identifizieren. \begin{bAntwort} Eine Begriffshierachie mit den Substantiven des Textes bilden. \end{bAntwort} %% % c) %% \item Geben Sie fünf geeignete Klassen für das obige Szenario an. Nennen Sie dabei keine Klassen, welche durch Basisdatentypen wie Integer oder String abgedeckt werden können. \begin{bAntwort} \begin{itemize} \item Benutzer (Kunde, Gaststättenbetreiber) \item Restaurant \item Gericht (Pizza, Burger, Pasta) \item ZusatzOption (Lieferung, Salat, Wein) \item Bestellung \end{itemize} \end{bAntwort} %% % d) %% \item Nennen Sie drei Klassen für das obige Szenario, die direkt durch Basisdatentypen wie Integer oder String abgedeckt werden können. \begin{bAntwort} \begin{itemize} \item Nachricht \item Preis \item Rabatt \end{itemize} \end{bAntwort} %% % e) %% \item Erstellen Sie ein Sequenzdiagramm für das gegebene System mit folgendem Anwendungsfall: Ein Nutzer bestellt zwei Pizzen und eine Flasche Wein. Beginnen Sie mit der „Auswahl des Gerichts“ bis hin zur „Bestätigung der Bestellung“ sowie „Lieferung an die Haustür“. Das Diagramm soll mindestens je einen Akteur für Benutzer (Browser), Applikation (Webserver) und Restaurant (Koch und Lieferdienst) vorsehen. Die Bezahlung selbst muss nicht modelliert werden. \index{Sequenzdiagramm} \begin{bAntwort} \bMetaNochKeineLoesung \end{bAntwort} \end{enumerate} \end{document}