1 GI-FG-2.1.9: AK Frameworks Framework-Dokumentation mit Entwurfsmustern Klaus Quibeldey-Cirkel;...

Post on 06-Apr-2015

107 views 4 download

Transcript of 1 GI-FG-2.1.9: AK Frameworks Framework-Dokumentation mit Entwurfsmustern Klaus Quibeldey-Cirkel;...

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: quibeldey@ti.et-inf.uni-siegen.de

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