Effizientes Programmieren
|
|
- Nelly Meyer
- vor 6 Jahren
- Abrufe
Transkript
1 Effizientes Programmieren Praktikum smuster ( ) Christopher Pietsch
2 Agenda 1 2 smuster / 23 smuster ( )
3 smuster Teil 1 2 / 23 smuster ( )
4 smuster Definition: [...] alle Aktivitäten im Rahmen des Softwareentwicklungsprozesses [.], mit denen ein Modell logisch und physisch strukturiert wird. [OB12] Wie soll das System die in der Analyse beschriebenen Anforderungen erfüllen? Entwicklung eines Lösungskonzepts unter Berücksichtigung der Rahmenbedingungen, insbesondere: - Spezifikation der Funktionen des Systems aus fachlicher Sicht Anwendungsmodell - Gliederung des Systems in Teilsysteme (Komponenten, Pakete) (formale) Spezifikation aller Schnittstellen Wiederkehrende, ähnlich gelagerte sprobleme in unterschiedlichen objektorientierten Systemen 2 / 23 smuster ( )
5 smuster Definition: [...] alle Aktivitäten im Rahmen des Softwareentwicklungsprozesses [.], mit denen ein Modell logisch und physisch strukturiert wird. [OB12] Wie soll das System die in der Analyse beschriebenen Anforderungen erfüllen? Entwicklung eines Lösungskonzepts unter Berücksichtigung der Rahmenbedingungen, insbesondere: - Spezifikation der Funktionen des Systems aus fachlicher Sicht Anwendungsmodell - Gliederung des Systems in Teilsysteme (Komponenten, Pakete) (formale) Spezifikation aller Schnittstellen Wiederkehrende, ähnlich gelagerte sprobleme in unterschiedlichen objektorientierten Systemen 2 / 23 smuster ( )
6 smuster Definition: [...] alle Aktivitäten im Rahmen des Softwareentwicklungsprozesses [.], mit denen ein Modell logisch und physisch strukturiert wird. [OB12] Wie soll das System die in der Analyse beschriebenen Anforderungen erfüllen? Entwicklung eines Lösungskonzepts unter Berücksichtigung der Rahmenbedingungen, insbesondere: - Spezifikation der Funktionen des Systems aus fachlicher Sicht Anwendungsmodell - Gliederung des Systems in Teilsysteme (Komponenten, Pakete) (formale) Spezifikation aller Schnittstellen Wiederkehrende, ähnlich gelagerte sprobleme in unterschiedlichen objektorientierten Systemen 2 / 23 smuster ( )
7 smuster Definition: [...] alle Aktivitäten im Rahmen des Softwareentwicklungsprozesses [.], mit denen ein Modell logisch und physisch strukturiert wird. [OB12] Wie soll das System die in der Analyse beschriebenen Anforderungen erfüllen? Entwicklung eines Lösungskonzepts unter Berücksichtigung der Rahmenbedingungen, insbesondere: - Spezifikation der Funktionen des Systems aus fachlicher Sicht Anwendungsmodell - Gliederung des Systems in Teilsysteme (Komponenten, Pakete) (formale) Spezifikation aller Schnittstellen Wiederkehrende, ähnlich gelagerte sprobleme in unterschiedlichen objektorientierten Systemen 2 / 23 smuster ( )
8 smuster Definition: [...] alle Aktivitäten im Rahmen des Softwareentwicklungsprozesses [.], mit denen ein Modell logisch und physisch strukturiert wird. [OB12] Wie soll das System die in der Analyse beschriebenen Anforderungen erfüllen? Entwicklung eines Lösungskonzepts unter Berücksichtigung der Rahmenbedingungen, insbesondere: - Spezifikation der Funktionen des Systems aus fachlicher Sicht Anwendungsmodell - Gliederung des Systems in Teilsysteme (Komponenten, Pakete) (formale) Spezifikation aller Schnittstellen Wiederkehrende, ähnlich gelagerte sprobleme in unterschiedlichen objektorientierten Systemen 2 / 23 smuster ( )
9 smuster Definition: [...] alle Aktivitäten im Rahmen des Softwareentwicklungsprozesses [.], mit denen ein Modell logisch und physisch strukturiert wird. [OB12] Wie soll das System die in der Analyse beschriebenen Anforderungen erfüllen? Entwicklung eines Lösungskonzepts unter Berücksichtigung der Rahmenbedingungen, insbesondere: - Spezifikation der Funktionen des Systems aus fachlicher Sicht Anwendungsmodell - Gliederung des Systems in Teilsysteme (Komponenten, Pakete) (formale) Spezifikation aller Schnittstellen Wiederkehrende, ähnlich gelagerte sprobleme in unterschiedlichen objektorientierten Systemen 2 / 23 smuster ( )
10 smuster Teil 2 smuster 3 / 23 smuster ( )
11 smuster smuster Definition: (s-) Muster Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. [AIS77] Wiederverwendung bewährter, generischer Lösungsansätze für immer wiederkehrende sprobleme 3 / 23 smuster ( )
12 smuster smuster Definition: (s-) Muster Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. [AIS77] Wiederverwendung bewährter, generischer Lösungsansätze für immer wiederkehrende sprobleme 3 / 23 smuster ( )
13 smuster smuster Ein Muster besteht aus vier grundlegenden Elementen: 1 Mustername: Stichwort, um ein sproblem und dessen Lösungen und Auswirkungen kurz zu benennen. Erweiterung des svokabulars 2 Problemabschnitt: Beschreibung des adressierten Problems und dessen Kontexts, bei dem das Muster sinnvoll angewandt werden kann. 3 Lösungsabschnitt: Abstrakte Beschreibung der Elemente, deren Beziehungen, Zuständigkeiten und Interaktionen zur Lösung eines sproblems. Schablone, die in vielen verschiedenen Situationen angewandt werden kann 4 Konsequenzenabschnitt: Auflistung der Vor- und Nachteile der smusteranwendung 4 / 23 smuster ( )
14 smuster smuster Ein Muster besteht aus vier grundlegenden Elementen: 1 Mustername: Stichwort, um ein sproblem und dessen Lösungen und Auswirkungen kurz zu benennen. Erweiterung des svokabulars 2 Problemabschnitt: Beschreibung des adressierten Problems und dessen Kontexts, bei dem das Muster sinnvoll angewandt werden kann. 3 Lösungsabschnitt: Abstrakte Beschreibung der Elemente, deren Beziehungen, Zuständigkeiten und Interaktionen zur Lösung eines sproblems. Schablone, die in vielen verschiedenen Situationen angewandt werden kann 4 Konsequenzenabschnitt: Auflistung der Vor- und Nachteile der smusteranwendung 4 / 23 smuster ( )
15 smuster smuster Ein Muster besteht aus vier grundlegenden Elementen: 1 Mustername: Stichwort, um ein sproblem und dessen Lösungen und Auswirkungen kurz zu benennen. Erweiterung des svokabulars 2 Problemabschnitt: Beschreibung des adressierten Problems und dessen Kontexts, bei dem das Muster sinnvoll angewandt werden kann. 3 Lösungsabschnitt: Abstrakte Beschreibung der Elemente, deren Beziehungen, Zuständigkeiten und Interaktionen zur Lösung eines sproblems. Schablone, die in vielen verschiedenen Situationen angewandt werden kann 4 Konsequenzenabschnitt: Auflistung der Vor- und Nachteile der smusteranwendung 4 / 23 smuster ( )
16 smuster smuster Ein Muster besteht aus vier grundlegenden Elementen: 1 Mustername: Stichwort, um ein sproblem und dessen Lösungen und Auswirkungen kurz zu benennen. Erweiterung des svokabulars 2 Problemabschnitt: Beschreibung des adressierten Problems und dessen Kontexts, bei dem das Muster sinnvoll angewandt werden kann. 3 Lösungsabschnitt: Abstrakte Beschreibung der Elemente, deren Beziehungen, Zuständigkeiten und Interaktionen zur Lösung eines sproblems. Schablone, die in vielen verschiedenen Situationen angewandt werden kann 4 Konsequenzenabschnitt: Auflistung der Vor- und Nachteile der smusteranwendung 4 / 23 smuster ( )
17 smuster smuster Ein Muster besteht aus vier grundlegenden Elementen: 1 Mustername: Stichwort, um ein sproblem und dessen Lösungen und Auswirkungen kurz zu benennen. Erweiterung des svokabulars 2 Problemabschnitt: Beschreibung des adressierten Problems und dessen Kontexts, bei dem das Muster sinnvoll angewandt werden kann. 3 Lösungsabschnitt: Abstrakte Beschreibung der Elemente, deren Beziehungen, Zuständigkeiten und Interaktionen zur Lösung eines sproblems. Schablone, die in vielen verschiedenen Situationen angewandt werden kann 4 Konsequenzenabschnitt: Auflistung der Vor- und Nachteile der smusteranwendung 4 / 23 smuster ( )
18 smuster smuster Gamma et al. [GEG09] katalogisieren 23 smuster Nicht betrachtet werden Muster für: - Nebenläufigkeit - verteilte oder Echtzeitprogrammierung - Benutzungsschnittstellen - Gerätetreiber - objektorientierte Datenbanken Abbildung: Die Beziehungen zwischen smustern [GEG09] 5 / 23 smuster ( )
19 Klassifikation objektorientierter smuster smuster Gültigkeitsbereich klassenbasiert objektbasiert Aufgabe Erzeugungsmuster Strukturmuster Verhaltensmuster Adapter (klassenbasiert) Interpreter Schablonenmethode Abstrakte Fabrik Adapter (objektbasiert) Befehlt Erbauer Brücke Prototyp Dekorierer Besucher Singleton Fassade Iterator Fliegengewicht Vermittler Proxy Zustand Zuständigkeitskette Tabelle: Dimensionen der Ausprägung von smusterns [GEG09] 6 / 23 smuster ( )
20 Aufgabe objektorientierter smuster smuster Erzeugermuster: Prozess der Objekterzeugung Strukturmuster: Zusammensetzung von Klassen und Objekten Verhaltensmuster: Zuständigkeiten und Aufgabenteilung zwischen Objekten und Klassen 7 / 23 smuster ( )
21 Aufgabe objektorientierter smuster smuster Erzeugermuster: Prozess der Objekterzeugung Strukturmuster: Zusammensetzung von Klassen und Objekten Verhaltensmuster: Zuständigkeiten und Aufgabenteilung zwischen Objekten und Klassen 7 / 23 smuster ( )
22 Aufgabe objektorientierter smuster smuster Erzeugermuster: Prozess der Objekterzeugung Strukturmuster: Zusammensetzung von Klassen und Objekten Verhaltensmuster: Zuständigkeiten und Aufgabenteilung zwischen Objekten und Klassen 7 / 23 smuster ( )
23 Gültigkeitsbereich objektorientierter smuster smuster Klassenbasierte smuster: - behandeln Beziehungen zwischen Klassen unter Verwendung von Generalisierung - Beziehungen werden statisch, also zur Übersetzungszeit festgelegt Objektbasierte smuster: - behandeln Beziehungen zwischen Klassen unter Verwendung von Aggregation, Komposition, Delegation und Generalisierung - Beziehungen werden dynamisch, also zur Laufzeit festgelegt und geändert 8 / 23 smuster ( )
24 Gültigkeitsbereich objektorientierter smuster smuster Klassenbasierte smuster: - behandeln Beziehungen zwischen Klassen unter Verwendung von Generalisierung - Beziehungen werden statisch, also zur Übersetzungszeit festgelegt Objektbasierte smuster: - behandeln Beziehungen zwischen Klassen unter Verwendung von Aggregation, Komposition, Delegation und Generalisierung - Beziehungen werden dynamisch, also zur Laufzeit festgelegt und geändert 8 / 23 smuster ( )
25 smuster Teil 3 9 / 23 smuster ( )
26 smuster 1 Mustername: (engl. factory method) klassenbasiertes smuster 2 Problembeschreibung: - Zweck: Delegation der Erzeugung von Objekten an Unterklassen Definiere Klassenschnittstelle zum Erzeugen eines Objekts lasse Unterklassen entscheiden, von welcher Klasse das zu erzeugende Objekt ist - Motivation: z.b. Framework für Anwendungen, die mehrere Dokumente gleichzeitig anzeigen können Framework verwendet abstrakte Klasse für die Dokumente muss anwendungsspezifische Dokumente erzeugen können, kennt aber nur deren abstrakte Oberklasse Framework weiß lediglich, wann ein neues Dokument erzeugt werden soll, nicht aber welche Art von Dokument Lösung: Erzeugung der Objekte durch eine, die von einer Unterklasse überschrieben wird 9 / 23 smuster ( )
27 smuster 1 Mustername: (engl. factory method) klassenbasiertes smuster 2 Problembeschreibung: - Zweck: Delegation der Erzeugung von Objekten an Unterklassen Definiere Klassenschnittstelle zum Erzeugen eines Objekts lasse Unterklassen entscheiden, von welcher Klasse das zu erzeugende Objekt ist - Motivation: z.b. Framework für Anwendungen, die mehrere Dokumente gleichzeitig anzeigen können Framework verwendet abstrakte Klasse für die Dokumente muss anwendungsspezifische Dokumente erzeugen können, kennt aber nur deren abstrakte Oberklasse Framework weiß lediglich, wann ein neues Dokument erzeugt werden soll, nicht aber welche Art von Dokument Lösung: Erzeugung der Objekte durch eine, die von einer Unterklasse überschrieben wird 9 / 23 smuster ( )
28 smuster 1 Mustername: (engl. factory method) klassenbasiertes smuster 2 Problembeschreibung: - Zweck: Delegation der Erzeugung von Objekten an Unterklassen Definiere Klassenschnittstelle zum Erzeugen eines Objekts lasse Unterklassen entscheiden, von welcher Klasse das zu erzeugende Objekt ist - Motivation: z.b. Framework für Anwendungen, die mehrere Dokumente gleichzeitig anzeigen können Framework verwendet abstrakte Klasse für die Dokumente muss anwendungsspezifische Dokumente erzeugen können, kennt aber nur deren abstrakte Oberklasse Framework weiß lediglich, wann ein neues Dokument erzeugt werden soll, nicht aber welche Art von Dokument Lösung: Erzeugung der Objekte durch eine, die von einer Unterklasse überschrieben wird 9 / 23 smuster ( )
29 smuster 1 Mustername: (engl. factory method) klassenbasiertes smuster 2 Problembeschreibung: - Zweck: Delegation der Erzeugung von Objekten an Unterklassen Definiere Klassenschnittstelle zum Erzeugen eines Objekts lasse Unterklassen entscheiden, von welcher Klasse das zu erzeugende Objekt ist - Motivation: z.b. Framework für Anwendungen, die mehrere Dokumente gleichzeitig anzeigen können Framework verwendet abstrakte Klasse für die Dokumente muss anwendungsspezifische Dokumente erzeugen können, kennt aber nur deren abstrakte Oberklasse Framework weiß lediglich, wann ein neues Dokument erzeugt werden soll, nicht aber welche Art von Dokument Lösung: Erzeugung der Objekte durch eine, die von einer Unterklasse überschrieben wird 9 / 23 smuster ( )
30 smuster 2 Problembeschreiubng: - Anwendbarkeit: wenn eine Klasse die von ihr zu erzeugenden Objekte nicht im voraus kennen kann wenn Unterklassen einer Klasse festlegen sollen, welche Objekte erzeugt werden festlegt. wenn Klassen Zuständigkeiten an eine von mehreren Hilfsunterklassen delegieren sollen und das Wissen lokalisierbar sein soll, an welche Hilfsunterklasse die Zuständigkeiten delegiert werden 3 Lösungsbeschreibung: - Struktur: 10 / 23 smuster ( )
31 smuster 2 Problembeschreiubng: - Anwendbarkeit: wenn eine Klasse die von ihr zu erzeugenden Objekte nicht im voraus kennen kann wenn Unterklassen einer Klasse festlegen sollen, welche Objekte erzeugt werden festlegt. wenn Klassen Zuständigkeiten an eine von mehreren Hilfsunterklassen delegieren sollen und das Wissen lokalisierbar sein soll, an welche Hilfsunterklasse die Zuständigkeiten delegiert werden 3 Lösungsbeschreibung: - Struktur: 10 / 23 smuster ( )
32 smuster 3 Lösungsbeschreibung: - Struktur: Product definiert die Schnittstelle der von der erzeugten Objekte ConcreteProduct implementiert die Produktschnittstelle Creator deklariert (und nutzt) die abstrakte ConcreteCreator implementiert die abstrakte, so dass Exemplare der Klasse ConcreteProduct zurückgegeben werden - Interaktion: Creator verlässt sich darauf, das Unterklassen die korrekt implementieren 4 Konsequenzen: das Muster verhindert, dass ein Framework anwendungsspezifische Klassen kennen muss. 11 / 23 smuster ( )
33 smuster 3 Lösungsbeschreibung: - Struktur: Product definiert die Schnittstelle der von der erzeugten Objekte ConcreteProduct implementiert die Produktschnittstelle Creator deklariert (und nutzt) die abstrakte ConcreteCreator implementiert die abstrakte, so dass Exemplare der Klasse ConcreteProduct zurückgegeben werden - Interaktion: Creator verlässt sich darauf, das Unterklassen die korrekt implementieren 4 Konsequenzen: das Muster verhindert, dass ein Framework anwendungsspezifische Klassen kennen muss. 11 / 23 smuster ( )
34 smuster 3 Lösungsbeschreibung: - Struktur: Product definiert die Schnittstelle der von der erzeugten Objekte ConcreteProduct implementiert die Produktschnittstelle Creator deklariert (und nutzt) die abstrakte ConcreteCreator implementiert die abstrakte, so dass Exemplare der Klasse ConcreteProduct zurückgegeben werden - Interaktion: Creator verlässt sich darauf, das Unterklassen die korrekt implementieren 4 Konsequenzen: das Muster verhindert, dass ein Framework anwendungsspezifische Klassen kennen muss. 11 / 23 smuster ( )
35 smuster 1 Mustername: (engl. observer) objektbasiertes smuster 2 Problembeschreibung: - Zweck: Definition von 1-zu-n Abhängigkeiten zwischen Objekten bei der Änderung des Zustands eines Objekts werden alle abhängigen Objekte benachrichtigt diese können dann ihren Zustand aktualisieren - Motivation: z.b. verschiedene graphische Darstellungen der Daten eines Objekts in einem GUI Die graphischen Darstellungen kennen einander nicht, repräsentieren jedoch die gleichen Anwendungsdaten Bei Änderung der Anwendungsdaten über eine der graphischen Darstellung, sollen alle weiteren graphischen Darstellungen aktualisiert werden. Lösung: Graphische Darstellungen beobachten das gleiche Objekt, welches die Anwendungsdaten repräsentiert und werden bei einer Änderung aktualisiert 12 / 23 smuster ( )
36 smuster 1 Mustername: (engl. observer) objektbasiertes smuster 2 Problembeschreibung: - Zweck: Definition von 1-zu-n Abhängigkeiten zwischen Objekten bei der Änderung des Zustands eines Objekts werden alle abhängigen Objekte benachrichtigt diese können dann ihren Zustand aktualisieren - Motivation: z.b. verschiedene graphische Darstellungen der Daten eines Objekts in einem GUI Die graphischen Darstellungen kennen einander nicht, repräsentieren jedoch die gleichen Anwendungsdaten Bei Änderung der Anwendungsdaten über eine der graphischen Darstellung, sollen alle weiteren graphischen Darstellungen aktualisiert werden. Lösung: Graphische Darstellungen beobachten das gleiche Objekt, welches die Anwendungsdaten repräsentiert und werden bei einer Änderung aktualisiert 12 / 23 smuster ( )
37 smuster 1 Mustername: (engl. observer) objektbasiertes smuster 2 Problembeschreibung: - Zweck: Definition von 1-zu-n Abhängigkeiten zwischen Objekten bei der Änderung des Zustands eines Objekts werden alle abhängigen Objekte benachrichtigt diese können dann ihren Zustand aktualisieren - Motivation: z.b. verschiedene graphische Darstellungen der Daten eines Objekts in einem GUI Die graphischen Darstellungen kennen einander nicht, repräsentieren jedoch die gleichen Anwendungsdaten Bei Änderung der Anwendungsdaten über eine der graphischen Darstellung, sollen alle weiteren graphischen Darstellungen aktualisiert werden. Lösung: Graphische Darstellungen beobachten das gleiche Objekt, welches die Anwendungsdaten repräsentiert und werden bei einer Änderung aktualisiert 12 / 23 smuster ( )
38 smuster 1 Mustername: (engl. observer) objektbasiertes smuster 2 Problembeschreibung: - Zweck: Definition von 1-zu-n Abhängigkeiten zwischen Objekten bei der Änderung des Zustands eines Objekts werden alle abhängigen Objekte benachrichtigt diese können dann ihren Zustand aktualisieren - Motivation: z.b. verschiedene graphische Darstellungen der Daten eines Objekts in einem GUI Die graphischen Darstellungen kennen einander nicht, repräsentieren jedoch die gleichen Anwendungsdaten Bei Änderung der Anwendungsdaten über eine der graphischen Darstellung, sollen alle weiteren graphischen Darstellungen aktualisiert werden. Lösung: Graphische Darstellungen beobachten das gleiche Objekt, welches die Anwendungsdaten repräsentiert und werden bei einer Änderung aktualisiert 12 / 23 smuster ( )
39 smuster 2 Problembeschreibung: - Anwendbarkeit: Eine Abstraktion besitzt zwei Aspekte, die wechselseitig voneinander abhängen Kapselung in unterschiedliche Objekte Änderung eines Objektes bedingt die Änderung anderer Objekte Anzahl der zu ändernden Objekte ist unbekannt. Objekt soll andere Objekte benachrichtigen lose Kopplung 3 Lösungsbeschreibung: - Struktur: 13 / 23 smuster ( )
40 smuster 2 Problembeschreibung: - Anwendbarkeit: Eine Abstraktion besitzt zwei Aspekte, die wechselseitig voneinander abhängen Kapselung in unterschiedliche Objekte Änderung eines Objektes bedingt die Änderung anderer Objekte Anzahl der zu ändernden Objekte ist unbekannt. Objekt soll andere Objekte benachrichtigen lose Kopplung 3 Lösungsbeschreibung: - Struktur: 13 / 23 smuster ( )
41 smuster 3 Lösungsbeschreibung: - Struktur: Subject kennt beliebige Zahl an n Observer definiert Aktualisierungsschnittstelle für konkrete ConcreteSubject speichert den für ConcreteObserver relevanten Zustand und benachrichtigt diese bei Änderung ConcreteObserver implementiert die Aktualisierungsschnittstelle, kennt das konkrete Subjekt und merkt sich den Zustand, der mit dem des Subjekts konsistent sein soll - Interaktion: konkretes Subjekt benachrichtigt bei Zustandsänderung alle seine, woraufhin diese ihren Zustand aktualisieren 14 / 23 smuster ( )
42 smuster 3 Lösungsbeschreibung: - Struktur: Subject kennt beliebige Zahl an n Observer definiert Aktualisierungsschnittstelle für konkrete ConcreteSubject speichert den für ConcreteObserver relevanten Zustand und benachrichtigt diese bei Änderung ConcreteObserver implementiert die Aktualisierungsschnittstelle, kennt das konkrete Subjekt und merkt sich den Zustand, der mit dem des Subjekts konsistent sein soll - Interaktion: konkretes Subjekt benachrichtigt bei Zustandsänderung alle seine, woraufhin diese ihren Zustand aktualisieren 14 / 23 smuster ( )
43 smuster 4 Konsequenzen: - Unabhängigkeit: Code von Subjekten und n ist unabhängig: Subjekt und sind einzeln wiederverwendbar Hinzufügen von n ohne Änderung des Subjekts - Unerwartete Aktualisierung: Kaskaden von Benachrichtigungen möglich 15 / 23 smuster ( )
44 smuster 1 Mustername: (composite) objektbasiertes Strukturmuster 2 Problembeschreibung: - Zweck: Definition von rekursiven Kompositionen von Objekten Objekte werden zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren einzelne Objekte als auch Kompositionen von Objekten können einheitlich behandelt werden - Motivation: z.b. graphische Elemente in einem Graphikeditor Klassen für Grafikprimitive wie Text und Linien sowie Klassen für Behälter dieser Primitive Objekte der Klassen sollen in der Anwendung gleich behandelt werden können Lösung: Einführung einer abstrakten Klasse Grafik, welche sowohl primitive als auch Behälterobjekte repräsentiert. 16 / 23 smuster ( )
45 smuster 1 Mustername: (composite) objektbasiertes Strukturmuster 2 Problembeschreibung: - Zweck: Definition von rekursiven Kompositionen von Objekten Objekte werden zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren einzelne Objekte als auch Kompositionen von Objekten können einheitlich behandelt werden - Motivation: z.b. graphische Elemente in einem Graphikeditor Klassen für Grafikprimitive wie Text und Linien sowie Klassen für Behälter dieser Primitive Objekte der Klassen sollen in der Anwendung gleich behandelt werden können Lösung: Einführung einer abstrakten Klasse Grafik, welche sowohl primitive als auch Behälterobjekte repräsentiert. 16 / 23 smuster ( )
46 smuster 1 Mustername: (composite) objektbasiertes Strukturmuster 2 Problembeschreibung: - Zweck: Definition von rekursiven Kompositionen von Objekten Objekte werden zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren einzelne Objekte als auch Kompositionen von Objekten können einheitlich behandelt werden - Motivation: z.b. graphische Elemente in einem Graphikeditor Klassen für Grafikprimitive wie Text und Linien sowie Klassen für Behälter dieser Primitive Objekte der Klassen sollen in der Anwendung gleich behandelt werden können Lösung: Einführung einer abstrakten Klasse Grafik, welche sowohl primitive als auch Behälterobjekte repräsentiert. 16 / 23 smuster ( )
47 smuster 1 Mustername: (composite) objektbasiertes Strukturmuster 2 Problembeschreibung: - Zweck: Definition von rekursiven Kompositionen von Objekten Objekte werden zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren einzelne Objekte als auch Kompositionen von Objekten können einheitlich behandelt werden - Motivation: z.b. graphische Elemente in einem Graphikeditor Klassen für Grafikprimitive wie Text und Linien sowie Klassen für Behälter dieser Primitive Objekte der Klassen sollen in der Anwendung gleich behandelt werden können Lösung: Einführung einer abstrakten Klasse Grafik, welche sowohl primitive als auch Behälterobjekte repräsentiert. 16 / 23 smuster ( )
48 smuster 3 Problembeschreibung: - Anwendbarkeit: Es müssen Teil/Ganzes-Hierarchien dargestellt werden Klienten sollen keinen Unterschied zwischen elementaren und zusammengesetzten Objekten wahrnehmen alle Objekte sollen gleich behandelt werden können 4 Lösungsbeschreibung: - Struktur: 17 / 23 smuster ( )
49 smuster 3 Problembeschreibung: - Anwendbarkeit: Es müssen Teil/Ganzes-Hierarchien dargestellt werden Klienten sollen keinen Unterschied zwischen elementaren und zusammengesetzten Objekten wahrnehmen alle Objekte sollen gleich behandelt werden können 4 Lösungsbeschreibung: - Struktur: 17 / 23 smuster ( )
50 smuster 3 Lösungsbeschreibung: - Struktur: Component deklariert gemeinsame Schnittstelle für alle Objekte, incl. Verwaltung von Teilobjekten Leaf repräsentiert elementare/primitiver Objekte und definiert das Verhalten der dieser Composite definiert Verhalten von zusammengesetzten Objekten, speichert Teilobjekte und reicht Methodenaufrufe ggf. an alle Teilobjekte weiter Client manipuliert die Objekte in der Komposition durch die Schnittstelle von Component - Interaktion: Client verwendet nur die Klassenschnittstelle von Component elementare Objekte verarbeiten Anfragen direkt zusammengesetztes Objekt gibt Anfrage an seine Teilobjekte weiter 18 / 23 smuster ( )
51 smuster 3 Lösungsbeschreibung: - Struktur: Component deklariert gemeinsame Schnittstelle für alle Objekte, incl. Verwaltung von Teilobjekten Leaf repräsentiert elementare/primitiver Objekte und definiert das Verhalten der dieser Composite definiert Verhalten von zusammengesetzten Objekten, speichert Teilobjekte und reicht Methodenaufrufe ggf. an alle Teilobjekte weiter Client manipuliert die Objekte in der Komposition durch die Schnittstelle von Component - Interaktion: Client verwendet nur die Klassenschnittstelle von Component elementare Objekte verarbeiten Anfragen direkt zusammengesetztes Objekt gibt Anfrage an seine Teilobjekte weiter 18 / 23 smuster ( )
52 smuster 4 Konsequenzen: - vereinfacht Klienten, da primitive und zusammengesetzte Objekte gleich behandelt werden - vereinfacht es, neue Arten von Komponenten einzufügen - erschwert es, mögliche Komponenten des s einzuschränken (Prüfung zur Laufzeit nötig) 19 / 23 smuster ( )
53 smuster 1 Mustername: (engl. strategy) objektbasiertes Verhaltensmuster 2 Problembeschreibung: - Zweck: Definition von Familien von Algorithmen Algorithmen werden gekapselt und können ausgetauscht werden - Motivation: z.b. zur Kapselung unterschiedlicher Algorithmen zur Bearbeitung oder Überprüfung eines Textstromes bzw. einer Texteingabe (Validierungsfunktion) mehrere Klassen, welche unterschiedlichen Validierungsfunktionen für Texte realisieren Klasse, welche Textfelder repräsentiert, deren Eingaben je nach Kontext unterschiedlich validiert werden sollen Lösung: Einführung einer abstrakten Klasse, die eine einheitliche Schnittstelle der Klassen repräsentiert, welche die Validierungsfunktionen bereitstellen 20 / 23 smuster ( )
54 smuster 1 Mustername: (engl. strategy) objektbasiertes Verhaltensmuster 2 Problembeschreibung: - Zweck: Definition von Familien von Algorithmen Algorithmen werden gekapselt und können ausgetauscht werden - Motivation: z.b. zur Kapselung unterschiedlicher Algorithmen zur Bearbeitung oder Überprüfung eines Textstromes bzw. einer Texteingabe (Validierungsfunktion) mehrere Klassen, welche unterschiedlichen Validierungsfunktionen für Texte realisieren Klasse, welche Textfelder repräsentiert, deren Eingaben je nach Kontext unterschiedlich validiert werden sollen Lösung: Einführung einer abstrakten Klasse, die eine einheitliche Schnittstelle der Klassen repräsentiert, welche die Validierungsfunktionen bereitstellen 20 / 23 smuster ( )
55 smuster 1 Mustername: (engl. strategy) objektbasiertes Verhaltensmuster 2 Problembeschreibung: - Zweck: Definition von Familien von Algorithmen Algorithmen werden gekapselt und können ausgetauscht werden - Motivation: z.b. zur Kapselung unterschiedlicher Algorithmen zur Bearbeitung oder Überprüfung eines Textstromes bzw. einer Texteingabe (Validierungsfunktion) mehrere Klassen, welche unterschiedlichen Validierungsfunktionen für Texte realisieren Klasse, welche Textfelder repräsentiert, deren Eingaben je nach Kontext unterschiedlich validiert werden sollen Lösung: Einführung einer abstrakten Klasse, die eine einheitliche Schnittstelle der Klassen repräsentiert, welche die Validierungsfunktionen bereitstellen 20 / 23 smuster ( )
56 smuster 2 Problembeschreibung: - Anwendbarkeit: Viele verwandte Klassen unterscheiden sich nur in ihrem Verhalten Konfiguration der Verhaltensweise einer Klasse Es werden unterschiedliche Varianten eines Algorithmus benötigt Algorithmen mit unterschiedlichen Vor- und Nachteilen Kapselung komplexer algorithmenspezifischer Datenstrukturen Information Hiding Definition von unterschiedlichen Verhaltensweisen einer Klasse führt zu mehrfachen Bedingungsanweisungen 3 Lösungsbeschreibung: - Struktur: 21 / 23 smuster ( )
57 smuster 2 Problembeschreibung: - Anwendbarkeit: Viele verwandte Klassen unterscheiden sich nur in ihrem Verhalten Konfiguration der Verhaltensweise einer Klasse Es werden unterschiedliche Varianten eines Algorithmus benötigt Algorithmen mit unterschiedlichen Vor- und Nachteilen Kapselung komplexer algorithmenspezifischer Datenstrukturen Information Hiding Definition von unterschiedlichen Verhaltensweisen einer Klasse führt zu mehrfachen Bedingungsanweisungen 3 Lösungsbeschreibung: - Struktur: 21 / 23 smuster ( )
58 smuster 3 Lösungsbeschreibung: - Struktur: Strategy deklariert eine Schnittstelle, die von allen unterstützten Algorithmen angeboten wird ConcreteStrategy implementiert den Algorithmus unter Verwendung der schnittstelle Context wird mit einem ConcreteStrategy-Objekt konfiguriert - Interaktion: Ein Context-Exemplar leitet die Anfrage an seine weiter 4 Konsequenzen: - Definition von Familien von verwandten Algorithmen, die von Kontextobjekten wiederverwendet werden können - Algorithmus kann unabhängig vom Kontext variieren und ist daher flexibler bzgl. der Austauschbarkeit und Erweiterbarkeit - Vermeidung von Bedingungsanweisungen - zusätzlicher Kommunikationsaufwand und erhöhte Anzahl von Objekten 22 / 23 smuster ( )
59 smuster 3 Lösungsbeschreibung: - Struktur: Strategy deklariert eine Schnittstelle, die von allen unterstützten Algorithmen angeboten wird ConcreteStrategy implementiert den Algorithmus unter Verwendung der schnittstelle Context wird mit einem ConcreteStrategy-Objekt konfiguriert - Interaktion: Ein Context-Exemplar leitet die Anfrage an seine weiter 4 Konsequenzen: - Definition von Familien von verwandten Algorithmen, die von Kontextobjekten wiederverwendet werden können - Algorithmus kann unabhängig vom Kontext variieren und ist daher flexibler bzgl. der Austauschbarkeit und Erweiterbarkeit - Vermeidung von Bedingungsanweisungen - zusätzlicher Kommunikationsaufwand und erhöhte Anzahl von Objekten 22 / 23 smuster ( )
60 smuster 3 Lösungsbeschreibung: - Struktur: Strategy deklariert eine Schnittstelle, die von allen unterstützten Algorithmen angeboten wird ConcreteStrategy implementiert den Algorithmus unter Verwendung der schnittstelle Context wird mit einem ConcreteStrategy-Objekt konfiguriert - Interaktion: Ein Context-Exemplar leitet die Anfrage an seine weiter 4 Konsequenzen: - Definition von Familien von verwandten Algorithmen, die von Kontextobjekten wiederverwendet werden können - Algorithmus kann unabhängig vom Kontext variieren und ist daher flexibler bzgl. der Austauschbarkeit und Erweiterbarkeit - Vermeidung von Bedingungsanweisungen - zusätzlicher Kommunikationsaufwand und erhöhte Anzahl von Objekten 22 / 23 smuster ( )
61 smuster Teil 4 23 / 23 smuster ( )
62 smuster Quellen: [AIS77] Christopher Alexander, Sara Ishikawa, and Murray Silverstein. A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure). Oxford University Press, later printing edition, August [GEG09] E. Gamma and R.H.J.V.R.J. Erich Gamma. smuster: Elemente wiederverwendbarer objektorientierter Software. Professionelle Softwareentwicklung. Addison-Wesley, [OB12] B. Oestereich and S. Bremer. Analyse und Design mit der UML 2.5: Softwareentwicklung. Oldenbourg Wissenschaftsverlag, / 23 smuster ( )
Objektorientierte und Funktionale Programmierung SS 2014
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrEntwurfsprinzip. Entwurfsprinzip
Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit
MehrModel-View-Controller
Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung
MehrEINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC
EINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC 10. Informatik-Tag, HTWM Dipl.-Inf. Chris Hübsch, ARC Solutions GmbH Inhalt 1. ARC Solutions 2. REMARC 3. Design Patterns 4. Patterns
MehrDesign Patterns. 5. Juni 2013
Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es
MehrSoftware Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering 10. Entwurfsmuster II Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: 10. Entwurfsmuster II 2 Die Entwurfsmuster der Gang of Four Die 23 GoF Pattern sind in 3 Gruppen
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster benennen wiederkehrende Probleme und Lösungen dienen dem Austasch von Erfahrungen Wiederverwendung von Erfahrung wo Wiederverwendung von Code versagt sehr abstrakt, daher häufig
MehrSoftware-Architektur Design Patterns
Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
Mehr14 Design Patterns. 14.1 Einführung 14.2 Composite Pattern
14 Design Patterns 14.1 Einführung 14.2 Composite Pattern 14.1 Einführung 14.1.1 Motivation 14.1.2 Was ist ein Design Pattern? 14.1.3 Beschreibung eines Design Patterns 14.1.4 Katalog von Design Patterns
MehrUniversität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrBehavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul
Behavioral Patterns Seminar Software-Entwurf WS 04/05 Przemyslaw Dul Gliederung Design Pattern (Wiederholung) Einordnung Übersicht über die Kategorien: Creational,Structural,Behavioral Übersicht über die
MehrDESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens
November DESIGN'PATTERN'2011 INHALT Intent Motivation Applicability Structure Consequences Implementation Sample Code [1] BEARBEITET VON Christoph Süsens Abstract Factory & Factory Method Inhaltsverzeichnis
MehrEntwurfsmuster (Design Pattern) ETIS SS05
Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit
MehrSoftware-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09 Überblick I 1 1 Was ist ein Entwurfsmuster? Bestandteile
MehrWahlpflichtfach Design Pattern
Wahlpflichtfach Design Pattern Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik miwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338
MehrObjektorientierte Modellierung (1)
Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist
MehrBekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen
Michael Saecker Bekannte Lösungen für bekannte Probleme benutzen Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen Gemeinsames Vokabular für Designer 2 http://www.clickpix.de/sommer/architektur.jpg
MehrObjektorientiertes Software-Engineering
Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur
MehrDatenintegrationsmuster MKWI 2004, Essen, 10. März 2004
Datenintegrationsmuster MKWI 2004, Essen, 10. März 2004 Universität St. Gallen Institut für Wirtschaftsinformatik, Lehrstuhl Prof. Dr. R. Winter Kompetenzzentrum Application Integration Management (CC
MehrSpecifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn
Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams Lothar Wendehals 6. Workshop Software-Reengineering Bad Honnef, 3. - 5. Mai 2004 Motivation Unterstützung des
MehrUML (Unified Modelling Language) von Christian Bartl
UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...
MehrVermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D
Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D 1 1. EINLEITUNG... 3 2. ZWECK... 3 3. MOTIVATION... 3 4. ANWENDBARKEIT... 6 5. STRUKTUR... 6 6. TEILNEHMER... 7 7. INTERAKTION...
MehrVorlesung Programmieren
Vorlesung Programmieren Software Design Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Software Design Wie schreibe ich gute Software?
MehrOM Entwurfsmuster. OM Entwurfsmuster. 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Definition Entwurfsmuster (design pattern)
1 Inhalt: Entwurfsmuster 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Kompositum-Muster 7.5 Proxy-Muster 7.6 Fassaden-Muster 7.7 Beobachter-Muster
MehrDer Musteransatz von Christopher Alexander: Von Architektur über Design zur Gesellschaftspolitik
Der Foliensatz ist unter einer Creative Commons-Lizenz lizenziert: Der Musteransatz von Christopher Alexander: Von Architektur über Design zur Gesellschaftspolitik Donau-Universität Krems Gliederung Einstimmung:
MehrMerkliste SoSy. V Modell. Anforderungen. Eigenschaften VKKNERV. Ermittlung FBI WAS. Volerekarte Punkte KKKMUH
Merkliste SoSy V Modell Verifikation - Übereinstimmung SW-Produkt - Spezifikation Validierung - Eignung SW-Produkt - Einsatzzweck Anforderungen Eigenschaften VKKNERV Vollständigkeit Konsistenz Korrektheit
MehrInhaltsverzeichnis. a. Standorte...3 1. Design Patterns...6. b. Impressum... 16. i. C#.NET...6. ii. Enterprise Integration Patterns...
2 Inhaltsverzeichnis a. Standorte...3 1. Design Patterns...6 i. C#.NET...6 ii. Enterprise Integration Patterns... 8 iii. Entwurfsmuster-Katalog Standard (GoF)...10 iv. Java...12 v. PHP... 14 b. Impressum...
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
MehrSE Besprechung. Übung 4 Architektur, Modulentwurf
SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,
MehrEntwurfsmuster. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06
Entwurfsmuster Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Wichtig: Klausuranmeldung 2. Teilklausur am 22.7.2006! Klausuranmeldung ist für Klausurteilnahme erforderlich!
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
Mehr29.01.2013. Vorlesung Programmieren. Software Design. Software Design. Entwurfsmuster
Vorlesung Programmieren Software Design Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Software Design Wie schreibe ich gute Software?
Mehr8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure
8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:
MehrUML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language
UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?
MehrMusterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9
Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung
Mehr8 Design Patterns. Events
8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrEntwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können. Wichtige Entwurfsmuster kennen und erklären können, wo sie eingesetzt werden
Grundlagen der Softwaretechnik 7 Entwurfsmuster und Frameworks Lernziele Entwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können Wichtige Entwurfsmuster kennen und erklären können, wo sie
MehrÜbersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur
Übersicht Object Oriented Organization Das System besteht aus Objekten, die mittels Methodenaufrufe (Nachrichten) miteinander kommunizieren. 2 / 34 4 / 34,, Design Patterns und Stefan Wehr Prof. Dr. Peter
MehrFactory Method Pattern
Factory Method Pattern Bedeutung: Das Muster ist eines der sogenannten GoF-Entwurfsmuster (Gang offour). Es bezeichnet ein Muster, bei dem die Schnittstelle zur Erstellung eines Objektes eine (abstrakte)
MehrDesign im Softwareentwicklungsprozess. Stand der Dinge & Designziel. fachliche & technische Architektur. generelles Vorgehen bei Grob-Design
Design im Softwareentwicklungsprozess traditionell Geschäftsprozessmodellierung Requirements Engineering Analyse Design Implementierung Tests Design 1 test-getrieben: nur 1. Design top-down hier testgetrieben
MehrObjekt-Komposition versus Vererbung: Decorator-Design-Pattern
Objekt-Komposition versus Vererbung: Decorator-Design-Pattern O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree Fachbereich Informatik cs.uni-salzburg.at Motivation: Änderungen einer Klasse mit vielen Unterklassen
Mehr8 Baum in perfekter Komposition
8 Baum in perfekter Komposition Die Implementierung des Binärbaums im letzten Kapitel wird mithilfe des Entwurfsmusters Kompositum optimiert. Knoten und Abschluss Bei der einfach verketteten Liste wurde
MehrSoftware Engineering. 10. Entwurfsmuster. Franz-Josef Elmer, Universität Basel, WS 2006/07
Software Engineering 10. Entwurfsmuster Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering: 10. Entwurfsmuster 2 Entwurfsmuster (engl. Design Patterns) Definition: A Bewährte Codevorlagen
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/15 1 / 26 Allgemeines Progammiersprachen Objektorientierte Programmierung Grundlegende Eigenschaften
MehrSecurity Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08
Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme
MehrÜbungen Softwaretechnik I
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der
Mehrwenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken
1 Java ist... gut erlernbar wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax objektorientiert Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken robust keine Adressen,
MehrSoftware Engineering Entwurfsmuster (update: 11.6.)
Software Engineering Entwurfsmuster (update: 11.6.) Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Entwurfsmuster Entwurfsmuster (Design Patterns) geben bewährte
MehrJason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel
Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,
MehrKomponentenbasierte Softwareentwicklung
Seminar WS04 Komponentenbasierte Softwareentwicklung Karl Pauls Software-Komponente A software component is a unit of composition with contractually specified interfaces and explicit context dependencies
MehrObjektorientierte Analyse (OOA) Inhaltsübersicht
Inhaltsübersicht Einführung Anforderungen an die UML-Diagramme Verhalten: Use-Case-Diagramm Verhalten: Aktivitätsdiagramm Verhalten: Zustandsautomat Struktur: Klassendiagramm Seite 1 Einführung In der
MehrObjektorientierte Analyse (OOA) OOA-Pattern
OOA-Muster (Architektur Pattern) Ein Pattern (Entwurfsmuster) ist ein Problem mit seiner Lösung in einem Kontext. Der Kontext enthält in der Regel Zielkonflikte, die der Designer lösen muss, z.b. Performance
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrEinführung in Generatives Programmieren. Bastian Molkenthin
Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrÜbung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter
Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster
MehrEinführung. Kapitel 1
Das Entwickeln bzw. Entwerfen objektorientierter Software ist zweifellos kein leichtes Unterfangen und das Designen wiederverwendbarer objektorientierter Software gestaltet sich sogar noch anspruchsvoller
MehrEinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2
EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrEntwicklung der Persistenzschicht für f eine Java-Anwendung aus dem UML-Modell. Modell mit und. Matthias Ehlert microtool GmbH, Berlin
Entwicklung der Persistenzschicht für f eine Java-Anwendung aus dem UML-Modell Modell mit und Matthias Ehlert microtool GmbH, Berlin Themen! microtool das Unternehmen! Die Grundidee: ein effizienter, architekturgetriebener
MehrInhaltsverzeichnis.
Wegweiser durch das Buch 1 1 Problembereich und Lösungsbereich 10 1.1.Unterschiede zwischen Problembereich und Lösungsbereich 10 1.2 Paradigmen der Softwareentwicklung 12 1.3 Methoden für die verschiedenen
MehrDrucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC
Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC Progwerkstatt Philipp Güttler, Christoph Schied, Nicolai Waniek 01.12.2008 Seite 2 Drucken Drucken ist eigentlich ganz einfach...
MehrEinführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren
Einführung in die Informationsverarbeitung Teil Thaller Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 18. Dezember 2014 Rekapitulation Der Gang der Argumentation 1. Der Rohstoff:
MehrOO Design. welche Methoden in welcher Klasse sind, und. diese Interagieren
Design: GRASP 1 OO Design Definition Objektorientiertes Design: After identifiying your requirements and creating a domain model, then add methods to the software classes, and define the messaging between
MehrModellarbeit I: Entwurfsgerechte Klassenmodellierung
Modellarbeit I: Entwurfsgerechte Klassenmodellierung Vom Analysemodell zum Entwurfsmodell Nach der Etablierung der Techologien: Überarbeitung des Fachlichen Modells zu einem geeigneten Entwurfsmodell Navigationen
MehrTechniken der Projektentwicklung
diagramme Termin 6 Denken in Schnittstellen Was nun? Einführung Bisher kennengelernt: Modellierung auf Konzeptlevel Usecase-Diagramme Domänenmodelle Jetzt: Übergang zu Spezifikation und Implementierung!
MehrProgrammierkurs. 13. Vorlesung. Sven Mallach. 27. Januar Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 69
Programmierkurs 13. Vorlesung Sven Mallach Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 27. Januar 2010 1/ 69 UML Teile der Vorlesungsfolien dieses Kapitels enthalten Grafiken und Inhalte aus
MehrSoftwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design
Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte
MehrSiehe auch Heide Balzert: Lehrbuch der Objektmodellierung.
Siehe auch Heide Balzert: Lehrbuch der Objektmodellierung. 9. Analyse Muster 1 Der Unterschied von Analyse und Design Pattern besteht auch in der zeitlichen Abfolge. Analyse Muster werden in der Analyse
Mehram Beispiel von JUnit
Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern
MehrNotationen zur Prozessmodellierung
Notationen zur Prozessmodellierung August 2014 Inhalt (erweiterte) ereignisgesteuerte Prozesskette (eepk) 3 Wertschöpfungskettendiagramm (WKD) 5 Business Process Model and Notation (BPMN) 7 Unified Modeling
MehrOOAD Richtlinien & Tips
Software-Architekturen Sommersemester 2002 Prof. Dr. Wolfgang Pree Universität Salzburg www.softwareresearch.net/swa 1 OOAD Richtlinien & Tips 2002, W. Pree, Software-Architekturen, SS2002; Teil I 2 Metriken
MehrUnterrichtsinhalte für den Grundkurs INFORMATIK (Oberstufe) Erstes Lernjahr (Einführungsphase EPh)
www.schillerwitten.de Unterrichtsinhalte für den Grkurs INFORMATIK (Oberstufe) Erstes Lernjahr (Einführungsphase EPh) Grlagen der objektorientierten Modellierung Programmierung in Java mit dem Lernpaket
MehrRhapsody in C ein System zur aspektorientierten Embedded- Entwicklung? Dr.- Ing. Alexander Steinkogler B. Braun Melsungen AG
Rhapsody in C ein System zur aspektorientierten Embedded- Entwicklung? Dr.- Ing. Alexander Steinkogler B. Braun Melsungen AG Einführung Was sind Aspekte? Anforderungen: Thema / Aspekt Berühren viele andere
MehrSeminar Software Design Pattern
Seminar Software Design Pattern Factory Method, Abstract Factory, Prototype Betriebliche Informationssysteme Institut für Informatik Universität Leipzig 13.05.2009 Gliederung 1 Design Pattern 2 Problembeispiel
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrAufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected
Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 14. Oktober 2006 Markus Endres, Alfons Huhn, Timotheus Preisinger Informatik II Klausur 2 Hinweise: Die Bearbeitungszeit
Mehr16 Architekturentwurf Einführung und Überblick
Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrClient/Server-Systeme
Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrSoftwaretechnik 3. Klausurnachbesprechung. 09.05.2008, Phillip Ghadir
Softwaretechnik 3 Klausurnachbesprechung 09.05.2008, Phillip Ghadir Benotungsschema Fest vorgegeben Volle Punktzahl und Negativliste Positivliste Bestehen ab 40 Punkte Aufgabenarten Abfrage von auswendig
MehrZiele und Tätigkeiten von Architekten
Ziele und Tätigkeiten von Architekten Definition Software Architektur o A software architecture provides a model of a whole software system that is composed of internal behavioral units (i.e. components)
MehrComparing Software Factories and Software Product Lines
Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich
MehrMDRE die nächste Generation des Requirements Engineerings
MDRE die nächste Generation des Requirements Engineerings Tom Krauß, GEBIT Solutions GmbH Copyright 2007 GEBIT Solutions Agenda Requirements Engineering heute eine Bestandsaufnahme Modell-Driven Requirements
MehrProgrammiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen
Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung
MehrSoftwaretechnik. Fomuso Ekellem
WS 2011/12 Inhalt Entwurfsphase Systementwurf Software Architektur Entwurf Software Komponenten Entwurf Struktur Verhalten OO Entwurf (OOD) 2 Entwurfsphase 3 Entwurfsphase Lernziele Aufgaben der Entwurfsphase
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
MehrKurse. Beschreibungen und Inhalte. Stand 16.07.2005
Kurse Beschreibungen und Inhalte Stand 16.07.2005 Ralf Schneeweiß Gölzstraße 8 72072 Tübingen Tel.: 0179/2292471 e-mail: ralf.schneeweiss@oop-trainer.de http://www.oop-trainer.de/ C++ Einführungskurs in
MehrElementare Begriffe der Wahrscheinlichkeitstheorie für die Sprachverarbeitung
Elementare Begriffe der Wahrscheinlichkeitstheorie für die Sprachverarbeitung Kursfolien Karin Haenelt 1 Übersicht Wahrscheinlichkeitsfunktion P Wahrscheinlichkeit und bedingte Wahrscheinlichkeit Bayes-Formeln
MehrKonvertieren von CFC Plänen von DIGSI 4 Projekten nach DIGSI 5
Konvertieren von CFC Plänen von DIGSI 4 Projekten SIP5-APN-036, Edition 1 www.siemens.com/siprotec SIPROTEC 5 Applikation Konvertieren von CFC Plänen von DIGSI 4 SIP5-APN-036, Edition 1 Inhalt 1 Konvertieren
MehrObjektorientierte Programmiersprachen
Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
Mehr4. Übung zu Software Engineering
4. Übung zu Software Engineering WS 2007/2008 Aufgabe 8 Erstellen Sie für den aus Aufgabe 1 bekannten Function-Point-Kalkulator ein Pflichtenheft. Bitte begrenzen Sie dessen Umfang auf maximal 2 DIN A4
Mehr