Effizientes Programmieren

Größe: px
Ab Seite anzeigen:

Download "Effizientes Programmieren"

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 ( )

EINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC

EINSATZ 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

Mehr

Design Patterns. 5. Juni 2013

Design 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

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. 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

Mehr

Software-Architektur Design Patterns

Software-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:

Mehr

14 Design Patterns. 14.1 Einführung 14.2 Composite Pattern

14 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

Mehr

Software-Entwurfsmuster

Software-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

Mehr

Entwurfsmuster (Design Pattern) ETIS SS05

Entwurfsmuster (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

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel 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

Mehr

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens

DESIGN'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

Mehr

Software-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 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

Mehr

Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D

Vermittler (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...

Mehr

Objektorientiertes Software-Engineering

Objektorientiertes 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

Mehr

Bekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen

Bekannte 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

Mehr

Merkliste SoSy. V Modell. Anforderungen. Eigenschaften VKKNERV. Ermittlung FBI WAS. Volerekarte Punkte KKKMUH

Merkliste 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

Mehr

Inhaltsverzeichnis. a. Standorte...3 1. Design Patterns...6. b. Impressum... 16. i. C#.NET...6. ii. Enterprise Integration Patterns...

Inhaltsverzeichnis. 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...

Mehr

Vorlesung Programmieren

Vorlesung 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?

Mehr

Der Musteransatz von Christopher Alexander: Von Architektur über Design zur Gesellschaftspolitik

Der 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:

Mehr

Datenintegrationsmuster MKWI 2004, Essen, 10. März 2004

Datenintegrationsmuster 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

Mehr

29.01.2013. Vorlesung Programmieren. Software Design. Software Design. Entwurfsmuster

29.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?

Mehr

Analyse und Modellierung von Informationssystemen

Analyse 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

Mehr

Analyse und Modellierung von Informationssystemen

Analyse 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

Mehr

Analyse und Modellierung von Informationssystemen

Analyse 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

Mehr

SE Besprechung. Übung 4 Architektur, Modulentwurf

SE 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,

Mehr

Entwurfsmuster. 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 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!

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlö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

Mehr

8 Design Patterns. Events

8 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

Mehr

Design im Softwareentwicklungsprozess. Stand der Dinge & Designziel. fachliche & technische Architektur. generelles Vorgehen bei Grob-Design

Design 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

Mehr

Modellarbeit I: Entwurfsgerechte Klassenmodellierung

Modellarbeit 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

Mehr

EinfÅ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 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

Mehr

Objektorientierte Programmiersprachen

Objektorientierte 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

Mehr

Software Engineering Entwurfsmuster (update: 11.6.)

Software 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

Mehr

Software 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 Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering: 10. Entwurfsmuster 2 Entwurfsmuster (engl. Design Patterns) Definition: A Bewährte Codevorlagen

Mehr

Techniken der Projektentwicklung

Techniken 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!

Mehr

am Beispiel von JUnit

am 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

Mehr

Einführung. Kapitel 1

Einfü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

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (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

Mehr

Design Patterns 2. Model-View-Controller in der Praxis

Design 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

Mehr

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Ü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

Mehr

OO Design. welche Methoden in welcher Klasse sind, und. diese Interagieren

OO 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

Mehr

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Security 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

Kurse. Beschreibungen und Inhalte. Stand 16.07.2005

Kurse. 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

Mehr

Konstruktion anpassbarer Software

Konstruktion anpassbarer Software Konstruktion anpassbarer Software O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree Fachbereich Informatik cs.uni-salzburg.at Inhalt Konfigurationsparameter Konzepte und Konstruktionsprinzipien für anpassbare,

Mehr

Siehe auch Heide Balzert: Lehrbuch der Objektmodellierung.

Siehe 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

Mehr

OOAD Richtlinien & Tips

OOAD 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

Mehr

Unterrichtsinhalte für den Grundkurs INFORMATIK (Oberstufe) Erstes Lernjahr (Einführungsphase EPh)

Unterrichtsinhalte 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

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Rhapsody 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 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

Mehr

3. Konzepte der objektorientierten Programmierung

3. 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

Mehr

Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC

Drucken, 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...

Mehr

Abschlussarbeiten 2010 in der Medizininformatik

Abschlussarbeiten 2010 in der Medizininformatik Abschlussarbeiten 2010 in der Medizininformatik Ansprechpartner: Prof. Dr. Eberhard Beck eberhard.beck@fh-brandenburg.de FACHHOCHSCHULE BRANDENBURG FACHBEREICH INFORMATIK UND MEDIEN Konzeption und prototypische

Mehr

Komponentenbasierte Softwareentwicklung

Komponentenbasierte 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

Mehr

Methoden des Software-Engineering

Methoden des Software-Engineering Block B (Software-Architektur): Muster 21.11.2006 1 Methoden des Software-Engineering Software Architektur Martin Wirsing Block B, Teil 5: Entwurfs- und Architekturmuster WS 2006/07, LMU München Block

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Erzeugungsmuster (nach Gang of Four )

Erzeugungsmuster (nach Gang of Four ) 5. Wiederverwendung im Softwareentwurf 5.1 Entwurfsmuster.KVGTCVWT Gamma/Helm/Johnson/Vlissides: Design Patterns, Addison-Wesley 1994 (= Gang of Four, GoF ) Buschmann/Meunier/Rohnert/Sommerlad/Stal: A

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

1. Einleitung. 1.1 Motivation. 1.2 Ziel der Arbeit. 1.3 Danksagung

1. Einleitung. 1.1 Motivation. 1.2 Ziel der Arbeit. 1.3 Danksagung 1. Einleitung 1.1 Motivation Im Fach Systemprogrammierung des Informatik-Grundstudiums lernen die Studenten die Assembler-Sprache des Sparc-Mikroprozessors [6] kennen. Um mit dem Befehlssatz zu experimentieren,

Mehr

Softwaretechnik 3. Klausurnachbesprechung. 09.05.2008, Phillip Ghadir

Softwaretechnik 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

Mehr

Softwareentwicklung in Großprojekten

Softwareentwicklung in Großprojekten 1. Fehlerklassen Softwareentwicklung in Großprojekten mistake: führt immer zu Programmfehlern fault: kann zu Programmfehlern führen error: kann zu Programmfehlern führen failure: Offenbarung eines Fehlers

Mehr

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster

Mehr

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Einfü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:

Mehr

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: 978-3-446-41771-7. Weitere Informationen oder Bestellungen unter

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: 978-3-446-41771-7. Weitere Informationen oder Bestellungen unter sverzeichnis Fritz Jobst Programmieren in Java ISBN: 978-3-446-41771-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41771-7 sowie im Buchhandel. Carl Hanser Verlag, München

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

6 Architektur-Mittel (WOMIT)

6 Architektur-Mittel (WOMIT) 6 Architektur-Mittel (WOMIT) Abb. 6-1: Positionierung des Kapitels im Ordnungsrahmen. Dieses Kapitel befasst sich mit der WOMIT-Dimension des architektonischen Ordnungsrahmens, indem es grundlegende Konzepte

Mehr

Pattern Praxis Techniken lassen sich wiederholt anwenden: Wieviele Substrings hat es im Wort Restaurant? Wie zeichne ich aus einer römischen IX mit einem zusätzlichen Strich eine Sechs? Was bedeutet: DER

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:

Mehr

16 Architekturentwurf Einführung und Überblick

16 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

Mehr

Softwaretechnik. Fomuso Ekellem

Softwaretechnik. 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

Mehr

Software Engineering Übung 4 Architektur, Modulentwurf

Software Engineering Übung 4 Architektur, Modulentwurf software evolution & architecture lab Software Engineering Übung 4 Architektur, Modulentwurf 1 Informationen 1.1 Daten Ausgabe Di 27.10.2009 Abgabe So 08.11.2009 bis 23:59 Uhr Besprechung am Di 17.11.2009

Mehr

Comparing Software Factories and Software Product Lines

Comparing 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

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

102 3 Erzeugungsmuster

102 3 Erzeugungsmuster 3 Erzeugungsmuster Entwurfsmuster, die der Erzeugung von Objekten dienen, verstecken den Erzeugungsprozeß. Sie helfen, ein System unabhängig davon zu machen, wie seine Objekte erzeugt, zusammengesetzt

Mehr

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

Komponentenbasierter Taschenrechner mit CORBA

Komponentenbasierter Taschenrechner mit CORBA Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten

Mehr

Contexts and Dependency Injection. W3L AG info@w3l.de

Contexts and Dependency Injection. W3L AG info@w3l.de 1 Contexts and Dependency Injection W3L AG info@w3l.de 2015 2 Inhaltsverzeichnis Teil 1: Motivation Teil 2: Inversion of Control Teil 3: Contexts and Dependency Injection Teil 4: Beispiel zurück 3 Motivation

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Design Patterns. Programmiermethodik. Eva Zangerle Universität Innsbruck

Design Patterns. Programmiermethodik. Eva Zangerle Universität Innsbruck Design Patterns Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc

Mehr

Methodische objektorientierte Softwareentwicklung

Methodische objektorientierte Softwareentwicklung Methodische objektorientierte Softwareentwicklung Eine Integration klassischer und moderner Entwicklungskonzepte von Mario Winter 1. Auflage Methodische objektorientierte Softwareentwicklung Winter schnell

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Kapitel 2: Der Software-Entwicklungsprozess

Kapitel 2: Der Software-Entwicklungsprozess Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0 Für den Einsatz in der Praxis Seite 2 Überblick 1. Ziele 2. Warum das alles? 3. Was ist UML 4. Diagrammarten 5. Umfeld Seite 3 1. Ziele 1. Ziele dieses

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

Technische Beschreibung: Modul Datei und Ordnerverwaltung

Technische Beschreibung: Modul Datei und Ordnerverwaltung EPOD Encrypted Private Online Disc Technische Beschreibung: Modul Datei und Ordnerverwaltung Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

Gliederung des Vortrages

Gliederung des Vortrages Gliederung des Vortrages Unified Modeling Language Rational Rose Sergej Schwenk Oktober 1999 0. Einführung 1. Historie 2. Der Entwicklungsprozeß 3. UML 3.1 Anwendungsfalldiagramme 3.2 Klassendiagramme

Mehr

Vorlesung Software-Reengineering

Vorlesung Software-Reengineering Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke 1 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 Refactoring 1 Refactoring

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Comelio GmbH - Goethestr. 34-13086 Berlin. Course Catalog

Comelio GmbH - Goethestr. 34-13086 Berlin. Course Catalog Comelio GmbH - Goethestr. 34-13086 Berlin Course Catalog 2 Table Of Contents a. Locations... 3 1. Design Patterns...6 i. C#.NET...6 ii. C#.NET...8 iii. Enterprise Integration Patterns...10 iv. Enterprise

Mehr

Client/Server-Systeme

Client/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

Mehr

12.4 Sicherheitsarchitektur

12.4 Sicherheitsarchitektur 12.4 Sicherheitsarchitektur Modellierung Sicherheitsstrategie Systemmodell Sicherheitsmodell Entwurf Architektur Sicherheitsarchitektur Implementierung sicherer Code SS-12 1 Wie wird das Sicherheitsmodell

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Inhalt Nachlese Aufgaben Literatur Software Engineering in der Praxis Praktische Übungen Inhalt Nachlese Aufgaben Literatur Marc Spisländer Dirk Wischermann Lehrstuhl für Software Engineering Friedrich-Alexander-Universität

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

17 Komponentenbasiertes Software-Engineering

17 Komponentenbasiertes Software-Engineering 17 Komponentenbasiertes Software-Engineering 17.0 Einführung Lernziele Grundlagen, Prinzipien und Probleme des CBSE 17.1 Komponenten und Komponentenmodelle Komponenten und ihre Eigenschaften Komponentenmodelle

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Software-Sanierung. Weiterentwicklung, Testen und Refactoring bestehender Software. von Sebastian Kübeck. 1. Auflage

Software-Sanierung. Weiterentwicklung, Testen und Refactoring bestehender Software. von Sebastian Kübeck. 1. Auflage Software-Sanierung Weiterentwicklung, Testen und Refactoring bestehender Software von Sebastian Kübeck 1. Auflage Software-Sanierung Kübeck schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr