Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 GI-FG-2.1.9: AK Frameworks Framework-Dokumentation mit Entwurfsmustern Klaus Quibeldey-Cirkel; Georg Odenthal (am Rechner)  Universität Siegen, FB 12,

Ähnliche Präsentationen


Präsentation zum Thema: "1 GI-FG-2.1.9: AK Frameworks Framework-Dokumentation mit Entwurfsmustern Klaus Quibeldey-Cirkel; Georg Odenthal (am Rechner)  Universität Siegen, FB 12,"—  Präsentation transkript:

1 1 GI-FG-2.1.9: AK Frameworks Framework-Dokumentation mit Entwurfsmustern Klaus Quibeldey-Cirkel; Georg Odenthal (am Rechner)  Universität Siegen, FB 12, Technische Informatik, Siegen 

2 2 Übersicht u Begriffe –“Muster”, “Framework” –“Design-Muster” - “Meta-Muster” u Framework-Dokumentation –à la “HotDraw” –sonstwie u Diskussion –Werkzeugunterstützung –Schema zur FW-Dokumentation mit Mustern

3 3 Literatur zum Vortrag 

4 4 Überblick  Begriffe  Framework-Doku  Diskussion “Muster” u in der allgemeinen Literatur –Vorlage, nach der etwas hergestellt wird –beispielhaftes Vorbild –regelmäßige, sich wiederholende Struktur u in der Software-Technik –kontextbezogenes Problem-Lösungs-Paar  

5 5 Historie I u Musterbücher –in der Antike –im Mittelalter –im 19. u. 20. Jh. dokumentieren "Stand der Handwerks- künste".   [2, S. 138]

6 6 Historie II u Architektur (1976) Christopher Alexander: “154 Teenager´s Cottage*”   [3, S. 723 ff.]

7 7 Aktualität u Software-Technik –Erich Gamma et al. (Sachkenntnis im Framework-Kontext!) –Hillside Group –Siemens AG, sd&m  patterns/Lists.html u Konferenzen –PLoP ´94..., UP ´97... –EuroPLoP ´96...  patterns/conferences/

8 8 “Framework” u Halbfabrikat (käuflich) u Klassenverband (keine Klassenbibliothek) u Invertierter Kontrollfluß: “Don´t call us, we call you!” u Framework-Definition –generische Lösung mit –kooperierenden Klassen –für verwandte Probleme –mit einer vorgegebenen Ablaufstruktur   [4, S. 56] Überblick  Begriffe  Framework-Doku  Diskussion

9 *ilities u Eigen- schaften guter Frameworks –Reusability –Flexibility –Maintainability u Praxis... –kaum Orientierungs- wissen durch symmetrische Klassen- Strukturen [2]   [2, S. 129]

10 10 “Design-Muster” (Gamma et al.)   [1, 12] u dokumentieren Mikro-Architekturen (Mikro-Frameworks bei Wolfgang Pree; Verband aus 3-4 Klassen)

11 11 “Design -Muster” II u GoF-Beschreibungsschema ( “Gang of Four”) –Mustername und Kategorie –Zweck –Auch bekannt als –Motivation –Anwendbarkeit –Struktur –Teilnehmer –Interaktionen –Konsequenzen –Implementierung –Beispielcode –Bekannte Anwendungen –Verwandte Muster alexandrinische Form: Problem (Kräfte), Kontext, Lösung Überblick  Begriffe  Framework-Doku  Diskussion

12 12 “Strategie-Muster”: MVC u bestimmt Makro-Architektur –Doku-Fokus: invariante Strukturaspekte »hier: Trennung der Belange (David Parnas) und starke Kohäsion vs. lose Kopplung (Herbert A. Simon)   [1, 257] Überblick  Begriffe  Framework-Doku  Diskussion  Ursprung in SmallTalk (dort GUI-Framework)

13 13 “Taktik-Muster”: Beobachter u bestimmt Mikro-Architektur –Doku-Fokus: variante Strukturaspekte »hier: Anzahl der von einem Objekt abhängigen Objekte sowie die Art, in der die Objekte aktualisiert werden   [1, 258]

14 14 MVC & Beobachter   [5, 5] Überblick  Begriffe  Framework-Doku  Diskussion Strategie: “Trennung der Belange”: starke Kohäsion & lose Kopplung Taktik: flexible Aktualisierung

15 15 Praxisbeispiel  u Strategie-Muster: Schnittstellen-Kapselung –invarianter Strukturaspekt: »Protokoll der Schnittstelle u Taktik-Muster: Fassade –varianter Strukturaspekt: »Austauschbarkeit der Kommunikationsstruktur zum Subsystem

16 16 “Meta-Muster” (Wolfgang Pree) u Framework-Kontext: –generisch: Entwurf –deskriptiv: Dokumentation –präskriptiv: Lernhilfe u Doku-Fokus –Meta-Beschreibungen der Taktik-Muster (Hot Spots vs. Frozen Spots) –Hypertext-Editor für Meta-Muster  2. Buch [4a]: “FrameworkPatterns”

17 17 “Meta-Muster” II   [4, 161] u Frozen Spots: Templates –T-Klassen –T()-Operationen u Hot Spots: Hooks –H-Klassen –H()-Operationen –hRef-Beziehungen Überblick  Begriffe  Framework-Doku  Diskussion

18 18 Zwischenbilanz... u Musterbegriff: Problem-Lösungs-Paar u Entwurfsmuster: neue “literarische Form” (Textsorte) u Musterbuch: literarische Gattung mit Tradition u Musterbewegung in der Informatik: Fortsetzung des Wiederverwendungsprinzips auf einer höheren Stufe der Wertschöpfung –nicht die einzelne Klasse einer Klassenbibliothek, sondern der abstrahierte Entwurf eines Klassenverbandes wird wiederverwendbar Überblick  Begriffe  Framework-Doku  Diskussion

19 19... u Lehr-, Lern- und Diskussionsvehikel –Muster dokumentieren Erfahrungswissen. James O. Coplien: “Aggressive Disregard for Originality” Entwurfsmuster sind reproduzierbare Kopien ihrer selbst. Sie manifestieren sich erst nach ungezählten Entwurfszyklen (die Punkte im Sierpinski-Fraktal stehen für die Redesigns). Entwurfsmuster sind “kristallisiertes Wissen” aus einem langen Erfahrungsprozeß. –Muster sind sprachbildend: Entwurfsvokabular. u allgemeines Schema –Problem, (Kräfte), Kontext, Lösung   [2, S. 123] Überblick  Begriffe  Framework-Doku  Diskussion

20 20 u Entwurfsmuster = Entwurfsmethode u Muster sind vernetzt: –Mustersprachen (Christopher Alexander) –Mustersysteme (Frank Buschmann et al.) u Entwurfsmuster = Strukturinformation –Strategie-Muster Strukturinvarianten –Taktik-Muster Strukturvarianten... Überblick  Begriffe  Framework-Doku  Diskussion

21 21... u Pro Muster »Wiederverwendung von Sachkenntnis (Erfahrungswissen) »Wiedererkennung von Strukturen (Orientierungswissen) »effizientes Kommunikations-, Lehr- und Lernvehikel u Kontra Muster »Validierung nur durch Erfahrung, nicht durch Test »keine direkte Code-Wiederverwendung » täuschend einfach: Schach-Analogie Überblick  Begriffe  Framework-Doku  Diskussion

22 22 Schach-Analogie (Doug Schmidt)  Grundregeln lernen –Figuren, Bewegungen, Brettgeometrie etc.  Prinzipien lernen –strategischer und taktischer Wert einer Figur, einer Stellung etc.  Meister studieren –Bewegungs- und Konstellationsmuster verstehen, memorieren, wiederholt anwenden  Algorithmen, Datenstrukturen, Sprachen etc.  strukturiertes, modulares, objektorientiertes Programmieren  Analyse-, Design- und Codierungsmuster verstehen, memorieren, wiederholt anwenden Überblick  Begriffe  Framework-Doku  Diskussion

23 23 Visuelle Analogie (anläßlich einer GI-Arbeitskreis-Initiative in Berlin im Jahre 1 nach Christos Reichstags-Verhüllung)  Ein “verinnerlichtes” Entwurfsmuster (hier Observer) wirkt intuitiv: Die grauen Bereiche und der Kreislauf des Methoden- aufrufs werden intuitiv angewandt: AttachTo() - Action() - Notify() - Update() - GetState().  Entwurfsmuster werden nicht erfunden, sie werden enthüllt.  Sie stammen ursprünglich aus der Architektur.  Sie verhüllen die Strukturdetails und machen so den Entwurf wiedererkennbar.

24 24 FW-Dokumentation I u à la HotDraw [7]: deskriptive Muster –gerichteter Graph (vom Allgemeinen zum Besonderen) –geordnet nach der Häufigkeit der Anwendung –Zielgruppe: FW-Anwender (Nicht-Experten) u à la HotDraw [8]: generische Muster –abgeleitete Muster –begründen Sequenz der Entwurfsentscheidungen –Zielgruppe: FW-Entwickler (Experten) Überblick  Begriffe  Framework-Doku  Diskussion

25 25 FW-Dokumentation II u Meta-Muster à la Pree [4] –abstrahieren von Design-Mustern (à la Gamma et al.) –sind anwendungsneutral –beschreiben Mikro-Frameworks –lokalisieren die Variabilitätsaspekte (Hot Spots) Überblick  Begriffe  Framework-Doku  Diskussion

26 26 FW-Dokumentation III u Cookbook à la Krasner & Pope [5] u Contracts à la Helm et al. [6] u Motifs à la Lajoie & Keller [9] Überblick  Begriffe  Framework-Doku  Diskussion

27 27 FW-Dokumentation IV u Navigationstechniken –Index und Inhaltsverzeichnisse als Guided Tours –Stichwortsuche –Volltextsuche –Textuelle Verweise (Links) –Grafische Verweise (Links) –Aufruf von Applikationen  Überblick  Begriffe  Framework-Doku  Diskussion

28 28 FW- Doku V u Beispiel –textuelle und grafische Verweise auf Entwurfsmuster, Klassen, Operationen, Objekt-Szenarien  Diplom/Diplom.html#Odenthal

29 29 Werkzeugunterstützung u Hypertext –vernetzt Muster (Mustersystem, Mustersprache), –hält Zugriff auf latenten Pool an Beispielen, –verbirgt technische Detail-Erklärungen, –sorgt für Transparenz in der Dokumentation, –zuschneidbar auf bestimmte Benutzerprofile. u SEU-Infrastruktur mit Musterkomponente –objectiF 3.0 (Fa. microTOOL, Berlin)  Überblick  Begriffe  Framework-Doku  Diskussion

30 30 Vorschlag zur FW-Dokumentation mit Entwurfsmustern u Übersicht –Ein Klassendiagramm und evtl. weitere Visualisierungen (z. B. Interaktionsdiagramm), die zur Verdeutlichung geeignet sind. u Intention –Knappe Beschreibung der wesentlichen Zielsetzung. Der Grund, warum das Muster verwendet wurde, sollte deutlich werden. u Motivation –Ausführliche Beschreibung der Zusammenhänge. Übersicht über die Komponente. –Es kann sinnvoll sein, die “Entwicklungsgeschichte” anhand von Diagrammen und Texten aus der Analysephase (z. B. Bezug zu fachlichen Mustern) und anhand des Vorgehens zur Musterausprägung zu illustrieren. u Rollen –In Klammern wird hinter die Rolle einer Klasse aus dem Entwurfsmuster die konkrete Klasse der Implementierung geschrieben. Diese Zuordnung ist für den Leser, der das Muster kennt und sich über die spezielle Ausprägung informieren will, sehr wichtig. –Eine stichpunktartige Beschreibung der Rolle, die die Klasse in der Musterausprägung einnimmt. u Zusammenarbeit –Die Interaktion zwischen den Klienten und der Musterausprägung wird beschrieben; evtl. Verweis auf ein Interaktionsdiagramm. u Konsequenzen –Die Konsequenzen aus der konkreten Implementierung (z. B. Erweiterbarkeit, Vergleich mit anderen Realisierungen). u Implementierung (optional) –Besonderheiten der Implementierung. Überblick  Begriffe  Framework-Doku  Diskussion

31 ... u Hot Spots, Frozen Spots –Für die Dokumentation von Frameworks ist die gesonderte Beschreibung der festgelegten Eigenschaften des Frameworks und der durch den Benutzer anzupassenden bzw. zu erweiternden Komponenten essentiell [4]. –Aus dieser Beschreibung sollte eindeutig hervorgehen, welche Flexibilität der Anwender erwarten kann und wo die Grenzen sind. u Rezept –Der Cookbook–Stil [4, 5, 7, 9] beschreibt den Einsatz eines Frameworks anhand eines schrittweisen, durch Beispiele ergänzten Vorgehens. –Diese Beschreibung kann durch eine Ready-to-Use-Umgebung, die die direkte Ausführung und somit ein interaktives Ausprobieren eines Frameworks erlaubt, ergänzt werden. Auch eine vorkonfigurierte Debugger- Sitzung kann zum besseren Verständnis geeignet sein. –Ist eine feste Entwicklungs- und Laufzeitumgebung vorhanden, bilden interaktive Hilfen für die Nutzung eines Frameworks (Assistenten/Wizzards) das Optimum an Unterstütztung für den Anwender. u Integrierbarkeit –Beschreibung der nicht-funktionalen Eigenschaften des Frameworks (beispielsweise Portabilität, Realisierung der Ausnahmebehandlung). So ist eine Einschätzung der Integrierbarkeit in bestehende Umgebungen gegeben. u Verwendungen (Known Uses) –Hier sollte ein Verweis auf möglichst jede Verwendung des Frameworks stehen. Anhand dieser Einsatzbeispiele kann der Anwender am schnellsten die Eignung überprüfen. u Strukturelle Erweiterungen (optional) –Vor allem bei In-House–Entwicklungen kann es sinnvoll sein, den Entwurf eines Frameworks eingehend zu beschreiben, um dessen Erweiterbarkeit zu erleichtern. Ein Framework durchläuft mehrere Designzyklen, bis die Hot Spots identifiziert sind und so das richtige Maß an Flexibilität erreicht wurde. Wird es in bisher nicht vorgesehenen Bereichen eingesetzt, kann eine Erweiterung nötig sein. Überblick  Begriffe  Framework-Doku  Diskussion

32 32 Workshop (Plenum & Kleingruppen) u Praxiserfahrung mit FW-Dokumentation –Defizite? u Praxiserfahrung mit Musterform –Defizite? u Wunschliste zur “FW-Dokumentation mit Entwurfsmustern” –neue Konzepte? –neue Werkzeuge? –neues Beschreibungsschema? Überblick  Begriffe  Framework-Doku  Diskussion


Herunterladen ppt "1 GI-FG-2.1.9: AK Frameworks Framework-Dokumentation mit Entwurfsmustern Klaus Quibeldey-Cirkel; Georg Odenthal (am Rechner)  Universität Siegen, FB 12,"

Ähnliche Präsentationen


Google-Anzeigen