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

Objektorientierte und Funktionale Programmierung SS 2014

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

Mehr

Entwurfsprinzip. Entwurfsprinzip

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

Mehr

Model-View-Controller

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

Mehr

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

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

Mehr

Software-Entwurfsmuster

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

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

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

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

Universitä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 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

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

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

Behavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul

Behavioral 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

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

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

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

Wahlpflichtfach Design Pattern

Wahlpflichtfach 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

Mehr

Objektorientierte Modellierung (1)

Objektorientierte 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

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

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

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

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

Mehr

UML (Unified Modelling Language) von Christian Bartl

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

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

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

OM Entwurfsmuster. OM Entwurfsmuster. 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Definition Entwurfsmuster (design pattern)

OM 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

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

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

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

Factory Method (Virtual Constructor)

Factory 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

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

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. 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:

Mehr

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

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

Entwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können. Wichtige Entwurfsmuster kennen und erklären können, wo sie eingesetzt werden

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

Mehr

Factory Method Pattern

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

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

Objekt-Komposition versus Vererbung: Decorator-Design-Pattern

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

Mehr

8 Baum in perfekter Komposition

8 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

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

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

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

Übungen Softwaretechnik I

Ü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

Mehr

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

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

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

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

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

Objektorientierte Analyse (OOA) Inhaltsübersicht

Objektorientierte 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

Mehr

Objektorientierte Analyse (OOA) OOA-Pattern

Objektorientierte 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

Mehr

Einführung in die Programmierung

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

Mehr

Repetitorium Informatik (Java)

Repetitorium 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

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

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

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

Ü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

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

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

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

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

Mehr

Inhaltsverzeichnis.

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

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

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

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

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

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

Programmierkurs. 13. Vorlesung. Sven Mallach. 27. Januar Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 69

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

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

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

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

Notationen zur Prozessmodellierung

Notationen 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

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

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

Seminar Software Design Pattern

Seminar 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

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

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Aufgabe 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

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

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

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

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

Theorie zu Übung 8 Implementierung in Java

Theorie 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

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

Ziele und Tätigkeiten von Architekten

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

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

MDRE die nächste Generation des Requirements Engineerings

MDRE 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

Mehr

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

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

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

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 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

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

Elementare Begriffe der Wahrscheinlichkeitstheorie für die Sprachverarbeitung

Elementare 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

Mehr

Konvertieren von CFC Plänen von DIGSI 4 Projekten nach DIGSI 5

Konvertieren 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

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

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP 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

Mehr

4. Übung zu Software Engineering

4. Ü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