changeset 12:a7bdc1211d3a

renamed files; some restructuring
author meillo@marmaro.de
date Thu, 21 Jun 2007 10:46:57 +0200
parents a7ab86cddfad
children eff2ffb701fe
files 00_vorstellung.tex 01_einfuehrung.tex 02_anderePatterns.tex 03_observer.tex 04_composite.tex 05_antiPatterns.tex 09_zusammenfassung.tex Makefile andereMuster.tex antiPatterns.tex composite.tex einleitung.tex observer.tex
diffstat 13 files changed, 1126 insertions(+), 977 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/00_vorstellung.tex	Thu Jun 21 10:46:57 2007 +0200
@@ -0,0 +1,64 @@
+% @file
+% @brief   Referat DesignPatterns `Vorstellung'
+% @author  all
+% @since   2007-06-21
+
+
+\documentclass{beamer}
+
+
+%  \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage{ngerman}
+  \usepackage{graphicx}
+  \usepackage[automark]{scrpage2}
+  \input{Style01}
+
+
+
+\begin{document}
+
+
+\title{Design Patterns}
+\date{\today}
+
+\author{Markus Rundel,\\ Julian Haug,\\ Markus Schnalke,\\ Dimitar Dimitrov}
+
+%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
+
+\frame{
+  \titlepage
+}
+
+
+
+
+
+\section[Outline]{}
+\frame{
+   \begin{block}{Einführung in Design Patterns}
+   \end{block}
+
+   \begin{block}{Weitere Patterns}
+   \end{block}
+
+   \begin{block}{Design Pattern ``Observer''}
+   \end{block}
+
+   \begin{block}{Design Pattern ``Composite''}
+   \end{block}
+
+   \begin{block}{Exkurs: Anti-Patterns}
+   \end{block}
+
+   \begin{block}{Zusammenfassung}
+   \end{block}
+
+%  \tableofcontents
+}
+
+
+
+\end{document}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/01_einfuehrung.tex	Thu Jun 21 10:46:57 2007 +0200
@@ -0,0 +1,99 @@
+% @file
+% @brief   Referat DesignPatterns `Einleitung'
+% @author  Markus Rundel
+% @since   2007-06-21
+
+
+\documentclass{beamer}
+
+
+%  \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage{ngerman}
+  \usepackage{graphicx}
+  \usepackage[automark]{scrpage2}
+  \input{Style01}
+
+
+
+\begin{document}
+
+
+\title{Design Patterns ``Einleitung''}
+\date{\today}
+
+\author{Markus Rundel}
+
+%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
+
+\frame{
+  \titlepage
+}
+
+
+
+
+
+\section[Outline]{}
+\frame{
+  \tableofcontents
+}
+
+
+
+
+\section{}
+
+
+\frame{ \frametitle{}
+
+  \begin{block}{}
+    \begin{itemize}
+      \item 
+      \item 
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+  \pause
+  \begin{block}{}
+    \begin{itemize}
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+
+}
+
+
+%\frame { \frametitle{Interaktions-Diagramm des Observers}
+%  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
+%}
+
+
+
+\section{Zusammenfassung}
+\frame{ %\frametitle{Zusammenfassend}
+  \begin{block}{Zusammenfassung}
+  \begin{itemize}
+    \item 
+    \item 
+    \item 
+  \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Fazit}
+    \begin{itemize}
+      \item 
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+}
+
+
+\end{document}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/02_anderePatterns.tex	Thu Jun 21 10:46:57 2007 +0200
@@ -0,0 +1,159 @@
+% @file
+% @brief   Referat DesignPatterns `Andere Muster'
+% @author  Julian Haug
+% @since   2007-06-21
+
+
+\documentclass{beamer}
+
+
+%  \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage{ngerman}
+  \usepackage{graphicx}
+  \usepackage[automark]{scrpage2}
+  \input{Style01}
+
+
+
+\begin{document}
+
+
+\title{Design Patterns ``Andere Muster''}
+\date{\today}
+
+\author{Julian Haug}
+
+%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
+
+\frame{
+  \titlepage
+}
+
+
+
+
+
+\section[Outline]{}
+\frame{
+  \tableofcontents
+}
+
+
+
+
+\section{Andere Arten von Mustern}
+
+
+\frame{ \frametitle{Andere Arten von Mustern}
+
+  \begin{block}{Andere Arten von Mustern}
+    \begin{itemize}
+      \item Gang of Four motivieren viele Autoren zu weiteren Veröffentlichungen
+      \item Problematik: ein Muster lässt sich nicht mehr ohne weiteres als Entwurfsmuster klassifizieren
+      \item Es entstanden mehrere Arten von Mustern
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\section{Beispiele anderer Muster}
+
+\frame{ \frametitle{Beispiele anderer Muster}
+
+  \begin{block}{Architekturmuster}
+    \begin{itemize}
+      \item beschreiben typische Software-Architekturen
+      \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung
+      \item Lässt sich in 4 verschiedene Kategorien einteilen
+      \begin{itemize}
+        \item Mud-to-structure: hilft die Unmengen von Komponenten und Objekten eines Softwaresystems zu organisieren.
+        \item Verteilte Systeme: unterstützten die Verwendung verteilter Ressourcen und Dienste in Netzwerken
+        \item Interaktive Systeme: helfen Mensch-Computer-Interaktionen zu strukturieren
+        \item Adaptive Systeme: unterstützen besonders die Erweiterungs- und Anpassungsfähigkeit von Softwaresystemen.
+      \end{itemize}
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\section{Idom}
+
+\frame{ \frametitle{Idom}
+
+  \begin{block}{Definition}
+    \begin{itemize}
+      \item Beschreibt konkrete Implementierung eines Entwurfsmusters
+      \item ist programmiersprachenspezifisch
+    \end{itemize}
+  \end{block}
+
+  \begin{block}{Anwendung}
+    \begin{itemize}
+      \item Konkrete Implementierung eines Entwurfsmusters.
+      \item Programmierkonventionen (Codeformatierung, Namenskonventionen, Kommentar Formatierung, usw.)
+      \item Typische Lösungsansätze für Probleme die durch die Programmiersprache nicht direkt unterstützt werden (Speicherverwaltung)
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\section{Weitere Beispiele}
+
+\frame{ \frametitle{Weitere Beispiele}
+
+  \begin{block}{Weitere Beispiele}
+    \begin{itemize}
+      \item Analysemuster \\ (beschreiben typische Fälle der Anforderungsanalyse)
+      \item Kommunikationsmuster \\ (beschreiben Kommunikationswege zwischen Personen einer Organisation)
+      \item Organisationsmuster \\ (beschreiben Elemente der Strukturen von Organisationen)
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\section{Tipps zur Anwendung}
+
+\frame{ \frametitle{Tipps zur Anwendung}
+
+  \begin{block}{}
+    \begin{itemize}
+      \item 
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+
+}
+
+
+
+\section{Zusammenfassung}
+\frame{ %\frametitle{Zusammenfassend}
+  \begin{block}{Zusammenfassung}
+  \begin{itemize}
+    \item 
+    \item 
+    \item 
+  \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Fazit}
+    \begin{itemize}
+      \item 
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+}
+
+
+\end{document}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/03_observer.tex	Thu Jun 21 10:46:57 2007 +0200
@@ -0,0 +1,446 @@
+% @file
+% @brief   Referat DesignPatterns `Observer'
+% @author  markus schnalke <meillo@marmaro.de>
+% @since   2007-05-30
+
+
+\documentclass{beamer}
+
+
+%  \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage{ngerman}
+  \usepackage{graphicx}
+  \usepackage[automark]{scrpage2}
+  \input{Style01}
+
+
+
+\begin{document}
+
+
+\title{Design Patterns ``Observer''}
+\date{}
+
+\author{Markus Schnalke}
+
+%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
+
+\frame{
+  \titlepage
+}
+
+
+
+
+
+\section[Outline]{}
+\frame{
+  \tableofcontents
+}
+
+
+
+
+\section{Vorgehensweise}
+
+\frame{ \frametitle{Von der anderen Seite}
+
+  \begin{block}{Gründe}
+    Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
+    Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
+  \end{block}
+  \pause
+  \begin{block}{Meine Vorgehensweise}
+    Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass
+    das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
+    bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
+    sollte.
+  \end{block}
+
+  % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
+
+}
+
+
+\section{Erarbeitung des Observers}
+
+\frame{ \frametitle{Ein Beispiel}
+
+  \begin{block}{Die Situation}
+    \begin{itemize}
+      \item Personen die verkaufen möchten
+      \item Personen die kaufen möchten
+      \item Sie wollen/sollen sich nicht kennen
+      \item Möglichst effektives Vorgehen
+    \end{itemize}
+  \end{block}
+  \pause
+  \begin{block}{Vorschläge?}
+    \begin{itemize}
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\subsection{Ansatz}
+\frame{ \frametitle{Ansatz}
+
+  \begin{block}{Mögliche Vorgehen}
+  \begin{itemize}
+    \item Personen direkt ansprechen
+    \item Laut in die Menge rufen
+    \item Den Freunden erzählen, die es dann weitererzählen
+  \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Probleme}
+    \begin{itemize}
+      \item Man weiß nicht wer Interesse hat
+      \item nicht mal wieviele
+      \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
+      \item ... oder sie sind taub
+    \end{itemize}
+  \end{block}
+
+}
+
+
+
+\subsection{Erarbeitung einer Lösung}
+
+\frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
+
+  \begin{block}{Funktionsweise}
+  \begin{itemize}
+    \item Man kann Zettel anpinnen
+    \item Hingehen und nach neuen Zetteln schauen
+    \item Zettel lesen
+    \item Zettel abnehmen
+    \item Jeder der ein paar Fähigkeiten hat kann es
+  \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Probleme}
+    \begin{itemize}
+      \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
+      \item Man kann wichtige Zettel verpassen
+      \item Zettel sollten nicht weggenommen werden können
+    \end{itemize}
+  \end{block}
+
+}
+
+
+
+
+\frame{ \frametitle{Verbesserung: Pinnwand-Sekretärin}
+
+  \begin{block}{Lösung}
+  \begin{itemize}
+    \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
+    \item Pinnwand und Sekretärin sind fortan eine Einheit
+    \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
+    \item (Sie schreibt mit lesbarer Schrift)
+    \item Sie verhindert, dass Zettel abgenommen werden
+  \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Bestehendes Problem}
+    \begin{itemize}
+      \item Man läuft immer noch oft unnötig zur Pinnwand
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
+
+  \begin{block}{Lösung}
+  \begin{itemize}
+    \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
+    \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
+    \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
+    \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
+  \end{itemize}
+  \end{block}
+
+}
+
+
+\subsection{Zusammenfassung}
+
+% Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
+% Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
+\frame{ \frametitle{Zusammenfassung des Beispiels}
+
+  \begin{block}{Pinnwand + Sekretärin + Benachrichtigung}
+    \begin{itemize}
+      \item Man kann neue Zettel anpinnen lassen
+      \item Man kann sich als Interessierter anmelden (und auch abmelden)
+      \item Interessierte werden bei Änderungen der Pinnwand benachrichtigt
+      \item Sie können dann zur Pinnwand gehen und sie sich anschauen
+    \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Eure Meinung?}
+    \begin{itemize}
+      \item Ist diese Struktur zufriedenstellend?
+      \item Erfüllt sie alle Anforderungen?
+      \item Was fehlt?
+    \end{itemize}
+  \end{block}
+
+}
+
+
+
+
+
+
+\section{Nun zum Pattern}
+
+
+\frame{ \frametitle{Überleitung}
+
+  \begin{block}{Neue Namen}
+    \begin{itemize}
+      \item Pinnwand-Sekretärin-Einheit $\rightarrow$ ``Subject''
+      \item Die Zettel auf der Pinnwand $\rightarrow$ ``subjectState''
+      \item Interessenten $\rightarrow$ ``Observers''
+    \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Schnittstellen}
+    Die Fähigkeiten der Pinnwand/Sekretärin und Interessenten sind ihre ``Interfaces''.
+  \end{block}
+
+}
+
+
+\frame { \frametitle{Struktur-Diagramm des Observers}
+  \centerline{ \includegraphics[width=20em]{pics/observer_big.png} }
+}
+
+
+\frame { \frametitle{Interaktions-Diagramm des Observers}
+  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
+}
+
+
+% Daten aus der Beschreibung des Observers von GoF
+% in welche Gruppen wird er eingeordnet
+%\frame{ \frametitle{Beschreibung des Observers}
+%
+%  \begin{block}{Klassifizierung}
+%    Verhaltensmuster, objektbasierend
+%  \end{block}
+%
+%  \begin{block}{Auch bekannt als}
+%    Publish-Subscribe, Dependents
+%  \end{block}
+%
+%  \begin{block}{Zweck}
+%    Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
+%    % todo: besser formulieren
+%  \end{block}
+%
+%  \begin{block}{Kurzbeschreibung}
+%    Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
+%    werden können, und um die abhängigen Objekte über Zustandsänderungen zu
+%    informieren.
+%    % todo: Formulierung überdenken
+%  \end{block}
+%
+%}
+
+
+\subsection{Beispiele}
+% Einsatzgebiete (MVC) und RL (Mailingslisten, Ebay-Suchabo)
+% nicht aber (Blog + RSS)
+\frame{ \frametitle{Der Observer in der Praxis}
+
+  \begin{block}{Beispiele}
+    \begin{itemize}
+      \item Observer ist sehr verbreitet
+      \item v.a. MVC (Model = Subject; View = Observer)
+      \item Mailinglisten
+      \item Ebay Such-Abo
+    \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Aber}
+    \begin{itemize}
+      \item nicht Blog mit RSS-Feed!
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\subsection{Erweiterungen}
+% Erweiterungen, verbleibende Probleme, Kompromisse beim Design
+\frame{ \frametitle{Mögliche Erweiterungen}
+
+  \begin{block}{Ein Observer und mehrere Subjects}
+    \begin{itemize}
+      \item Der Name des Subjects muss mitgesendet werden.
+    \end{itemize}
+  \end{block}
+
+  \begin{block}{Nur für bestimmte Informationen anmelden}
+    \begin{itemize}
+      \item Oberservers melden sich nur für bestimmte Informationen an
+      \item Es werden weniger uninteressante Updates gesendet
+    \end{itemize}
+  \end{block}
+
+  \begin{block}{UpdateManager}
+    \begin{itemize}
+      \item Bei komplexen Update-Zusammenhängen empfehlenswert
+      \item vermittelt zwischen Subject und Observer
+      \item Mehr dazu in der Ausarbeitung
+    \end{itemize}
+  \end{block}
+
+}
+
+
+%\frame{ \frametitle{Wer ruft notify() auf?}
+%
+%  \begin{block}{Das Subject}
+%    \begin{itemize}
+%      \item[+] notify() wird sicher bei jedem setState() aufgerufen
+%      \item[-] hohe Update-Kosten bei Änderungen en-block
+%    \end{itemize}
+%  \end{block}
+%
+%  \begin{block}{Der Observer}
+%    \begin{itemize}
+%      \item[+] intelligenter Zeitpunkt des notify()-Aufrufs möglich
+%      \item[-] der Client darf den notify()-Aufruf nicht vergessen
+%    \end{itemize}
+%  \end{block}
+%
+%}
+
+
+
+\subsection{Code}
+% Kein Code!
+\frame{ \frametitle{Code? --- Nein, kein Code!}
+
+  \begin{block}{Denn}
+    \begin{center}
+    \textbf{ Implementierungen sind Schall und Rauch,\\
+    Konzepte dagegen bleiben bestehen!  }
+    \end{center}
+  \end{block}
+
+  \vspace{4ex}
+  {\scriptsize 
+  \begin{block}{Aber}
+    Beispiel-Implementierung in der Ausarbeitung.
+  \end{block}
+  }
+
+}
+
+
+
+\section{Zusammenfassung}
+\frame{ %\frametitle{Zusammenfassend}
+  \begin{block}{Zusammenfassung}
+  \begin{itemize}
+    \item 
+    \item 
+    \item 
+  \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Fazit}
+    \begin{itemize}
+      \item 
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+}
+
+
+%\section{Fragen}
+%\frame{ \frametitle{Fragen?}
+%  \vspace{5ex}
+%  \centerline{\huge ?}
+%}
+
+
+% Erklaerung des Vorgehens
+% Frage: war es erfolgreich?
+%\frame{ \frametitle{}
+%
+%  \begin{block}{}
+%  \end{block}
+%
+%}
+
+
+%\frame{ \frametitle{Abschließend}
+%  \begin{block}{Verwendete Software}
+%  \begin{itemize}
+%    \item Debian GNU/Linux
+%    \item \LaTeX-Beamer und \texttt{pdflatex}
+%    \item Vim
+%    \item qiv und ImageMagick
+%    \item Mercurial
+%  \end{itemize}
+%  \end{block}
+%
+%  \begin{block}{}
+%    \vspace{3ex}
+%    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
+%  \end{block}
+%}
+
+
+% Code (Beispiel-Implementierung)
+
+
+
+
+
+
+%\input{main2.tex}
+
+
+\end{document}
+
+
+
+
+
+
+%\subsubsection{Fehlteilmanagement}
+%\frame{ \frametitle{Fehlteilmanagement}
+%  %\includegraphics[width=10cm]{Pics/cc.png}
+%}
+
+% \vspace{2ex}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/04_composite.tex	Thu Jun 21 10:46:57 2007 +0200
@@ -0,0 +1,133 @@
+% @file
+% @brief   Referat DesignPatterns `Composite'
+% @author  dimitar dimitrov
+% @since   2007-06-18
+
+
+\documentclass{beamer}
+
+
+  \usepackage[T1]{fontenc}
+  \usepackage[latin1]{inputenc}
+  \usepackage{ngerman}
+  \usepackage{graphicx}
+  \usepackage[automark]{scrpage2}
+  \usepackage{listings}
+  \input{Style01}
+
+
+
+\begin{document}
+
+
+\title{Design Patterns ``Composite''}
+\date{\today}
+
+\author{Dimitar Dimitrov}
+
+%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
+
+\frame{
+  \titlepage
+}
+
+
+
+
+
+\section[Outline]{}
+\frame{ \frametitle{Outline}
+  \tableofcontents
+}
+
+
+
+
+\section{Definition}
+
+\frame{ \frametitle{Definition}
+
+  \begin{block}{}
+  \end{block}
+
+}
+
+
+\section{Motivation}
+
+\frame{ \frametitle{Motivation}
+
+  \begin{block}{}
+  \end{block}
+
+}
+
+
+\section{Wann verwenden?}
+\frame{ \frametitle{Wann verwenden?}
+
+  \begin{block}{}
+  \end{block}
+
+}
+
+
+
+\section{Struktur}
+
+\frame{ \frametitle{UML-Diagramm des Composite-Pattern}
+  \centerline{ \includegraphics[width=20em]{pics/composite_big.png} }
+}
+
+
+
+
+
+\section{Java-Beispiel}
+\subsection{main, IComponent}
+\frame{ \frametitle{class Main, interface IComponent}
+
+  {\tiny
+    \lstinputlisting[language=java]{code/composite-main.java}
+    \lstinputlisting[language=java]{code/composite-icomponent.java}
+  }
+
+}
+
+
+\subsection{Composite}
+\frame{ \frametitle{class Composite}
+
+  {\tiny
+    \lstinputlisting[language=java]{code/composite-composite.java}
+  }
+
+}
+
+
+\subsection{Leaf}
+\frame{ \frametitle{class Leaf}
+
+  {\tiny
+    \lstinputlisting[language=java]{code/composite-leaf.java}
+  }
+
+}
+
+
+
+
+\section{Zusammenfassung}
+\frame{ %\frametitle{Zusammenfassend}
+  \begin{block}{Zusammenfassung}
+  \begin{itemize}
+    \item 
+    \item 
+    \item 
+  \end{itemize}
+  \end{block}
+}
+
+
+
+\end{document}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/05_antiPatterns.tex	Thu Jun 21 10:46:57 2007 +0200
@@ -0,0 +1,110 @@
+% @file
+% @brief   Referat DesignPatterns `Anti-Patterns'
+% @author  Julian Haug
+% @since   2007-06-21
+
+
+\documentclass{beamer}
+
+
+%  \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage{ngerman}
+  \usepackage{graphicx}
+  \usepackage[automark]{scrpage2}
+  \input{Style01}
+
+
+
+\begin{document}
+
+
+\title{Design Patterns ``Anti-Patterns''}
+\date{}
+
+%\author{Julian Haug}
+
+%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
+
+\frame{
+  \titlepage
+}
+
+
+
+
+
+\section[Outline]{}
+\frame{
+  \tableofcontents
+}
+
+
+
+
+\section{Anti-Patterns}
+
+
+\frame{ \frametitle{Anti-Patterns}
+
+  \begin{block}{Dokumentieren wiederkehrende Fehler bei der Software-Entwicklung um}
+    \begin{itemize}
+      \item durch das Wissen ihrer Existenz diese zu vermeiden
+      \item bereits manifestierte Anti-Pattern durch geschickte Maßnahmen zu beheben
+    \end{itemize}
+  \end{block}
+
+    \pause
+
+  \begin{block}{Analog zu positiven Mustern gibt es auch hier eine weitere Unterscheidung}
+    \begin{itemize}
+      \item Projektmanagement-Anti-Patterns
+      \item Architektur- bzw. Design-Anti- Patterns
+      \item Meta-Patterns
+      \item Organisations-, Prozess- Anti-Patterns
+      \item \textbf{Programmierungs-Anti-Patterns}
+    \end{itemize}
+  \end{block}
+
+}
+
+
+\frame{ \frametitle{Programmierungs-Anti-Patterns}
+
+  \begin{block}{}
+    \begin{itemize}
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+
+}
+
+
+
+\section{Zusammenfassung}
+\frame{ %\frametitle{Zusammenfassend}
+  \begin{block}{Zusammenfassung}
+  \begin{itemize}
+    \item 
+    \item 
+    \item 
+  \end{itemize}
+  \end{block}
+
+  \pause
+
+  \begin{block}{Fazit}
+    \begin{itemize}
+      \item 
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+}
+
+
+
+\end{document}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/09_zusammenfassung.tex	Thu Jun 21 10:46:57 2007 +0200
@@ -0,0 +1,113 @@
+% @file
+% @brief   Referat DesignPatterns `Zusammanfassung'
+% @author  alle
+% @since   2007-06-21
+
+
+\documentclass{beamer}
+
+
+%  \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
+  \usepackage{ngerman}
+  \usepackage{graphicx}
+  \usepackage[automark]{scrpage2}
+  \input{Style01}
+
+
+
+\begin{document}
+
+
+\title{Zusammenfassung}
+\date{}
+\author{}
+
+%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
+
+\frame{
+  \titlepage
+}
+
+
+
+
+
+
+
+
+\section{Schlusssätze}
+\frame{ %\frametitle{Zusammenfassend}
+  \begin{block}{Einleitung}
+    \begin{itemize}
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+  \pause
+
+  \begin{block}{Andere Patterns}
+    \begin{itemize}
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+  \pause
+
+  \begin{block}{Composite-Pattern}
+    \begin{itemize}
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+  \pause
+
+  \begin{block}{Observer-Pattern}
+    \begin{itemize}
+      \item 
+      \item 
+    \end{itemize}
+  \end{block}
+}
+
+
+
+\section{Fragen}
+\frame{ \frametitle{Fragen?}
+  \vspace{5ex}
+  \centerline{\Huge ? }
+}
+
+
+%% Erklaerung des Vorgehens
+%% Frage: war es erfolgreich?
+%\frame{ \frametitle{}
+%
+%  \begin{block}{}
+%  \end{block}
+%
+%}
+
+
+\frame{ \frametitle{Abschließend}
+  \begin{block}{Verwendete Software}
+  \begin{itemize}
+    \item Debian GNU/Linux
+    \item \LaTeX-Beamer und \texttt{pdflatex}
+    \item Vim
+    \item qiv und ImageMagick
+    \item Mercurial
+  \end{itemize}
+  \end{block}
+
+  \begin{block}{}
+    \vspace{3ex}
+    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
+  \end{block}
+}
+
+
+
+\end{document}
+
+
--- a/Makefile	Thu Jun 21 08:23:04 2007 +0200
+++ b/Makefile	Thu Jun 21 10:46:57 2007 +0200
@@ -27,6 +27,6 @@
 
 clean:
 	echo 'cleaning ...'
-	rm *.{aux,lof,log,lot,nav,out,snm,toc}
+	rm *.{aux,lof,log,lot,nav,out,snm,toc} 2> /dev/null
 
-.PHONY: all xpdf
+.PHONY: all xpdf clean
--- a/andereMuster.tex	Thu Jun 21 08:23:04 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-% @file
-% @brief   Referat DesignPatterns `Andere Muster'
-% @author  Julian Haug
-% @since   2007-06-21
-
-
-\documentclass{beamer}
-
-
-%  \usepackage[T1]{fontenc}
-  \usepackage[utf8]{inputenc}
-  \usepackage{ngerman}
-  \usepackage{graphicx}
-  \usepackage[automark]{scrpage2}
-  \input{Style01}
-
-
-
-\begin{document}
-
-
-\title{Design Patterns ``Andere Muster''}
-\date{\today}
-
-\author{Julian Haug}
-
-%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
-
-\frame{
-  \titlepage
-}
-
-
-
-
-
-\section[Outline]{}
-\frame{
-  \tableofcontents
-}
-
-
-
-
-\section{Andere Arten von Mustern}
-
-
-\frame{ \frametitle{Andere Arten von Mustern}
-
-  \begin{block}{Andere Arten von Mustern}
-    \begin{itemize}
-      \item Gang of Four motivieren viele Autoren zu weiteren Veröffentlichungen
-      \item Problematik: ein Muster lässt sich nicht mehr ohne weiteres als Entwurfsmuster klassifizieren
-      \item Es entstanden mehrere Arten von Mustern
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\frame{ \frametitle{Beispiele anderer Muster}
-
-  \begin{block}{Architekturmuster}
-    \begin{itemize}
-      \item beschreiben typische Software-Architekturen
-      \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung
-      \item Lässt sich in 4 verschiedene Kategorien einteilen
-      \begin{itemize}
-        \item Mud-to-structure: hilft die Unmengen von Komponenten und Objekten eines Softwaresystems zu organisieren.
-        \item Verteilte Systeme: unterstützten die Verwendung verteilter Ressourcen und Dienste in Netzwerken
-        \item Interaktive Systeme: helfen Mensch-Computer-Interaktionen zu strukturieren
-        \item Adaptive Systeme: unterstützen besonders die Erweiterungs- und Anpassungsfähigkeit von Softwaresystemen.
-      \end{itemize}
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\frame{ \frametitle{Idom}
-
-  \begin{block}{Definition}
-    \begin{itemize}
-      \item Beschreibt konkrete Implementierung eines Entwurfsmusters
-      \item ist programmiersprachenspezifisch
-    \end{itemize}
-  \end{block}
-
-  \begin{block}{Anwendung}
-    \begin{itemize}
-      \item Konkrete Implementierung eines Entwurfsmusters.
-      \item Programmierkonventionen (Codeformatierung, Namenskonventionen, Kommentar Formatierung, usw.)
-      \item Typische Lösungsansätze für Probleme die durch die Programmiersprache nicht direkt unterstützt werden (Speicherverwaltung)
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\frame{ \frametitle{Weitere Beispiele}
-
-  \begin{block}{Weitere Beispiele}
-    \begin{itemize}
-      \item Analysemuster \\ (beschreiben typische Fälle der Anforderungsanalyse)
-      \item Kommunikationsmuster \\ (beschreiben Kommunikationswege zwischen Personen einer Organisation)
-      \item Organisationsmuster \\ (beschreiben Elemente der Strukturen von Organisationen)
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\frame{ \frametitle{Tipps zur Anwendung}
-
-  \begin{block}{}
-    \begin{itemize}
-      \item 
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-
-}
-
-
-
-\section{Zusammenfassung}
-\frame{ %\frametitle{Zusammenfassend}
-  \begin{block}{Zusammenfassung}
-  \begin{itemize}
-    \item 
-    \item 
-    \item 
-  \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Fazit}
-    \begin{itemize}
-      \item 
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-}
-
-
-\end{document}
-
-
--- a/antiPatterns.tex	Thu Jun 21 08:23:04 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-% @file
-% @brief   Referat DesignPatterns `Anti-Patterns'
-% @author  Julian Haug
-% @since   2007-06-21
-
-
-\documentclass{beamer}
-
-
-%  \usepackage[T1]{fontenc}
-  \usepackage[utf8]{inputenc}
-  \usepackage{ngerman}
-  \usepackage{graphicx}
-  \usepackage[automark]{scrpage2}
-  \input{Style01}
-
-
-
-\begin{document}
-
-
-\title{Design Patterns ``Anti-Patterns''}
-\date{\today}
-
-\author{Julian Haug}
-
-%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
-
-\frame{
-  \titlepage
-}
-
-
-
-
-
-\section[Outline]{}
-\frame{
-  \tableofcontents
-}
-
-
-
-
-\section{Anti-Patterns}
-
-
-\frame{ \frametitle{Anti-Patterns}
-
-  \begin{block}{Dokumentieren wiederkehrende Fehler bei der Software-Entwicklung um}
-    \begin{itemize}
-      \item durch das Wissen ihrer Existenz diese zu vermeiden
-      \item bereits manifestierte Anti-Pattern durch geschickte Maßnahmen zu beheben
-    \end{itemize}
-  \end{block}
-
-    \pause
-
-  \begin{block}{Analog zu positiven Mustern gibt es auch hier eine weitere Unterscheidung}
-    \begin{itemize}
-      \item Projektmanagement-Anti-Patterns
-      \item Architektur- bzw. Design-Anti- Patterns
-      \item Meta-Patterns
-      \item Organisations-, Prozess- Anti-Patterns
-      \item \textbf{Programmierungs-Anti-Patterns}
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\frame{ \frametitle{Programmierungs-Anti-Patterns}
-
-  \begin{block}{}
-    \begin{itemize}
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-
-}
-
-
-
-\section{Zusammenfassung}
-\frame{ %\frametitle{Zusammenfassend}
-  \begin{block}{Zusammenfassung}
-  \begin{itemize}
-    \item 
-    \item 
-    \item 
-  \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Fazit}
-    \begin{itemize}
-      \item 
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-}
-
-
-
-\section{Fragen}
-\frame{ \frametitle{Fragen?}
-  \vspace{5ex}
-  \centerline{\huge ?}
-}
-
-
-%% Erklaerung des Vorgehens
-%% Frage: war es erfolgreich?
-%\frame{ \frametitle{}
-%
-%  \begin{block}{}
-%  \end{block}
-%
-%}
-
-
-\frame{ \frametitle{Abschließend}
-  \begin{block}{Verwendete Software}
-  \begin{itemize}
-    \item Debian GNU/Linux
-    \item \LaTeX-Beamer und \texttt{pdflatex}
-    \item Vim
-    \item qiv und ImageMagick
-    \item Mercurial
-  \end{itemize}
-  \end{block}
-
-  \begin{block}{}
-    \vspace{3ex}
-    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
-  \end{block}
-}
-
-
-
-\end{document}
-
-
--- a/composite.tex	Thu Jun 21 08:23:04 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-% @file
-% @brief   Referat DesignPattern `Composite'
-% @author  dimitar dimitrov
-% @since   2007-06-18
-
-
-\documentclass{beamer}
-
-
-  \usepackage[T1]{fontenc}
-  \usepackage[latin1]{inputenc}
-  \usepackage{ngerman}
-  \usepackage{graphicx}
-  \usepackage[automark]{scrpage2}
-  \usepackage{listings}
-  \input{Style01}
-
-
-
-\begin{document}
-
-
-\title{Design Pattern ``Composite''}
-\date{\today}
-
-\author{Dimitar Dimitrov}
-
-%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
-
-\frame{
-  \titlepage
-}
-
-
-
-
-
-\section[Outline]{}
-\frame{ \frametitle{Outline}
-  \tableofcontents
-}
-
-
-
-
-\section{Definition}
-
-\frame{ \frametitle{Definition}
-
-  \begin{block}{}
-  \end{block}
-
-}
-
-
-\section{Motivation}
-
-\frame{ \frametitle{Motivation}
-
-  \begin{block}{}
-  \end{block}
-
-}
-
-
-\section{Wann verwenden?}
-\frame{ \frametitle{Wann verwenden?}
-
-  \begin{block}{}
-  \end{block}
-
-}
-
-
-
-\section{Struktur}
-
-\frame{ \frametitle{UML-Diagramm des Composite-Pattern}
-  \centerline{ \includegraphics[width=20em]{pics/composite_big.png} }
-}
-
-
-
-
-
-\section{Java-Beispiel}
-\subsection{main, IComponent}
-\frame{ \frametitle{class Main, interface IComponent}
-
-  {\tiny
-    \lstinputlisting[language=java]{code/composite-main.java}
-    \lstinputlisting[language=java]{code/composite-icomponent.java}
-  }
-
-}
-
-
-\subsection{Composite}
-\frame{ \frametitle{class Composite}
-
-  {\tiny
-    \lstinputlisting[language=java]{code/composite-composite.java}
-  }
-
-}
-
-
-\subsection{Leaf}
-\frame{ \frametitle{class Leaf}
-
-  {\tiny
-    \lstinputlisting[language=java]{code/composite-leaf.java}
-  }
-
-}
-
-
-
-
-\section{Zusammenfassung}
-\frame{ %\frametitle{Zusammenfassend}
-  \begin{block}{Zusammenfassung}
-  \begin{itemize}
-    \item 
-    \item 
-    \item 
-  \end{itemize}
-  \end{block}
-}
-
-
-
-\end{document}
--- a/einleitung.tex	Thu Jun 21 08:23:04 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-% @file
-% @brief   Referat DesignPatterns `Einleitung'
-% @author  Markus Rundel
-% @since   2007-06-21
-
-
-\documentclass{beamer}
-
-
-%  \usepackage[T1]{fontenc}
-  \usepackage[utf8]{inputenc}
-  \usepackage{ngerman}
-  \usepackage{graphicx}
-  \usepackage[automark]{scrpage2}
-  \input{Style01}
-
-
-
-\begin{document}
-
-
-\title{Design Patterns ``Einleitung''}
-\date{\today}
-
-\author{Markus Rundel}
-
-%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
-
-\frame{
-  \titlepage
-}
-
-
-
-
-
-\section[Outline]{}
-\frame{
-  \tableofcontents
-}
-
-
-
-
-\section{Vorgehensweise}
-
-
-\frame{ \frametitle{Ein Beispiel}
-
-  \begin{block}{Die Situation}
-    \begin{itemize}
-      \item Personen die verkaufen möchten
-      \item Personen die kaufen möchten
-      \item Sie wollen/sollen sich nicht kennen
-      \item Möglichst effektives Vorgehen
-    \end{itemize}
-  \end{block}
-  \pause
-  \begin{block}{Vorschläge?}
-    \begin{itemize}
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\frame { \frametitle{Interaktions-Diagramm des Observers}
-  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
-}
-
-
-
-\section{Zusammenfassung}
-\frame{ %\frametitle{Zusammenfassend}
-  \begin{block}{Zusammenfassung}
-  \begin{itemize}
-    \item 
-    \item 
-    \item 
-  \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Fazit}
-    \begin{itemize}
-      \item 
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-}
-
-
-\end{document}
-
-
--- a/observer.tex	Thu Jun 21 08:23:04 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,446 +0,0 @@
-% @file
-% @brief   Referat DesignPattern `Observer'
-% @author  markus schnalke <meillo@marmaro.de>
-% @since   2007-05-30
-
-
-\documentclass{beamer}
-
-
-%  \usepackage[T1]{fontenc}
-  \usepackage[utf8]{inputenc}
-  \usepackage{ngerman}
-  \usepackage{graphicx}
-  \usepackage[automark]{scrpage2}
-  \input{Style01}
-
-
-
-\begin{document}
-
-
-\title{Design Pattern ``Observer''}
-\date{\today}
-
-\author{Markus Schnalke}
-
-%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
-
-\frame{
-  \titlepage
-}
-
-
-
-
-
-\section[Outline]{}
-\frame{
-  \tableofcontents
-}
-
-
-
-
-\section{Vorgehensweise}
-
-\frame{ \frametitle{Von der anderen Seite}
-
-  \begin{block}{Gründe}
-    Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
-    Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
-  \end{block}
-  \pause
-  \begin{block}{Meine Vorgehensweise}
-    Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass
-    das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
-    bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
-    sollte.
-  \end{block}
-
-  % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
-
-}
-
-
-\section{Erarbeitung des Observers}
-
-\frame{ \frametitle{Ein Beispiel}
-
-  \begin{block}{Die Situation}
-    \begin{itemize}
-      \item Personen die verkaufen möchten
-      \item Personen die kaufen möchten
-      \item Sie wollen/sollen sich nicht kennen
-      \item Möglichst effektives Vorgehen
-    \end{itemize}
-  \end{block}
-  \pause
-  \begin{block}{Vorschläge?}
-    \begin{itemize}
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\subsection{Ansatz}
-\frame{ \frametitle{Ansatz}
-
-  \begin{block}{Mögliche Vorgehen}
-  \begin{itemize}
-    \item Personen direkt ansprechen
-    \item Laut in die Menge rufen
-    \item Den Freunden erzählen, die es dann weitererzählen
-  \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Probleme}
-    \begin{itemize}
-      \item Man weiß nicht wer Interesse hat
-      \item nicht mal wieviele
-      \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
-      \item ... oder sie sind taub
-    \end{itemize}
-  \end{block}
-
-}
-
-
-
-\subsection{Erarbeitung einer Lösung}
-
-\frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
-
-  \begin{block}{Funktionsweise}
-  \begin{itemize}
-    \item Man kann Zettel anpinnen
-    \item Hingehen und nach neuen Zetteln schauen
-    \item Zettel lesen
-    \item Zettel abnehmen
-    \item Jeder der ein paar Fähigkeiten hat kann es
-  \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Probleme}
-    \begin{itemize}
-      \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
-      \item Man kann wichtige Zettel verpassen
-      \item Zettel sollten nicht weggenommen werden können
-    \end{itemize}
-  \end{block}
-
-}
-
-
-
-
-\frame{ \frametitle{Verbesserung: Pinnwand-Sekretärin}
-
-  \begin{block}{Lösung}
-  \begin{itemize}
-    \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
-    \item Pinnwand und Sekretärin sind fortan eine Einheit
-    \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
-    \item (Sie schreibt mit lesbarer Schrift)
-    \item Sie verhindert, dass Zettel abgenommen werden
-  \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Bestehendes Problem}
-    \begin{itemize}
-      \item Man läuft immer noch oft unnötig zur Pinnwand
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
-
-  \begin{block}{Lösung}
-  \begin{itemize}
-    \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
-    \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
-    \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
-    \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
-  \end{itemize}
-  \end{block}
-
-}
-
-
-\subsection{Zusammenfassung}
-
-% Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
-% Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
-\frame{ \frametitle{Zusammenfassung des Beispiels}
-
-  \begin{block}{Pinnwand + Sekretärin + Benachrichtigung}
-    \begin{itemize}
-      \item Man kann neue Zettel anpinnen lassen
-      \item Man kann sich als Interessierter anmelden (und auch abmelden)
-      \item Interessierte werden bei Änderungen der Pinnwand benachrichtigt
-      \item Sie können dann zur Pinnwand gehen und sie sich anschauen
-    \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Eure Meinung?}
-    \begin{itemize}
-      \item Ist diese Struktur zufriedenstellend?
-      \item Erfüllt sie alle Anforderungen?
-      \item Was fehlt?
-    \end{itemize}
-  \end{block}
-
-}
-
-
-
-
-
-
-\section{Nun zum Pattern}
-
-
-\frame{ \frametitle{Überleitung}
-
-  \begin{block}{Neue Namen}
-    \begin{itemize}
-      \item Pinnwand-Sekretärin-Einheit $\rightarrow$ ``Subject''
-      \item Die Zettel auf der Pinnwand $\rightarrow$ ``subjectState''
-      \item Interessenten $\rightarrow$ ``Observers''
-    \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Schnittstellen}
-    Die Fähigkeiten der Pinnwand/Sekretärin und Interessenten sind ihre ``Interfaces''.
-  \end{block}
-
-}
-
-
-\frame { \frametitle{Struktur-Diagramm des Observers}
-  \centerline{ \includegraphics[width=20em]{pics/observer_big.png} }
-}
-
-
-\frame { \frametitle{Interaktions-Diagramm des Observers}
-  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
-}
-
-
-% Daten aus der Beschreibung des Observers von GoF
-% in welche Gruppen wird er eingeordnet
-%\frame{ \frametitle{Beschreibung des Observers}
-%
-%  \begin{block}{Klassifizierung}
-%    Verhaltensmuster, objektbasierend
-%  \end{block}
-%
-%  \begin{block}{Auch bekannt als}
-%    Publish-Subscribe, Dependents
-%  \end{block}
-%
-%  \begin{block}{Zweck}
-%    Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
-%    % todo: besser formulieren
-%  \end{block}
-%
-%  \begin{block}{Kurzbeschreibung}
-%    Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
-%    werden können, und um die abhängigen Objekte über Zustandsänderungen zu
-%    informieren.
-%    % todo: Formulierung überdenken
-%  \end{block}
-%
-%}
-
-
-\subsection{Beispiele}
-% Einsatzgebiete (MVC) und RL (Mailingslisten, Ebay-Suchabo)
-% nicht aber (Blog + RSS)
-\frame{ \frametitle{Der Observer in der Praxis}
-
-  \begin{block}{Beispiele}
-    \begin{itemize}
-      \item Observer ist sehr verbreitet
-      \item v.a. MVC (Model = Subject; View = Observer)
-      \item Mailinglisten
-      \item Ebay Such-Abo
-    \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Aber}
-    \begin{itemize}
-      \item nicht Blog mit RSS-Feed!
-    \end{itemize}
-  \end{block}
-
-}
-
-
-\subsection{Erweiterungen}
-% Erweiterungen, verbleibende Probleme, Kompromisse beim Design
-\frame{ \frametitle{Mögliche Erweiterungen}
-
-  \begin{block}{Ein Observer und mehrere Subjects}
-    \begin{itemize}
-      \item Der Name des Subjects muss mitgesendet werden.
-    \end{itemize}
-  \end{block}
-
-  \begin{block}{Nur für bestimmte Informationen anmelden}
-    \begin{itemize}
-      \item Oberservers melden sich nur für bestimmte Informationen an
-      \item Es werden weniger uninteressante Updates gesendet
-    \end{itemize}
-  \end{block}
-
-  \begin{block}{UpdateManager}
-    \begin{itemize}
-      \item Bei komplexen Update-Zusammenhängen empfehlenswert
-      \item vermittelt zwischen Subject und Observer
-      \item Mehr dazu in der Ausarbeitung
-    \end{itemize}
-  \end{block}
-
-}
-
-
-%\frame{ \frametitle{Wer ruft notify() auf?}
-%
-%  \begin{block}{Das Subject}
-%    \begin{itemize}
-%      \item[+] notify() wird sicher bei jedem setState() aufgerufen
-%      \item[-] hohe Update-Kosten bei Änderungen en-block
-%    \end{itemize}
-%  \end{block}
-%
-%  \begin{block}{Der Observer}
-%    \begin{itemize}
-%      \item[+] intelligenter Zeitpunkt des notify()-Aufrufs möglich
-%      \item[-] der Client darf den notify()-Aufruf nicht vergessen
-%    \end{itemize}
-%  \end{block}
-%
-%}
-
-
-
-\subsection{Code}
-% Kein Code!
-\frame{ \frametitle{Code? --- Nein, kein Code!}
-
-  \begin{block}{Denn}
-    \begin{center}
-    \textbf{ Implementierungen sind Schall und Rauch,\\
-    Konzepte dagegen bleiben bestehen!  }
-    \end{center}
-  \end{block}
-
-  \vspace{4ex}
-  {\scriptsize 
-  \begin{block}{Aber}
-    Beispiel-Implementierung in der Ausarbeitung.
-  \end{block}
-  }
-
-}
-
-
-
-\section{Zusammenfassung}
-\frame{ %\frametitle{Zusammenfassend}
-  \begin{block}{Zusammenfassung}
-  \begin{itemize}
-    \item 
-    \item 
-    \item 
-  \end{itemize}
-  \end{block}
-
-  \pause
-
-  \begin{block}{Fazit}
-    \begin{itemize}
-      \item 
-      \item 
-      \item 
-    \end{itemize}
-  \end{block}
-}
-
-
-%\section{Fragen}
-%\frame{ \frametitle{Fragen?}
-%  \vspace{5ex}
-%  \centerline{\huge ?}
-%}
-
-
-% Erklaerung des Vorgehens
-% Frage: war es erfolgreich?
-%\frame{ \frametitle{}
-%
-%  \begin{block}{}
-%  \end{block}
-%
-%}
-
-
-%\frame{ \frametitle{Abschließend}
-%  \begin{block}{Verwendete Software}
-%  \begin{itemize}
-%    \item Debian GNU/Linux
-%    \item \LaTeX-Beamer und \texttt{pdflatex}
-%    \item Vim
-%    \item qiv und ImageMagick
-%    \item Mercurial
-%  \end{itemize}
-%  \end{block}
-%
-%  \begin{block}{}
-%    \vspace{3ex}
-%    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
-%  \end{block}
-%}
-
-
-% Code (Beispiel-Implementierung)
-
-
-
-
-
-
-%\input{main2.tex}
-
-
-\end{document}
-
-
-
-
-
-
-%\subsubsection{Fehlteilmanagement}
-%\frame{ \frametitle{Fehlteilmanagement}
-%  %\includegraphics[width=10cm]{Pics/cc.png}
-%}
-
-% \vspace{2ex}