1 / 15

Software Patterns und Pattern Languages

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.

nantai
Download Presentation

Software Patterns und Pattern Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Patterns und Pattern Languages Johannes Leßmann

  2. Ü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 Pattern Languages Zusammen- fassung

  3. If (...) then ... else ... bla... Dfdfdfdfkfidflsdkdfdfdf Dokumentation dfdfdfd der Software istdfdf dffff sehr sehr umfang-dfdfff reich und schelchtdf fdf zu verstehen.dfdff fd dfd Darum besser wiedfdffd df dfdfdfd dfdfdf dffd Seite 700 Projekt- besprechungen Fertiges System Entwurf Dokumentation Design 1 oder Design 2 Pattern 1 Pattern 2 Pattern 1 + Pattern 2 Pattern 1 Motivation Einleitung Patterns Pattern Languages Zusammen- fassung

  4. Was ist ein Pattern? 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 Einleitung Patterns Pattern Languages Zusammen- fassung

  5. Wie ist ein Pattern aufgebaut? 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 Einleitung Patterns Pattern Languages Zusammen- fassung

  6. Wie ist ein Pattern aufgebaut? 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 Einleitung Patterns Pattern Languages Zusammen- fassung

  7. Welche Arten von Patterns gibt es? 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) Einleitung Patterns Pattern Languages Client- Schicht Server- Schicht Daten- Schicht Zusammen- fassung

  8. Welche Arten von Patterns gibt es? 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 Einleitung Patterns accept() Pattern Languages Acceptor + accept() + readRequest() ServiceHandler + handleRequest() handler req = readRequest() Zusammen- fassung handler.handleRequest(req)

  9. Welche Arten von Patterns gibt es? 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 Acceptors Einleitung Patterns waitForClient() Pattern Languages [no timeout] [timeout] [interrupt signal not set] Zusammen- fassung [interrupt signal set] terminateThread()

  10. Beispiel eines Design Patterns Name Composite Problem Wie kann ich Objekte so abbilden, dass sich Einzelobjekte und zusammengesetzte Objekte identisch behandeln lassen? Kontext Die Objekte stehen in einer (rekursiven) „part-of“ oder Vater-Kind Beziehung. Rahmenbedingungen • Möglichst universelle Modellierung • Flexible Einbeziehung neuartiger Kind-Objekte • Berücksichtigung semantischer Einschränkungen • Möglichst geringer Overhead durch Abstraktion Einleitung Patterns Pattern Languages Zusammen- fassung

  11. Beispiel eines Design Patterns Component + Operation() + Add(Component) + Remove(Component) + GetChild(int) 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 Referenzen Einsatz u.a. in ET++, Smalltalk compiler framework Verwandte Patterns Chain of Responsibility, Decorator, Iterator, Visitor 0..* Leaf + Operation() Composite + Operation() + Add(Component) + Remove(Component) + GetChild(int) children 0..1 Einleitung Patterns Pattern Languages Zusammen- fassung

  12. Pattern Languages 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 Einleitung Pattern Kollektion Pattern Language Pattern 1 Pattern 1 Patterns Pattern 2 Pattern Languages Pattern 2 Pattern 3 Pattern 3 Zusammen- fassung Pattern 4 Pattern 4

  13. Beispiel einer Pattern Language Name Composing Multimedia Artefacts for Reuse Gesamtproblem Wie kann man Multimediasysteme so entwerfen, dass deren Komponenten wiederverwendbar bleiben? Gesamtkontext Es stehen bereits die notwendigen Komponenten zur Verfügung. Durch die Einbindung in das Multimediasystem sollen sie nicht abhängig voneinander werden. Einleitung Patterns Pattern Languages Zusammen- fassung besteht aus 5 Patterns, die jeweils Teilaspekte behandeln

  14. Beispiel einer Pattern Language Glue Gruppierung zu Kanälen und partielle Ordnung mittels Arrangement der Artefakte mittels Synchronisation mittels Define and Run Presentation Components Layout Synchronisiert Kanäle Einleitung Synchronise Channels Patterns Zeigt an Definiert Layout für Pattern Languages Zusammen- fassung Template

  15. Zusammenfassung • 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 Einleitung Patterns Pattern Languages Zusammen- fassung

More Related