Mercurial > docs > DesignPatterns
comparison 05_antiPatterns.tex @ 25:e7ac382e4a20
added content to weiterePatterns
author | meillo@marmaro.de |
---|---|
date | Wed, 27 Jun 2007 11:16:43 +0200 |
parents | 356aeb2f53f3 |
children |
comparison
equal
deleted
inserted
replaced
24:6592083da58a | 25:e7ac382e4a20 |
---|---|
4 % @since 2007-06-21 | 4 % @since 2007-06-21 |
5 | 5 |
6 | 6 |
7 \documentclass{beamer} | 7 \documentclass{beamer} |
8 | 8 |
9 | |
10 % \usepackage[T1]{fontenc} | |
11 \usepackage[utf8]{inputenc} | 9 \usepackage[utf8]{inputenc} |
12 \usepackage{ngerman} | 10 \usepackage{ngerman} |
13 \usepackage{graphicx} | 11 \usepackage{graphicx} |
14 \usepackage[automark]{scrpage2} | 12 \usepackage[automark]{scrpage2} |
15 \input{Style01} | 13 \input{Style01} |
16 | 14 |
17 | 15 \title{Andere Patterns} |
16 \author{Julian Haug} | |
17 \date{} | |
18 | 18 |
19 \begin{document} | 19 \begin{document} |
20 | |
21 | |
22 \title{Andere Patterns} | |
23 \author{Julian Haug} | |
24 \date{} | |
25 | |
26 %\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}} | |
27 | 20 |
28 \frame{ | 21 \frame{ |
29 \titlepage | 22 \titlepage |
30 } | 23 } |
31 | |
32 | |
33 | |
34 | 24 |
35 | 25 |
36 \section[Outline]{} | 26 \section[Outline]{} |
37 \frame{ | 27 \frame{ |
38 \tableofcontents | 28 \tableofcontents |
54 \end{block} | 44 \end{block} |
55 | 45 |
56 } | 46 } |
57 | 47 |
58 | 48 |
59 \section{Beispiele anderer Muster} | 49 \subsection{Beispiele anderer Muster} |
60 | 50 |
61 \frame{ \frametitle{Beispiele anderer Muster} | 51 \frame{ \frametitle{Architekturmuster} |
62 | 52 |
63 \begin{block}{Architekturmuster} | 53 \begin{block}{} |
64 \begin{itemize} | 54 \begin{itemize} |
65 \item beschreiben typische Software-Architekturen | 55 \item beschreiben typische Software-Architekturen |
66 \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung | 56 \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung |
67 \item Lässt sich in 4 verschiedene Kategorien einteilen | 57 \item Lässt sich in 4 verschiedene Kategorien einteilen |
68 \begin{itemize} | 58 \begin{itemize} |
75 \end{block} | 65 \end{block} |
76 | 66 |
77 } | 67 } |
78 | 68 |
79 | 69 |
80 \section{Idom} | 70 \subsection{Idom} |
81 | 71 |
82 \frame{ \frametitle{Idom} | 72 \frame{ \frametitle{Idom} |
83 | 73 |
84 \begin{block}{Definition} | 74 \begin{block}{Definition} |
85 \begin{itemize} | 75 \begin{itemize} |
86 \item Beschreibt konkrete Implementierung eines Entwurfsmusters | 76 \item Beschreibt konkrete Implementierung eines Entwurfsmusters |
87 \item ist programmiersprachenspezifisch | 77 \item ist programmiersprachenspezifisch |
88 \end{itemize} | 78 \end{itemize} |
89 \end{block} | 79 \end{block} |
80 | |
81 \pause | |
90 | 82 |
91 \begin{block}{Anwendung} | 83 \begin{block}{Anwendung} |
92 \begin{itemize} | 84 \begin{itemize} |
93 \item Konkrete Implementierung eines Entwurfsmusters. | 85 \item Konkrete Implementierung eines Entwurfsmusters. |
94 \item Programmierkonventionen (Codeformatierung, Namenskonventionen, Kommentar Formatierung, usw.) | 86 \item Programmierkonventionen (Codeformatierung, Namenskonventionen, Kommentar Formatierung, usw.) |
97 \end{block} | 89 \end{block} |
98 | 90 |
99 } | 91 } |
100 | 92 |
101 | 93 |
102 \section{Weitere Beispiele} | 94 \subsection{Weitere Beispiele} |
103 | 95 |
104 \frame{ \frametitle{Weitere Beispiele} | 96 \frame{ \frametitle{Weitere Beispiele} |
105 | 97 |
106 \begin{block}{Weitere Beispiele} | 98 \begin{block}{Weitere Beispiele} |
107 \begin{itemize} | 99 \begin{itemize} |
108 \item Analysemuster \\ (beschreiben typische Fälle der Anforderungsanalyse) | 100 \item Analysemuster \\ (beschreiben typische Fälle der Anforderungsanalyse) |
109 \item Kommunikationsmuster \\ (beschreiben Kommunikationswege zwischen Personen einer Organisation) | 101 \item Kommunikationsmuster \\ (beschreiben Kommunikationswege zwischen Personen einer Organisation) |
110 \item Organisationsmuster \\ (beschreiben Elemente der Strukturen von Organisationen) | 102 \item Organisationsmuster \\ (beschreiben Elemente der Strukturen von Organisationen) |
111 \end{itemize} | |
112 \end{block} | |
113 | |
114 } | |
115 | |
116 | |
117 \section{Tipps zur Anwendung} | |
118 | |
119 \frame{ \frametitle{Tipps zur Anwendung} | |
120 | |
121 \begin{block}{} | |
122 \begin{itemize} | |
123 \item | |
124 \item | |
125 \item | |
126 \end{itemize} | 103 \end{itemize} |
127 \end{block} | 104 \end{block} |
128 | 105 |
129 } | 106 } |
130 | 107 |
158 \end{block} | 135 \end{block} |
159 | 136 |
160 } | 137 } |
161 | 138 |
162 | 139 |
140 \subsection{Programmier-Anti-Patterns} | |
163 \frame{ \frametitle{Programmierungs-Anti-Patterns} | 141 \frame{ \frametitle{Programmierungs-Anti-Patterns} |
164 | 142 |
165 \begin{block}{} | 143 \begin{block}{Zwiebel} |
166 \begin{itemize} | 144 \begin{itemize} |
167 \item | 145 \item Neue Funktionalität wird um (oder über) die alte gelegt |
168 \item | 146 \item Häufig bei Erweiterungen |
147 \item Führt zu vielschichtigem Programmcode (Zwiebel) | |
148 \end{itemize} | |
149 \end{block} | |
150 | |
151 \pause | |
152 | |
153 \begin{block}{Lavafluss} | |
154 \begin{itemize} | |
155 \item in Anwendung häuft sich ``toter Quelltext'' | |
156 \item Statt zu löschen wird um ihn ``herum'' programmiert | |
157 \end{itemize} | |
158 \end{block} | |
159 | |
160 } | |
161 | |
162 | |
163 \section{Tipps zur Anwendung} | |
164 | |
165 \frame{ \frametitle{Tipps zur Anwendung} | |
166 | |
167 \begin{block}{Auswahl eines Entwurfmusters} | |
168 Problem: Viele (ähnliche) Muster kommen in Frage | |
169 \begin{itemize} | |
170 \item Musterkatalog | |
171 \item Genaue Analyse des Problems | |
172 \end{itemize} | |
173 \end{block} | |
174 | |
175 \pause | |
176 | |
177 \begin{block}{Verwendung des Musters} | |
178 Problem: Verstehen wie das Muster unser Problem löst | |
179 \begin{itemize} | |
180 \item Strukturdiagramm (UML) | |
181 \item Objekt/Klassenliste | |
182 \item Implementierungsbeispiele | |
183 \end{itemize} | |
184 \end{block} | |
185 | |
186 \pause | |
187 | |
188 \begin{block}{Wann sollte KEIN Entwurfsmuster benutzt werden} | |
189 \begin{itemize} | |
190 \item Muster dürfen den Code nicht verkomplizieren | |
191 \item Oft reicht eine Lösung die zwar weniger flexibel aber simpler ist | |
169 \end{itemize} | 192 \end{itemize} |
170 \end{block} | 193 \end{block} |
171 | 194 |
172 } | 195 } |
173 | 196 |
174 | 197 |
175 | 198 |
176 \section{Zusammenfassung} | 199 \section{Zusammenfassung} |
177 \frame{ %\frametitle{Zusammenfassend} | 200 \frame{ |
178 \begin{block}{Zusammenfassung} | 201 \begin{block}{Zusammenfassung} |
179 \begin{itemize} | 202 \begin{itemize} |
180 \item | 203 \item Es gibt verschiedene Arten von Mustern – für uns von direkter Bedeutung sind Entwurfs-, Architekturmuster und Idome |
181 \item | 204 \item Anti-Pattern zeigen welche Fehler man vermeiden sollte |
182 \item | 205 \item Bei Anwendung von Mustern das Problem genau analysieren, passendes Muster suchen und gegebenenfalls anwenden |
183 \end{itemize} | 206 \end{itemize} |
184 \end{block} | 207 \end{block} |
185 } | 208 } |
186 | 209 |
187 | 210 |