docs/DesignPatterns

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 diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/00_vorstellung.tex	Thu Jun 21 10:46:57 2007 +0200
     1.3 @@ -0,0 +1,64 @@
     1.4 +% @file
     1.5 +% @brief   Referat DesignPatterns `Vorstellung'
     1.6 +% @author  all
     1.7 +% @since   2007-06-21
     1.8 +
     1.9 +
    1.10 +\documentclass{beamer}
    1.11 +
    1.12 +
    1.13 +%  \usepackage[T1]{fontenc}
    1.14 +  \usepackage[utf8]{inputenc}
    1.15 +  \usepackage{ngerman}
    1.16 +  \usepackage{graphicx}
    1.17 +  \usepackage[automark]{scrpage2}
    1.18 +  \input{Style01}
    1.19 +
    1.20 +
    1.21 +
    1.22 +\begin{document}
    1.23 +
    1.24 +
    1.25 +\title{Design Patterns}
    1.26 +\date{\today}
    1.27 +
    1.28 +\author{Markus Rundel,\\ Julian Haug,\\ Markus Schnalke,\\ Dimitar Dimitrov}
    1.29 +
    1.30 +%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    1.31 +
    1.32 +\frame{
    1.33 +  \titlepage
    1.34 +}
    1.35 +
    1.36 +
    1.37 +
    1.38 +
    1.39 +
    1.40 +\section[Outline]{}
    1.41 +\frame{
    1.42 +   \begin{block}{Einführung in Design Patterns}
    1.43 +   \end{block}
    1.44 +
    1.45 +   \begin{block}{Weitere Patterns}
    1.46 +   \end{block}
    1.47 +
    1.48 +   \begin{block}{Design Pattern ``Observer''}
    1.49 +   \end{block}
    1.50 +
    1.51 +   \begin{block}{Design Pattern ``Composite''}
    1.52 +   \end{block}
    1.53 +
    1.54 +   \begin{block}{Exkurs: Anti-Patterns}
    1.55 +   \end{block}
    1.56 +
    1.57 +   \begin{block}{Zusammenfassung}
    1.58 +   \end{block}
    1.59 +
    1.60 +%  \tableofcontents
    1.61 +}
    1.62 +
    1.63 +
    1.64 +
    1.65 +\end{document}
    1.66 +
    1.67 +
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/01_einfuehrung.tex	Thu Jun 21 10:46:57 2007 +0200
     2.3 @@ -0,0 +1,99 @@
     2.4 +% @file
     2.5 +% @brief   Referat DesignPatterns `Einleitung'
     2.6 +% @author  Markus Rundel
     2.7 +% @since   2007-06-21
     2.8 +
     2.9 +
    2.10 +\documentclass{beamer}
    2.11 +
    2.12 +
    2.13 +%  \usepackage[T1]{fontenc}
    2.14 +  \usepackage[utf8]{inputenc}
    2.15 +  \usepackage{ngerman}
    2.16 +  \usepackage{graphicx}
    2.17 +  \usepackage[automark]{scrpage2}
    2.18 +  \input{Style01}
    2.19 +
    2.20 +
    2.21 +
    2.22 +\begin{document}
    2.23 +
    2.24 +
    2.25 +\title{Design Patterns ``Einleitung''}
    2.26 +\date{\today}
    2.27 +
    2.28 +\author{Markus Rundel}
    2.29 +
    2.30 +%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    2.31 +
    2.32 +\frame{
    2.33 +  \titlepage
    2.34 +}
    2.35 +
    2.36 +
    2.37 +
    2.38 +
    2.39 +
    2.40 +\section[Outline]{}
    2.41 +\frame{
    2.42 +  \tableofcontents
    2.43 +}
    2.44 +
    2.45 +
    2.46 +
    2.47 +
    2.48 +\section{}
    2.49 +
    2.50 +
    2.51 +\frame{ \frametitle{}
    2.52 +
    2.53 +  \begin{block}{}
    2.54 +    \begin{itemize}
    2.55 +      \item 
    2.56 +      \item 
    2.57 +      \item 
    2.58 +      \item 
    2.59 +    \end{itemize}
    2.60 +  \end{block}
    2.61 +  \pause
    2.62 +  \begin{block}{}
    2.63 +    \begin{itemize}
    2.64 +      \item 
    2.65 +      \item 
    2.66 +    \end{itemize}
    2.67 +  \end{block}
    2.68 +
    2.69 +}
    2.70 +
    2.71 +
    2.72 +%\frame { \frametitle{Interaktions-Diagramm des Observers}
    2.73 +%  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
    2.74 +%}
    2.75 +
    2.76 +
    2.77 +
    2.78 +\section{Zusammenfassung}
    2.79 +\frame{ %\frametitle{Zusammenfassend}
    2.80 +  \begin{block}{Zusammenfassung}
    2.81 +  \begin{itemize}
    2.82 +    \item 
    2.83 +    \item 
    2.84 +    \item 
    2.85 +  \end{itemize}
    2.86 +  \end{block}
    2.87 +
    2.88 +  \pause
    2.89 +
    2.90 +  \begin{block}{Fazit}
    2.91 +    \begin{itemize}
    2.92 +      \item 
    2.93 +      \item 
    2.94 +      \item 
    2.95 +    \end{itemize}
    2.96 +  \end{block}
    2.97 +}
    2.98 +
    2.99 +
   2.100 +\end{document}
   2.101 +
   2.102 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/02_anderePatterns.tex	Thu Jun 21 10:46:57 2007 +0200
     3.3 @@ -0,0 +1,159 @@
     3.4 +% @file
     3.5 +% @brief   Referat DesignPatterns `Andere Muster'
     3.6 +% @author  Julian Haug
     3.7 +% @since   2007-06-21
     3.8 +
     3.9 +
    3.10 +\documentclass{beamer}
    3.11 +
    3.12 +
    3.13 +%  \usepackage[T1]{fontenc}
    3.14 +  \usepackage[utf8]{inputenc}
    3.15 +  \usepackage{ngerman}
    3.16 +  \usepackage{graphicx}
    3.17 +  \usepackage[automark]{scrpage2}
    3.18 +  \input{Style01}
    3.19 +
    3.20 +
    3.21 +
    3.22 +\begin{document}
    3.23 +
    3.24 +
    3.25 +\title{Design Patterns ``Andere Muster''}
    3.26 +\date{\today}
    3.27 +
    3.28 +\author{Julian Haug}
    3.29 +
    3.30 +%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    3.31 +
    3.32 +\frame{
    3.33 +  \titlepage
    3.34 +}
    3.35 +
    3.36 +
    3.37 +
    3.38 +
    3.39 +
    3.40 +\section[Outline]{}
    3.41 +\frame{
    3.42 +  \tableofcontents
    3.43 +}
    3.44 +
    3.45 +
    3.46 +
    3.47 +
    3.48 +\section{Andere Arten von Mustern}
    3.49 +
    3.50 +
    3.51 +\frame{ \frametitle{Andere Arten von Mustern}
    3.52 +
    3.53 +  \begin{block}{Andere Arten von Mustern}
    3.54 +    \begin{itemize}
    3.55 +      \item Gang of Four motivieren viele Autoren zu weiteren Veröffentlichungen
    3.56 +      \item Problematik: ein Muster lässt sich nicht mehr ohne weiteres als Entwurfsmuster klassifizieren
    3.57 +      \item Es entstanden mehrere Arten von Mustern
    3.58 +    \end{itemize}
    3.59 +  \end{block}
    3.60 +
    3.61 +}
    3.62 +
    3.63 +
    3.64 +\section{Beispiele anderer Muster}
    3.65 +
    3.66 +\frame{ \frametitle{Beispiele anderer Muster}
    3.67 +
    3.68 +  \begin{block}{Architekturmuster}
    3.69 +    \begin{itemize}
    3.70 +      \item beschreiben typische Software-Architekturen
    3.71 +      \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung
    3.72 +      \item Lässt sich in 4 verschiedene Kategorien einteilen
    3.73 +      \begin{itemize}
    3.74 +        \item Mud-to-structure: hilft die Unmengen von Komponenten und Objekten eines Softwaresystems zu organisieren.
    3.75 +        \item Verteilte Systeme: unterstützten die Verwendung verteilter Ressourcen und Dienste in Netzwerken
    3.76 +        \item Interaktive Systeme: helfen Mensch-Computer-Interaktionen zu strukturieren
    3.77 +        \item Adaptive Systeme: unterstützen besonders die Erweiterungs- und Anpassungsfähigkeit von Softwaresystemen.
    3.78 +      \end{itemize}
    3.79 +    \end{itemize}
    3.80 +  \end{block}
    3.81 +
    3.82 +}
    3.83 +
    3.84 +
    3.85 +\section{Idom}
    3.86 +
    3.87 +\frame{ \frametitle{Idom}
    3.88 +
    3.89 +  \begin{block}{Definition}
    3.90 +    \begin{itemize}
    3.91 +      \item Beschreibt konkrete Implementierung eines Entwurfsmusters
    3.92 +      \item ist programmiersprachenspezifisch
    3.93 +    \end{itemize}
    3.94 +  \end{block}
    3.95 +
    3.96 +  \begin{block}{Anwendung}
    3.97 +    \begin{itemize}
    3.98 +      \item Konkrete Implementierung eines Entwurfsmusters.
    3.99 +      \item Programmierkonventionen (Codeformatierung, Namenskonventionen, Kommentar Formatierung, usw.)
   3.100 +      \item Typische Lösungsansätze für Probleme die durch die Programmiersprache nicht direkt unterstützt werden (Speicherverwaltung)
   3.101 +    \end{itemize}
   3.102 +  \end{block}
   3.103 +
   3.104 +}
   3.105 +
   3.106 +
   3.107 +\section{Weitere Beispiele}
   3.108 +
   3.109 +\frame{ \frametitle{Weitere Beispiele}
   3.110 +
   3.111 +  \begin{block}{Weitere Beispiele}
   3.112 +    \begin{itemize}
   3.113 +      \item Analysemuster \\ (beschreiben typische Fälle der Anforderungsanalyse)
   3.114 +      \item Kommunikationsmuster \\ (beschreiben Kommunikationswege zwischen Personen einer Organisation)
   3.115 +      \item Organisationsmuster \\ (beschreiben Elemente der Strukturen von Organisationen)
   3.116 +    \end{itemize}
   3.117 +  \end{block}
   3.118 +
   3.119 +}
   3.120 +
   3.121 +
   3.122 +\section{Tipps zur Anwendung}
   3.123 +
   3.124 +\frame{ \frametitle{Tipps zur Anwendung}
   3.125 +
   3.126 +  \begin{block}{}
   3.127 +    \begin{itemize}
   3.128 +      \item 
   3.129 +      \item 
   3.130 +      \item 
   3.131 +    \end{itemize}
   3.132 +  \end{block}
   3.133 +
   3.134 +}
   3.135 +
   3.136 +
   3.137 +
   3.138 +\section{Zusammenfassung}
   3.139 +\frame{ %\frametitle{Zusammenfassend}
   3.140 +  \begin{block}{Zusammenfassung}
   3.141 +  \begin{itemize}
   3.142 +    \item 
   3.143 +    \item 
   3.144 +    \item 
   3.145 +  \end{itemize}
   3.146 +  \end{block}
   3.147 +
   3.148 +  \pause
   3.149 +
   3.150 +  \begin{block}{Fazit}
   3.151 +    \begin{itemize}
   3.152 +      \item 
   3.153 +      \item 
   3.154 +      \item 
   3.155 +    \end{itemize}
   3.156 +  \end{block}
   3.157 +}
   3.158 +
   3.159 +
   3.160 +\end{document}
   3.161 +
   3.162 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/03_observer.tex	Thu Jun 21 10:46:57 2007 +0200
     4.3 @@ -0,0 +1,446 @@
     4.4 +% @file
     4.5 +% @brief   Referat DesignPatterns `Observer'
     4.6 +% @author  markus schnalke <meillo@marmaro.de>
     4.7 +% @since   2007-05-30
     4.8 +
     4.9 +
    4.10 +\documentclass{beamer}
    4.11 +
    4.12 +
    4.13 +%  \usepackage[T1]{fontenc}
    4.14 +  \usepackage[utf8]{inputenc}
    4.15 +  \usepackage{ngerman}
    4.16 +  \usepackage{graphicx}
    4.17 +  \usepackage[automark]{scrpage2}
    4.18 +  \input{Style01}
    4.19 +
    4.20 +
    4.21 +
    4.22 +\begin{document}
    4.23 +
    4.24 +
    4.25 +\title{Design Patterns ``Observer''}
    4.26 +\date{}
    4.27 +
    4.28 +\author{Markus Schnalke}
    4.29 +
    4.30 +%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    4.31 +
    4.32 +\frame{
    4.33 +  \titlepage
    4.34 +}
    4.35 +
    4.36 +
    4.37 +
    4.38 +
    4.39 +
    4.40 +\section[Outline]{}
    4.41 +\frame{
    4.42 +  \tableofcontents
    4.43 +}
    4.44 +
    4.45 +
    4.46 +
    4.47 +
    4.48 +\section{Vorgehensweise}
    4.49 +
    4.50 +\frame{ \frametitle{Von der anderen Seite}
    4.51 +
    4.52 +  \begin{block}{Gründe}
    4.53 +    Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
    4.54 +    Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
    4.55 +  \end{block}
    4.56 +  \pause
    4.57 +  \begin{block}{Meine Vorgehensweise}
    4.58 +    Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass
    4.59 +    das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
    4.60 +    bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
    4.61 +    sollte.
    4.62 +  \end{block}
    4.63 +
    4.64 +  % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
    4.65 +
    4.66 +}
    4.67 +
    4.68 +
    4.69 +\section{Erarbeitung des Observers}
    4.70 +
    4.71 +\frame{ \frametitle{Ein Beispiel}
    4.72 +
    4.73 +  \begin{block}{Die Situation}
    4.74 +    \begin{itemize}
    4.75 +      \item Personen die verkaufen möchten
    4.76 +      \item Personen die kaufen möchten
    4.77 +      \item Sie wollen/sollen sich nicht kennen
    4.78 +      \item Möglichst effektives Vorgehen
    4.79 +    \end{itemize}
    4.80 +  \end{block}
    4.81 +  \pause
    4.82 +  \begin{block}{Vorschläge?}
    4.83 +    \begin{itemize}
    4.84 +      \item 
    4.85 +      \item 
    4.86 +    \end{itemize}
    4.87 +  \end{block}
    4.88 +
    4.89 +}
    4.90 +
    4.91 +
    4.92 +\subsection{Ansatz}
    4.93 +\frame{ \frametitle{Ansatz}
    4.94 +
    4.95 +  \begin{block}{Mögliche Vorgehen}
    4.96 +  \begin{itemize}
    4.97 +    \item Personen direkt ansprechen
    4.98 +    \item Laut in die Menge rufen
    4.99 +    \item Den Freunden erzählen, die es dann weitererzählen
   4.100 +  \end{itemize}
   4.101 +  \end{block}
   4.102 +
   4.103 +  \pause
   4.104 +
   4.105 +  \begin{block}{Probleme}
   4.106 +    \begin{itemize}
   4.107 +      \item Man weiß nicht wer Interesse hat
   4.108 +      \item nicht mal wieviele
   4.109 +      \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
   4.110 +      \item ... oder sie sind taub
   4.111 +    \end{itemize}
   4.112 +  \end{block}
   4.113 +
   4.114 +}
   4.115 +
   4.116 +
   4.117 +
   4.118 +\subsection{Erarbeitung einer Lösung}
   4.119 +
   4.120 +\frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
   4.121 +
   4.122 +  \begin{block}{Funktionsweise}
   4.123 +  \begin{itemize}
   4.124 +    \item Man kann Zettel anpinnen
   4.125 +    \item Hingehen und nach neuen Zetteln schauen
   4.126 +    \item Zettel lesen
   4.127 +    \item Zettel abnehmen
   4.128 +    \item Jeder der ein paar Fähigkeiten hat kann es
   4.129 +  \end{itemize}
   4.130 +  \end{block}
   4.131 +
   4.132 +  \pause
   4.133 +
   4.134 +  \begin{block}{Probleme}
   4.135 +    \begin{itemize}
   4.136 +      \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
   4.137 +      \item Man kann wichtige Zettel verpassen
   4.138 +      \item Zettel sollten nicht weggenommen werden können
   4.139 +    \end{itemize}
   4.140 +  \end{block}
   4.141 +
   4.142 +}
   4.143 +
   4.144 +
   4.145 +
   4.146 +
   4.147 +\frame{ \frametitle{Verbesserung: Pinnwand-Sekretärin}
   4.148 +
   4.149 +  \begin{block}{Lösung}
   4.150 +  \begin{itemize}
   4.151 +    \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
   4.152 +    \item Pinnwand und Sekretärin sind fortan eine Einheit
   4.153 +    \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
   4.154 +    \item (Sie schreibt mit lesbarer Schrift)
   4.155 +    \item Sie verhindert, dass Zettel abgenommen werden
   4.156 +  \end{itemize}
   4.157 +  \end{block}
   4.158 +
   4.159 +  \pause
   4.160 +
   4.161 +  \begin{block}{Bestehendes Problem}
   4.162 +    \begin{itemize}
   4.163 +      \item Man läuft immer noch oft unnötig zur Pinnwand
   4.164 +    \end{itemize}
   4.165 +  \end{block}
   4.166 +
   4.167 +}
   4.168 +
   4.169 +
   4.170 +\frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
   4.171 +
   4.172 +  \begin{block}{Lösung}
   4.173 +  \begin{itemize}
   4.174 +    \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
   4.175 +    \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
   4.176 +    \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
   4.177 +    \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
   4.178 +  \end{itemize}
   4.179 +  \end{block}
   4.180 +
   4.181 +}
   4.182 +
   4.183 +
   4.184 +\subsection{Zusammenfassung}
   4.185 +
   4.186 +% Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
   4.187 +% Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
   4.188 +\frame{ \frametitle{Zusammenfassung des Beispiels}
   4.189 +
   4.190 +  \begin{block}{Pinnwand + Sekretärin + Benachrichtigung}
   4.191 +    \begin{itemize}
   4.192 +      \item Man kann neue Zettel anpinnen lassen
   4.193 +      \item Man kann sich als Interessierter anmelden (und auch abmelden)
   4.194 +      \item Interessierte werden bei Änderungen der Pinnwand benachrichtigt
   4.195 +      \item Sie können dann zur Pinnwand gehen und sie sich anschauen
   4.196 +    \end{itemize}
   4.197 +  \end{block}
   4.198 +
   4.199 +  \pause
   4.200 +
   4.201 +  \begin{block}{Eure Meinung?}
   4.202 +    \begin{itemize}
   4.203 +      \item Ist diese Struktur zufriedenstellend?
   4.204 +      \item Erfüllt sie alle Anforderungen?
   4.205 +      \item Was fehlt?
   4.206 +    \end{itemize}
   4.207 +  \end{block}
   4.208 +
   4.209 +}
   4.210 +
   4.211 +
   4.212 +
   4.213 +
   4.214 +
   4.215 +
   4.216 +\section{Nun zum Pattern}
   4.217 +
   4.218 +
   4.219 +\frame{ \frametitle{Überleitung}
   4.220 +
   4.221 +  \begin{block}{Neue Namen}
   4.222 +    \begin{itemize}
   4.223 +      \item Pinnwand-Sekretärin-Einheit $\rightarrow$ ``Subject''
   4.224 +      \item Die Zettel auf der Pinnwand $\rightarrow$ ``subjectState''
   4.225 +      \item Interessenten $\rightarrow$ ``Observers''
   4.226 +    \end{itemize}
   4.227 +  \end{block}
   4.228 +
   4.229 +  \pause
   4.230 +
   4.231 +  \begin{block}{Schnittstellen}
   4.232 +    Die Fähigkeiten der Pinnwand/Sekretärin und Interessenten sind ihre ``Interfaces''.
   4.233 +  \end{block}
   4.234 +
   4.235 +}
   4.236 +
   4.237 +
   4.238 +\frame { \frametitle{Struktur-Diagramm des Observers}
   4.239 +  \centerline{ \includegraphics[width=20em]{pics/observer_big.png} }
   4.240 +}
   4.241 +
   4.242 +
   4.243 +\frame { \frametitle{Interaktions-Diagramm des Observers}
   4.244 +  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
   4.245 +}
   4.246 +
   4.247 +
   4.248 +% Daten aus der Beschreibung des Observers von GoF
   4.249 +% in welche Gruppen wird er eingeordnet
   4.250 +%\frame{ \frametitle{Beschreibung des Observers}
   4.251 +%
   4.252 +%  \begin{block}{Klassifizierung}
   4.253 +%    Verhaltensmuster, objektbasierend
   4.254 +%  \end{block}
   4.255 +%
   4.256 +%  \begin{block}{Auch bekannt als}
   4.257 +%    Publish-Subscribe, Dependents
   4.258 +%  \end{block}
   4.259 +%
   4.260 +%  \begin{block}{Zweck}
   4.261 +%    Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
   4.262 +%    % todo: besser formulieren
   4.263 +%  \end{block}
   4.264 +%
   4.265 +%  \begin{block}{Kurzbeschreibung}
   4.266 +%    Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
   4.267 +%    werden können, und um die abhängigen Objekte über Zustandsänderungen zu
   4.268 +%    informieren.
   4.269 +%    % todo: Formulierung überdenken
   4.270 +%  \end{block}
   4.271 +%
   4.272 +%}
   4.273 +
   4.274 +
   4.275 +\subsection{Beispiele}
   4.276 +% Einsatzgebiete (MVC) und RL (Mailingslisten, Ebay-Suchabo)
   4.277 +% nicht aber (Blog + RSS)
   4.278 +\frame{ \frametitle{Der Observer in der Praxis}
   4.279 +
   4.280 +  \begin{block}{Beispiele}
   4.281 +    \begin{itemize}
   4.282 +      \item Observer ist sehr verbreitet
   4.283 +      \item v.a. MVC (Model = Subject; View = Observer)
   4.284 +      \item Mailinglisten
   4.285 +      \item Ebay Such-Abo
   4.286 +    \end{itemize}
   4.287 +  \end{block}
   4.288 +
   4.289 +  \pause
   4.290 +
   4.291 +  \begin{block}{Aber}
   4.292 +    \begin{itemize}
   4.293 +      \item nicht Blog mit RSS-Feed!
   4.294 +    \end{itemize}
   4.295 +  \end{block}
   4.296 +
   4.297 +}
   4.298 +
   4.299 +
   4.300 +\subsection{Erweiterungen}
   4.301 +% Erweiterungen, verbleibende Probleme, Kompromisse beim Design
   4.302 +\frame{ \frametitle{Mögliche Erweiterungen}
   4.303 +
   4.304 +  \begin{block}{Ein Observer und mehrere Subjects}
   4.305 +    \begin{itemize}
   4.306 +      \item Der Name des Subjects muss mitgesendet werden.
   4.307 +    \end{itemize}
   4.308 +  \end{block}
   4.309 +
   4.310 +  \begin{block}{Nur für bestimmte Informationen anmelden}
   4.311 +    \begin{itemize}
   4.312 +      \item Oberservers melden sich nur für bestimmte Informationen an
   4.313 +      \item Es werden weniger uninteressante Updates gesendet
   4.314 +    \end{itemize}
   4.315 +  \end{block}
   4.316 +
   4.317 +  \begin{block}{UpdateManager}
   4.318 +    \begin{itemize}
   4.319 +      \item Bei komplexen Update-Zusammenhängen empfehlenswert
   4.320 +      \item vermittelt zwischen Subject und Observer
   4.321 +      \item Mehr dazu in der Ausarbeitung
   4.322 +    \end{itemize}
   4.323 +  \end{block}
   4.324 +
   4.325 +}
   4.326 +
   4.327 +
   4.328 +%\frame{ \frametitle{Wer ruft notify() auf?}
   4.329 +%
   4.330 +%  \begin{block}{Das Subject}
   4.331 +%    \begin{itemize}
   4.332 +%      \item[+] notify() wird sicher bei jedem setState() aufgerufen
   4.333 +%      \item[-] hohe Update-Kosten bei Änderungen en-block
   4.334 +%    \end{itemize}
   4.335 +%  \end{block}
   4.336 +%
   4.337 +%  \begin{block}{Der Observer}
   4.338 +%    \begin{itemize}
   4.339 +%      \item[+] intelligenter Zeitpunkt des notify()-Aufrufs möglich
   4.340 +%      \item[-] der Client darf den notify()-Aufruf nicht vergessen
   4.341 +%    \end{itemize}
   4.342 +%  \end{block}
   4.343 +%
   4.344 +%}
   4.345 +
   4.346 +
   4.347 +
   4.348 +\subsection{Code}
   4.349 +% Kein Code!
   4.350 +\frame{ \frametitle{Code? --- Nein, kein Code!}
   4.351 +
   4.352 +  \begin{block}{Denn}
   4.353 +    \begin{center}
   4.354 +    \textbf{ Implementierungen sind Schall und Rauch,\\
   4.355 +    Konzepte dagegen bleiben bestehen!  }
   4.356 +    \end{center}
   4.357 +  \end{block}
   4.358 +
   4.359 +  \vspace{4ex}
   4.360 +  {\scriptsize 
   4.361 +  \begin{block}{Aber}
   4.362 +    Beispiel-Implementierung in der Ausarbeitung.
   4.363 +  \end{block}
   4.364 +  }
   4.365 +
   4.366 +}
   4.367 +
   4.368 +
   4.369 +
   4.370 +\section{Zusammenfassung}
   4.371 +\frame{ %\frametitle{Zusammenfassend}
   4.372 +  \begin{block}{Zusammenfassung}
   4.373 +  \begin{itemize}
   4.374 +    \item 
   4.375 +    \item 
   4.376 +    \item 
   4.377 +  \end{itemize}
   4.378 +  \end{block}
   4.379 +
   4.380 +  \pause
   4.381 +
   4.382 +  \begin{block}{Fazit}
   4.383 +    \begin{itemize}
   4.384 +      \item 
   4.385 +      \item 
   4.386 +      \item 
   4.387 +    \end{itemize}
   4.388 +  \end{block}
   4.389 +}
   4.390 +
   4.391 +
   4.392 +%\section{Fragen}
   4.393 +%\frame{ \frametitle{Fragen?}
   4.394 +%  \vspace{5ex}
   4.395 +%  \centerline{\huge ?}
   4.396 +%}
   4.397 +
   4.398 +
   4.399 +% Erklaerung des Vorgehens
   4.400 +% Frage: war es erfolgreich?
   4.401 +%\frame{ \frametitle{}
   4.402 +%
   4.403 +%  \begin{block}{}
   4.404 +%  \end{block}
   4.405 +%
   4.406 +%}
   4.407 +
   4.408 +
   4.409 +%\frame{ \frametitle{Abschließend}
   4.410 +%  \begin{block}{Verwendete Software}
   4.411 +%  \begin{itemize}
   4.412 +%    \item Debian GNU/Linux
   4.413 +%    \item \LaTeX-Beamer und \texttt{pdflatex}
   4.414 +%    \item Vim
   4.415 +%    \item qiv und ImageMagick
   4.416 +%    \item Mercurial
   4.417 +%  \end{itemize}
   4.418 +%  \end{block}
   4.419 +%
   4.420 +%  \begin{block}{}
   4.421 +%    \vspace{3ex}
   4.422 +%    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
   4.423 +%  \end{block}
   4.424 +%}
   4.425 +
   4.426 +
   4.427 +% Code (Beispiel-Implementierung)
   4.428 +
   4.429 +
   4.430 +
   4.431 +
   4.432 +
   4.433 +
   4.434 +%\input{main2.tex}
   4.435 +
   4.436 +
   4.437 +\end{document}
   4.438 +
   4.439 +
   4.440 +
   4.441 +
   4.442 +
   4.443 +
   4.444 +%\subsubsection{Fehlteilmanagement}
   4.445 +%\frame{ \frametitle{Fehlteilmanagement}
   4.446 +%  %\includegraphics[width=10cm]{Pics/cc.png}
   4.447 +%}
   4.448 +
   4.449 +% \vspace{2ex}
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/04_composite.tex	Thu Jun 21 10:46:57 2007 +0200
     5.3 @@ -0,0 +1,133 @@
     5.4 +% @file
     5.5 +% @brief   Referat DesignPatterns `Composite'
     5.6 +% @author  dimitar dimitrov
     5.7 +% @since   2007-06-18
     5.8 +
     5.9 +
    5.10 +\documentclass{beamer}
    5.11 +
    5.12 +
    5.13 +  \usepackage[T1]{fontenc}
    5.14 +  \usepackage[latin1]{inputenc}
    5.15 +  \usepackage{ngerman}
    5.16 +  \usepackage{graphicx}
    5.17 +  \usepackage[automark]{scrpage2}
    5.18 +  \usepackage{listings}
    5.19 +  \input{Style01}
    5.20 +
    5.21 +
    5.22 +
    5.23 +\begin{document}
    5.24 +
    5.25 +
    5.26 +\title{Design Patterns ``Composite''}
    5.27 +\date{\today}
    5.28 +
    5.29 +\author{Dimitar Dimitrov}
    5.30 +
    5.31 +%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    5.32 +
    5.33 +\frame{
    5.34 +  \titlepage
    5.35 +}
    5.36 +
    5.37 +
    5.38 +
    5.39 +
    5.40 +
    5.41 +\section[Outline]{}
    5.42 +\frame{ \frametitle{Outline}
    5.43 +  \tableofcontents
    5.44 +}
    5.45 +
    5.46 +
    5.47 +
    5.48 +
    5.49 +\section{Definition}
    5.50 +
    5.51 +\frame{ \frametitle{Definition}
    5.52 +
    5.53 +  \begin{block}{}
    5.54 +  \end{block}
    5.55 +
    5.56 +}
    5.57 +
    5.58 +
    5.59 +\section{Motivation}
    5.60 +
    5.61 +\frame{ \frametitle{Motivation}
    5.62 +
    5.63 +  \begin{block}{}
    5.64 +  \end{block}
    5.65 +
    5.66 +}
    5.67 +
    5.68 +
    5.69 +\section{Wann verwenden?}
    5.70 +\frame{ \frametitle{Wann verwenden?}
    5.71 +
    5.72 +  \begin{block}{}
    5.73 +  \end{block}
    5.74 +
    5.75 +}
    5.76 +
    5.77 +
    5.78 +
    5.79 +\section{Struktur}
    5.80 +
    5.81 +\frame{ \frametitle{UML-Diagramm des Composite-Pattern}
    5.82 +  \centerline{ \includegraphics[width=20em]{pics/composite_big.png} }
    5.83 +}
    5.84 +
    5.85 +
    5.86 +
    5.87 +
    5.88 +
    5.89 +\section{Java-Beispiel}
    5.90 +\subsection{main, IComponent}
    5.91 +\frame{ \frametitle{class Main, interface IComponent}
    5.92 +
    5.93 +  {\tiny
    5.94 +    \lstinputlisting[language=java]{code/composite-main.java}
    5.95 +    \lstinputlisting[language=java]{code/composite-icomponent.java}
    5.96 +  }
    5.97 +
    5.98 +}
    5.99 +
   5.100 +
   5.101 +\subsection{Composite}
   5.102 +\frame{ \frametitle{class Composite}
   5.103 +
   5.104 +  {\tiny
   5.105 +    \lstinputlisting[language=java]{code/composite-composite.java}
   5.106 +  }
   5.107 +
   5.108 +}
   5.109 +
   5.110 +
   5.111 +\subsection{Leaf}
   5.112 +\frame{ \frametitle{class Leaf}
   5.113 +
   5.114 +  {\tiny
   5.115 +    \lstinputlisting[language=java]{code/composite-leaf.java}
   5.116 +  }
   5.117 +
   5.118 +}
   5.119 +
   5.120 +
   5.121 +
   5.122 +
   5.123 +\section{Zusammenfassung}
   5.124 +\frame{ %\frametitle{Zusammenfassend}
   5.125 +  \begin{block}{Zusammenfassung}
   5.126 +  \begin{itemize}
   5.127 +    \item 
   5.128 +    \item 
   5.129 +    \item 
   5.130 +  \end{itemize}
   5.131 +  \end{block}
   5.132 +}
   5.133 +
   5.134 +
   5.135 +
   5.136 +\end{document}
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/05_antiPatterns.tex	Thu Jun 21 10:46:57 2007 +0200
     6.3 @@ -0,0 +1,110 @@
     6.4 +% @file
     6.5 +% @brief   Referat DesignPatterns `Anti-Patterns'
     6.6 +% @author  Julian Haug
     6.7 +% @since   2007-06-21
     6.8 +
     6.9 +
    6.10 +\documentclass{beamer}
    6.11 +
    6.12 +
    6.13 +%  \usepackage[T1]{fontenc}
    6.14 +  \usepackage[utf8]{inputenc}
    6.15 +  \usepackage{ngerman}
    6.16 +  \usepackage{graphicx}
    6.17 +  \usepackage[automark]{scrpage2}
    6.18 +  \input{Style01}
    6.19 +
    6.20 +
    6.21 +
    6.22 +\begin{document}
    6.23 +
    6.24 +
    6.25 +\title{Design Patterns ``Anti-Patterns''}
    6.26 +\date{}
    6.27 +
    6.28 +%\author{Julian Haug}
    6.29 +
    6.30 +%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    6.31 +
    6.32 +\frame{
    6.33 +  \titlepage
    6.34 +}
    6.35 +
    6.36 +
    6.37 +
    6.38 +
    6.39 +
    6.40 +\section[Outline]{}
    6.41 +\frame{
    6.42 +  \tableofcontents
    6.43 +}
    6.44 +
    6.45 +
    6.46 +
    6.47 +
    6.48 +\section{Anti-Patterns}
    6.49 +
    6.50 +
    6.51 +\frame{ \frametitle{Anti-Patterns}
    6.52 +
    6.53 +  \begin{block}{Dokumentieren wiederkehrende Fehler bei der Software-Entwicklung um}
    6.54 +    \begin{itemize}
    6.55 +      \item durch das Wissen ihrer Existenz diese zu vermeiden
    6.56 +      \item bereits manifestierte Anti-Pattern durch geschickte Maßnahmen zu beheben
    6.57 +    \end{itemize}
    6.58 +  \end{block}
    6.59 +
    6.60 +    \pause
    6.61 +
    6.62 +  \begin{block}{Analog zu positiven Mustern gibt es auch hier eine weitere Unterscheidung}
    6.63 +    \begin{itemize}
    6.64 +      \item Projektmanagement-Anti-Patterns
    6.65 +      \item Architektur- bzw. Design-Anti- Patterns
    6.66 +      \item Meta-Patterns
    6.67 +      \item Organisations-, Prozess- Anti-Patterns
    6.68 +      \item \textbf{Programmierungs-Anti-Patterns}
    6.69 +    \end{itemize}
    6.70 +  \end{block}
    6.71 +
    6.72 +}
    6.73 +
    6.74 +
    6.75 +\frame{ \frametitle{Programmierungs-Anti-Patterns}
    6.76 +
    6.77 +  \begin{block}{}
    6.78 +    \begin{itemize}
    6.79 +      \item 
    6.80 +      \item 
    6.81 +    \end{itemize}
    6.82 +  \end{block}
    6.83 +
    6.84 +}
    6.85 +
    6.86 +
    6.87 +
    6.88 +\section{Zusammenfassung}
    6.89 +\frame{ %\frametitle{Zusammenfassend}
    6.90 +  \begin{block}{Zusammenfassung}
    6.91 +  \begin{itemize}
    6.92 +    \item 
    6.93 +    \item 
    6.94 +    \item 
    6.95 +  \end{itemize}
    6.96 +  \end{block}
    6.97 +
    6.98 +  \pause
    6.99 +
   6.100 +  \begin{block}{Fazit}
   6.101 +    \begin{itemize}
   6.102 +      \item 
   6.103 +      \item 
   6.104 +      \item 
   6.105 +    \end{itemize}
   6.106 +  \end{block}
   6.107 +}
   6.108 +
   6.109 +
   6.110 +
   6.111 +\end{document}
   6.112 +
   6.113 +
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/09_zusammenfassung.tex	Thu Jun 21 10:46:57 2007 +0200
     7.3 @@ -0,0 +1,113 @@
     7.4 +% @file
     7.5 +% @brief   Referat DesignPatterns `Zusammanfassung'
     7.6 +% @author  alle
     7.7 +% @since   2007-06-21
     7.8 +
     7.9 +
    7.10 +\documentclass{beamer}
    7.11 +
    7.12 +
    7.13 +%  \usepackage[T1]{fontenc}
    7.14 +  \usepackage[utf8]{inputenc}
    7.15 +  \usepackage{ngerman}
    7.16 +  \usepackage{graphicx}
    7.17 +  \usepackage[automark]{scrpage2}
    7.18 +  \input{Style01}
    7.19 +
    7.20 +
    7.21 +
    7.22 +\begin{document}
    7.23 +
    7.24 +
    7.25 +\title{Zusammenfassung}
    7.26 +\date{}
    7.27 +\author{}
    7.28 +
    7.29 +%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    7.30 +
    7.31 +\frame{
    7.32 +  \titlepage
    7.33 +}
    7.34 +
    7.35 +
    7.36 +
    7.37 +
    7.38 +
    7.39 +
    7.40 +
    7.41 +
    7.42 +\section{Schlusssätze}
    7.43 +\frame{ %\frametitle{Zusammenfassend}
    7.44 +  \begin{block}{Einleitung}
    7.45 +    \begin{itemize}
    7.46 +      \item 
    7.47 +      \item 
    7.48 +    \end{itemize}
    7.49 +  \end{block}
    7.50 +  \pause
    7.51 +
    7.52 +  \begin{block}{Andere Patterns}
    7.53 +    \begin{itemize}
    7.54 +      \item 
    7.55 +      \item 
    7.56 +    \end{itemize}
    7.57 +  \end{block}
    7.58 +  \pause
    7.59 +
    7.60 +  \begin{block}{Composite-Pattern}
    7.61 +    \begin{itemize}
    7.62 +      \item 
    7.63 +      \item 
    7.64 +    \end{itemize}
    7.65 +  \end{block}
    7.66 +  \pause
    7.67 +
    7.68 +  \begin{block}{Observer-Pattern}
    7.69 +    \begin{itemize}
    7.70 +      \item 
    7.71 +      \item 
    7.72 +    \end{itemize}
    7.73 +  \end{block}
    7.74 +}
    7.75 +
    7.76 +
    7.77 +
    7.78 +\section{Fragen}
    7.79 +\frame{ \frametitle{Fragen?}
    7.80 +  \vspace{5ex}
    7.81 +  \centerline{\Huge ? }
    7.82 +}
    7.83 +
    7.84 +
    7.85 +%% Erklaerung des Vorgehens
    7.86 +%% Frage: war es erfolgreich?
    7.87 +%\frame{ \frametitle{}
    7.88 +%
    7.89 +%  \begin{block}{}
    7.90 +%  \end{block}
    7.91 +%
    7.92 +%}
    7.93 +
    7.94 +
    7.95 +\frame{ \frametitle{Abschließend}
    7.96 +  \begin{block}{Verwendete Software}
    7.97 +  \begin{itemize}
    7.98 +    \item Debian GNU/Linux
    7.99 +    \item \LaTeX-Beamer und \texttt{pdflatex}
   7.100 +    \item Vim
   7.101 +    \item qiv und ImageMagick
   7.102 +    \item Mercurial
   7.103 +  \end{itemize}
   7.104 +  \end{block}
   7.105 +
   7.106 +  \begin{block}{}
   7.107 +    \vspace{3ex}
   7.108 +    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
   7.109 +  \end{block}
   7.110 +}
   7.111 +
   7.112 +
   7.113 +
   7.114 +\end{document}
   7.115 +
   7.116 +
     8.1 --- a/Makefile	Thu Jun 21 08:23:04 2007 +0200
     8.2 +++ b/Makefile	Thu Jun 21 10:46:57 2007 +0200
     8.3 @@ -27,6 +27,6 @@
     8.4  
     8.5  clean:
     8.6  	echo 'cleaning ...'
     8.7 -	rm *.{aux,lof,log,lot,nav,out,snm,toc}
     8.8 +	rm *.{aux,lof,log,lot,nav,out,snm,toc} 2> /dev/null
     8.9  
    8.10 -.PHONY: all xpdf
    8.11 +.PHONY: all xpdf clean
     9.1 --- a/andereMuster.tex	Thu Jun 21 08:23:04 2007 +0200
     9.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3 @@ -1,151 +0,0 @@
     9.4 -% @file
     9.5 -% @brief   Referat DesignPatterns `Andere Muster'
     9.6 -% @author  Julian Haug
     9.7 -% @since   2007-06-21
     9.8 -
     9.9 -
    9.10 -\documentclass{beamer}
    9.11 -
    9.12 -
    9.13 -%  \usepackage[T1]{fontenc}
    9.14 -  \usepackage[utf8]{inputenc}
    9.15 -  \usepackage{ngerman}
    9.16 -  \usepackage{graphicx}
    9.17 -  \usepackage[automark]{scrpage2}
    9.18 -  \input{Style01}
    9.19 -
    9.20 -
    9.21 -
    9.22 -\begin{document}
    9.23 -
    9.24 -
    9.25 -\title{Design Patterns ``Andere Muster''}
    9.26 -\date{\today}
    9.27 -
    9.28 -\author{Julian Haug}
    9.29 -
    9.30 -%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    9.31 -
    9.32 -\frame{
    9.33 -  \titlepage
    9.34 -}
    9.35 -
    9.36 -
    9.37 -
    9.38 -
    9.39 -
    9.40 -\section[Outline]{}
    9.41 -\frame{
    9.42 -  \tableofcontents
    9.43 -}
    9.44 -
    9.45 -
    9.46 -
    9.47 -
    9.48 -\section{Andere Arten von Mustern}
    9.49 -
    9.50 -
    9.51 -\frame{ \frametitle{Andere Arten von Mustern}
    9.52 -
    9.53 -  \begin{block}{Andere Arten von Mustern}
    9.54 -    \begin{itemize}
    9.55 -      \item Gang of Four motivieren viele Autoren zu weiteren Veröffentlichungen
    9.56 -      \item Problematik: ein Muster lässt sich nicht mehr ohne weiteres als Entwurfsmuster klassifizieren
    9.57 -      \item Es entstanden mehrere Arten von Mustern
    9.58 -    \end{itemize}
    9.59 -  \end{block}
    9.60 -
    9.61 -}
    9.62 -
    9.63 -
    9.64 -\frame{ \frametitle{Beispiele anderer Muster}
    9.65 -
    9.66 -  \begin{block}{Architekturmuster}
    9.67 -    \begin{itemize}
    9.68 -      \item beschreiben typische Software-Architekturen
    9.69 -      \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung
    9.70 -      \item Lässt sich in 4 verschiedene Kategorien einteilen
    9.71 -      \begin{itemize}
    9.72 -        \item Mud-to-structure: hilft die Unmengen von Komponenten und Objekten eines Softwaresystems zu organisieren.
    9.73 -        \item Verteilte Systeme: unterstützten die Verwendung verteilter Ressourcen und Dienste in Netzwerken
    9.74 -        \item Interaktive Systeme: helfen Mensch-Computer-Interaktionen zu strukturieren
    9.75 -        \item Adaptive Systeme: unterstützen besonders die Erweiterungs- und Anpassungsfähigkeit von Softwaresystemen.
    9.76 -      \end{itemize}
    9.77 -    \end{itemize}
    9.78 -  \end{block}
    9.79 -
    9.80 -}
    9.81 -
    9.82 -
    9.83 -\frame{ \frametitle{Idom}
    9.84 -
    9.85 -  \begin{block}{Definition}
    9.86 -    \begin{itemize}
    9.87 -      \item Beschreibt konkrete Implementierung eines Entwurfsmusters
    9.88 -      \item ist programmiersprachenspezifisch
    9.89 -    \end{itemize}
    9.90 -  \end{block}
    9.91 -
    9.92 -  \begin{block}{Anwendung}
    9.93 -    \begin{itemize}
    9.94 -      \item Konkrete Implementierung eines Entwurfsmusters.
    9.95 -      \item Programmierkonventionen (Codeformatierung, Namenskonventionen, Kommentar Formatierung, usw.)
    9.96 -      \item Typische Lösungsansätze für Probleme die durch die Programmiersprache nicht direkt unterstützt werden (Speicherverwaltung)
    9.97 -    \end{itemize}
    9.98 -  \end{block}
    9.99 -
   9.100 -}
   9.101 -
   9.102 -
   9.103 -\frame{ \frametitle{Weitere Beispiele}
   9.104 -
   9.105 -  \begin{block}{Weitere Beispiele}
   9.106 -    \begin{itemize}
   9.107 -      \item Analysemuster \\ (beschreiben typische Fälle der Anforderungsanalyse)
   9.108 -      \item Kommunikationsmuster \\ (beschreiben Kommunikationswege zwischen Personen einer Organisation)
   9.109 -      \item Organisationsmuster \\ (beschreiben Elemente der Strukturen von Organisationen)
   9.110 -    \end{itemize}
   9.111 -  \end{block}
   9.112 -
   9.113 -}
   9.114 -
   9.115 -
   9.116 -\frame{ \frametitle{Tipps zur Anwendung}
   9.117 -
   9.118 -  \begin{block}{}
   9.119 -    \begin{itemize}
   9.120 -      \item 
   9.121 -      \item 
   9.122 -      \item 
   9.123 -    \end{itemize}
   9.124 -  \end{block}
   9.125 -
   9.126 -}
   9.127 -
   9.128 -
   9.129 -
   9.130 -\section{Zusammenfassung}
   9.131 -\frame{ %\frametitle{Zusammenfassend}
   9.132 -  \begin{block}{Zusammenfassung}
   9.133 -  \begin{itemize}
   9.134 -    \item 
   9.135 -    \item 
   9.136 -    \item 
   9.137 -  \end{itemize}
   9.138 -  \end{block}
   9.139 -
   9.140 -  \pause
   9.141 -
   9.142 -  \begin{block}{Fazit}
   9.143 -    \begin{itemize}
   9.144 -      \item 
   9.145 -      \item 
   9.146 -      \item 
   9.147 -    \end{itemize}
   9.148 -  \end{block}
   9.149 -}
   9.150 -
   9.151 -
   9.152 -\end{document}
   9.153 -
   9.154 -
    10.1 --- a/antiPatterns.tex	Thu Jun 21 08:23:04 2007 +0200
    10.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3 @@ -1,146 +0,0 @@
    10.4 -% @file
    10.5 -% @brief   Referat DesignPatterns `Anti-Patterns'
    10.6 -% @author  Julian Haug
    10.7 -% @since   2007-06-21
    10.8 -
    10.9 -
   10.10 -\documentclass{beamer}
   10.11 -
   10.12 -
   10.13 -%  \usepackage[T1]{fontenc}
   10.14 -  \usepackage[utf8]{inputenc}
   10.15 -  \usepackage{ngerman}
   10.16 -  \usepackage{graphicx}
   10.17 -  \usepackage[automark]{scrpage2}
   10.18 -  \input{Style01}
   10.19 -
   10.20 -
   10.21 -
   10.22 -\begin{document}
   10.23 -
   10.24 -
   10.25 -\title{Design Patterns ``Anti-Patterns''}
   10.26 -\date{\today}
   10.27 -
   10.28 -\author{Julian Haug}
   10.29 -
   10.30 -%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
   10.31 -
   10.32 -\frame{
   10.33 -  \titlepage
   10.34 -}
   10.35 -
   10.36 -
   10.37 -
   10.38 -
   10.39 -
   10.40 -\section[Outline]{}
   10.41 -\frame{
   10.42 -  \tableofcontents
   10.43 -}
   10.44 -
   10.45 -
   10.46 -
   10.47 -
   10.48 -\section{Anti-Patterns}
   10.49 -
   10.50 -
   10.51 -\frame{ \frametitle{Anti-Patterns}
   10.52 -
   10.53 -  \begin{block}{Dokumentieren wiederkehrende Fehler bei der Software-Entwicklung um}
   10.54 -    \begin{itemize}
   10.55 -      \item durch das Wissen ihrer Existenz diese zu vermeiden
   10.56 -      \item bereits manifestierte Anti-Pattern durch geschickte Maßnahmen zu beheben
   10.57 -    \end{itemize}
   10.58 -  \end{block}
   10.59 -
   10.60 -    \pause
   10.61 -
   10.62 -  \begin{block}{Analog zu positiven Mustern gibt es auch hier eine weitere Unterscheidung}
   10.63 -    \begin{itemize}
   10.64 -      \item Projektmanagement-Anti-Patterns
   10.65 -      \item Architektur- bzw. Design-Anti- Patterns
   10.66 -      \item Meta-Patterns
   10.67 -      \item Organisations-, Prozess- Anti-Patterns
   10.68 -      \item \textbf{Programmierungs-Anti-Patterns}
   10.69 -    \end{itemize}
   10.70 -  \end{block}
   10.71 -
   10.72 -}
   10.73 -
   10.74 -
   10.75 -\frame{ \frametitle{Programmierungs-Anti-Patterns}
   10.76 -
   10.77 -  \begin{block}{}
   10.78 -    \begin{itemize}
   10.79 -      \item 
   10.80 -      \item 
   10.81 -    \end{itemize}
   10.82 -  \end{block}
   10.83 -
   10.84 -}
   10.85 -
   10.86 -
   10.87 -
   10.88 -\section{Zusammenfassung}
   10.89 -\frame{ %\frametitle{Zusammenfassend}
   10.90 -  \begin{block}{Zusammenfassung}
   10.91 -  \begin{itemize}
   10.92 -    \item 
   10.93 -    \item 
   10.94 -    \item 
   10.95 -  \end{itemize}
   10.96 -  \end{block}
   10.97 -
   10.98 -  \pause
   10.99 -
  10.100 -  \begin{block}{Fazit}
  10.101 -    \begin{itemize}
  10.102 -      \item 
  10.103 -      \item 
  10.104 -      \item 
  10.105 -    \end{itemize}
  10.106 -  \end{block}
  10.107 -}
  10.108 -
  10.109 -
  10.110 -
  10.111 -\section{Fragen}
  10.112 -\frame{ \frametitle{Fragen?}
  10.113 -  \vspace{5ex}
  10.114 -  \centerline{\huge ?}
  10.115 -}
  10.116 -
  10.117 -
  10.118 -%% Erklaerung des Vorgehens
  10.119 -%% Frage: war es erfolgreich?
  10.120 -%\frame{ \frametitle{}
  10.121 -%
  10.122 -%  \begin{block}{}
  10.123 -%  \end{block}
  10.124 -%
  10.125 -%}
  10.126 -
  10.127 -
  10.128 -\frame{ \frametitle{Abschließend}
  10.129 -  \begin{block}{Verwendete Software}
  10.130 -  \begin{itemize}
  10.131 -    \item Debian GNU/Linux
  10.132 -    \item \LaTeX-Beamer und \texttt{pdflatex}
  10.133 -    \item Vim
  10.134 -    \item qiv und ImageMagick
  10.135 -    \item Mercurial
  10.136 -  \end{itemize}
  10.137 -  \end{block}
  10.138 -
  10.139 -  \begin{block}{}
  10.140 -    \vspace{3ex}
  10.141 -    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
  10.142 -  \end{block}
  10.143 -}
  10.144 -
  10.145 -
  10.146 -
  10.147 -\end{document}
  10.148 -
  10.149 -
    11.1 --- a/composite.tex	Thu Jun 21 08:23:04 2007 +0200
    11.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3 @@ -1,133 +0,0 @@
    11.4 -% @file
    11.5 -% @brief   Referat DesignPattern `Composite'
    11.6 -% @author  dimitar dimitrov
    11.7 -% @since   2007-06-18
    11.8 -
    11.9 -
   11.10 -\documentclass{beamer}
   11.11 -
   11.12 -
   11.13 -  \usepackage[T1]{fontenc}
   11.14 -  \usepackage[latin1]{inputenc}
   11.15 -  \usepackage{ngerman}
   11.16 -  \usepackage{graphicx}
   11.17 -  \usepackage[automark]{scrpage2}
   11.18 -  \usepackage{listings}
   11.19 -  \input{Style01}
   11.20 -
   11.21 -
   11.22 -
   11.23 -\begin{document}
   11.24 -
   11.25 -
   11.26 -\title{Design Pattern ``Composite''}
   11.27 -\date{\today}
   11.28 -
   11.29 -\author{Dimitar Dimitrov}
   11.30 -
   11.31 -%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
   11.32 -
   11.33 -\frame{
   11.34 -  \titlepage
   11.35 -}
   11.36 -
   11.37 -
   11.38 -
   11.39 -
   11.40 -
   11.41 -\section[Outline]{}
   11.42 -\frame{ \frametitle{Outline}
   11.43 -  \tableofcontents
   11.44 -}
   11.45 -
   11.46 -
   11.47 -
   11.48 -
   11.49 -\section{Definition}
   11.50 -
   11.51 -\frame{ \frametitle{Definition}
   11.52 -
   11.53 -  \begin{block}{}
   11.54 -  \end{block}
   11.55 -
   11.56 -}
   11.57 -
   11.58 -
   11.59 -\section{Motivation}
   11.60 -
   11.61 -\frame{ \frametitle{Motivation}
   11.62 -
   11.63 -  \begin{block}{}
   11.64 -  \end{block}
   11.65 -
   11.66 -}
   11.67 -
   11.68 -
   11.69 -\section{Wann verwenden?}
   11.70 -\frame{ \frametitle{Wann verwenden?}
   11.71 -
   11.72 -  \begin{block}{}
   11.73 -  \end{block}
   11.74 -
   11.75 -}
   11.76 -
   11.77 -
   11.78 -
   11.79 -\section{Struktur}
   11.80 -
   11.81 -\frame{ \frametitle{UML-Diagramm des Composite-Pattern}
   11.82 -  \centerline{ \includegraphics[width=20em]{pics/composite_big.png} }
   11.83 -}
   11.84 -
   11.85 -
   11.86 -
   11.87 -
   11.88 -
   11.89 -\section{Java-Beispiel}
   11.90 -\subsection{main, IComponent}
   11.91 -\frame{ \frametitle{class Main, interface IComponent}
   11.92 -
   11.93 -  {\tiny
   11.94 -    \lstinputlisting[language=java]{code/composite-main.java}
   11.95 -    \lstinputlisting[language=java]{code/composite-icomponent.java}
   11.96 -  }
   11.97 -
   11.98 -}
   11.99 -
  11.100 -
  11.101 -\subsection{Composite}
  11.102 -\frame{ \frametitle{class Composite}
  11.103 -
  11.104 -  {\tiny
  11.105 -    \lstinputlisting[language=java]{code/composite-composite.java}
  11.106 -  }
  11.107 -
  11.108 -}
  11.109 -
  11.110 -
  11.111 -\subsection{Leaf}
  11.112 -\frame{ \frametitle{class Leaf}
  11.113 -
  11.114 -  {\tiny
  11.115 -    \lstinputlisting[language=java]{code/composite-leaf.java}
  11.116 -  }
  11.117 -
  11.118 -}
  11.119 -
  11.120 -
  11.121 -
  11.122 -
  11.123 -\section{Zusammenfassung}
  11.124 -\frame{ %\frametitle{Zusammenfassend}
  11.125 -  \begin{block}{Zusammenfassung}
  11.126 -  \begin{itemize}
  11.127 -    \item 
  11.128 -    \item 
  11.129 -    \item 
  11.130 -  \end{itemize}
  11.131 -  \end{block}
  11.132 -}
  11.133 -
  11.134 -
  11.135 -
  11.136 -\end{document}
    12.1 --- a/einleitung.tex	Thu Jun 21 08:23:04 2007 +0200
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,99 +0,0 @@
    12.4 -% @file
    12.5 -% @brief   Referat DesignPatterns `Einleitung'
    12.6 -% @author  Markus Rundel
    12.7 -% @since   2007-06-21
    12.8 -
    12.9 -
   12.10 -\documentclass{beamer}
   12.11 -
   12.12 -
   12.13 -%  \usepackage[T1]{fontenc}
   12.14 -  \usepackage[utf8]{inputenc}
   12.15 -  \usepackage{ngerman}
   12.16 -  \usepackage{graphicx}
   12.17 -  \usepackage[automark]{scrpage2}
   12.18 -  \input{Style01}
   12.19 -
   12.20 -
   12.21 -
   12.22 -\begin{document}
   12.23 -
   12.24 -
   12.25 -\title{Design Patterns ``Einleitung''}
   12.26 -\date{\today}
   12.27 -
   12.28 -\author{Markus Rundel}
   12.29 -
   12.30 -%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
   12.31 -
   12.32 -\frame{
   12.33 -  \titlepage
   12.34 -}
   12.35 -
   12.36 -
   12.37 -
   12.38 -
   12.39 -
   12.40 -\section[Outline]{}
   12.41 -\frame{
   12.42 -  \tableofcontents
   12.43 -}
   12.44 -
   12.45 -
   12.46 -
   12.47 -
   12.48 -\section{Vorgehensweise}
   12.49 -
   12.50 -
   12.51 -\frame{ \frametitle{Ein Beispiel}
   12.52 -
   12.53 -  \begin{block}{Die Situation}
   12.54 -    \begin{itemize}
   12.55 -      \item Personen die verkaufen möchten
   12.56 -      \item Personen die kaufen möchten
   12.57 -      \item Sie wollen/sollen sich nicht kennen
   12.58 -      \item Möglichst effektives Vorgehen
   12.59 -    \end{itemize}
   12.60 -  \end{block}
   12.61 -  \pause
   12.62 -  \begin{block}{Vorschläge?}
   12.63 -    \begin{itemize}
   12.64 -      \item 
   12.65 -      \item 
   12.66 -    \end{itemize}
   12.67 -  \end{block}
   12.68 -
   12.69 -}
   12.70 -
   12.71 -
   12.72 -\frame { \frametitle{Interaktions-Diagramm des Observers}
   12.73 -  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
   12.74 -}
   12.75 -
   12.76 -
   12.77 -
   12.78 -\section{Zusammenfassung}
   12.79 -\frame{ %\frametitle{Zusammenfassend}
   12.80 -  \begin{block}{Zusammenfassung}
   12.81 -  \begin{itemize}
   12.82 -    \item 
   12.83 -    \item 
   12.84 -    \item 
   12.85 -  \end{itemize}
   12.86 -  \end{block}
   12.87 -
   12.88 -  \pause
   12.89 -
   12.90 -  \begin{block}{Fazit}
   12.91 -    \begin{itemize}
   12.92 -      \item 
   12.93 -      \item 
   12.94 -      \item 
   12.95 -    \end{itemize}
   12.96 -  \end{block}
   12.97 -}
   12.98 -
   12.99 -
  12.100 -\end{document}
  12.101 -
  12.102 -
    13.1 --- a/observer.tex	Thu Jun 21 08:23:04 2007 +0200
    13.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3 @@ -1,446 +0,0 @@
    13.4 -% @file
    13.5 -% @brief   Referat DesignPattern `Observer'
    13.6 -% @author  markus schnalke <meillo@marmaro.de>
    13.7 -% @since   2007-05-30
    13.8 -
    13.9 -
   13.10 -\documentclass{beamer}
   13.11 -
   13.12 -
   13.13 -%  \usepackage[T1]{fontenc}
   13.14 -  \usepackage[utf8]{inputenc}
   13.15 -  \usepackage{ngerman}
   13.16 -  \usepackage{graphicx}
   13.17 -  \usepackage[automark]{scrpage2}
   13.18 -  \input{Style01}
   13.19 -
   13.20 -
   13.21 -
   13.22 -\begin{document}
   13.23 -
   13.24 -
   13.25 -\title{Design Pattern ``Observer''}
   13.26 -\date{\today}
   13.27 -
   13.28 -\author{Markus Schnalke}
   13.29 -
   13.30 -%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
   13.31 -
   13.32 -\frame{
   13.33 -  \titlepage
   13.34 -}
   13.35 -
   13.36 -
   13.37 -
   13.38 -
   13.39 -
   13.40 -\section[Outline]{}
   13.41 -\frame{
   13.42 -  \tableofcontents
   13.43 -}
   13.44 -
   13.45 -
   13.46 -
   13.47 -
   13.48 -\section{Vorgehensweise}
   13.49 -
   13.50 -\frame{ \frametitle{Von der anderen Seite}
   13.51 -
   13.52 -  \begin{block}{Gründe}
   13.53 -    Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
   13.54 -    Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
   13.55 -  \end{block}
   13.56 -  \pause
   13.57 -  \begin{block}{Meine Vorgehensweise}
   13.58 -    Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass
   13.59 -    das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
   13.60 -    bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
   13.61 -    sollte.
   13.62 -  \end{block}
   13.63 -
   13.64 -  % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
   13.65 -
   13.66 -}
   13.67 -
   13.68 -
   13.69 -\section{Erarbeitung des Observers}
   13.70 -
   13.71 -\frame{ \frametitle{Ein Beispiel}
   13.72 -
   13.73 -  \begin{block}{Die Situation}
   13.74 -    \begin{itemize}
   13.75 -      \item Personen die verkaufen möchten
   13.76 -      \item Personen die kaufen möchten
   13.77 -      \item Sie wollen/sollen sich nicht kennen
   13.78 -      \item Möglichst effektives Vorgehen
   13.79 -    \end{itemize}
   13.80 -  \end{block}
   13.81 -  \pause
   13.82 -  \begin{block}{Vorschläge?}
   13.83 -    \begin{itemize}
   13.84 -      \item 
   13.85 -      \item 
   13.86 -    \end{itemize}
   13.87 -  \end{block}
   13.88 -
   13.89 -}
   13.90 -
   13.91 -
   13.92 -\subsection{Ansatz}
   13.93 -\frame{ \frametitle{Ansatz}
   13.94 -
   13.95 -  \begin{block}{Mögliche Vorgehen}
   13.96 -  \begin{itemize}
   13.97 -    \item Personen direkt ansprechen
   13.98 -    \item Laut in die Menge rufen
   13.99 -    \item Den Freunden erzählen, die es dann weitererzählen
  13.100 -  \end{itemize}
  13.101 -  \end{block}
  13.102 -
  13.103 -  \pause
  13.104 -
  13.105 -  \begin{block}{Probleme}
  13.106 -    \begin{itemize}
  13.107 -      \item Man weiß nicht wer Interesse hat
  13.108 -      \item nicht mal wieviele
  13.109 -      \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
  13.110 -      \item ... oder sie sind taub
  13.111 -    \end{itemize}
  13.112 -  \end{block}
  13.113 -
  13.114 -}
  13.115 -
  13.116 -
  13.117 -
  13.118 -\subsection{Erarbeitung einer Lösung}
  13.119 -
  13.120 -\frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
  13.121 -
  13.122 -  \begin{block}{Funktionsweise}
  13.123 -  \begin{itemize}
  13.124 -    \item Man kann Zettel anpinnen
  13.125 -    \item Hingehen und nach neuen Zetteln schauen
  13.126 -    \item Zettel lesen
  13.127 -    \item Zettel abnehmen
  13.128 -    \item Jeder der ein paar Fähigkeiten hat kann es
  13.129 -  \end{itemize}
  13.130 -  \end{block}
  13.131 -
  13.132 -  \pause
  13.133 -
  13.134 -  \begin{block}{Probleme}
  13.135 -    \begin{itemize}
  13.136 -      \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
  13.137 -      \item Man kann wichtige Zettel verpassen
  13.138 -      \item Zettel sollten nicht weggenommen werden können
  13.139 -    \end{itemize}
  13.140 -  \end{block}
  13.141 -
  13.142 -}
  13.143 -
  13.144 -
  13.145 -
  13.146 -
  13.147 -\frame{ \frametitle{Verbesserung: Pinnwand-Sekretärin}
  13.148 -
  13.149 -  \begin{block}{Lösung}
  13.150 -  \begin{itemize}
  13.151 -    \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
  13.152 -    \item Pinnwand und Sekretärin sind fortan eine Einheit
  13.153 -    \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
  13.154 -    \item (Sie schreibt mit lesbarer Schrift)
  13.155 -    \item Sie verhindert, dass Zettel abgenommen werden
  13.156 -  \end{itemize}
  13.157 -  \end{block}
  13.158 -
  13.159 -  \pause
  13.160 -
  13.161 -  \begin{block}{Bestehendes Problem}
  13.162 -    \begin{itemize}
  13.163 -      \item Man läuft immer noch oft unnötig zur Pinnwand
  13.164 -    \end{itemize}
  13.165 -  \end{block}
  13.166 -
  13.167 -}
  13.168 -
  13.169 -
  13.170 -\frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
  13.171 -
  13.172 -  \begin{block}{Lösung}
  13.173 -  \begin{itemize}
  13.174 -    \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
  13.175 -    \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
  13.176 -    \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
  13.177 -    \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
  13.178 -  \end{itemize}
  13.179 -  \end{block}
  13.180 -
  13.181 -}
  13.182 -
  13.183 -
  13.184 -\subsection{Zusammenfassung}
  13.185 -
  13.186 -% Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
  13.187 -% Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
  13.188 -\frame{ \frametitle{Zusammenfassung des Beispiels}
  13.189 -
  13.190 -  \begin{block}{Pinnwand + Sekretärin + Benachrichtigung}
  13.191 -    \begin{itemize}
  13.192 -      \item Man kann neue Zettel anpinnen lassen
  13.193 -      \item Man kann sich als Interessierter anmelden (und auch abmelden)
  13.194 -      \item Interessierte werden bei Änderungen der Pinnwand benachrichtigt
  13.195 -      \item Sie können dann zur Pinnwand gehen und sie sich anschauen
  13.196 -    \end{itemize}
  13.197 -  \end{block}
  13.198 -
  13.199 -  \pause
  13.200 -
  13.201 -  \begin{block}{Eure Meinung?}
  13.202 -    \begin{itemize}
  13.203 -      \item Ist diese Struktur zufriedenstellend?
  13.204 -      \item Erfüllt sie alle Anforderungen?
  13.205 -      \item Was fehlt?
  13.206 -    \end{itemize}
  13.207 -  \end{block}
  13.208 -
  13.209 -}
  13.210 -
  13.211 -
  13.212 -
  13.213 -
  13.214 -
  13.215 -
  13.216 -\section{Nun zum Pattern}
  13.217 -
  13.218 -
  13.219 -\frame{ \frametitle{Überleitung}
  13.220 -
  13.221 -  \begin{block}{Neue Namen}
  13.222 -    \begin{itemize}
  13.223 -      \item Pinnwand-Sekretärin-Einheit $\rightarrow$ ``Subject''
  13.224 -      \item Die Zettel auf der Pinnwand $\rightarrow$ ``subjectState''
  13.225 -      \item Interessenten $\rightarrow$ ``Observers''
  13.226 -    \end{itemize}
  13.227 -  \end{block}
  13.228 -
  13.229 -  \pause
  13.230 -
  13.231 -  \begin{block}{Schnittstellen}
  13.232 -    Die Fähigkeiten der Pinnwand/Sekretärin und Interessenten sind ihre ``Interfaces''.
  13.233 -  \end{block}
  13.234 -
  13.235 -}
  13.236 -
  13.237 -
  13.238 -\frame { \frametitle{Struktur-Diagramm des Observers}
  13.239 -  \centerline{ \includegraphics[width=20em]{pics/observer_big.png} }
  13.240 -}
  13.241 -
  13.242 -
  13.243 -\frame { \frametitle{Interaktions-Diagramm des Observers}
  13.244 -  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
  13.245 -}
  13.246 -
  13.247 -
  13.248 -% Daten aus der Beschreibung des Observers von GoF
  13.249 -% in welche Gruppen wird er eingeordnet
  13.250 -%\frame{ \frametitle{Beschreibung des Observers}
  13.251 -%
  13.252 -%  \begin{block}{Klassifizierung}
  13.253 -%    Verhaltensmuster, objektbasierend
  13.254 -%  \end{block}
  13.255 -%
  13.256 -%  \begin{block}{Auch bekannt als}
  13.257 -%    Publish-Subscribe, Dependents
  13.258 -%  \end{block}
  13.259 -%
  13.260 -%  \begin{block}{Zweck}
  13.261 -%    Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
  13.262 -%    % todo: besser formulieren
  13.263 -%  \end{block}
  13.264 -%
  13.265 -%  \begin{block}{Kurzbeschreibung}
  13.266 -%    Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
  13.267 -%    werden können, und um die abhängigen Objekte über Zustandsänderungen zu
  13.268 -%    informieren.
  13.269 -%    % todo: Formulierung überdenken
  13.270 -%  \end{block}
  13.271 -%
  13.272 -%}
  13.273 -
  13.274 -
  13.275 -\subsection{Beispiele}
  13.276 -% Einsatzgebiete (MVC) und RL (Mailingslisten, Ebay-Suchabo)
  13.277 -% nicht aber (Blog + RSS)
  13.278 -\frame{ \frametitle{Der Observer in der Praxis}
  13.279 -
  13.280 -  \begin{block}{Beispiele}
  13.281 -    \begin{itemize}
  13.282 -      \item Observer ist sehr verbreitet
  13.283 -      \item v.a. MVC (Model = Subject; View = Observer)
  13.284 -      \item Mailinglisten
  13.285 -      \item Ebay Such-Abo
  13.286 -    \end{itemize}
  13.287 -  \end{block}
  13.288 -
  13.289 -  \pause
  13.290 -
  13.291 -  \begin{block}{Aber}
  13.292 -    \begin{itemize}
  13.293 -      \item nicht Blog mit RSS-Feed!
  13.294 -    \end{itemize}
  13.295 -  \end{block}
  13.296 -
  13.297 -}
  13.298 -
  13.299 -
  13.300 -\subsection{Erweiterungen}
  13.301 -% Erweiterungen, verbleibende Probleme, Kompromisse beim Design
  13.302 -\frame{ \frametitle{Mögliche Erweiterungen}
  13.303 -
  13.304 -  \begin{block}{Ein Observer und mehrere Subjects}
  13.305 -    \begin{itemize}
  13.306 -      \item Der Name des Subjects muss mitgesendet werden.
  13.307 -    \end{itemize}
  13.308 -  \end{block}
  13.309 -
  13.310 -  \begin{block}{Nur für bestimmte Informationen anmelden}
  13.311 -    \begin{itemize}
  13.312 -      \item Oberservers melden sich nur für bestimmte Informationen an
  13.313 -      \item Es werden weniger uninteressante Updates gesendet
  13.314 -    \end{itemize}
  13.315 -  \end{block}
  13.316 -
  13.317 -  \begin{block}{UpdateManager}
  13.318 -    \begin{itemize}
  13.319 -      \item Bei komplexen Update-Zusammenhängen empfehlenswert
  13.320 -      \item vermittelt zwischen Subject und Observer
  13.321 -      \item Mehr dazu in der Ausarbeitung
  13.322 -    \end{itemize}
  13.323 -  \end{block}
  13.324 -
  13.325 -}
  13.326 -
  13.327 -
  13.328 -%\frame{ \frametitle{Wer ruft notify() auf?}
  13.329 -%
  13.330 -%  \begin{block}{Das Subject}
  13.331 -%    \begin{itemize}
  13.332 -%      \item[+] notify() wird sicher bei jedem setState() aufgerufen
  13.333 -%      \item[-] hohe Update-Kosten bei Änderungen en-block
  13.334 -%    \end{itemize}
  13.335 -%  \end{block}
  13.336 -%
  13.337 -%  \begin{block}{Der Observer}
  13.338 -%    \begin{itemize}
  13.339 -%      \item[+] intelligenter Zeitpunkt des notify()-Aufrufs möglich
  13.340 -%      \item[-] der Client darf den notify()-Aufruf nicht vergessen
  13.341 -%    \end{itemize}
  13.342 -%  \end{block}
  13.343 -%
  13.344 -%}
  13.345 -
  13.346 -
  13.347 -
  13.348 -\subsection{Code}
  13.349 -% Kein Code!
  13.350 -\frame{ \frametitle{Code? --- Nein, kein Code!}
  13.351 -
  13.352 -  \begin{block}{Denn}
  13.353 -    \begin{center}
  13.354 -    \textbf{ Implementierungen sind Schall und Rauch,\\
  13.355 -    Konzepte dagegen bleiben bestehen!  }
  13.356 -    \end{center}
  13.357 -  \end{block}
  13.358 -
  13.359 -  \vspace{4ex}
  13.360 -  {\scriptsize 
  13.361 -  \begin{block}{Aber}
  13.362 -    Beispiel-Implementierung in der Ausarbeitung.
  13.363 -  \end{block}
  13.364 -  }
  13.365 -
  13.366 -}
  13.367 -
  13.368 -
  13.369 -
  13.370 -\section{Zusammenfassung}
  13.371 -\frame{ %\frametitle{Zusammenfassend}
  13.372 -  \begin{block}{Zusammenfassung}
  13.373 -  \begin{itemize}
  13.374 -    \item 
  13.375 -    \item 
  13.376 -    \item 
  13.377 -  \end{itemize}
  13.378 -  \end{block}
  13.379 -
  13.380 -  \pause
  13.381 -
  13.382 -  \begin{block}{Fazit}
  13.383 -    \begin{itemize}
  13.384 -      \item 
  13.385 -      \item 
  13.386 -      \item 
  13.387 -    \end{itemize}
  13.388 -  \end{block}
  13.389 -}
  13.390 -
  13.391 -
  13.392 -%\section{Fragen}
  13.393 -%\frame{ \frametitle{Fragen?}
  13.394 -%  \vspace{5ex}
  13.395 -%  \centerline{\huge ?}
  13.396 -%}
  13.397 -
  13.398 -
  13.399 -% Erklaerung des Vorgehens
  13.400 -% Frage: war es erfolgreich?
  13.401 -%\frame{ \frametitle{}
  13.402 -%
  13.403 -%  \begin{block}{}
  13.404 -%  \end{block}
  13.405 -%
  13.406 -%}
  13.407 -
  13.408 -
  13.409 -%\frame{ \frametitle{Abschließend}
  13.410 -%  \begin{block}{Verwendete Software}
  13.411 -%  \begin{itemize}
  13.412 -%    \item Debian GNU/Linux
  13.413 -%    \item \LaTeX-Beamer und \texttt{pdflatex}
  13.414 -%    \item Vim
  13.415 -%    \item qiv und ImageMagick
  13.416 -%    \item Mercurial
  13.417 -%  \end{itemize}
  13.418 -%  \end{block}
  13.419 -%
  13.420 -%  \begin{block}{}
  13.421 -%    \vspace{3ex}
  13.422 -%    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
  13.423 -%  \end{block}
  13.424 -%}
  13.425 -
  13.426 -
  13.427 -% Code (Beispiel-Implementierung)
  13.428 -
  13.429 -
  13.430 -
  13.431 -
  13.432 -
  13.433 -
  13.434 -%\input{main2.tex}
  13.435 -
  13.436 -
  13.437 -\end{document}
  13.438 -
  13.439 -
  13.440 -
  13.441 -
  13.442 -
  13.443 -
  13.444 -%\subsubsection{Fehlteilmanagement}
  13.445 -%\frame{ \frametitle{Fehlteilmanagement}
  13.446 -%  %\includegraphics[width=10cm]{Pics/cc.png}
  13.447 -%}
  13.448 -
  13.449 -% \vspace{2ex}