docs/DesignPatterns

diff main.tex @ 3:0923f2ae50a5

added lots of text modified Makefile to call xpdf with -fullscreen
author meillo@marmaro.de
date Fri, 01 Jun 2007 17:47:47 +0200
parents fe9c99202977
children ba98bb97db06
line diff
     1.1 --- a/main.tex	Wed May 30 12:40:26 2007 +0200
     1.2 +++ b/main.tex	Fri Jun 01 17:47:47 2007 +0200
     1.3 @@ -45,23 +45,41 @@
     1.4  
     1.5  
     1.6  
     1.7 -\section{Überblick}
     1.8 +\section{Vorgehensweise}
     1.9  
    1.10 -\frame{ \frametitle{Grundlegendes zum Observer}
    1.11 +\frame{ \frametitle{Von der anderen Seite}
    1.12  
    1.13 -  \begin{block}{aa}
    1.14 +  \begin{block}{Gründe}
    1.15 +    Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
    1.16 +    Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
    1.17 +  \end{block}
    1.18 +  \pause
    1.19 +  \begin{block}{Meine Vorgehensweise}
    1.20 +    Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass
    1.21 +    das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
    1.22 +    bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
    1.23 +    sollte.
    1.24 +  \end{block}
    1.25 +
    1.26 +  % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
    1.27 +
    1.28 +}
    1.29 +
    1.30 +
    1.31 +\section{Erarbeitung des Observers}
    1.32 +
    1.33 +\frame{ \frametitle{Ein Beispiel}
    1.34 +
    1.35 +  \begin{block}{Die Situation}
    1.36      \begin{itemize}
    1.37 -      \item 
    1.38 -      \item 
    1.39 -      \item 
    1.40 -      \item 
    1.41 -      \item 
    1.42 +      \item Personen die verkaufen möchten
    1.43 +      \item Personen die kaufen möchten
    1.44 +      \item Sie wollen/sollen sich nicht kennen
    1.45 +      \item Möglichst effektives Vorgehen
    1.46      \end{itemize}
    1.47    \end{block}
    1.48 -
    1.49    \pause
    1.50 -
    1.51 -  \begin{block}{bb}
    1.52 +  \begin{block}{Vorschläge?}
    1.53      \begin{itemize}
    1.54        \item 
    1.55        \item 
    1.56 @@ -71,33 +89,124 @@
    1.57  }
    1.58  
    1.59  
    1.60 +\frame{ \frametitle{Ansatz}
    1.61  
    1.62 -\section{Ansatz}
    1.63 +  \begin{block}{Mögliche Vorgehen}
    1.64 +  \begin{itemize}
    1.65 +    \item Personen direkt ansprechen
    1.66 +    \item Laut in die Menge rufen
    1.67 +    \item Den Freunden erzählen, die es dann weitererzählen
    1.68 +  \end{itemize}
    1.69 +  \end{block}
    1.70  
    1.71 -\frame{ \frametitle{Bezug zum RL}
    1.72 +  \pause
    1.73  
    1.74 -  \begin{itemize}
    1.75 -    \item 
    1.76 -    \item 
    1.77 -    \item 
    1.78 -    \item 
    1.79 -  \end{itemize}
    1.80 +  \begin{block}{Probleme}
    1.81 +    \begin{itemize}
    1.82 +      \item Man weiß nicht wer Interesse hat
    1.83 +      \item nicht mal wieviele
    1.84 +      \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
    1.85 +      \item ... oder sie sind taub
    1.86 +    \end{itemize}
    1.87 +  \end{block}
    1.88  
    1.89  }
    1.90  
    1.91  
    1.92 +\frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
    1.93  
    1.94 +  \begin{block}{Funktionsweise}
    1.95 +  \begin{itemize}
    1.96 +    \item Man kann Zettel anpinnen
    1.97 +    \item Hingehen und nach neuen Zetteln schauen
    1.98 +    \item Zettel lesen
    1.99 +    \item Zettel abnehmen
   1.100 +    \item Jeder der ein paar Fähigkeiten hat kann es
   1.101 +  \end{itemize}
   1.102 +  \end{block}
   1.103  
   1.104 -\subsubsection{Fehlteilmanagement}
   1.105 -\frame{ \frametitle{Fehlteilmanagement}
   1.106 -  %\includegraphics[width=10cm]{Pics/cc.png}
   1.107 +  \pause
   1.108 +
   1.109 +  \begin{block}{Probleme}
   1.110 +    \begin{itemize}
   1.111 +      \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
   1.112 +      \item Man kann wichtige Zettel verpassen
   1.113 +      \item Zettel sollten nicht weggenommen werden können
   1.114 +    \end{itemize}
   1.115 +  \end{block}
   1.116 +
   1.117  }
   1.118  
   1.119  
   1.120  
   1.121 -\section{Fazit und Dank}
   1.122 +
   1.123 +\frame{ \frametitle{Verbesserung: Pinnup-Sekretärin}
   1.124 +
   1.125 +  \begin{block}{Lösung}
   1.126 +  \begin{itemize}
   1.127 +    \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
   1.128 +    \item Pinnwand und Sekretärin sind fortan eine Einheit
   1.129 +    \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
   1.130 +    \item (Sie schreibt mit lesbarer Schrift)
   1.131 +    \item Sie verhindert, dass Zettel abgenommen werden
   1.132 +  \end{itemize}
   1.133 +  \end{block}
   1.134 +
   1.135 +  \pause
   1.136 +
   1.137 +  \begin{block}{Bestehendes Problem}
   1.138 +    \begin{itemize}
   1.139 +      \item Man läuft immer noch oft unnötig zur Pinnwand
   1.140 +    \end{itemize}
   1.141 +  \end{block}
   1.142 +
   1.143 +}
   1.144 +
   1.145 +
   1.146 +\frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
   1.147 +
   1.148 +  \begin{block}{Lösung}
   1.149 +  \begin{itemize}
   1.150 +    \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
   1.151 +    \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
   1.152 +    \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
   1.153 +    \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
   1.154 +  \end{itemize}
   1.155 +  \end{block}
   1.156 +
   1.157 +}
   1.158 +
   1.159 +
   1.160 +% Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
   1.161 +% Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
   1.162 +
   1.163 +
   1.164 +\section{Nun zum Pattern}
   1.165 +
   1.166 +\frame { \frametitle{UML-Diagramm des Observers}
   1.167 +    \includegraphics[width=20em]{pics/observer.png}
   1.168 +}
   1.169 +
   1.170 +
   1.171 +% Daten aus der Beschreibung des Observers von GoF
   1.172 +% in welche Gruppen wird er eingeordnet
   1.173 +
   1.174 +
   1.175 +% Einsatzgebiete (MVC) und RL (Mailingslisten, Ebay-Suchabo)
   1.176 +% nicht aber (Blog + RSS)
   1.177 +
   1.178 +
   1.179 +% Erweiterungen, verbleibende Probleme, Kompromisse beim Design
   1.180 +
   1.181 +
   1.182 +% Erklärung des Vorgehens
   1.183 +% Frage: war es erfolgreich?
   1.184 +
   1.185 +
   1.186 +
   1.187 +\section{Zusammenfassung}
   1.188  \frame{ \frametitle{Zusammenfassend}
   1.189 -  \begin{block}{Fazit}
   1.190 +  \begin{block}{Zusammenfassung}
   1.191    \begin{itemize}
   1.192      \item 
   1.193      \item 
   1.194 @@ -107,20 +216,18 @@
   1.195  
   1.196    \pause
   1.197  
   1.198 -  \begin{block}{Dank}
   1.199 -    \vspace{2ex}
   1.200 -
   1.201 -    \begin{center}
   1.202 -    Vielen Dank\\
   1.203 -    \textbf{dd}
   1.204 -    \end{center}
   1.205 +  \begin{block}{Fazit}
   1.206 +    \begin{itemize}
   1.207 +      \item 
   1.208 +      \item 
   1.209 +      \item 
   1.210 +    \end{itemize}
   1.211    \end{block}
   1.212  }
   1.213  
   1.214  
   1.215  \section{Fragen}
   1.216  \frame{ \frametitle{Fragen?}
   1.217 -
   1.218    \vspace{5ex}
   1.219    \centerline{\huge ?}
   1.220  }
   1.221 @@ -132,7 +239,7 @@
   1.222      \item Debian GNU/Linux
   1.223      \item \LaTeX-Beamer und \texttt{pdflatex}
   1.224      \item Vim
   1.225 -    \item gThumb, GIMP und qiv
   1.226 +    \item qiv und ImageMagick
   1.227    \end{itemize}
   1.228    \end{block}
   1.229  
   1.230 @@ -143,5 +250,20 @@
   1.231  }
   1.232  
   1.233  
   1.234 +% Code (Beispiel-Implementierung)
   1.235 +
   1.236 +
   1.237  
   1.238  \end{document}
   1.239 +
   1.240 +
   1.241 +
   1.242 +
   1.243 +
   1.244 +
   1.245 +%\subsubsection{Fehlteilmanagement}
   1.246 +%\frame{ \frametitle{Fehlteilmanagement}
   1.247 +%  %\includegraphics[width=10cm]{Pics/cc.png}
   1.248 +%}
   1.249 +
   1.250 +% \vspace{2ex}