Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster

Größe: px
Ab Seite anzeigen:

Download "Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster"

Transkript

1 Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster Tutorium 17 Fabian Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

2 Übungsblatt 4 1 Zustandsdiagramm umformen 2 Entwurfsmuster Beobachter verstehen und anwenden 3 Umgang mit JavaFX 4 Testattrappe und Testabdeckung Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

3 Aufgabe 1 Hat sehr gut geklappt Zwei mögliche Lösungen wegen Uneindeutigkeit von tiefer Historie Auf Notation achten: Zustände haben runde Ecken Es wird Start- und Endzustand benötigt Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

4 Aufgabe 2 Benennungen der Methoden nach java.util.observer und Observeable: setchanged(), notifyobservers(), update() Parallelität unangebracht da in Implementierung nicht vorgesehen Auf Notation in Sequenzdiagrammen achten: Ausführungsfokus kann erst zeitgleich mit Methodenaufruf starten Ausführungsfokus endet mit Antwortpfeil (Antwortpfeile optional) Instanznamen unterstreichen, z.b. prof:professor instanceof ist böse und sollte nicht bentutzt werden, Ausweg über Entwurfsmuster Besucher Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

5 Aufgabe 3 Verhalten, soweit spezifiziert, muss eingehalten werden Testet euer Programm selbst um Fehler zu finden Versucht Codekomplexität gering zu halten durch Auslagern in Methoden Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

6 Aufgabe 4 (Bonus) Schwierigkeit: Zu Testender Code darf nicht verändert werden Lösung: Eigene Implementierung von IClock (Fachbegriff Testdummy, genauer Attrappe, mehr dazu später) Testabdeckung auch ohne eigentliche Tests erreichbar^^ Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

7 Übersicht 1 Entkopplungsmuster Adapter Beobachter Brücke Iterator Stellvertreter Vermittler 2 Variantenmuster Abstrakte Fabrik Besucher Fabrikmethode Kompositum Schablonenmethode Strategie Dekorierer 3 Zustandshandhabungs-Muster Einzelstück Fliegengewicht Memento Prototyp Zustand 4 Steuerungsmuster Befehl Master/Worker (Master/Slave) 5 Virtuelle Maschinen 6 Bequemlichkeitsmuster Bequemlichkeits-Klasse Bequemlichkeits-Methode Fassade Null-Objekt Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

8 Übersicht 1 Entkopplungsmuster Adapter Beobachter Brücke Iterator Stellvertreter Vermittler 2 Variantenmuster Abstrakte Fabrik Besucher Fabrikmethode Kompositum Schablonenmethode Strategie Dekorierer 3 Zustandshandhabungs-Muster Einzelstück Fliegengewicht Memento Prototyp Zustand 4 Steuerungsmuster Befehl Master/Worker (Master/Slave) 5 Virtuelle Maschinen 6 Bequemlichkeitsmuster Bequemlichkeits-Klasse Bequemlichkeits-Methode Fassade Null-Objekt Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

9 Wiederholung Adapter Klient Ziel operation() adaptiertes Objekt AdaptierteKlasse spezifischeoperation() Klient Ziel operation() AdaptierteKlasse spezifischeoperation() könnte nur Schnittstelle sein. könnte nur Schnittstelle sein. Adapter Adapter operation() adaptiertesobjekt.spezifischeoperation() operation() spezifischeoperation() Adaptiert unpassende Schnittstelle Dient nicht der Bequemlichkeit Unterscheidung zwischen Objekt- und Klassenadapter Klient, Ziel, Adapter, AdaptierteKlasse, operation(), spezifischeoperation() Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

10 Wiederholung Beobachter Subjekt meldean(:beobachter) meldeab(:beobachter) benachrichtige() beobachter Beobachter 1 * aktualisiere() für alle b in beobachter { b.aktualisiere() } KonkreterBeobachter KonkretesSubjekt subjektzustand gibzustand() setzezustand() subjekt return subjektzustand beobachterzustand aktualisiere() beobachterzustand = subjekt.gibzustand() Funktioniert nach Abonnenten-Prinzip Beobachter müssen sich bei zu beobachtendem Subjekt anmelden Subjekt, Beobachter, KonkretesSubjekt, KonkreterBeobachter, meldean(:beobachter), meldeab(:beobachter), benachrichtige(), aktualisiere(), subjektzustand, gibzustand(), setzezustand(), beobachterzustand, beobachter, subjekt Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

11 Wiederholung Vermittler Vermittler vermittler Kollege KonkreterVermittler KonkreterKollege1 KonkreterKollege2 Vermittelt komplexes Verhalten zwischen Objekten Macht Interaktion zwischen Objekten austauschbar Vermittler wird über Änderungen bei Kollegen ähnlich informiert wie Beobachter Vermittler, Kollege, KonkreterVermittler, KonkreterKollege1, KonkreterKollege2, vermittler Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

12 Übersicht Entkopplungsmuster Varianten Sinn Adapter Beobachter Brücke Iterator Stellvertreter Vermittler System in unabhängige Teile aufteilen Enthalten manchmal Kopplungsglied Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

13 Übersicht Entkopplungsmuster Varianten Sinn Adapter Beobachter Brücke Iterator Stellvertreter Vermittler System in unabhängige Teile aufteilen Enthalten manchmal Kopplungsglied Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

14 Iterator Ermögliche Sequenziellen Zugriff auf die Elemente eines zusammengesetzten Objekts, ohne seine zugrundeliegende Repräsentation offenzulegen Synonyme Enumerator Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

15 Iterator Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

16 Beispiel Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

17 Fragerunde 1 Das Entwurfsmuster Iterator ermöglicht polymorphe Iteration. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

18 Fragerunde 1 Das Entwurfsmuster Iterator ermöglicht polymorphe Iteration. Wahr Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

19 Übersicht Variantenmuster Varianten Sinn Abstrakte Fabrik Besucher Fabrikmethode Kompositium Schablonenmethode Strategie Dekorierer Umgang mit Abstraktion Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

20 Übersicht Variantenmuster Varianten Sinn Abstrakte Fabrik Besucher Fabrikmethode Kompositium Schablonenmethode Strategie Dekorierer Umgang mit Abstraktion Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

21 Besucher Kapsle eine auf den Elementen einer Objektstruktur auszuführende Operation als ein Objekt Das Besuchermuster ermöglicht es, eine neue Operation zu definieren, ohne die Klassen der von ihr bearbeitenden Elemente zu verändern Synonyme Visitor Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

22 Besucher Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

23 Beispiel Aufgabe 2 von Übungsblatt 4. Seien die Stoffeinheiten als Klassen modelliert. Wie kann man nun die Studenten abhängig von Art des Stoffs (gegeben als Objekt) verschieden reagieren lassen? 1 Mit instanceof auf die verschiedenen Stoffarten prüfen Schlecht, da anfällig für Fehler 2 Besucher-Entwurfsmuster nutzen, um in der Instanz eines Besuchers abhängig vom Stoff eine Methoden aufrufen zu lassen (durch dynamische Bindung) Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

24 Beispiel Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

25 Kompositum Erzeugung von Baumstrukturen um Bestandshierarchien zu repräsentieren Ermöglicht es Klienten, sowohl einzelne Objekte als auch Aggregate einheitlich zu behandeln Synonym Composite Whole-part Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

26 Kompositum Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

27 Beispiel Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

28 Strategie Algorithmen einer Familie austauschbar machen Ermöglicht es Algorithmus unabhängig vom Klienten zu variieren Synonyme Strategy Policy Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

29 Strategie Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

30 Beispiel Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

31 Dekorierer Dynamisch neue Funktionalität an Objekt anfügen Synonyme Decorator Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

32 Dekorierer Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

33 Beispiel Streams in Java, Beispiel aus JMJRST: new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFileName), 8096)); Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

34 Unterschiede zu Stellvertreter Kann Funktionalität erweitern (d.h. mehr Methoden anbieten) Parallel zum umschlossenen Subjekt verwendet werden Dient nicht der Zugriffskontrolle Arbeitet immer auf einem inneren Objekt, erstellt dieses nicht selbst Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

35 Aufgaben a) Zeichnen Sie die Struktur der zwei Entwurfsmuster Strategie und Schablonenmethode. Kennzeichnen Sie die Entwurfsmuster eindeutig. Unterscheiden Sie deutlich zwischen konkreten und abstrakten Klassen/Methoden. b) Zu welcher/welchen Kategorie(n) gehören diese Entwurfsmuster laut Vorlesung? Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

36 Aufgaben a) Zeichnen Sie die Struktur der zwei Entwurfsmuster Strategie und Schablonenmethode. Kennzeichnen Sie die Entwurfsmuster eindeutig. Unterscheiden Sie deutlich zwischen konkreten und abstrakten Klassen/Methoden. b) Zu welcher/welchen Kategorie(n) gehören diese Entwurfsmuster laut Vorlesung? Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

37 Aufgaben a) Zeichnen Sie die Struktur der zwei Entwurfsmuster Strategie und Schablonenmethode. Kennzeichnen Sie die Entwurfsmuster eindeutig. Unterscheiden Sie deutlich zwischen konkreten und abstrakten Klassen/Methoden. b) Zu welcher/welchen Kategorie(n) gehören diese Entwurfsmuster laut Vorlesung? Beides sind Variantenmuster Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

38 Aufgaben c) Welches gemeinsame Ziel haben die beiden Entwurfsmuster? Inwiefern unterscheiden sie sich beim Erreichen dieses Ziels? d) Nennen Sie genau zwei Gründe, die laut Vorlesung für den Einsatz von Entwurfsmustern sprechen. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

39 Aufgaben c) Welches gemeinsame Ziel haben die beiden Entwurfsmuster? Inwiefern unterscheiden sie sich beim Erreichen dieses Ziels? Beide Entwurfsmuster erlauben es, Varianten eines Algorithmus zu verwenden. Die Schablonenmethode verwendet Vererbung, um Teile eines Algorithmus zu variieren, wohingegen die Strategie über Delegation den gesamten Algorithmus austauschbar macht. d) Nennen Sie genau zwei Gründe, die laut Vorlesung für den Einsatz von Entwurfsmustern sprechen. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

40 Aufgaben c) Welches gemeinsame Ziel haben die beiden Entwurfsmuster? Inwiefern unterscheiden sie sich beim Erreichen dieses Ziels? Beide Entwurfsmuster erlauben es, Varianten eines Algorithmus zu verwenden. Die Schablonenmethode verwendet Vererbung, um Teile eines Algorithmus zu variieren, wohingegen die Strategie über Delegation den gesamten Algorithmus austauschbar macht. d) Nennen Sie genau zwei Gründe, die laut Vorlesung für den Einsatz von Entwurfsmustern sprechen. Verbessern die Kommunikation im Team Erfassen wesentliche Konzepte und bringen sie in eine verständliche Form Helfen Entwürfe zu verstehen Dokumentieren Entwürfe kurz und knapp Verhindern unerwünschte Architektur-Drifts Verdeutlichen Entwurfswissen Dokumentieren und fördern den Stand der Kunst Helfen weniger erfahrenen Entwerfern Vermeiden die Neuerfindung des Rades Können Code-Qualität und Code-Struktur verbessern Fördern gute Entwürfe und guten Code durch Angabe konstruktiver Bsp. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

41 Aufgaben a) Welche beiden Entwurfsmuster erkennen Sie in diesem Klassendiagramm? Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

42 Aufgaben a) Welche beiden Entwurfsmuster erkennen Sie in diesem Klassendiagramm? Kompositum, Strategie b) Welchen Kategorien sind diese Entwurfsmuster zuzuordnen? Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

43 Aufgaben a) Welche beiden Entwurfsmuster erkennen Sie in diesem Klassendiagramm? Kompositum, Strategie b) Welchen Kategorien sind diese Entwurfsmuster zuzuordnen? Beides sind Variantenmuster Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

44 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

45 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

46 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Falsch 3 Das Muster Strategie (strategy) kapselt austauschbares Verhalten und verwendet Delegierung, um zu entscheiden, welches Verhalten verwendet wird. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

47 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Falsch 3 Das Muster Strategie (strategy) kapselt austauschbares Verhalten und verwendet Delegierung, um zu entscheiden, welches Verhalten verwendet wird. Wahr 4 In Java wird das Entwurfsmuster Null-Objekt durch null realisiert. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

48 Fragerunde 1 Das Strategie-Muster erlaubt es Klienten, Sammlungen von Objekten und einzelne Objekte auf die gleiche Weise zu behandeln. Falsch 2 Eine Komponente kann immer nur mit einem einzigen Dekorierer (decorator) versehen werden. Falsch 3 Das Muster Strategie (strategy) kapselt austauschbares Verhalten und verwendet Delegierung, um zu entscheiden, welches Verhalten verwendet wird. Wahr 4 In Java wird das Entwurfsmuster Null-Objekt durch null realisiert. Falsch Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

49 Zustand Ändere Verhalten von Objekt, wenn sich dessen interner Zustand ändert Wird benutzt um Zustandsdiagramme auf Code abzubilden Speicherung Implizit: Zustand ergibt sich indirekt aus Attributen Explizit: Zustand wird explizit gespeichert Synonyme State Eingebettet: Jede Methode kennt Zustandsübergang Ausgelagert: Nur Zustände kennen Zustandsübergang Weitere Details in Kapitel Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

50 Zustand Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

51 Aufgaben a) Welches Entwurfsmuster (und ggf. welche Variante) erkennen Sie im angegebenen UML-Klassendiagramm? Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

52 Aufgaben a) Welches Entwurfsmuster (und ggf. welche Variante) erkennen Sie im angegebenen UML-Klassendiagramm? Zustandsmuster, mit explizit ausgelagerter Speicherung Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

53 Aufgaben b) Kreuzen Sie an, ob die Aussage wahr oder falsch ist: 1 Eine Instanz vom Typ FreundinZ kann nicht ohne eine Instanz vom Typ Freundin existieren. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

54 Aufgaben b) Kreuzen Sie an, ob die Aussage wahr oder falsch ist: 1 Eine Instanz vom Typ FreundinZ kann nicht ohne eine Instanz vom Typ Freundin existieren. Wahr 2 Die Methode verlassen() in der Klasse Fröhlich überlädt die Methode verlassen() von FreundinZ. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

55 Aufgaben b) Kreuzen Sie an, ob die Aussage wahr oder falsch ist: 1 Eine Instanz vom Typ FreundinZ kann nicht ohne eine Instanz vom Typ Freundin existieren. Wahr 2 Die Methode verlassen() in der Klasse Fröhlich überlädt die Methode verlassen() von FreundinZ. Falsch 3 Die Methoden betreten() und verlassen() müssen in den Unterklassen Neutral, Bockig und Fröhlich nicht zwingend implementiert werden. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

56 Aufgaben b) Kreuzen Sie an, ob die Aussage wahr oder falsch ist: 1 Eine Instanz vom Typ FreundinZ kann nicht ohne eine Instanz vom Typ Freundin existieren. Wahr 2 Die Methode verlassen() in der Klasse Fröhlich überlädt die Methode verlassen() von FreundinZ. Falsch 3 Die Methoden betreten() und verlassen() müssen in den Unterklassen Neutral, Bockig und Fröhlich nicht zwingend implementiert werden. Wahr 4 Die Klasse Fröhlich implementiert die Schnittstelle FreundinZ. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

57 Aufgaben b) Kreuzen Sie an, ob die Aussage wahr oder falsch ist: 1 Eine Instanz vom Typ FreundinZ kann nicht ohne eine Instanz vom Typ Freundin existieren. Wahr 2 Die Methode verlassen() in der Klasse Fröhlich überlädt die Methode verlassen() von FreundinZ. Falsch 3 Die Methoden betreten() und verlassen() müssen in den Unterklassen Neutral, Bockig und Fröhlich nicht zwingend implementiert werden. Wahr 4 Die Klasse Fröhlich implementiert die Schnittstelle FreundinZ. Falsch Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

58 Aufgaben c) Modellieren Sie das Verhalten der Klasse Freundin mit einem deterministischen endlichen Automaten (DEA). Verwenden Sie alle Zustände, Übergänge sowie die Entry- und Exit-Ereignisse, die Sie im UML-Klassendiagramm auch vorgefunden haben. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

59 Aufgaben c) Modellieren Sie das Verhalten der Klasse Freundin mit einem deterministischen endlichen Automaten (DEA). Verwenden Sie alle Zustände, Übergänge sowie die Entry- und Exit-Ereignisse, die Sie im UML-Klassendiagramm auch vorgefunden haben. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

60 Fragerunde 1 Das Zustandsmuster erlaubt die einfache Erweiterung um weitere Zustände ohne Änderungen am Quelltext des Kontextes. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

61 Fragerunde 1 Das Zustandsmuster erlaubt die einfache Erweiterung um weitere Zustände ohne Änderungen am Quelltext des Kontextes. Wahr Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

62 Nächstes Übungsblatt 1 Klassendiagramm zu Iterator zeichnen und Implementieren 2 Zustandsdiagramm zu Stoppuhr zeichnen und Entwurfsmuster Zustand (Variante mit expliziten, ausgelagerten Zuständen) anwenden 3 Plugin für JMJRST zur Farbreduktion aller ausgewählten Bilder entwickeln Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

63 Abschluss Nächstes Tutorium: Montag, Nächstes Thema: Parallelität, Threads Bei Fragen oder Anregungen: Jetzt Jetzt gleich Per E-Post an Vielen Dank. Fabian Miltenberger Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster /42

Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster

Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster Tutorium 7 iloveswt.de Fabian I. Miltenberger 20.06.2016 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes

Mehr

Entwurfsmuster. Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD)

Entwurfsmuster. Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) Entwurfsmuster Tutorium 7 iloveswt.de Fabian I. Miltenberger 06.06.2016 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Entwurfsmuster. Tutorium 17 Fabian Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD)

Entwurfsmuster. Tutorium 17 Fabian Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) Entwurfsmuster Tutorium 17 Fabian Miltenberger 02.06.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Tutorium Softwaretechnik I

Tutorium Softwaretechnik I Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik

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

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung

Mehr

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:

Mehr

Entwurfsmuster in Java

Entwurfsmuster in Java Entwurfsmuster in Java Das Observer- und das Decorator-Pattern Friederike Löwe 13. März 2011 Inhaltsverzeichnis Einleitung Wozu eigentlich Entwurfsmuster? Die Grundlage: Design-Prinzipien Das Decorator-Pattern

Mehr

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen

Mehr

Entwurfsmuster Martin Fesser 00IN

Entwurfsmuster Martin Fesser 00IN Entwurfsmuster Martin Fesser 00IN Inhalt Was sind Entwurfsmuster? Vorteile, Nachteile Entwurfsmusterkatalog (nach GoF) Variation von Entwurfsaspekten Wie Entwurfsmuster Entwurfsprobleme lösen Beispiele

Mehr

Softwaretechnik 1 5. Tutorium

Softwaretechnik 1 5. Tutorium Softwaretechnik 1 5. Tutorium Tutorium Nr. 1 Philipp Adolf 17.06.2014 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Aufgabe 1 Nur

Mehr

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

Kennenlernen. Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD)

Kennenlernen. Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) Kennenlernen Tutorium 7 iloveswt.de Fabian I. Miltenberger 25.05.2016 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Structural Patterns. B. Sc. Andreas Meißner

Structural Patterns. B. Sc. Andreas Meißner Structural Patterns B. Sc. Andreas Meißner Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Systeme, Universität Hannover 11/16/2004 Gliederung 1. Wiederholung Entwurfsmuster

Mehr

Entwurfsmuster - Iterator

Entwurfsmuster - Iterator HTWG Konstanz 7. Mai 2009 Muster Klassifikation objektbasiertes Verhaltensmuster des Patterns Ermögliche den sequentiellen Zugriff auf die Elemente eines zusammengestzten Objekts, ohne seine zugrundeligende

Mehr

Entwurfsmuster. Marc Monecke

Entwurfsmuster. Marc Monecke Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen

Mehr

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

Mehr

Entwurfsmuster (Design Patterns)

Entwurfsmuster (Design Patterns) Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder

Mehr

Objektorientierteund FunktionaleProgrammierung

Objektorientierteund FunktionaleProgrammierung Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Aktivitäts-, Sequenz- und Zustandsdiagramme

Aktivitäts-, Sequenz- und Zustandsdiagramme Aktivitäts-, Sequenz- und Zustandsdiagramme Tutorium 17 Fabian Miltenberger 19.05.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2012 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester 2012 Klausurtermine

Mehr

Entwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr

Entwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr Entwurfsmuster Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr Was sind Entwurfsmuster (1) Muster (allg.) sind schematische Lösungen für eine Klasse verwandter Probleme Beschreibung:

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

Design Patterns. 3. Juni 2015

Design Patterns. 3. Juni 2015 Design Patterns 3. Juni 2015 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Taentzer Softwarequalität 2015 138 Was sind Design Patterns?

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Software Engineering, SoSe 07, WSI, D. Huson, May 7, Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Praxisbuch Objektorientierung

Praxisbuch Objektorientierung Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und

Mehr

Klausur Softwaretechnik

Klausur Softwaretechnik Klausur Softwaretechnik 14.03.2008 Prof. Dr. Walter F. Tichy Dipl.-Inform. T. Gelhausen Dipl.-Inform. A. Paar Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes Papier

Mehr

Informatik II Übung 6 Gruppe 7

Informatik II Übung 6 Gruppe 7 Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,

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

Software Engineering. 7. Entwurfsmuster

Software Engineering. 7. Entwurfsmuster Software Engineering 7. Entwurfsmuster Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung

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

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 1 185.A01 OOP Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 2 OOP Vererbung versus Delegation class A { public void x() { z();

Mehr

Grundlagen der Softwaretechnik

Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 03.03.2011 Prüfungsdauer:

Mehr

Universität Bremen. Entwurfsmuster. Thomas Röfer. Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster

Universität Bremen. Entwurfsmuster. Thomas Röfer. Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Entwurfsmuster Thomas Röfer Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Mein Rückblick: RoboCup 2 Euer Rückblick: Textsuche Naive Suche abrakadabra Boyer-Moore abrakadabra

Mehr

Einführung in die objektorientierte Programmierung

Einführung in die objektorientierte Programmierung Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.

Mehr

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer Decorator Pattern Analyse- und Design-Pattern CAS SWE FS14 Roland Müller Samuel Schärer Entwurfsmuster der «Gang of Four» Strukturmuster fassen Klassen und Objekte zu grösseren Strukturen zusammen Adapter

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

Klausur Softwaretechnik I

Klausur Softwaretechnik I Klausur Softwaretechnik I 06.08.2009 Prof. Dr. Walter F. Tichy Dipl.-Inform. A. Höfer Dipl.-Inform. D. Meder Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes Papier

Mehr

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite!

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite! JUnit a Cook s Tour Ziel des Frameworks Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren Design des Frameworks Beginne bei Nichts Schritt für Schritt aus passenden Mustern

Mehr

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit

Mehr

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was

Mehr

Aktivitäts-, Sequenz- und Zustandsdiagramme

Aktivitäts-, Sequenz- und Zustandsdiagramme Aktivitäts-, Sequenz- und Zustandsdiagramme Tutorium 7 iloveswt.de Fabian I. Miltenberger 30.05.2016 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg

Mehr

Entwurfsmuster - Iterator & Composite

Entwurfsmuster - Iterator & Composite Entwurfsmuster - Iterator & Composite Alexander Rausch Seminar Entwurfsmuster WS08/09 19. November 2008 Gliederung 1 Einführung 2 Das Iterator Entwurfsmuster 3 Das Composite Entwurfsmuster 4 Quellen 5

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik Entwurfsmuster - Design Patterns HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik 27. November 2009 Gliederung 1 Einführung 2 Strategie-Muster 3 Beobachter-Muster

Mehr

OOA-Dynamische Konzepte

OOA-Dynamische Konzepte Proseminar UML im SS 2005 OOA-Dynamische Konzepte Teil 2 von Benjamin Daeumlich 1 Übersicht Szenario Definition Interaktionsdiagramme Sequenzdiagramm Kommunikationsdiagramm Sequenz- vs. Kommunikationsdiagramm

Mehr

Objektorientierte Systementwicklung

Objektorientierte Systementwicklung Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick

Mehr

Informatik I Eprog HS12

Informatik I Eprog HS12 software evolution & architecture lab Informatik I Eprog HS12 Übung 11 1 Aufgabe: Interfaces & Visitor-Pattern 1.1 Lernziele 1. Die Verwendung von Interfaces trainieren. 2. Das Visitor Design-Pattern kennenlernen.

Mehr

Sommersemester Implementierung I: Struktur

Sommersemester Implementierung I: Struktur Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Vgl. Oestereich Kap 2.4 Seiten

Vgl. Oestereich Kap 2.4 Seiten Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß

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

3. Tutorium zu Softwaretechnik I

3. Tutorium zu Softwaretechnik I 3. Tutorium zu Softwaretechnik I Aktivitäts-, Sequenz- & Zustandsdiagramme Michael Hoff 20.05.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Matthias Geirhos. Entwurfsmuster. Das umfassende Handbuch. Rheinwerk. Computing

Matthias Geirhos. Entwurfsmuster. Das umfassende Handbuch. Rheinwerk. Computing Matthias Geirhos Entwurfsmuster Das umfassende Handbuch Rheinwerk Computing Inhalt Vorwort 17 1 Einführung 19 1.1 Einleitung und allgemeine Hinweise 19 1.1.1 Für wen ist dieses Buch gedacht? 19 1.1.2 Muster

Mehr

UML -Klassendiagramme

UML -Klassendiagramme UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm

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

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

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm Inhalte Sequenzdiagramm Kollaborationsdiagramm Dynamisches Modell Seite 1 Sequenzdiagramm Ein Sequenzdiagramm beschreibt die zeitliche Abfolge von Interaktionen zwischen einer Menge von Objekten innerhalb

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 5) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Rollenverteilung in der Softwareentwicklung; Rolle des Testers; Prinzip der Strukturierung; Softwarearchitektur;

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 11 15.01.2014 Inhalt Korrektur Blatt 10 JList mit ListModel bzw. DefaultListModel ActionListener und InputDialoge UML Praktische Anwendung Observer-Pattern

Mehr

Tutorium Softwaretechnik I

Tutorium Softwaretechnik I Tutorium Softwaretechnik I Moritz Klammler 30. Mai 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik

Mehr

OOSE 8 Entwurfsmuster (Hörsaalübung)

OOSE 8 Entwurfsmuster (Hörsaalübung) OOSE 8 Entwurfsmuster (Hörsaalübung) SS 2015 Birgit Demuth Entwurfsmuster in Softwaretechnologie 2015 Prüfungsrelevant Composite Iterator Factory Method Class Adapter Object Adapter Observer Singleton

Mehr

7. Zusammenfassung (1)

7. Zusammenfassung (1) Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung

Mehr

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

Design Pattern. Motivation, Beispiel Definition Das Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe , Beispiel der Gang of Four Ausführliches Beispiel: Beispiele Wiederverwendung ist etwas Gutes...!!! Wiederverwendung (auch: Verständlichkeit, Änderbarkeit, Portierbarkeit etc.) wird auf Design-Ebene ermöglicht

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 / 28 Strukturmuster Kompositum Dekorierer Adapter 2 / 28 Einführung: Strukturmuster Zu

Mehr

Enhanced Collection API

Enhanced Collection API Enhanced Collection API Die default und static Methoden der Collection API des JDK 1.8 Prof. Dr. Nikolaus Wulff Schnittstelle und Implementierung Die Sprache Java trennte von Anfang an eine Schnittstelle

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29 Vorwort von James Gosling, Sun Microsystems 15 Vorwort an Kursleiter 16 Vorwort des Übersetzers 24 Projekte, die in diesem Buch detailliert besprochen werden 25 Danksagungen 27 Teil 1 Grundlagen der Objektorientierung

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

Objektorientierte Entwurfsmuster

Objektorientierte Entwurfsmuster Objektorientierte Entwurfsmuster Claus Lewerentz Brandenburgische Technische Universität Cottbus Fraunhofer FIRST/SWQlab Cottbus Fraunhofer Institut Rechnerarchitektur und Softwaretechnik 12.05.2005, Software-Systemtechnik,

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

KLAUSUR SOFTWARETECHNIK

KLAUSUR SOFTWARETECHNIK KLAUSUR SOFTWARETECHNIK 17.09.2009 Prof. Dr. Walter F. Tichy Dipl.-Inform. Andreas Höfer Dipl.-Inform. David J. Meder Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes

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

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

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO Statecharts / Historisches Softwaretechnik Kapitel 11 : Zustandsdiagramme Kurt Stenzel, Hella Seebach Statecharts entstanden als Verallgemeinerung von Automaten Beschreibung von Zustandsübergangsystemen

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

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

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

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Universität Bremen. Entwurfsmuster. Thomas Röfer. Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster

Universität Bremen. Entwurfsmuster. Thomas Röfer. Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Entwurfsmuster Thomas Röfer Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Rückblick UML Motivation Historie Spracheinheiten Strukturdiagramme Verhaltensdiagramme 2 Motivation Idee Einige

Mehr

Softwaretechnik 2015/2016

Softwaretechnik 2015/2016 Softwaretechnik 2015/2016 PST Lehrstuhl Prof. Dr. Matthias Hölzl HAUPT-/ BACHELOR- SEMINAR ADAPTIVE SYSTEME PST Joschka PROF. DR. Rinke WIRSING 14. JUNI 2009 VORNAME NAME AGENDA Übung 11: 14.01.2016 Schon

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

Verhaltensmuster. Modellieren von komplexem Verhalten

Verhaltensmuster. Modellieren von komplexem Verhalten Verhaltensmuster Modellieren von komplexem Verhalten Verhaltensmuster Modellierung von (komplexem) Verhalten behavioral design patterns Beispiele Beobachter (Observer) Besucher (Visitor) Kommando (Command

Mehr

3. Entwurfsmuster zur Entkopplung von Modulen

3. Entwurfsmuster zur Entkopplung von Modulen 3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Entwurfsmuster (Design Patterns): Software-Entwicklungsaufgaben, die in vielen Ausprägungen häufig auftreten. Objektorientierte Schemata, die als Lösungen

Mehr

class Mitarbeiter {...} class AussendienstMitarbeiter extends Mitarbeiter {...} class InnendienstMitarbeiter extends Mitarbeiter {...

class Mitarbeiter {...} class AussendienstMitarbeiter extends Mitarbeiter {...} class InnendienstMitarbeiter extends Mitarbeiter {... Kapitel 12 Design Patterns 12.1 Das Role-Pattern Faustregel: Klassenhierarchien nicht zu tief, denn 1. Nachbildungen natürlicher tiefer Hierarchien sind meist nicht verhaltenskonformant; 2. Änderung des

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

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

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr