Upload
nantai
View
37
Download
0
Embed Size (px)
DESCRIPTION
Software Patterns und Pattern Languages. Johannes Leßmann. Übersicht. Motivation Software Patterns Was ist ein Pattern? Wie ist ein Pattern aufgebaut? Welche Arten von Patterns gibt es? Beispiel Pattern Languages Grundsätzliches Beispiel Fazit. Einleitung. Patterns. - PowerPoint PPT Presentation
Citation preview
Software Patterns und Pattern Languages
Johannes Leßmann
Übersicht
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
• Motivation• Software Patterns
Was ist ein Pattern?Wie ist ein Pattern aufgebaut?Welche Arten von Patterns gibt es?Beispiel
• Pattern LanguagesGrundsätzlichesBeispiel
• Fazit
Motivation
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
If (...) then ...else ...
Design 1oderDesign 2
Entwurf
bla...
Pattern 1
Projekt-besprechungen
Pattern 2Pattern 1
Fertiges System
DfdfdfdfkfidflsdkdfdfdfDokumentation dfdfdfdder Software istdfdf dffffsehr sehr umfang-dfdfffreich und schelchtdf fdfzu verstehen.dfdff fd dfdDarum besser wiedfdffddf dfdfdfd dfdfdf dffd
Seite 700
Pattern 1+Pattern 2
Dokumentation
Was ist ein Pattern?
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
Lösung für Problemsituation, die immer wieder auftritt
• basiert auf bewährter Erfahrung• abstrahiert von nebensächlichen Details• balanciert einzuhaltende Rahmenbedingungen aus• ist keine ad-hoc Lösung
Eine Lösung ist also kein Pattern, wenn sie
• theoretisch entwickelt wurde• nur für eine ganz spezielle Situation anwendbar ist• keine Konflikte auflösen muss• auf den ersten Blick erkennbar ist
Wie ist ein Pattern aufgebaut?
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
Name • Bezeichnung (der Auswirkung) des Patterns• möglichst aufschlussreich
Problem• nennt die spezifische Frage, die das Pattern behandelt• so konkret wie nötig, so abstrakt wie möglich
Kontext• konkrete Situation, in der das Problem zu lösen ist• nicht mit Problem zu verwechseln
Rahmenbedingungen• Faktoren, die es bei Lösungsfindung zu beachten gilt• in aller Regel konfliktär
Wie ist ein Pattern aufgebaut?
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
Lösung• Ausbalancierung der Rahmenbedingungen• sollte auf Problem und Kontext abgestimmt sein
Begründung• erläutert, warum Lösung Rahmenbedingungen auflöst• sollte auch Schwächen nicht verschweigen
Referenzen• Benennung von tatsächlichen Einsatzfällen• mindestens zwei unabhängige Fälle
Verwandte Patterns• Verweis auf Patterns mit ähnlichem Problem/Kontext• auch für Patterns, die gut mit diesem zusammenwirken
Welche Arten von Patterns gibt es?
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
1. Architektur Patterns Grundlegende Struktur eines Softwaresystems Unterteilung der Gesamt- in Teilsysteme (Module) Abstraktionsebene oberhalb konkreter OO-Klassen
Beispiel Web-Applikation
3-Schichten-Architektur (3-Tier-Architecture)
Client-Schicht
Server-Schicht
Daten-Schicht
Welche Arten von Patterns gibt es?
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
2. Design Patterns Design kleiner Teilsysteme Beschreibung auf Basis konkreter OO-Klassen Festlegung der Interaktion zwischen deren Methoden
Beispiel Web-Applikation
Acceptor Pattern zur Ausgestaltung der Server-Schicht
Acceptor
+ accept()+ readRequest()
ServiceHandler
+ handleRequest()
handler
accept()
req = readRequest()
handler.handleRequest(req)
Welche Arten von Patterns gibt es?
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
3. Idioms Techniken auf Programmiersprachen-Ebene Abstraktionsebene unterhalb konkreter OO-Klassen statt Design mehr Implementierung
Beispiel Web-Applikation
Idiom zur Ausgestaltung der Methode accept() des AcceptorswaitForClient()
[interrupt signal set]
terminateThread()
[timeout] [interrupt signal not set][no timeout]
Beispiel eines Design Patterns
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
NameComposite
ProblemWie kann ich Objekte so abbilden, dass sich Einzelobjekte undzusammengesetzte Objekte identisch behandeln lassen?
KontextDie Objekte stehen in einer (rekursiven) „part-of“ oderVater-Kind Beziehung.
Rahmenbedingungen Möglichst universelle Modellierung Flexible Einbeziehung neuartiger Kind-Objekte Berücksichtigung semantischer Einschränkungen Möglichst geringer Overhead durch Abstraktion
Beispiel eines Design Patterns
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
Lösung
Begründung Oberklasse gibt Einzel- und „Composite“ Objekten gleiches Interface Design sehr universell und offen für neue Arten von Kind-Objekten Overhead beschränkt auf zusätzliche explizite Type Casts Semantische Einschränkungen können schwer berücksichtigt werden
ReferenzenEinsatz u.a. in ET++, Smalltalk compiler framework
Verwandte PatternsChain of Responsibility, Decorator, Iterator, Visitor
Component
+ Operation()+ Add(Component)+ Remove(Component)+ GetChild(int)
Leaf
+ Operation()
Composite
+ Operation()+ Add(Component)+ Remove(Component)+ GetChild(int)
0..1
0..*
children
Pattern Languages
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
Zusammenstellung von Patterns, wobei
•die Patterns ein gemeinsames Problem lösen•das Problem für ein einzelnes Pattern zu komplex ist•jedes Pattern einen Teil des Gesamtproblems löst•die Patterns starke Abhängigkeiten untereinander haben
Pattern 1
Pattern 2
Pattern 4
Pattern Kollektion
Pattern 1
Pattern 2 Pattern 3
Pattern 4
Pattern 3
Pattern Language
Beispiel einer Pattern Language
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
NameComposing Multimedia Artefacts for Reuse
GesamtproblemWie kann man Multimediasysteme so entwerfen, dass derenKomponenten wiederverwendbar bleiben?
GesamtkontextEs stehen bereits die notwendigen Komponenten zur Verfügung.Durch die Einbindung in das Multimediasystem sollen sie nichtabhängig voneinander werden.
besteht aus 5 Patterns, die jeweils Teilaspekte behandeln
Beispiel einer Pattern Language
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
Glue
Template
Define and Run Presentation
Synchronise Channels
Components Layout
SynchronisiertKanäle
Synchronisationmittels
Gruppierung zu Kanälenund partielle Ordnungmittels
Arrangement der Artefaktemittels
Zeigt an Definiert Layoutfür
Zusammenfassung
Einleitung
Patterns
Zusammen-fassung
PatternLanguages
Patterns sind bewährte Lösungen für einzelne Bereiche Sie müssen auf die aktuelle Situation zugeschnitten werden Es gibt Architektur Patterns, Design Patterns und Idioms Patterns können den gesamten Entwurfsprozess
vereinfachen und verkürzen
Eine Pattern Language ist eine Menge von Patterns, die an einem gemeinsamen Problem arbeiten
Die einzelnen Patterns sind voneinander abhängig