lehrstuhl für angewandete softwaretechnik technische ... · Überblick der heutigen vorlesung ♦...
TRANSCRIPT
![Page 1: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/1.jpg)
Entwurfsmuster
Tao Zhang
Technische Universität München
Lehrstuhl für Angewandete Softwaretechnik
![Page 2: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/2.jpg)
Information über Entwurfsmuster
♦ Die heutige Vorlesung: Einführung in die Thematik
♦ Die Vorlesung am 12.01: Drei Muster vorstellen! abstrakte Fabrik
! Proxy
! Beobachter
![Page 3: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/3.jpg)
Überblick der heutigen Vorlesung
♦ Hintergrund und Definition
♦ Entwurfsmuster - Idee und Ziele
♦ Entwurfsprinzipien für Muster
♦ Wiederverwendungsmechanismen bei Mustern
♦ Klassifikation der Entwurfsmuster
♦ Das Missverständnis über Entwurfmuster
♦ Zusammenfassung
![Page 4: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/4.jpg)
Hintergrund
♦ Arbeiten von E. Gamma an der Universität Zürich! Entwicklung eines Editor-Toolkits ET
! Weiterentwicklung zum Framework ET++
! E.Gamma beschreibt in seiner Dissertation Entwurfslösungen fürbestimmte Entwurfsprobleme
! Er nennt sie in Anlehnung an die Arbeiten von C.Alexander“Design Patterns”
♦ E.Gamma, J.Vlissides, R.Helm und R.Johnson (GoF)! Autoren des Buches “Design Pattern”
! Es führt eine Systematik für die Beschreibung von Entwurfsmusterein
! Wird ein “Kultbuch ” in der OO-Szene
![Page 5: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/5.jpg)
Ist das die richtige Muster -Definition ?
♦ Ein Muster ist die Lösung eines Problems in einemKontext
Gegenbeispiel:
Problem : Wie kann ich meinen Gewinn-Lottoschein einlösen,bevor er abgelaufen ist ?
Kontext: Der Hund hat den Lottoschein eine Stunde vor demletzten Termin aufgefressen :-(
Lösung: Schneide den Hund auf, angle den Lottoschein heraus,und renne zur nächsten Lottostelle… :-)
![Page 6: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/6.jpg)
Definition von GoF:
Ein Entwurfsmuster beschreibt ein bestimmtes, ineinem gegebenen Kontext immer wiederkehrendesEntwurfsproblem, sowie ein vorgegebenes Schema zuseiner Lösung
♦ Wiederholbarkeit
♦ Leitfaden (teaching)
♦ Name eines Musters
![Page 7: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/7.jpg)
Beispiel:Das Sicherheitsproblem mit der Open Architektur
VIP Subsystem
![Page 8: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/8.jpg)
Lösung: Close Architektur mit Fassademuster
![Page 9: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/9.jpg)
Entwurfsmuster - Idee und Ziele
♦ Entwurfsmuster beschreiben Expertenwissen auf demGebiet SW- Entwurf
♦ Entwurfsmuster beschreiben Design-Erfahrungen inwiederverwendarer Form
♦ Entwurfsmuster helfen, einfacher eine adäquate Lösung fürein gängiges Entwurfsproblem zu finden
♦ Entwurfsmuster schaffen dringend benötigte höhereAbstraktionen
♦ Entwurfsmuster führen zu einer Terminologie über SW-Architekturen (Pattern Languages)
![Page 10: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/10.jpg)
Bevor wir einzelne Entwurfsmuster vorstellen,werden wir noch einige wichtige Entwurfsprinzipienfür Muster kennenlernen
![Page 11: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/11.jpg)
Entwurfsprinipien für Muster
♦ Eine Konstruktion soll offen und flexibel gestaltet sein
♦ Wiederverwendbarkeit, Verständlichkeit undÄnderbarkeit einer Konstruktion soll erreicht werden
♦ Die wesentlich Konstruktionsprinzipien sind u.a.:! Kapselung (Information hiding)
! Lose Kopplung von Komponenten
! Gleichverteilung von Verantwortlichkeiten
! Wahrnehmen der Verantwortung und Delegation
![Page 12: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/12.jpg)
Mehr über Wiederverwendungsmechanismen
♦ Komposition (Black-Box Reuse)
♦ Vererbung (White-box Reuse)
♦ Drei bekannte Techniken:! Implementierungsvererbung
! Schnittstellenvererbung
! Delegation
♦ Vererbung und Objektkomposition arbeitenzusammen bei vielen Entwurfsmustern
![Page 13: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/13.jpg)
Implementierungs- vs Schnittstellenvererbung
♦ Implementierungsvererbung! Funktionalität der Elternklasse wiederverwenden
! Teils oder alle bereits implementierte Operationen derexistierenden Klassen vererben
♦ Schnittstellenvererbung! spezifizierte, jedoch nicht implementierte Operationen einer
abstrakten Klasse vererben
![Page 14: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/14.jpg)
Delegation oder Vererbung (I)?
Vererbung
! Pro:" Direkt von der Programmiersprache unterstützt
" Wiederverwendete Implementierung leicht zu modifizieren
! Con:" Detail der Elternklasse werden ausgesetzt
" Irgendwelche Änderung in der Elternklasse führt zurÄnderung in der Subklassen (erneute Kompilieren isterforderlich) :-(
![Page 15: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/15.jpg)
Delegation oder Vererbung (II)?
Delegation
! Pro:" Flexibilität: Objekt können zur Laufzeit durch einen anderen
ersetzt werden
" Klassenhierarchien bleiben klein
! Con:" Laufzeitineffizienzen
" Dynamische, hochgradig parametrisierte Software istschwieriger zu verstehen
![Page 16: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/16.jpg)
Implementierungsvererbung
❖ Problem: Einige ererbte Operationen zeigen unerwartetes
Verhalten. Was passiert, wenn der Stack-User stattPop() Operation Remove() aufruft ?
❖ Beispiel : bereitsimplementiert wurdeeine Liste-klasse. Gesuchtwird eine Stack Klasse,wie wär’s mitImplementierungs-vererbung ?
Add()Remove()
List
Push()Pop()
Stack
Top()
“bereits implementiert”
![Page 17: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/17.jpg)
Delegation statt Vererbung
+Add()+Remove()
List
Stack
+Push()+Pop()+Top()
+Push()+Pop()+Top()
Stack
Add()Remove()
List
![Page 18: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/18.jpg)
Entwurfsheuristik
♦ Programmiere auf eine Schnittstelle hin, nicht auf eineImplementierung
♦ Vererbung bricht die Kapselung auf
♦ Ziehe Objetkomposition der Klassenvererbung vor
![Page 19: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/19.jpg)
Klassifikation
♦ Erzeugungsmuster! dienen zur Erzeugung von komplexen Objekten,
verstecken den Erzeugungsprozess
♦ Strukturmuster! befassen sich mit der Komposition von Klassen und
Objekten, um grössere Strukturen zu bilden
♦ Verhaltensmuster! befassen sich mit Algorithmen und Zuständigkeiten der
Objekten, beschreiben auch die Interaktion zw. ihnen
![Page 20: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/20.jpg)
Welche Entwurfsmuster werden in dernächsten Vorlesung vorgestellt ?
♦ Erzeugungsmuster:! Abstrakte Fabrik
♦ Strukturmuster:! Proxy
♦ Verhaltensmuster:! Beobachter
![Page 21: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/21.jpg)
Abstrakte Fabrik:Einfacher Austausch von Produktfamilien
![Page 22: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/22.jpg)
Proxy: Das Stellvertreterobjekt
Vorher
![Page 23: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/23.jpg)
Zugriffskontrolle durch Proxy:
![Page 24: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/24.jpg)
Nachher:
![Page 25: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/25.jpg)
9DesignPatterns2.ppt
Observers Subject
Beobachter: Zustände automatisch aktualisieren
![Page 26: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/26.jpg)
Das Missverständnis
♦ Musterverwenden ist immer gut, sie garantierenwiederverwendbare Software, höhere Produktivität, dieWeltfrieden etc. :-)
![Page 27: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/27.jpg)
Zusammenfassung
♦ Entwurfsmuster beschreiben Expertenwissen auf demGebiet SW-Entwurf
♦ Sie sind mehr als Algorithmen und Datenstrukturen
♦ Sie erhöhen die Flexibilität von Entwürfen
♦ Sie werden wiederverwendbar (Microarchitektur)
♦ Sie werden bei der Konstruktion von Frameworkseingesetzt
♦ Sie unterstützen die Kommunikation im Entwickler-Team (Design-vokabular)
![Page 28: Lehrstuhl für Angewandete Softwaretechnik Technische ... · Überblick der heutigen Vorlesung ♦ Hintergrund und Definition ♦ Entwurfsmuster - Idee und Ziele ♦ Entwurfsprinzipien](https://reader030.vdocuments.mx/reader030/viewer/2022040416/5d4980a688c993e10e8b6183/html5/thumbnails/28.jpg)
Vielen Dank für Ihre Aufmerksamkeit!