\documentclass{bschlangaul-aufgabe} \bLadePakete{uml} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 2}, Thematik = {Webdienst PizzaNow}, Referenz = 66116-2019-F.T2-TA2-A2, RelativerPfad = Examen/66116/2019/03/Thema-2/Teilaufgabe-2/Aufgabe-2.tex, ZitatSchluessel = examen:66116:2019:03, BearbeitungsStand = TeX-Fehler, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Sequenzdiagramm}, EinzelpruefungsNr = 66116, Jahr = 2019, Monat = 03, ThemaNr = 2, TeilaufgabeNr = 2, AufgabeNr = 2, } Eine Pizzeria möchte mit dem Webdienst PizzaNow anbieten, Pizzen online bestellen zu können. Es gilt die folgende Beschreibung: \index{Sequenzdiagramm} \footcite{examen:66116:2019:03} \begin{quote} \itshape „Ein Kunde kann mehrere Pizzen in PizzaNow zu einer Bestellung zusammenstellen. Nachdem er die Bestellung abgeschickt hat, wird die Pizzeria über diese Bestellung informiert. Dort wird die Bestellung bestätigt und der Kunde erhält eine Bestätigung mit Zahlungsinformationen. Diese müssen vom jeweiligen Kreditinstitut überprüft und bestätigt werden. Danach erhält der Kunde eine Bestätigung über den erfolgreichen Bezahlvorgang und die Pizzeria beginnt nach der Bestätigung der Bezahlung die Herstellung und im Anschluss die Auslieferung der Bestellung.“ \end{quote} Modellieren Sie den dargestellten Prozess mit Hilfe eines UML-Sequenzdiagramms. \begin{bAntwort} \begin{tikzpicture}[scale=0.6,transform shape] \begin{umlseqdiag} \umlactor[class=Kunde]{kunde} \umlobject[class=Bestellung]{bestellung} \umlobject[class=Pizzeria]{pizzeria} \umlobject[class=Kreditinstitut]{bank} \begin{umlfragment}[type=loop] \begin{umlcall}[op=fügePizzaHinzu(), type=synchron, return=true, dt=7]{kunde}{bestellung} \end{umlcall} \end{umlfragment} \begin{umlcall}[op=schickeAb(), type=synchron, return=Zahlungsinformation,dt=5]{kunde}{bestellung} \begin{umlcall}[op=informiere(), type=synchron, return=bestätig]{bestellung}{pizzeria} \end{umlcall} \end{umlcall} \begin{umlcall}[op=bezahle(), type=asynchron,dt=4]{kunde}{bank} \end{umlcall} \begin{umlcallself}[op=überprüfe()]{bank} \end{umlcallself} \begin{umlcall}[op=bestätige(), type=asynchron]{bank}{kunde} \end{umlcall} \begin{umlcall}[op=bestätige(), type=asynchron]{bank}{pizzeria} \end{umlcall} \umlcreatecall[class=Pizza]{pizzeria}{pizza} \begin{umlcall}[op=liefereAus(), type=asynchron]{pizzeria}{pizza} \end{umlcall} \begin{umlcall}[op=liefereAus(), type=asynchron]{pizza}{kunde} \end{umlcall} \end{umlseqdiag} \end{tikzpicture} \end{bAntwort} \end{document}