%\begin{tikzpicture} % % \begin{umlseqdiag} % % \umlactor[no ddots]{Benutzer} % \umlobject[no ddots]{Podcatcher1} % \umlobject[no ddots]{Podcatcher2} % \umlobject[no ddots]{Webfrontend} % \umlobject[no ddots]{Server} % % \begin{umlcall}[dt=5, op=abonniere Podcast]{Benutzer}{Podcatcher1} % \begin{umlcallself}[dt=8, op=füge Podcast zu Abos hinzu, type=synchron]{Podcatcher1} % \end{umlcallself} % \begin{umlcall}[op=lade Änderungen hoch]{Podcatcher1}{Server} % \begin{umlcallself}[dt=8, op=speichere Änderungen]{Server} % \end{umlcallself} % \end{umlcall} % \end{umlcall} % % \begin{umlcall}[dt=10, op=Abos anzeigen]{Benutzer}{Webfrontend} % \begin{umlcall}[dt=5, op=hole Aboliste, return=Aboliste]{Webfrontend}{Server} % \end{umlcall} % \end{umlcall} % % \begin{umlcall}[dt=10, op=Abos anzeigen]{Benutzer}{Podcatcher2} % \begin{umlcall}[dt=5, op=hole Aboliste, return=Aboliste]{Podcatcher2}{Server} % \end{umlcall} % \end{umlcall} % % \end{umlseqdiag} % %\end{tikzpicture} \begin{sequencediagram} \newthread{b}{Benutzer} \newinst[2]{p1}{Podcatcher1} \newinst{p2}{Podcatcher2} \newinst[1]{w}{Webfrontend} \newinst[1]{s}{Server} \begin{call}{b}{abonniere Podcast}{p1}{} \begin{callself}{p1}{füge Podcasts zu Abos hinzu}{} \begin{call}{p1}{lade Änderungen hoch}{s}{} \begin{callself}{s}{\shortstack{speichere\\Änderungen\\persistent}}{} \end{callself} \end{call} \end{callself} \end{call} \begin{call}{b}{Abos anzeigen}{w}{} \begin{call}{w}{hole Aboliste}{s}{Aboliste} \end{call} \end{call} \begin{call}{b}{Abos anzeigen}{p2}{} \begin{call}{p2}{hole Aboliste}{s}{Aboliste} \end{call} \end{call} \end{sequencediagram}