OM Entwurfsmuster. OM Entwurfsmuster. 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Definition Entwurfsmuster (design pattern)
|
|
- Lennart Simen
- vor 7 Jahren
- Abrufe
Transkript
1 1 Inhalt: Entwurfsmuster 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Kompositum-Muster 7.5 Proxy-Muster 7.6 Fassaden-Muster 7.7 Beobachter-Muster 7.8 Schablonenmethode-Muster Entwurfsmuster, Frameworks, Klassenbibl. Definition Entwurfsmuster (design pattern) Bewährte generische Lösung für ein immer wiederkehrendes Entwurfsproblem, das in bestimmten Situationen auftritt Beschreibung eines Entwurfsmusters Name des Musters Problembeschreibung Wann ist das Muster anwendbar? Lösungsbeschreibung Abstrakte Lösung Konsequenzen Für Evaluierung von Entwurfsalternativen
2 3 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Klassifikation der Mustern Erzeugungsmuster (creational patterns) Helfen, ein System unabhängig davon zu machen, wie seine Objekte erzeugt, zusammengesetzt und repräsentiert werden Strukturmuster (structural patterns) Befassen sich mit der Zusammensetzung von Klassen und Objekten zu größeren Strukturen Verhaltensmuster (behavioral patterns) Befassen sich mit der Interaktion zwischen Objekten und Klassen Beschreiben komplexe Kontrollflüsse, die zur Laufzeit schwer nachvollziehbar sind Entwurfsmuster, Frameworks, Klassenbibl. Weitere Klassifikation der Muster Klassenbasierte Muster Behandeln Beziehungen zwischen Klassen Ausgedrückt durch Vererbungsstrukturen Festgelegt zur Übersetzungszeit Objektbasierte Muster Beschreiben Beziehungen zwischen Objekten, die zur Laufzeit geändert werden können Benutzen auch bis zu einem gewissen Grad die Vererbung
3 5 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Klassenbibliothek Organisierte Softwaresammlung, aus der ein Entwickler nach Bedarf Einheiten verwendet Topologien Baum-Topologie Gemeinsame Wurzelklasse Wald-Topologie Bibliothek besteht aus mehreren Baumhierarchien Vorteil: Flachere Vererbungshierarchie im Vergleich zur Baum-Topologie Baustein-Topologie Unabhängige Klassen Verwendung des Konzepts der generischen Klasse zur spezifischen Anpassung 6 fundamentale, allgemein nutzbare, systemnahe Klassen wie Listen, strings, 7.1 Entwurfsmuster, Frameworks, Klassenbibl. bags, maps, queues usw. Klassenbibliotheken Fundamental- Klassenbibliotheken GUI- Klassenbibliotheken Grafik- Klassenbibliotheken Klassenbibliotheken zum Zugriff auf Datenbanken Klassen fürgrafische Benutzungsoberflächen, wie widgets, menubar, scrollbar, window, list box, text edit Klassen zur Entwicklung komplexer, interaktiver Grafikanwendungen: Diagramme, spreadsheets, Skalen, Vektorgrafiken Klassen zur Ansteuerung von (relationalen) Datenbanksystemen Klassenbibliotheken zur Interprozeßkommunikation Anwendungsspezifische Klassenbibliotheken Klassen zur Kommunikation zwischen Prozessen: dispatcher, data representation, message header, name-service
4 7 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Framework Def.: Menge von zusammenarbeitenden Klassen, die einen wiederverwendbaren Entwurf für einen bestimmten Anwendungsbereich implementieren Besteht aus konkreten und? insbesondere? aus abstrakten Klassen, die Schnittstellen definieren Definition von Unterklassen zur Verwendung und Anpassung des Frameworks Selbstdefinierte Unterklassen empfangen Botschaften von vordefinierten Framework- Klassen Hollywood-Prinzip:»Don t call us, we ll call you« Entwurfsmuster, Frameworks, Klassenbibl. Frameworks sind immer spezifisch auf einen Anwendungsbereich ausgelegt Beispiele Erstellung grafischer Editoren Erstellung von Finanzsoftware Spezialisierung eines Frameworks für eine konkrete Anwendung durch Ableiten von Unterklassen aus den abstrakten Framework-Klassen Realisierung der Frameworks mittels Programmiersprachen Frameworks können also ausgeführt und direkt wiederverwendet werden Frameworks ermöglichen hohe Wiederverwendung
5 9 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Frameworks bestimmen die Architektur der Anwendung definieren die Struktur der Klassen und Objekte und deren Verantwortlichkeiten legen fest, wie Klassen und Objekte zusammenarbeiten legen fest, wie der Kontrollfluß aussieht Anwendungsprogrammierer kann sich auf die Details der Anwendung konzentrieren Entwurfsmuster, Frameworks, Klassenbibl. Muster vs. Framework Entwurfsmuster sind abstrakter als Frameworks Werden nur beispielhaft durch Programmcode repräsentiert Anwendung von Entwurfsmustern mit einer neuer Implementierung verbunden Entwurfsmuster sind kleiner als Frameworks Ein typisches Framework enthält mehrere Entwurfsmuster Entwurfsmuster sind weniger spezialisiert als Frameworks Keine Beschränkung auf einen bestimmten Anwendungsbereich
6 Fabrikmethode-Muster (factory method) Motivation Verwendung eines Frameworks für eine Anwendung, die mehrere Dokumente gleichzeitig anzeigen kann Verwendung der beiden abstrakten Klassen Application und Document und Modellierung einer Assoziation zwischen ihren Objekten Document open() close() save() revert() docs * Application createdocument() newdocument opendocument() Document *doc = createdocument(); docs.add(doc); doc >open(); MyDocument «creates» MyApplication createdocument() return new MyDocument Fabrikmethode-Muster Klasse Application ist für die Erzeugung neuer Dokumente zuständig Softwarekonstrukteur leitet von diesen beiden Klassen seine anwendungsspezifischen Klassen ab Problem Erzeugung eines neuen Objekts von MyDocument aus der Klasse MyApplication Framework muß Objekte erzeugen, kennt aber nur die abstrakten Oberklasse, von der es keine Objekte erzeugen darf
7 Fabrikmethode-Muster Lösung Unterklassen von Application überschreiben die abstrakte Operation createdocument() Exemplar von MyDocument wird zurückgegeben Nach der Erzeugung eines Objekts von MyApplication, kann diese spezifische Dokumente erzeugen, ohne deren exakte Klasse zu kennen Operation createdocument() heißt Fabrikmethode Sie ist für die»fabrikation«eines Objekts verantwortlich Fabrikmethode-Muster Anwendbarkeit Verwendung des Muster, wenn eine Klasse die von ihr zu erzeugenden Objekte nicht im voraus kennen kann die Unterklassen festlegen sollen, welche Objekte sie erzeugen Struktur (klassenbas. Erzeugungsmuster) Product Creator factorymethod() anoperation() product = factorymethod() ConcreteProduct «creates» ConcreteCreator factorymethod() return new ConcreteProduct
8 Singleton-Muster Motivation Bei manchen Klassen soll genau ein Objekt existieren Einfacher Zugriff auf dieses Objekt von mehreren anderen Objekten Struktur (Objektbas. Erzeugungsmuster) Singleton uniqueinstance singletondata instance() singletonoperation() getsingletondata() return uniqueinstance Singleton-Muster Deklaration class Singleton {public:static Singleton* instance(); protected:singleton(); private: static Singleton* uniqueinstance; }; Singleton* Singleton::uniqueInstance = 0; Implementierung Singleton* Singleton::instance() { if (uniqueinstance == 0) { uniqueinstance = new Singleton; } return uniqueinstance; }
9 Kompositum-Muster (composite) Motivation Zusammensetzen von Grafiken zu komplexen Grafiken Komplexe und einfache Grafikobjekte sollen aus Sicht des Klienten gleich behandelt werden :Text :Line :Pictur e :Pictur e :Rectangle :Rectangle Kompositum-Muster Lösung mittels Stückliste Graphic draw() add(graphic) remove(graphic) getpart(int) graphics * 0..1 Line Rectangle Text Picture draw() draw() draw() draw() add(g:graphic) remove(graphic) getpart(int) for all g in graphics g.draw() add g to list of graphics
10 Kompositum-Muster Struktur (Objektbasiertes Strukturmuster) Client 1 Component operation() add(component) remove(component) getpart(int) parts * Leaf Composite 0..1 operation() operation() add(component) remove(component) getpart(int) for all g in parts g.operation() Proxy-Muster (proxy) Motivation Integration grafischer Objekte in einen Text Darstellung großer Bilder benötigt viel Computerleistung Lösung Verwendung eines Platzhalters Proxy? anstelle des echten Bildes Der Bild-Proxy erzeugt das tatsächliche Bild erst, wenn es benötigt wird :TextDocument image :ImageProxy im Hauptspeicher filename :Image data auf der Festplatte
11 Proxy-Muster Proxy kontrolliert den Zugriff auf ein Objekt mit Hilfe eines vorgelagerten Stellvertreter-Objekts Text Document * Graphic draw() getextent() store() load() Image imageimp extent draw() getextent() store() load() 1 «creates» image Image Proxy filename extent draw() getextent() store() load() if(image==o) image=loadimage(filename) image >draw() if(image==o) return extent; else return image >getextent(); Proxy-Muster Anwendung in folgenden Situationen Remote-Proxy als lokaler Vertreter für ein Objekt auf einem anderen Computer Virtuelles Proxy erzeugt»teure«objekte auf Verlangen (wie im Beispiel) Schutz-Proxy kontrolliert Zugriff auf das Original Smart reference als Ersatz für einen einfachen Zeiger, der zusätzlich folgende Funktionen anbietet Zählen der Referenzen auf das eigentliche Objekt Automatische Freigabe, wenn es keine Referenzen mehr besitzt Laden eines persistenten Objekts, wenn es erstmalig referenziert wird Testen eines Objekts auf locking, bevor darauf zugegriffen wird
12 Proxy-Muster Struktur (Objektbasiertes Strukturmuster) Client 1 Subject request() RealSubject request() 1 real Subject Proxy request() realsubject >request() Fassaden-Muster (facade) Motivation Entwurfsziel Lose Kopplung von Paketen Lose Kopplung erleichtert den Austausch der Pakete und deren unabhängige Implementierung Fassadenklasse zeigt eine vereinfachte Schnittstelle für die? umfassendere? Funktionalität des Pakets Vereinfachte Sicht genügt vielen Klienten Klienten, denen diese Schnittstelle nicht reicht, müssen hinter die Fassade schauen
13 Fassaden-Muster Struktur (Objektbasiertes Strukturmuster) Client Client Package Package Facade Fassaden-Muster Anwenden des Musters, wenn einfache Schnittstellen zu einem komplexen Paket angeboten werden sollen es zahlreiche Abhängigkeiten zwischen Klienten und einem Paket gibt Fassade entkoppelt beide Komponenten Fördert die Unabhängigkeit und Portabilität des Pakets Pakete in Schichten organisiert werden sollen Fassade definiert den Eintritt für jede Schicht Vereinfachung der Pakete, indem ausschließlich über eine Fassade kommuniziert wird
14 Fassaden-Muster Die Fassaden-Klasse weiß, welche Paket-Klassen für die Bearbeitung einer Botschaft zuständig sind delegiert Botschaften vom Klienten an das zuständige Paket definiert keine neue Funktionalität Die Klassen im Paket führen die von der Fassade zugewiesenen Aufgaben durch wissen nichts von der Fassade Beobachter-Muster (observer) Motivation Objekt enthält Anwendungsdaten Darstellung dieser Daten auf verschiedene Arten Kreisdiagramm soll sich ändern, wenn die Daten in der Tabelle verändert werden und umgekehrt x y z a b c a b c a = 50% b = 30% c = 20% Benachrichtigung über Änderung Anfragen, Veränderungen
15 Beobachter-Muster Struktur Subject kennt alle seine Beobachter (observer) und informiert sie über alle Änderungen Beobachter kennen sich untereinander nicht Synchronisation jeden Beobachters mit dem Zustand des Subject Subject attach(observer) detach(observer) notify() for all o in observers o >update() observers * Observer update() Concrete Subject subjectstate getstate() setstate() subject 1 return subjectstate Concrete Observer observerstate update() observerstate= subject > getstate() Beobachter-Muster Interaktionen des Beobachter-Musters :Concr etesubject Observer 1 Observer 2 input() setstate() notify() update() getstate() getstate() update()
16 Schablonenmethode-Muster Motivation Framework, das die Klassen Document und Application bereitstellt Document open() save() close() doread() * docs Application adddocument() opendocument() docreatedocument() canopendocument() abouttoopendocument() MyDocument doread() «creates» MyApplication docreatedocument() canopendocument() abouttoopendocument() Schablonenmethode-Muster Schablonenmethode opendocument() Definiert den Rahmen eines Algorithmus Delegiert Teilschritte an Unterklassen void Application::openDocument (const char* name) { if (!canopendocument(name) ) return; Document* doc = docreatedocument(); if (doc) { docs->adddocument(doc); abouttoopendocument(doc); doc->open(); doc->doread(); }}
17 Schablonenmethode-Muster Anwenden des Musters um die invarianten Teile eines Algorithmus genau einmal festzulegen Konkrete Ausführung der variierenden Teile wird den Unterklassen überlassen wenn gemeinsames Verhalten von Unterklassen in einer Oberklasse realisiert werden soll Vermeidung der Duplikation von Code Schablonenmethode-Muster Struktur (Objektbasiertes Verhaltensmuster) AbstractClass templatemethod() primitiveoperation1() primitiveoperation2() primitiveoperation1() primitiveoperation2() ConcreteClass primitiveoperation1() primitiveoperation2()
18 35 Aufgabe 1 Modellieren und Erkennen von Mustern Erstellen Sie Klassen- und Sequenzdiagramm Welches Muster liegt vor? ClassSpecification mit AttributeSpecs ClassTree mit AttributeList ClassSymbol mit AttributeSpecs 36 Aufgabe 2 a Systematisches Identifizieren von Entwurfsmustern a. Grafik #Koordinate #istsichtbar +zeigen() +loeschen() +verschieben() zeigen().. loeschen() Kreis #Radius +zeigen() +loeschen() +vergroessern() +verkleinern()
19 37 Aufgabe 2 b b. Dateiobjekt verschieben() kopieren() loeschen() * Verknuepfung oeffnen() Datei oeffnen() Verzeichnis 0..1 durchsuchen() hinzufuegen() zeigeinhalt() 38 Aufgabe 2 c c. Element Diagram draw() delete() tools * createelement() showelement() activeelement() tool = createelement() Link Object MyDiagram createelement()
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
MehrObjektorientierteund FunktionaleProgrammierung
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrEntwurfsmuster. 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
MehrSoftware Engineering. 7. Entwurfsmuster
Software Engineering 7. Entwurfsmuster Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung
MehrEinfü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
MehrObjektorientierte und Funktionale Programmierung
Objektorientierte und Funktionale Programmierung SS 2013 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung 1 PrüfungstermineOFP
MehrEntwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können. Wichtige Entwurfsmuster kennen und erklären können, wo sie eingesetzt werden
Grundlagen der Softwaretechnik 7 Entwurfsmuster und Frameworks Lernziele Entwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können Wichtige Entwurfsmuster kennen und erklären können, wo sie
MehrOOSE 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
Mehr3. Übung Softwaretechnik
3. Übung Softwaretechnik - Entwurf / Design - Wintersemester 2007/2008 Thorsten Berger, Thomas Riechert 1 Organisatorisches Voranmeldung Softwaretechnik-Praktikum im Sommersemester 2008 https://olat.informatik.uni-leipzig.de:9101/olat/auth/repo/go?rid=11403282
MehrSoftware-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();
MehrEntwurfsmuster 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
MehrLukas 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
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrDesign 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:
MehrOOP. Tagesprogramm. Software-Entwurfsmuster. Factory-Method. Prototype
1 2014-12-10 Tagesprogramm Software-Entwurfsmuster Factory-Method Prototype 2 2014-12-10 Software-Entwurfsmuster Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen
MehrEntwurfsmuster (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
MehrEffizientes Programmieren
Effizientes Programmieren Praktikum smuster (09.05.2016) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (09.05.2016) smuster Teil 1 2 / 23 smuster (09.05.2016) smuster Definition: [...] alle
MehrEffizientes Programmieren
Effizientes Programmieren Praktikum smuster (04.07.2017) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (04.07.2017) smuster Teil 1 2 / 23 smuster (04.07.2017) smuster Definition: [...] alle
MehrEntwurfsmuster. 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:
Mehr185.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
MehrDesign 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
MehrVerhaltensmuster. 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
MehrCreational 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
MehrDesign 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
MehrStructural 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
MehrEntwurfsmuster 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
MehrZweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts
Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche
MehrZweck: sequentieller Zugriff auf Elemente eines Aggregats
Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche
MehrOOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype
1 2017-01-11 Tagesprogramm Aspekte und Annotationen Software-Entwurfsmuster Factory-Method Prototype 2 2017-01-11 Aspekte und Annotationen Aspektorientierte Programmierung Paradigma der Modularisierung
MehrSoftware Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering 10. Entwurfsmuster II Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: 10. Entwurfsmuster II 2 Die Entwurfsmuster der Gang of Four Die 23 GoF Pattern sind in 3 Gruppen
MehrDesign 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:
MehrDesign 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?
MehrSoftware-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
MehrLehrbuch 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
Mehr3. 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
MehrProgrammiermethodik Entwurfsmuster SS 2002
Programmiermethodik Entwurfsmuster SS 2002 Thomas Kühne kuehne@informatik.tu-darmstadt.de http://www.informatik.uni-mannheim.de/informatik/softwaretechnik Warum Entwurfsmuster? Systematischer Softwareentwurf»
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster benennen wiederkehrende Probleme und Lösungen dienen dem Austasch von Erfahrungen Wiederverwendung von Erfahrung wo Wiederverwendung von Code versagt sehr abstrakt, daher häufig
MehrErzeugungsmuster. 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
MehrSE Besprechung. Übung 4 Architektur, Modulentwurf
SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,
Mehr3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern
3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Vorlesung Objektorientierte Programmierung WS 2013/2014 / Folie 301 Entwurfsmuster (Design Patterns): Idee der Entwurfsmuster verstehen Software-Entwicklungsaufgaben,
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2009 Überblick I 1 Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrInhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23
Vorwort.................................................. 17 Geleitwort von Grady Booch................................. 21 Einleitung................................................ 23 1 Einführung...............................................
MehrR O O T S Ferientutorien Softwaretechnologie 2010
R O O T S Ferientutorien Softwaretechnologie 2010 von Eva Stöwe und Jan Nonnen 12.03.2010 2010 Eva Stöwe, Jan Nonnen Ferientutorien Softwaretechnologie 2010 Disclaimer Die Folien stellen lediglich die
MehrSpecial on Design Patterns Übungen zur objektorientierten Programmierung und Modellierung
Special on Design Patterns Übungen zur objektorientierten Programmierung und Modellierung Prof. Dr. Ralf Lämmel L / Dr. Manfred Jackel WS 2007-8 Universität t Koblenz-Landau Entwurfsmuster Bewährte, generische
MehrEin Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008
Ein Entwurfsmuster der GoF vorgestellt von Sigrid Weil 16. Januar 2008 Einleitung 2 Entwurfsmuster (Design Patterns) beschreiben Probleme, die wiederholt in unterschiedlichsten Zusammenhängen aufreten
MehrSoftware 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
MehrUniversität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
MehrSoftware Engineering II (IB) Design Patterns
Software Engineering II (IB) Design Patterns Prof. Dr. Oliver Braun Letzte Änderung: 16.05.2017 20:56 Software Engineering II (IB), Design Patterns 1/43 Standardwerk Gang of Four: Erich Gamma, Richard
MehrEntwurfsmuster. 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:
MehrSoftware Engineering II (IB) Design Patterns
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 20:56 Inhaltsverzeichnis Standardwerk.................................... 2 Erzeugungsmuster.................................
MehrObjektorientierte 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
MehrArchitektur-Grobstruktur: Framework
Architektur-Grobstruktur: Framework remote oder lokal Server: Anwendungslogik strukturierte Daten FH AACHEN UNIVERSITY OF APPLIED SCIENCES OOS Prof. Dr. H. Faßbender Design & Pattern 10. Juni 2016 1 Feinstruktur
MehrDesign Patterns. 5. Juni 2013
Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
MehrBekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen
Michael Saecker Bekannte Lösungen für bekannte Probleme benutzen Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen Gemeinsames Vokabular für Designer 2 http://www.clickpix.de/sommer/architektur.jpg
MehrSoftware-Architektur Design Patterns
Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:
MehrStrategie. (Strategy. / Policy) Ein objektbasiertes Verhaltensmuster. Stephan Munkelt, Stefan Salzmann - 03IN
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Gliederung 1. Zweck 2. Motivation 3. Anwendbarkeit 4. Struktur 5. Teilnehmer 6. Interaktionen 7. Konsequenzen 8. Implementierung 9. Beispiele
MehrAuf 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
MehrPraxisbuch 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
MehrEntwurfsprinzip. Entwurfsprinzip
Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit
MehrÜ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
MehrPraktische 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
MehrEntwurfsmuster - 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
MehrModel-View-Controller
Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung
MehrVerteidigung 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
MehrKlassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete
2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen
MehrMVVM (Model View ViewModel) in JavaFX
MVVM (Model View ViewModel) in JavaFX SEP Sommersemester 2019 Nicolas Brauner 30.04.2019 DBS Wissenschaftlicher Betreuer: Maximilian Hünemörder, Ludwig Zellner Verantwortlicher Professor: Prof. Dr. Peer
MehrTutorium 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Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur
Übersicht Object Oriented Organization Das System besteht aus Objekten, die mittels Methodenaufrufe (Nachrichten) miteinander kommunizieren. 2 / 34 4 / 34,, Design Patterns und Stefan Wehr Prof. Dr. Peter
Mehrclass 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
MehrEin Design Tool für objektorientierte portable Programmierschnittstellen
Diplomarbeit Ein Design Tool für objektorientierte portable Programmierschnittstellen Vortragender: Elias Volanakis Inhalt 1. Entwurfsmuster 2. Wrapper Facade (WF) Aufgaben & Struktur Implementierung Nutzen
MehrJUnit 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
MehrProgrammierkurs. 13. Vorlesung. Sven Mallach. 27. Januar Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 69
Programmierkurs 13. Vorlesung Sven Mallach Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 27. Januar 2010 1/ 69 UML Teile der Vorlesungsfolien dieses Kapitels enthalten Grafiken und Inhalte aus
MehrObjektorientierte 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
MehrSoftware 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
MehrBehavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul
Behavioral Patterns Seminar Software-Entwurf WS 04/05 Przemyslaw Dul Gliederung Design Pattern (Wiederholung) Einordnung Übersicht über die Kategorien: Creational,Structural,Behavioral Übersicht über die
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
FG TECHNISCHE INFORMATIK I CQ 900 00 TH 02 ----------------------------------------------------------------------------------- Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 9 9.
MehrObjektorientierte Entwurfsmuster
Objektorientierte Entwurfsmuster Claus Lewerentz Brandenburgische Technische Universität Cottbus Fraunhofer FIRST/SWQlab Cottbus Fraunhofer Institut Rechnerarchitektur und Softwaretechnik 12.05.2005, Software-Systemtechnik,
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrINSPIRE - Modellierung
INSPIRE - Modellierung Inhalt Motivation Modellierung UML Diagramme INSPIRE-Schulung LKROS 2 Motivation Was ist ein Modell, und warum wollen wir modellieren? Warum brauchen wir eine Modellierungssprache
MehrSoftware-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09 Überblick I 1 1 Was ist ein Entwurfsmuster? Bestandteile
MehrEntwurfsmuster und Frameworks Singleton
Entwurfsmuster und Frameworks Singleton Oliver Haase Oliver Haase Emfra Singleton 1/20 Beschreibung I Klassifikation: objektbasiertes Erzeugungsmuster Zweck: sicherstellen, dass eine Klasse nur genau einmal
MehrEntwurfsmuster. Rainer Schmidberger
Entwurfsmuster Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Copyright 2004, Rainer Schmidberger, Universität Stuttgart, Institut für Softwaretechnologie, Abt. Software Engineering Was sind
MehrObjektorientierte 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,
MehrSoftwarearchitektur, UML, Design Patterns und Unit Tests
Softwarearchitektur, UML, Design Patterns und Unit Tests Stefan Wehr Prof. Dr. Peter Thiemann 7. Dezember 2005 Übersicht Softwarearchitektur UML Design Pattern Unit Tests 2 / 34 Softwarearchitektur Softwarearchitektur
MehrMatthias 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
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrTutorium 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
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrEntwurfsmuster - 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
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrSoftwaretechnik (Allgemeine Informatik) Überblick: 6. Objektorientiertes Design
Softwaretechnik (Allgemeine Informatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software
MehrObjektorientierte Analyse (OOA) OOA-Pattern
OOA-Muster (Architektur Pattern) Ein Pattern (Entwurfsmuster) ist ein Problem mit seiner Lösung in einem Kontext. Der Kontext enthält in der Regel Zielkonflikte, die der Designer lösen muss, z.b. Performance
MehrUML (Unified Modelling Language) von Christian Bartl
UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...
MehrASPECT-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