\documentclass[reversion]{schuleub}
\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.

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

\svnid{$Id: ub_01_ueben_von_klassendiagrammen.tex 1438 2016-03-19 15:29:48Z pieper $}

\lehrer{-, StR}

\schuladresse{Gymnasium\\
-
-}
\ort{-}
\besuchtitel{Unterrichtsbesuch im Fach Informatik}


\lerngruppe{GK Informatik EF}
\datum{-}
\zeit{14.10}{14.55}
\stunde{8}
\raum{Informatikraum}
\schulleiter{-, OStD}

\thema{Übung der selbstständigen Erarbeitung von Klassendiagrammen mit Hilfe der Methode von Abbott am Beispiel einer Feuerübung}
 
\weiblich{1}
\maennlich{9}

\bibliography{../../../zusatz/projekt}


\begin{document}

\section{Thematischer Zusammenhang}
Im Bereich der objektorientierten Programmierung erweist sich die Identifizierung von Klassen immer wieder als große Schwierigkeit. Diese Klassen werden in einem Programm benötigt, um ein bestimmtes Problem mit Hilfe von Objekten, die aus diesen Klassen erzeugt wurden, zu lösen.

Eine der bevorzugten Methoden der Didaktik der Informatik, sich dieser Schwierigkeit zu nähern, ist die objektorientierte Modellierung. Bei dieser wird versucht, eine gegebene Situation mit Hilfe von Objekten und Klassen nachzubilden.

\subsection{Lehrplanbezug}
Während der Lehrplan für die Sekundarstufe II in Informatik noch verschiedene Sprachkonzepte neben der Objektorientierung zulässt (vgl. u.\,a. \cite[S. 27ff]{MSWWF_LIT_1999}), wird in den Vorgaben für das Zentralabitur 2013 das objektorientierte Modellieren und Implementieren als obligatorisch angegeben (vgl. \cite[S. 45]{MSWNW2010}). Dazu gehören speziell die Konzepte des objektorientierten Modellierens mit Klassen, Objekten und auch Klassendiagrammen, die in der Unterrichtsreihe behandelt werden, in der diese Stunde eingebettet ist.

\subsection{Struktur der Unterrichtsreihe}\label{struktur}
Die aktuelle Unterrichtsreihe beschäftigt sich mit dem objektorientierten Modellieren und bildet die Grundlage für den Einstieg in die objektorientierte Programmierung, die anschließend folgen wird. Zu Beginn der Unterrichtsreihe haben die \SuS die Methode von Abbott eingeübt, um Kandidaten für Objekte, Methoden und Attributwerte zu finden. Diese wurden auf Objektkarten zusammengefasst.

Mit Hilfe des Objektspiels sind die Interaktionen zwischen den Objekten verdeutlicht worden, so dass sie in Sequenzdiagrammen abgebildet werden konnten. Auch die Beziehungen zwischen den Objekten wurden mit dem Objektspiel hervorgehoben, so dass aus den einzelnen Objektkarten ein komplettes Objektdiagramm erstellt werden konnte. Dieses wurde an verschiedenen Beispielen geübt und vertieft.

Im letzten Schritt der Unterrichtsreihe sind Klassen als Zusammenfassungen von Objekten bzw. deren "`Baupläne"' von den \SuSn erarbeitet worden. Die erstellten Objektdiagramme wurden daraufhin auch zu Klassendiagrammen zusammengefasst. Da in der Regel bei der Programmierung nicht erst Objektdiagramme erstellt werden, wird in dieser Stunde speziell eingeübt, direkt Klassendiagramme zur Modellierung einer gegeben Situation zu erstellen.

\subsection{Thema der Unterrichtsstunde}
\Thema{}.

\subsection{Lernziele der Unterrichtsstunde}
\minisec{Hauptlernziel:} 
\begin{smallitemize}
	\item Die Schüler sollen aus einer Situationsbeschreibung direkt ein Klassendiagramm erstellen, das diese Situation wieder gibt, ohne zuvor das dazugehörige Objektdiagramm anzufertigen.
\end{smallitemize}

\minisec{Weitere Lernziele und Kompetenzen:}
\begin{smallitemize}
	\item Die \SuS erweitern ihre Kompetenzen bei der Anwendung der Methode von Abbott zur Identifikation von Objektkandidaten, indem sie diese Methode auf eine ihnen unbekannte Situation anwenden.
	
	\item Die \SuS erweitern ihre Kompetenzen bei der Analyse von Interaktionen zwischen Objekten bzw. Klassen, um diese mit Hilfe von Beziehungen im Klassendiagramm wiederzugeben.

	\item Die \SuS erweitern ihre Kompetenzen im Bereich der Bewertung von Lösungen für eine Situationsbeschreibung dadurch, dass sie die Ergebnisse der Gruppen vergleichen und bei der Anwendung auf die Beschreibung mögliche Designfehler aufzeigen.
\end{smallitemize}

\section{Hausaufgaben zur Stunde}
Die \SuS haben die Aufgabe bekommen, zur Situationsbeschreibung eines Basketballtuniers und auf Grundlage des gemeinsam erarbeiteten Objektdiagramms ein Klassendiagramm zu erstellen. Diese Hausaufgabe wird in der Stunde nicht direkt besprochen, da sie als Übung und Grundlage mit in die Aufgabe dieser Stunde einfließt.

\section{Geplanter Unterrichtsverlauf}

\begin{stundenverlauf}

Einstieg & Wie bereits in der vorherigen Unterrichtsstunde angekündigt wurde, erhalten die SuS eine neue Situationsbeschreibung, die sie lesen und kurz kommentieren. & SB & AB \\

\hline 

Problemstellung & Auf Grundlage der vorgelegten Situationsbeschreibung erläutern die S, dass ein Klassendiagramm erstellt werden soll. & SB & \\

\hline 

Lösungsplanung & Die SuS machen Vorschläge, wie ohne die Verwendung eines Objektdiagramms direkt ein Klassendiagramm aus einer Situationsbeschreibung erstellt werden kann. Diese Schritte werden für alle auf Folie notiert. & UG & Folie\\

\hline 

Erarbeitung & Zuerst suchen die SuS alleine, mit Hilfe der Methode von Abbott, Kandidaten für Objekte und fassen diese zu Klassen zusammen. Auf dieser Grundlage wird in Gruppen ein Klassendiagramm für die Situationsbeschreibung erstellt. & EA, GA & AB, Folie \\

\hline 

Zusammen\-tragen und Sicherung & Einzelne SuS aus den Gruppen stellen nacheinander ihre Ergebnisse vor. Die anderen SuS kommentieren die Ergebnisse und geben ggf. Hinweise zu möglichen Designfehlern. & SB, UG & Folie\\

\hline

\end{stundenverlauf}

\section{Geplante Hausaufgaben}
Die \SuS überarbeiten ihr Klassendiagramm auf Grundlage der Ergebnisse der Vorstellungsrunde. Dieses kann ggf. noch in der Stunde geschehen.

\section{Lehrsituation und didaktisch-methodische Begründungen}

\subsection{Lehrsituation}
Die zehn \SuS des Informatikkurses sind allgemein sehr interessiert an der Thematik. Das zeigt sich unter anderem auch darin, dass neun von ihnen am Bundeswettbewerb Informatik teilgenommen haben und sowohl in den Herbstferien als auch in ihrer Freizeit dafür gearbeitet haben. Dabei konnten sie auch auf Vorwissen aus dem Differenzierungskurs zurückgreifen, den einige von ihnen besucht hatten. Die anderen Mitschüler wurden so daran beteiligt, dass sie verschiedene Einblicke gewinnen konnten und sich Teilaufgaben selbst erarbeitet haben.

In den Stunden vertiefen die \SuS sich in die verschiedenen Problematiken, um ein möglichst optimales Ergebnis zu erhalten. Dabei hinterfragen sie auch verschiedene Lösungsmöglichkeiten und versuchen bereits auf eine spätere Programmierung einzugehen.

\subsection{Zu Themenwahl und themenbezogener Zielsetzung}\label{themenwahl}
Für den Lernprozess ist es von großem Vorteil, die einzelnen Elemente der objektorientierten Modellierung auch in einzelnen Schritten zu erarbeiten. Geht man zur Programmierung über, werden unter anderem aus Zeitgründen einige dieser Schritte ausgelassen. Dazu gehört auch das Anfertigen von Objektdiagrammen als Vorlage für Klassendiagramme. Daher soll dieses in der Stunde einmal speziell von den \SuSn geübt werden.

\subsection{Zum Aufbau der Unterrichtsstunde}
Das zentrale Element der Unterrichtsstunde ist die Erstellung des Klassendiagramms. Darum herum gliedert sich der Einstieg mit der Problemstellung und die anschließende Präsentation und Sicherung. 

Beim Einstieg bekommen die \SuS das Arbeitsblatt mit der Situationsbeschreibung der Feuerübung auf einem Kreuzfahrtschiff. Auf Grundlage der vergangenen Stunden werden die \SuS daraus selbst auf ihre Aufgabenstellung schließen können. Dabei ist es wichtig, im Unterricht aber noch einmal hervorzuheben, welche Schritte durchgeführt werden müssen, um ein Klassendiagramm zu erstellen und welche Grundlagen man benötigt, wenn auf ein Objektdiagramm verzichtet werden soll. Dieses können sich die \SuS selbstständig aus dem Vorgehen in den vorherigen Unterrichtsstunden erarbeiten. Die Aufgabe des Lehrers wird dabei nur daraus bestehen, die einzelnen Punkte auf der Folie zu notieren.

Bei der Präsentation werden die Gruppen nacheinander ihre Ergebnisse vorstellen. Dabei ist es den \SuSn gestattet, sich bereits zu den einzelnen Ergebnissen zu äußern, bevor alle vorgestellt wurden. So können die Ergebnisse direkt reflektiert und ggf. ergänzt bzw. verbessert werden. Es wird dabei in Kauf genommen, dass evtl. zu der letzten Gruppe nur noch wenige Anmerkungen kommen, da die Schwierigkeiten bereits besprochen wurden.

\subsection{Die zentralen Aufgabenstellungen}
Die zentrale Aufgabenstellung besteht in der Erarbeitung des Klassendiagramms aus der Situationsbeschreibung der Feuerübung auf einem Kreuzfahrtschiff. Dazu muss der Text durch die \SuS analysiert werden und mögliche Kandidaten für Objekte herausgesucht werden. Diese Kandidaten müssen zu Klassen zusammengefasst werden und um Attribute und Methoden ergänzt werden, die sich auch im Text finden lassen.

Implizit wird dabei auch von den \SuSn gefordert, dass sie die Situationsbeschreibung im Kopf durchspielen, um die Beziehungen zwischen den Objekten und damit automatisch den Klassen herstellen zu können. Dabei müssen sie auch mögliche Interaktionen herausarbeiten, um zusätzlich nötige Methoden bei den Klassen mit angeben zu können.

Diese Aufgabe sollen die \SuS im ersten Schritt in Einzelarbeit erledigen. Dadurch kann sich jeder sein eigenes Bild der Situationsbeschreibung schaffen und wird nicht direkt durch die Gruppe beeinflusst. Erst nachdem die Klassen niedergeschrieben sind, kommen die \SuS in Gruppen zusammen und müssen sich auf jeweils eine Fassung der Klassen verständigen, bevor sie aus allen Klassen zusammen ein Klassendiagramm erstellen können.

\section{Geplantes Arbeitsblatt und Folie}

\subsection{Arbeitsblatt}
Das Arbeitsblatt befindet sich im Anhang. 

\subsection{Folie} \label{Folie}
Möglicher Text auf der Folie bzgl. der Arbeitsschritte:

\begin{tikzpicture}
% \draw (.5\textwidth,0) -- (.5\textwidth,5) -- (-.5\textwidth,5) -- (-.5\textwidth,0) -- (.5\textwidth,0);
\node  [text width=.98\textwidth, draw] {
\underline{Direktes Erstellen eines Klassendiagramms}
\begin{itemize}\itemsep=-6px
	\item Identifizieren der Objekte nach Abbott
	\item Zusammenfassen der Objekte in Klassen
	\item Ergänzen der Klassen um Methoden und Attribute
	\item Erstellen des Klassendiagramms (Beziehungen einpflegen)
	\item Methoden für Interaktionen ergänzen
\end{itemize}
};
\end{tikzpicture}

\subsection{Mögliche Lösung für das Klassendiagramm}

\begin{tikzpicture}
	\begin{class}{Offiziere}{0,0}
		\attribute{name}
		\attribute{alter}
		\attribute{rang}
		\operation{evakuieren()}
	\end{class}

	\begin{class}{Passagiere}{10,0}
		\attribute{name}
		\attribute{alter}
		\operation{auffordern()}
		\operation{informieren()}
	\end{class}

	\begin{class}{Flure}{0,-5}
		\attribute{name}
		\operation{gibKabinen()}
	\end{class}

	\begin{class}{Kabinen}{10,-5}
		\attribute{nummer}
		\operation{anklopfen()}
		\operation{gibAnwesendePersonen()}
	\end{class}

	\draw [umlcd style, ->] (Offiziere) -- (Flure)
		node[very near end, right]{zustaendigeFlure};

	\draw [umlcd style, ->] ([yshift=-0.5cm]Flure.north east) -- ([yshift=-0.5cm]Kabinen.north west)
		node[near end, above]{kabinen};

	\draw [umlcd style] (Passagiere) -- (Kabinen)
		node[very near start, right]{anwesendePassagiere}
		node[very near end, right]{kabine};
\end{tikzpicture}

\printbibliography[title={Literatur}]

\end{document}
