1 gi-fg-2.1.9: ak frameworks framework-dokumentation mit entwurfsmustern klaus quibeldey-cirkel;...
TRANSCRIPT
1
GI-FG-2.1.9:AK Frameworks
Framework-Dokumentationmit Entwurfsmustern
Klaus Quibeldey-Cirkel; Georg Odenthal (am Rechner) Universität Siegen, FB 12, Technische Informatik, 57068 Siegen http://www.ti.et-inf.uni-siegen.de/staff/quibeldey/uebermich.html E-mail: [email protected]
2
Übersicht Begriffe
– “Muster”, “Framework” – “Design-Muster” - “Meta-Muster”
Framework-Dokumentation– à la “HotDraw”– sonstwie
Diskussion– Werkzeugunterstützung– Schema zur FW-Dokumentation mit Mustern
3
Literatur zum Vortrag [1] Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides: Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software.
Deutsche Übersetzung von Dirk Riehle, Addison-Wesley, Bonn, 1996[2] Klaus Quibeldey-Cirkel: Symmetrie und Software: Die Suche nach Entwurfsmustern.
In: Diagonal, Jg. 7, H. 1, 1996, S. 121-143[3] Christopher Alexander et al.: A Pattern Language: Towns, Buildings, Construction.
Oxford University Press, New York, 17. Druck, 1977[4] Wolfgang Pree: Design Patterns for Object-Oriented Software Development.
Addison-Wesley, Reading MA, 1995[4a] Wolfgang Pree: Framework Patterns.
SIGS Books, New York City, 1996[5] Glenn E. Krasner; Stephen T. Pope: A Cookbook for Using the Model-View-Controller User Interfece Paradigm in Smalltalk-80.
In: Journal of Object-Oriented Programming, Jg. 1, H. 3, S. 26-49, 1988[6] Richard Helm; Ian M. Holland; Dipayan Ganopadhyay: Contracts: Specifying Behavirol Composition in Object-Oriented Systems.
In: Proc. of OOPSLA ´90, S. 169-180, 1990[7] Ralph E. Johnson: Documenting Frameworks with Patterns.
In: Proc. of OOPSLA ´92, S. 63-76, 1992 (http://st-www.cs.uiuc.edu/users/patterns/papers/)[8] Kent Beck; Ralph E. Johnson: Patterns Generate Architectures.
In. Proc. of ECOOP ´94, Springer Lecture Notes in Computer Science, 1994 (http://st-www.cs.uiuc.edu/users/patterns/papers/)[9] Richard Lajoie; Rudolf K. Keller: Design and Reuse in Object-Oriented Frameworks:
Patterns, Contracts, and Motifs in Concert.ACFAS 1994, Montreal, QC, Kanada (http://st-www.cs.uiuc.edu/users/patterns/papers/)
[10] Hans Albrecht Schmid: Design Patterns to Construct the Hot Spots of a Manufacturing Framework.In: Journal of Object-Oriented Programming, Jg. 9, Juni 1996
4
Überblick
Begriffe
Framework-Doku
Diskussion“Muster”
in der allgemeinen Literatur– Vorlage, nach der etwas hergestellt wird– beispielhaftes Vorbild– regelmäßige, sich wiederholende Struktur
in der Software-Technik– kontextbezogenes Problem-Lösungs-Paar
http://www.ti.et-inf.uni-siegen.de/Diplom/Diplom.html#Hombach
http://swt1.informatik.uni-hamburg.de/~riehle/1995/Diplomarbeit.html
5
Historie I
Musterbücher– in der Antike
– im Mittelalter
– im 19. u. 20. Jh.
dokumentieren"Stand der Handwerks-künste".
[2, S. 138]
6
Historie II
Architektur (1976) Christopher Alexander: “154 Teenager´s Cottage*”
[3, S. 723 ff.]
7
Aktualität Software-Technik
– Erich Gamma et al.(Sachkenntnis im Framework-Kontext!)
– Hillside Group
– Siemens AG, sd&m http://st-www.cs.uiuc.edu/users/
patterns/Lists.html
Konferenzen– PLoP ´94 ..., UP ´97 ...
– EuroPLoP ´96 ... http://st-www.cs.uiuc.edu/users/
patterns/conferences/
8
“Framework”
Halbfabrikat (käuflich)
Klassenverband (keine Klassenbibliothek)
Invertierter Kontrollfluß:“Don´t call us, we call you!”
Framework-Definition– generische Lösung mit
– kooperierenden Klassen
– für verwandte Probleme
– mit einer vorgegebenen Ablaufstruktur
M a ile r
Emp lo yeegroup
M a ilb ox
Fo ld e r
Desktop ItemEmp loyee
........
[4, S. 56]
Überblick
Begriffe
Framework-Doku
Diskussion
*ilities Eigen-
schaftenguterFrameworks– Reusability– Flexibility– Maintainability
Praxis ...– kaum
Orientierungs-wissen durchsymmetrische Klassen-Strukturen [2]
[2, S. 129]
10
“Design-Muster” (Gamma et al.)
[1, 12]
dokumentieren Mikro-Architekturen(Mikro-Frameworks bei Wolfgang Pree; Verband aus 3-4 Klassen)
11
“Design -Muster” II
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
“Strategie-Muster”: MVC 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
“Taktik-Muster”: Beobachter
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
MVC & Beobachter
[5, 5]
Überblick
Begriffe
Framework-Doku
Diskussion
Strategie: “Trennung der Belange”: starke Kohäsion & lose Kopplung
Taktik: flexible Aktualisierung
15
F acade
10,1 : factory1
InvokeHandler
1 : sapInterface
SAPInterface
SAPInterface
tracerfc
swo_createswo_invokeswo_freeSAPLogonSAPLogoffIsConnected
Client
factoryCreateDeleteInvokeTypeInfoObjectTyp...
InvokeHandler
container
AppendParamInvokeCountGetResultInvokeHan...
Factory
sapInterface
CreateDeleteInvokeTypeInfoObjectTyp...
InvokeHandlerAppendParamInvokeCountGetResult
swo_cr...swo_freeSAPLogonSAPLogoff
swo_in...IsConne... Praxisbeispiel
http://www.ti.et-inf.uni-siegen.de/Diplom/Diplom.html#Odenthal
Strategie-Muster: Schnittstellen-Kapselung– invarianter Strukturaspekt:
» Protokoll der Schnittstelle Taktik-Muster: Fassade
– varianter Strukturaspekt:
» Austauschbarkeit der Kommunikationsstruktur zum Subsystem
16
“Meta-Muster” (Wolfgang Pree)
Framework-Kontext:– generisch: Entwurf– deskriptiv: Dokumentation– präskriptiv: Lernhilfe
Doku-Fokus– Meta-Beschreibungen der Taktik-Muster
(Hot Spots vs. Frozen Spots) – Hypertext-Editor für Meta-Muster
2. Buch [4a]: “FrameworkPatterns”
17
“Meta-Muster” II
[4, 161]
Frozen Spots: Templates– T-Klassen– T()-Operationen
Hot Spots: Hooks– H-Klassen– H()-Operationen– hRef-Beziehungen
Überblick
Begriffe
Framework-Doku
Diskussion
18
Zwischenbilanz ...
Musterbegriff: Problem-Lösungs-Paar Entwurfsmuster: neue “literarische Form” (Textsorte)
Musterbuch: literarische Gattung mit Tradition 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
... 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. allgemeines Schema
– Problem, (Kräfte), Kontext, Lösung[2, S. 123]
Überblick
Begriffe
Framework-Doku
Diskussion
20
Entwurfsmuster = Entwurfsmethode Muster sind vernetzt:
– Mustersprachen (Christopher Alexander)
– Mustersysteme (Frank Buschmann et al.)
Entwurfsmuster = Strukturinformation– Strategie-Muster Strukturinvarianten– Taktik-Muster Strukturvarianten
...
Überblick
Begriffe
Framework-Doku
Diskussion
21
...
Pro Muster» Wiederverwendung von Sachkenntnis (Erfahrungswissen)
» Wiedererkennung von Strukturen (Orientierungswissen)
» effizientes Kommunikations-, Lehr- und Lernvehikel
Kontra Muster» Validierung nur durch Erfahrung, nicht durch Test
» keine direkte Code-Wiederverwendung
» täuschend einfach: Schach-Analogie
Überblick
Begriffe
Framework-Doku
Diskussion
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
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().
Observer
Update(Subject)
Subject
Attach(Observer)Detach(Observer)Notify()
ConcreteSubject
G etS tate()A ction()
_subjectS tate
_observers
ConcreteObserver
A ttachTo(S ubject)U pdate(S ubject)
_observerS tate_subject
A b stra kte K o p p lu n g
A b la u f
E n tko p p lu n g d e r K o m p o n e n te n
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
FW-Dokumentation I
à la HotDraw [7]: deskriptive Muster– gerichteter Graph (vom Allgemeinen zum Besonderen)
– geordnet nach der Häufigkeit der Anwendung– Zielgruppe: FW-Anwender (Nicht-Experten)
à la HotDraw [8]: generische Muster– abgeleitete Muster– begründen Sequenz der Entwurfsentscheidungen– Zielgruppe: FW-Entwickler (Experten)
Überblick
Begriffe
Framework-Doku
Diskussion
25
FW-Dokumentation II
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
FW-Dokumentation III
Cookbook à la Krasner & Pope [5] Contracts à la Helm et al. [6] Motifs à la Lajoie & Keller [9]
Überblick
Begriffe
Framework-Doku
Diskussion
27
FW-Dokumentation IV
Navigationstechniken– Index und Inhaltsverzeichnisse
als Guided Tours
– Stichwortsuche
– Volltextsuche
– Textuelle Verweise (Links)
– Grafische Verweise (Links)
– Aufruf von Applikationen
http://www.ti.et-inf.uni-siegen.de/Diplom/Diplom.html#Odenthal
Überblick
Begriffe
Framework-Doku
Diskussion
28
FW-Doku V
Beispiel– textuelle und
grafische Verweise auf Entwurfsmuster, Klassen, Operationen, Objekt-Szenarien
http://www.ti.et-inf.uni-siegen.de/ Diplom/Diplom.html#Odenthal
F acade
C om posite
1 : T pa ram e ter
0,n : pa ram L ist
1
0,n : T v ec tor
1
1
1
1 : d ata 1 : d ata
1
M yD ate
m yD ate
GetMyDate
P aram eterL ist
param List
AppendIsInGetCount
A bstractP aram
nam e
GetNameCount
S A P S tring
sapS tring
GetSAPString
W riteA ccess<T >
CreateParamCreateVectorCreateVParam
D ata< T >
T data
T GetData
P aram eter< T >
T param eter
CountT GetValue
R eadA ccess
param List
GetUnsignedGetStringGetDate...
Vector< T>
T vector
CountAppendT GetValueAt
S A P D ate
sapD ate
GetSAPDate
29
Werkzeugunterstützung
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.
SEU-Infrastruktur mit Musterkomponente– objectiF 3.0 (Fa. microTOOL, Berlin) http://www.microTOOL.de/
Überblick
Begriffe
Framework-Doku
Diskussion
30
Vorschlag zur FW-Dokumentationmit Entwurfsmustern
Übersicht
– Ein Klassendiagramm und evtl. weitere Visualisierungen (z. B. Interaktionsdiagramm), die zur Verdeutlichung geeignet sind.
Intention– Knappe Beschreibung der wesentlichen Zielsetzung. Der Grund, warum das Muster verwendet wurde, sollte deutlich
werden.
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.
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. Zusammenarbeit
– Die Interaktion zwischen den Klienten und der Musterausprägung wird beschrieben; evtl. Verweis auf ein Interaktionsdiagramm.
Konsequenzen
– Die Konsequenzen aus der konkreten Implementierung (z. B. Erweiterbarkeit, Vergleich mit anderen Realisierungen). Implementierung (optional)
– Besonderheiten der Implementierung.
Überblick
Begriffe
Framework-Doku
Diskussion
... 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.
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.
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.
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. 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
Workshop (Plenum & Kleingruppen)
Praxiserfahrung mit FW-Dokumentation– Defizite?
Praxiserfahrung mit Musterform– Defizite?
Wunschliste zur“FW-Dokumentation mit Entwurfsmustern”– neue Konzepte?– neue Werkzeuge?– neues Beschreibungsschema?
Überblick
Begriffe
Framework-Doku
Diskussion