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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Keine Einführung in JavaFX oder Swing in der Vorlesung Swing für Übungsblatt benötigt Selbstrecherche Fabian I. Miltenberger Entwurfsmuster /32

3 Übungsblatt 3 Checkstyle... Zu welcher Klasse gehören assert*-methoden? Fabian I. Miltenberger Entwurfsmuster /32

4 Übungsblatt 3 Checkstyle... Zu welcher Klasse gehören assert*-methoden? Zur statischen Klasse Assert Diagramm (inkl. Sequenzdiagramme) sauber zeichnen Fabian I. Miltenberger Entwurfsmuster /32

5 Benutztrelation Definition Programmkomponente A benutzt Programmkomponente B : A erfordert für den korrekten Ablauf die Verfügbarkeit einer korrekten Implementierung von B Notation: Hinweis: Rückrufe (callbacks) zählen nicht als Benutztrelation. Fabian I. Miltenberger Entwurfsmuster /32

6 Benutzthirarchie Definition Wenn die Benutztrelation zyklenfrei ist, heißt sie Benutzthierarchie. Nachteile von Zyklen: Nichts funktioniert, bevor nicht alles funktioniert Komponenten können nicht schrittweise entwickelt und getestet werden Fabian I. Miltenberger Entwurfsmuster /32

7 Schichtenarchitektur Definition Eine Schichtenarchitektur ist die Gliederung einer Softwarearchitektur in hierarchisch geordnete Schichten, d.h. Abhängigkeit in nur eine Richtung. Transparenz bei Schichtenarchitekturen: Transparent Intransparent Fabian I. Miltenberger Entwurfsmuster /32

8 Fragerunde 1 Bei einer intransparenten Schichtenarchitektur kann eine innere Schicht nur auf direkt benachbarte Schichten zugreifen. Fabian I. Miltenberger Entwurfsmuster /32

9 Fragerunde 1 Bei einer intransparenten Schichtenarchitektur kann eine innere Schicht nur auf direkt benachbarte Schichten zugreifen. Falsch 2 Schichtenarchitekturen unterstützen das Testen von Programmen. Fabian I. Miltenberger Entwurfsmuster /32

10 Fragerunde 1 Bei einer intransparenten Schichtenarchitektur kann eine innere Schicht nur auf direkt benachbarte Schichten zugreifen. Falsch 2 Schichtenarchitekturen unterstützen das Testen von Programmen. Wahr 3 Ist die Benutzt-Relation zwischen Modulen zyklenfrei, sind Teillieferungen bei Entwicklungsverzögerungen einzelner Module möglich. Fabian I. Miltenberger Entwurfsmuster /32

11 Fragerunde 1 Bei einer intransparenten Schichtenarchitektur kann eine innere Schicht nur auf direkt benachbarte Schichten zugreifen. Falsch 2 Schichtenarchitekturen unterstützen das Testen von Programmen. Wahr 3 Ist die Benutzt-Relation zwischen Modulen zyklenfrei, sind Teillieferungen bei Entwicklungsverzögerungen einzelner Module möglich. Wahr 4 Folgt man dem Geheimnis-/Kapselungsprinzip, dann wird bei einer Änderung einer Entwurfsentscheidung auch die zugehörige Schnittstelle geändert. Fabian I. Miltenberger Entwurfsmuster /32

12 Fragerunde 1 Bei einer intransparenten Schichtenarchitektur kann eine innere Schicht nur auf direkt benachbarte Schichten zugreifen. Falsch 2 Schichtenarchitekturen unterstützen das Testen von Programmen. Wahr 3 Ist die Benutzt-Relation zwischen Modulen zyklenfrei, sind Teillieferungen bei Entwicklungsverzögerungen einzelner Module möglich. Wahr 4 Folgt man dem Geheimnis-/Kapselungsprinzip, dann wird bei einer Änderung einer Entwurfsentscheidung auch die zugehörige Schnittstelle geändert. Falsch 5 Bei einer Schichtenarchitektur mit drei übereinander liegenden Schichten kann die mittlere Schicht auf die Dienste der oberen und der unteren Schicht zugreifen. Fabian I. Miltenberger Entwurfsmuster /32

13 Fragerunde 1 Bei einer intransparenten Schichtenarchitektur kann eine innere Schicht nur auf direkt benachbarte Schichten zugreifen. Falsch 2 Schichtenarchitekturen unterstützen das Testen von Programmen. Wahr 3 Ist die Benutzt-Relation zwischen Modulen zyklenfrei, sind Teillieferungen bei Entwicklungsverzögerungen einzelner Module möglich. Wahr 4 Folgt man dem Geheimnis-/Kapselungsprinzip, dann wird bei einer Änderung einer Entwurfsentscheidung auch die zugehörige Schnittstelle geändert. Falsch 5 Bei einer Schichtenarchitektur mit drei übereinander liegenden Schichten kann die mittlere Schicht auf die Dienste der oberen und der unteren Schicht zugreifen. Falsch Fabian I. Miltenberger Entwurfsmuster /32

14 Eine kleine Einführung in Swing Um es mal gesehen zu haben Fabian I. Miltenberger Entwurfsmuster /32

15 Die Bestandteile Fabian I. Miltenberger Entwurfsmuster /32

16 Klassenstruktur Hier verbirgt sich das Entwurfsmuster Kompositum. Fabian I. Miltenberger Entwurfsmuster /32

17 Große Bibliotheken... When a class designer has the wrong costumer in mind, the result is all too often a set of classes that makes all tasks possible and common tasks difficult. (OO Design & Patterns, Cay Horstmann) Suchmaschine verwenden, wenn Lösung nicht offensichtlich Fabian I. Miltenberger Entwurfsmuster /32

18 Motivation Entwurfsmuster Häufig stellt man sich beim Entwurf ähnliche Fragen: Wie kommunizieren zwei Klassen miteinander? Wie sollen Objekte erzeugt werden? Wie gestaltet man die Schnittstelle möglichst flexibel? Wie iteriert man durch eine Menge? Wie fügt man Funktionalität an Bestehendes hinzu? Wie lassen sich Bibliotheken mit verschiedenen Schnittstellen austauschen? Wie lassen sich Sonderfälle vermeiden? Antwort: 42 Entwurfsmuster Fabian I. Miltenberger Entwurfsmuster /32

19 Motivation Entwurfsmuster Warum Entwurfsmuster so toll sind: Verbessern die Kommunikation im Team Helfen beim Verstehen von Entwürfen Dokumentieren Entwürfe kurz und knapp Verhindern unerwünschte Architektur-Drift Verdeutlichen Entwurfswissen Fabian I. Miltenberger Entwurfsmuster /32

20 Ü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 I. Miltenberger Entwurfsmuster /32

21 Entkopplungsmuster Teilen System in unabhängige Einheiten Einheiten werden austauschbar Kleine Änderungen wirken sich wenig aus Fabian I. Miltenberger Entwurfsmuster /32

22 Adapter Anpassung von Schnittstellen Ermöglicht so die Verwendung existierender Klassen, die eine unpassende Schnittstelle haben Vereinfacht den Wechsel, zwischen verschiedenen Implementierungen Ist nicht dazu gedacht, die Schnittstelle zu vereinfachen ( Fassade) Fabian I. Miltenberger Entwurfsmuster /32

23 Adapter Möglichkeit 1: Objektadapter Klient Ziel adaptiertes Objekt AdaptierteKlasse operation() spezifischeoperation() könnte nur Schnittstelle sein. Adapter operation() adaptiertesobjekt.spezifischeoperation() Fabian I. Miltenberger Entwurfsmuster /32

24 Adapter Möglichkeit 2: Klassenadapter Klient Ziel operation() AdaptierteKlasse spezifischeoperation() könnte nur Schnittstelle sein. Adapter operation() spezifischeoperation() Fabian I. Miltenberger Entwurfsmuster /32

25 Adapter Beispiel Sortieren von Zeichenketten in einem Feld Feld Vergleicher vergleiche() MeineZeichenkette groesserals() gleicht() UnfehlbarerVergleicher vergleiche() adaptiert Fabian I. Miltenberger Entwurfsmuster /32

26 Beobachter Beobachtetes Objekt benachrichtigt bei Zustandsänderung automatisch alle bei ihm registrierten Beobachter Erhält so die Konsistenz im Programm Unabhängige Wiederverwendung von Subjekten und Beobachtern möglich Beobachter hinzufügen/entfernen, ohne Subjekt oder andere Beobachter zu ändern Beobachter kann Benachrichtigungen ignorieren Fabian I. Miltenberger Entwurfsmuster /32

27 Beobachter Subjekt meldean(:beobachter) meldeab(:beobachter) benachrichtige() beobachter 1 * für alle b in beobachter { b.aktualisiere() } Beobachter aktualisiere() KonkreterBeobachter KonkretesSubjekt subjektzustand subjekt beobachterzustand aktualisiere() beobachterzustand = subjekt.gibzustand() gibzustand() setzezustand() return subjektzustand Fabian I. Miltenberger Entwurfsmuster /32

28 Beobachter Beispiel setzezustand() :KonkretesSubjekt :KonkreterBeobachter :KonkreterBeobachter benachrichtige() aktualisiere() gibzustand() aktualisiere() gibzustand() Fabian I. Miltenberger Entwurfsmuster /32

29 Beobachter Beispiel Fenster Beobachter Fenster Fenster x y z a b c a b c a=50% b=30% c=20% Subjekt Benachrichtigung über Änderung Anfragen, Veränderungen Fabian I. Miltenberger Entwurfsmuster /32

30 Vermittler Kapselt Zusammenspiel einer Menge von Objekten in sich Ermöglicht, das Zusammenspiel der Objekte unabhängig zu variieren wird verwendet, wenn Objekte in wohldefinierter, aber komplexer Weise zusammenarbeiten sollen Macht konkretes Zusammenspiel austauschbar Fabian I. Miltenberger Entwurfsmuster /32

31 Vermittler Vermittler vermittler Kollege KonkreterVermittler KonkreterKollege1 KonkreterKollege2 Fabian I. Miltenberger Entwurfsmuster /32

32 Vermittler Beispiel Eingabefeld und Listbox Fabian I. Miltenberger Entwurfsmuster /32

33 Vermittler Beispiel DialogVermittler direktor Kollege zeigedialog() erzeugekollegen() kollegegeändert(k:kollege) geändert() Direktor.kollegeGeändert(this) ZeichensatzDialogVermittler erzeugekollegen() kollegegeändert(k:kollege) liste ListBox gibauswahl() feld EingabeFeld Wenn k==feld Dann passe liste an Wenn k==liste Dann passe feld an Fabian I. Miltenberger Entwurfsmuster /32

34 Aufgabe SS12 a) Welches Entwurfsmuster erkennen Sie in diesem Diagramm? Welcher Kategorie ist dieses Entwurfsmuster zuzuordnen? Fabian I. Miltenberger Entwurfsmuster /32

35 Aufgabe SS12 a) Welches Entwurfsmuster erkennen Sie in diesem Diagramm? Beobachter Welcher Kategorie ist dieses Entwurfsmuster zuzuordnen? Fabian I. Miltenberger Entwurfsmuster /32

36 Aufgabe SS12 a) Welches Entwurfsmuster erkennen Sie in diesem Diagramm? Beobachter Welcher Kategorie ist dieses Entwurfsmuster zuzuordnen? Entkopplungsmuster Fabian I. Miltenberger Entwurfsmuster /32

37 Fragerunde 1 Die beiden Entwurfsmuster Fassade und Adapter können jeweils mehrere Klassen benutzen. Der primäre Einsatzzweck des Entwurfsmusters Fassade ist es jedoch, die Schnittstelle zu vereinfachen, während der Zweck des Entwurfsmusters Adapter darin besteht, eine andere Schnittstelle für eine gegebene Klasse anzubieten. Fabian I. Miltenberger Entwurfsmuster /32

38 Fragerunde 1 Die beiden Entwurfsmuster Fassade und Adapter können jeweils mehrere Klassen benutzen. Der primäre Einsatzzweck des Entwurfsmusters Fassade ist es jedoch, die Schnittstelle zu vereinfachen, während der Zweck des Entwurfsmusters Adapter darin besteht, eine andere Schnittstelle für eine gegebene Klasse anzubieten. Wahr 2 Das Schlüsselwort nal in Java erlaubt es, eine Schablonenmethode so zu definieren, dass Unterklassen den Algorithmus der Schablonenmethode nicht mehr verändern können, sondern nur noch die Implementierung der Einschubmethoden überschreiben bzw. implementieren dürfen. Fabian I. Miltenberger Entwurfsmuster /32

39 Fragerunde 1 Die beiden Entwurfsmuster Fassade und Adapter können jeweils mehrere Klassen benutzen. Der primäre Einsatzzweck des Entwurfsmusters Fassade ist es jedoch, die Schnittstelle zu vereinfachen, während der Zweck des Entwurfsmusters Adapter darin besteht, eine andere Schnittstelle für eine gegebene Klasse anzubieten. Wahr 2 Das Schlüsselwort nal in Java erlaubt es, eine Schablonenmethode so zu definieren, dass Unterklassen den Algorithmus der Schablonenmethode nicht mehr verändern können, sondern nur noch die Implementierung der Einschubmethoden überschreiben bzw. implementieren dürfen. Wahr 3 Wird beim Beobachter-Muster nachträglich ein neuer Beobachter hinzugefügt, muss der Quelltext des beobachteten Subjekts angepasst werden. Fabian I. Miltenberger Entwurfsmuster /32

40 Fragerunde 1 Die beiden Entwurfsmuster Fassade und Adapter können jeweils mehrere Klassen benutzen. Der primäre Einsatzzweck des Entwurfsmusters Fassade ist es jedoch, die Schnittstelle zu vereinfachen, während der Zweck des Entwurfsmusters Adapter darin besteht, eine andere Schnittstelle für eine gegebene Klasse anzubieten. Wahr 2 Das Schlüsselwort nal in Java erlaubt es, eine Schablonenmethode so zu definieren, dass Unterklassen den Algorithmus der Schablonenmethode nicht mehr verändern können, sondern nur noch die Implementierung der Einschubmethoden überschreiben bzw. implementieren dürfen. Wahr 3 Wird beim Beobachter-Muster nachträglich ein neuer Beobachter hinzugefügt, muss der Quelltext des beobachteten Subjekts angepasst werden. Falsch 4 Ein Beobachter kann immer nur ein Subjekt beobachten, da sonst beim Aktualisierungsrundruf nicht klar ist, welches Subjekt sich geändert hat. Fabian I. Miltenberger Entwurfsmuster /32

41 Fragerunde 1 Die beiden Entwurfsmuster Fassade und Adapter können jeweils mehrere Klassen benutzen. Der primäre Einsatzzweck des Entwurfsmusters Fassade ist es jedoch, die Schnittstelle zu vereinfachen, während der Zweck des Entwurfsmusters Adapter darin besteht, eine andere Schnittstelle für eine gegebene Klasse anzubieten. Wahr 2 Das Schlüsselwort nal in Java erlaubt es, eine Schablonenmethode so zu definieren, dass Unterklassen den Algorithmus der Schablonenmethode nicht mehr verändern können, sondern nur noch die Implementierung der Einschubmethoden überschreiben bzw. implementieren dürfen. Wahr 3 Wird beim Beobachter-Muster nachträglich ein neuer Beobachter hinzugefügt, muss der Quelltext des beobachteten Subjekts angepasst werden. Falsch 4 Ein Beobachter kann immer nur ein Subjekt beobachten, da sonst beim Aktualisierungsrundruf nicht klar ist, welches Subjekt sich geändert hat. Falsch 5 Ein Adapter (adapter) umhüllt immer nur eine einzige Klasse. Fabian I. Miltenberger Entwurfsmuster /32

42 Fragerunde 1 Die beiden Entwurfsmuster Fassade und Adapter können jeweils mehrere Klassen benutzen. Der primäre Einsatzzweck des Entwurfsmusters Fassade ist es jedoch, die Schnittstelle zu vereinfachen, während der Zweck des Entwurfsmusters Adapter darin besteht, eine andere Schnittstelle für eine gegebene Klasse anzubieten. Wahr 2 Das Schlüsselwort nal in Java erlaubt es, eine Schablonenmethode so zu definieren, dass Unterklassen den Algorithmus der Schablonenmethode nicht mehr verändern können, sondern nur noch die Implementierung der Einschubmethoden überschreiben bzw. implementieren dürfen. Wahr 3 Wird beim Beobachter-Muster nachträglich ein neuer Beobachter hinzugefügt, muss der Quelltext des beobachteten Subjekts angepasst werden. Falsch 4 Ein Beobachter kann immer nur ein Subjekt beobachten, da sonst beim Aktualisierungsrundruf nicht klar ist, welches Subjekt sich geändert hat. Falsch 5 Ein Adapter (adapter) umhüllt immer nur eine einzige Klasse. Falsch Fabian I. Miltenberger Entwurfsmuster /32

43 Nächstes Übungsblatt (4 von 6) Fehler in JMJRST finden (Debuggen, IDE enthält hierfür viele Werkzeuge) Benutztrelation der bisherigen Übungsblätter zeichnen Swing: Eine GUI (grafische Benutzeroberfläche, selten auch GBO) für Kantendetektion bauen Klassendiagramm erstellen Kovarianz, Substitutionsprinzip, Verdeckung Fabian I. Miltenberger Entwurfsmuster /32

44 Erinnerung In der LEZ können Übungsblatt und Tutorium bewertet werden Theorie: Eure Einschätzung Feedback Verbesserung der Lehre Fabian I. Miltenberger Entwurfsmuster /32

45 Fragen? Nächstes Tutorium: Montag, Nächstes Thema: Noch mehr Entwurfsmuster Für Fragen jeglicher Art stehe ich zur Verfügung. Vielen Dank. Fabian I. Miltenberger Entwurfsmuster /32

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

Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster

Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster Tutorium 17 Fabian Miltenberger 16.06.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg

Mehr

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

Tutorium Softwaretechnik I

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

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

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

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

Ü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

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

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

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

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

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

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

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

Observer Chain of Responsibility Mediator

Observer Chain of Responsibility Mediator Observer Chain of Responsibility Mediator Seminar Software Design Pattern - Sommersemester 2009 Vertragender: Christian Kube Betreuer: Frank Schumacher SDP - SS09 - Kommunikation - Christian Kube 1 Paket

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

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

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2013 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung 1 PrüfungstermineOFP

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

Inhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23

Inhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23 Vorwort.................................................. 17 Geleitwort von Grady Booch................................. 21 Einleitung................................................ 23 1 Einführung...............................................

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

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

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik Programmiertechnik II SS 2017 Fakultät Informatik Bachelor Angewandte Informatik Prof. Dr. Oliver Bittel bittel@htwg-konstanz.de www-home.htwg-konstanz.de/~bittel SS 2017 Überblick! OOP: Schnittstellen

Mehr

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

Einführung in die Programmierung für NF MI. Übung 11 Einführung in die Programmierung für NF MI Übung 11 Inhalt Design Patterns (Entwurfsmuster) MVC und Observer Pattern Einführung in die Programmierung für NF MI - Übung 11 2 Design Patterns A Design Pattern

Mehr

ASPECT-ORIENTED DESIGN PATTERNS

ASPECT-ORIENTED DESIGN PATTERNS ASPECT-ORIENTED DESIGN PATTERNS 1 Gliederung I. Entwurfsmuster Aufbau und Beschreibung II. Probleme objektorientierter Entwurfsmuster III. Entwicklung eines aspektorientierten Musters 2 Abschnitt I: Entwurfsmuster

Mehr

PHP OOP, Design Patterns und UML. Marco Skulschus

PHP OOP, Design Patterns und UML. Marco Skulschus PHP OOP, Design Patterns und UML Marco Skulschus Page ta Controller Transfer bject Two-Step-View Row Transaction Script Data Mapper Data Gateway Application Controller Table Module Transform View Front

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 08 11.12.2013 Inhalt Korrektur Blatt 7 Programmierung Banksimulation (Blatt 6) Design Patterns (Entwurfsmuster) MVC und Observer Pattern Einführung in die

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

Programmiertechnik II WS 2017/18

Programmiertechnik II WS 2017/18 Programmiertechnik II WS 2017/18 Fakultät Informatik Bachelor Angewandte Informatik Prof. Dr. Oliver Bittel bittel@htwg-konstanz.de www-home.htwg-konstanz.de/~bittel WS 17/18 Überblick OOP: Schnittstellen

Mehr

Software Engineering II

Software Engineering II Software Engineering II 9 Entwurfsmuster Prof. Dr. Dirk Müller Übersicht Einführung Geschichte Anforderungen und Nutzen Grundlegende Elemente Alphabetischer GoF-Katalog 11 GoF-Muster im Detail Nachteile

Mehr

Delegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet

Delegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet Einführung Delegaten delegate ist ein Objekt, das delegiert == weiterleitet d. h. eine Tätigkeitsanforderung wird weitergeleitet - Weiterleitung erfolgt an eine Funktion - diese Funktion(en) wurde dem

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

Design Patterns. OO-GetTogether. Volker Michels

Design Patterns. OO-GetTogether. Volker Michels 1 Design Patterns OO-GetTogether Volker Michels 2 Muster (engl. Pattern) Züllighoven: Ein Muster ist eine Abstraktion von einer konkreten Form, die wiederholt in bestimmten nicht willkürlichen Kontexten

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

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs... Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung

Mehr

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

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

Software- /Systemarchitektur

Software- /Systemarchitektur Software- /Systemarchitektur Agenda: Definition von Softwarearchitektur Voraussetzungen Was bedeutet Objektorientierung? Wie speichert man Daten persistent? Client-Server-Architektur Schichtenarchitektur

Mehr

MVC-Architektur am Beispiel von OLAT

MVC-Architektur am Beispiel von OLAT MVC-Architektur am Beispiel von OLAT Marvin Frommhold 12. Januar 2009 Gliederung Begriffe Entwurfsmuster Umsetzung in OLAT Aufbau des Brasato-Frameworks Quellen Begriffe I MVC bezeichnet ein Architekturmuster

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

3 Properties, Bindings und JavaFX-Collections

3 Properties, Bindings und JavaFX-Collections Properties, Bindings und JavaFX Collections 31 3 Properties, Bindings und JavaFX-Collections Dieses Kapitel beschäftigt sich mit wichtigem Basiswissen für das Verständnis der JavaFX Elemente. Nachdem wieder

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

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26 Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:

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

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

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

5. Tutorium zu Softwaretechnik I

5. Tutorium zu Softwaretechnik I 5. Tutorium zu Softwaretechnik I JMJRST, Entwurfsmuster, Swing Michael Hoff 20.06.2013 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales

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

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

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

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

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Erzeugungsmuster. Kapselung der Objekt-Erzeugung Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory

Mehr

Parallelität, Threads

Parallelität, Threads Parallelität, Threads Tutorium 17 Fabian Miltenberger 30.06.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

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

Praxis der Softwareentwicklung

Praxis der Softwareentwicklung Praxis der Softwareentwicklung SS 2013 Prof. Dr. Gregor Snelting LEHRSTUHL 0 KIT 9. Universität April 2013 des Landes Baden-Württemberg Praxis der Softwareentwicklung und SS 2013 LEHRSTUHL nationales Forschungszentrum

Mehr

Verteidigung Großer Beleg

Verteidigung Großer Beleg Verteidigung Großer Beleg Die GoF-Entwurfsmuster in Java Corinna Herrmann ch17@inf.tu-dresden.de Gliederung 1. Aufgabenstellung 2. Entwurfsmuster 3. Verwandte Arbeiten 4. Beispiele: 4.1. Adapter 4.2. Flyweight

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

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

Software Engineering. 5. Architektur

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

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

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungen zur Vorlesung Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungsblatt 7 Lösungshilfe Aufgabe 1. Analysephase (12 Punkte) Eine Firma hat den Auftrag erhalten eine

Mehr

Praxis der Softwareentwicklung

Praxis der Softwareentwicklung Praxis der Softwareentwicklung SS 2014 Prof. Dr. Gregor Snelting LEHRSTUHL 0 KIT 22. Universität April 2014 des Landes Baden-Württemberg Praxis der Softwareentwicklung und SS 2014 LEHRSTUHL nationales

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Lehrbuch der Objektmodellierung

Lehrbuch der Objektmodellierung Heide Balzert Lehrbuch der Objektmodellierung Analyse und Entwurf mit CD-ROM Technische Universität Darmstadt FACHBEREICH INFORMATIK BIBLIOTHEK Inventar-Nr.: Sachgebiete: Standort: Tt Spektrum Akademischer

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

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

BIF/SWE - Übungsbeispiel

BIF/SWE - Übungsbeispiel Arthur Zaczek Feb 2015 1 Allgemein 1.1 Ziele Ziele dieses Übungsbeispieles ist es: GUI: Implementierung einer grafischen Oberfläche mit JavaFX oder WPF UI-Komponente: Implementierung einer eigenen grafischen

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

Überblick Dienstleistungen Bausteine Methodiken Entwurfsmuster. 5.4 Entwurfsmuster

Überblick Dienstleistungen Bausteine Methodiken Entwurfsmuster. 5.4 Entwurfsmuster 5.4 Entwurfsmuster auf Flexibilität und Wartungsfreundlichkeit zielende Systeme von Klassen Wiederverwendung auf Entwurfsebene jedes Muster hat Vor- und Nachteile, z.b. Flexibilität Overhead, # Objekte

Mehr

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme 6. Weitere Strukturdiagramme Objektdiagramm Komponentendiagramm Paketdiagramm 1 6.1 Objekte Ausprägungsspezifikation von Klassen und Assoziationen 2 Definition Das Objektdiagramm zeigt eine bestimmte Sicht

Mehr

Praxis der Softwareentwicklung WS 2015/16

Praxis der Softwareentwicklung WS 2015/16 Praxis der Softwareentwicklung WS 2015/16 Prof. Dr. Gregor Snelting LEHRSTUHL PROGRAMMIERPARADIGMEN 0 KIT 28. Universität Oktober des 2015- Landes Praxis Baden-Württemberg der Softwareentwicklung und WS

Mehr

Klausur Softwaretechnik

Klausur Softwaretechnik Klausur Softwaretechnik 16.03.2006 Prof. Dr. Walter F. Tichy M. Sc. A. Jannesari Dipl.-Inform. G. Malpohl Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes Papier zugelassen.

Mehr

Software Design Patterns Zusammensetzung. Daniel Gerber

Software Design Patterns Zusammensetzung. Daniel Gerber Software Design Patterns Zusammensetzung Daniel Gerber 1 Gliederung Einführung Iterator Composite Flyweight Zusammenfassung 2 So wird s werden Problem und Kontext an einem Beispiel vorstellen Lösung des

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Software-Architektur Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 11.07.2017 15:12 Inhaltsverzeichnis Standardwerk.................................... 2 Design

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

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Entwurfsmuster Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Information über Entwurfsmuster Die heutige Vorlesung: Einführung in die Thematik Die Vorlesung am 12.01:

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

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

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum

Mehr

Waitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006

Waitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006 Waitomo Compilerbaupraktikum Wintersemester 2006/2007 Stefan Wehr 24. Oktober 2006 1 Einleitung Quellsprache für das Compilerbaupraktikum ist Waitomo, ein Java-ähnliche Sprache mit Unterstützung für Typklassen

Mehr

OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung)

OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung) OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung) SS 2015 Birgit Demuth Analyse Anforderungs- Ermittlung Von der Analyse zum Entwurf System- Modelierung Anforderungs- Spezifikation (Pflichtenheft)

Mehr

3-Tier-Architecture und J2EE

3-Tier-Architecture und J2EE 3-Tier-Architecture und J2EE Oliver Müller Seminar Software-Entwurf WS 2004/05 3-Tier, was war das noch gleich? NEIN, das nicht!!! 2 Die Lage - Applikationen laufen

Mehr

13 Abstrakte Datentypen

13 Abstrakte Datentypen 13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)

Mehr

Logo in neuer Logosystematik einfügen: Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von

Logo in neuer Logosystematik einfügen: Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von Software Engineering Grundsätzen und Identifikation von Maßnahmen zur Verbesserung Axel Sommer Inhalt Motivation und Ziele Software

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

ADT: Verkettete Listen

ADT: Verkettete Listen ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren

Mehr

Strategy & Decorator Pattern

Strategy & Decorator Pattern Strategy & Decorator Pattern Design Patterns Nutzen Wouldn t it be dreamy if only there were a way to build software so that when we need to change it, we could do so with the least possible impact on

Mehr

Praktische Softwaretechnologie Vorlesung 9

Praktische Softwaretechnologie Vorlesung 9 Praktische Softwaretechnologie Vorlesung 9 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 9. Januar 2007 p.1/38 Pattern

Mehr

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:

Mehr

Übung 11: Klausurvorbereitung. Übung 11. Prüfungsvorbereitung Software Engineering WS16/17 Philipp Seltmann

Übung 11: Klausurvorbereitung. Übung 11. Prüfungsvorbereitung Software Engineering WS16/17 Philipp Seltmann Übung 11 Prüfungsvorbereitung 1/32 0. Organisatorisches http://giphy.com/gifs/exam-gnjnnba5ieoou Klausur: 17.02.2016, 13-15 Uhr, B11, SR15 Keine Hilfsmittel!!! Papier wird bereitgestellt 2/32 01. Funktionale

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

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

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

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