\documentclass{schuleab}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm 
  und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: ab_03_sequenzdiagramme_tikz.tex 1070 2014-12-10 18:03:32Z humbert $}

\dokName{Sequenzdiagramme}
\jahrgang{EF}

\begin{document}

\section*{Interaktion von Objekten: Sequenzdiagramme}

Objektdiagramme zeigen lediglich statische Beziehungen zwischen den 
vorkommenden Objekten und Momentaufnahmen von Attributwerten.

\begin{center}
 \begin{tikzpicture}[scale=0.33,remember picture]
  \begin{object}[text width=5.5cm]{gustavsRadiowecker}{-7,0}
    \attribute{standort= \diastring{Gustavs Zimmer}}
    \attribute{weckzeit= \diastring{6:30}}   
    \attribute{tageszeit= \diastring{12:15}}
    \attribute{weckmodusAktiv= \diastring{Wahr}}
   %
    \operation{einschalten()}
    \operation{ausschalten()}
    \operation{gibUhrzeit()}   
    \operation{gibWeckzeit()}
  \end{object}
  %
  \begin{object}[text width=6cm]{gustav}{-35,-1}
    \attribute{name= \diastring{Gustav Grabert}}
    \attribute{geburtstag= \diastring{3.10.1998}}
    \attribute{besitzt= \anchormark{besitzt}[0.025]} 
   %
    \operation{aufFruehesAufstehenVorbereiten()}
  \end{object}
 \end{tikzpicture} 
 % 
 \begin{tikzpicture}[remember picture,overlay]  
  \draw (besitzt.east) -- (gustavsRadiowecker.west);
 \end{tikzpicture}
 %
\end{center}

Will man jedoch darstellen, wie die Objekte miteinander interagieren, so muss 
der zeitliche Ablauf beschrieben werden.
Dies geschieht in den sogenannten \emph{Sequenzdiagramm}en.

Es ist möglich, sich die Interaktion der Objekte als Kommunikation (d.~h. als 
einen Austausch von \enquote{Nachrichten}) vorzustellen.
Jedes Objekt bietet allen anderen an, seine \enquote{Dienste} zu nutzen -- in 
der Fachsprache: Seine Methoden aufzurufen.

Das folgende Sequenzdiagramm zeigt, wie das Objekt \texttt{gustav} beim Objekt 
\texttt{gustavsRadiowecker} die aktuelle Uhrzeit abfragt.

\begin{center}
	\begin{sequencediagram}
		\tikzstyle{inststyle}+=[rounded corners=3.2mm] %% hier werden weitere Optionen angegeben
		\newthread{pers}{gustav}
		\newinst[3]{wecker}{gustavsRadiowecker}
		\begin{call}{pers}{gibUhrzeit()}{wecker}{\diastring{12:15}}
		\end{call}
	\end{sequencediagram}
\end{center}

\minisec{Aufgabe}
\begin{enumerate}
	\item Erstellen Sie ein Sequenzdiagramm, das beschreibt, wie Gustavs Mutter 
	 ihren Sohn dazu auffordert, seinen Wecker einzuschalten!
	\item Überlegen Sie sich, wie eine der teilnehmenden Mannschaften (z.\,B. die 
	 \enquote{Crazy Frogs}) den Sieger des Basketballturniers in Erfahrung 
	 bringen kann.

	Klären Sie dazu zunächst, über welche zusätzlichen Methoden die Objekte noch 
	verfügen müssen (beispielsweise eine Methode \texttt{ermittleSieger()} des 
	Eröffnungsspiels) und halten Sie kurz schriftlich fest, was diese Methoden 
	leisten.
	
	Erstellen Sie das zugehörige Sequenzdiagramm!
\end{enumerate}



\end{document}
 
