specifying patterns for dynamic pattern instance ...ist/wsr2004/slides/wendehals.pdfuniversität...

13
Universität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams Lothar Wendehals Universität Paderborn 6. Workshop Software-Reengineering Bad Honnef, 3. - 5. Mai 2004

Upload: others

Post on 11-Sep-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Specifying Patterns forDynamic Pattern Instance Recognition with

UML 2.0 Sequence Diagrams

Lothar Wendehals

Universität Paderborn

6. Workshop Software-ReengineeringBad Honnef, 3. - 5. Mai 2004

Page 2: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 2Specifying Patterns with UML 2.0 Sequence Diagrams

MotivationMotivation

• Unterstützung des Reverse Engineers durchDesign-Rückgewinnung eines Software Systems

• Erzeugung von Design Dokumenten aus Quelltexten• Dokumentation auf Basis von Klassendiagrammen

und Entwurfsmustern

Ziel:• Werkzeuggestützte Erkennung von Entwurfsmustern• Formale Spezifikationssprache für Entwurfsmuster

Page 3: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 3Specifying Patterns with UML 2.0 Sequence Diagrams

Aktueller StandAktueller Stand

• Statische Analyse auf Abstrakten Syntaxgraphen (ASG) • Formale, graphische Spezifikation von Entwurfsmustern

mit Hilfe von Graphtransformationsregeln• Spezifikation vor allem von strukturellen Eigenschaften• Eingeschränkte Analyse der Methodenrümpfe• Kombination von Teilmustern zu Entwurfsmustern• Iterative, semi-automatische Analyse• Unscharfe Bewertung der Analyseergebnisse

(Präzisionswerte)

Page 4: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 4Specifying Patterns with UML 2.0 Sequence Diagrams

• Strukturell ähnliche Entwurfsmuster statisch nicht unterscheidbar

• Strategy:Variiert einen Algorithmusunabhängig vom Kontext,in dem er verwendet wird

• State:Ändert das Verhalten einesObjektes abhängig vonseinem Zustand

ProblemProblem

Contextrequest()

Statehandle()

ConcreteStateAhandle()

ConcreteStateBhandle()

state

1

Contextrequest()

Strategyalgorithm()

ConcreteStrategyAalgorithm()

ConcreteStrategyBalgorithm()

strategy

1

Page 5: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 5Specifying Patterns with UML 2.0 Sequence Diagrams

LösungLösung

• Entwurfsmuster häufig unterscheidbar durch ihr Verhalten• Verhalten analysierbar durch Methodenaufrufe• Polymorphie und dynamische Methodenbindung

verhindern korrekte statische Analyse• Statische Analyse gut geeignet für Struktur• Dynamische Analyse gut geeignet für Verhalten

Kombination aus statischer und dynamischer AnalyseSpezifikation von Struktur- und Verhaltensmustern

Page 6: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 6Specifying Patterns with UML 2.0 Sequence Diagrams

Quelltexte

Design Dokumente

:Reference :Association0.7/0.5

«create»

:Reference

:Attribute

:Attribute

field

references

attrs

field

references

attrs

class

class«create»

«create»

:Class

:Class

Struktur-Muster

Statische Analyse

Dynamische Analyse

Datenfluss

Reverse Engineer

ProgrammAusführung

Verhaltens-Muster

Der ProzessDer Prozess

Tests

handle()request()

setState(b)

setState(b)

alt

request()

loop (1,n)

handle()loop (1,m)

:Client :Context a:State b:Statesd State

Page 7: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 7Specifying Patterns with UML 2.0 Sequence Diagrams

Dynamische AnalyseDynamische Analyse

• Ergebnisse aus statischer Analyse verifizieren• Beobachtung von Musterinstanz-Kandidaten• Aufzeichnung eines Aufrufgraphen• Mustersuche auf dem Aufrufgraphen

Spezifikation von Verhalten?

Page 8: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 8Specifying Patterns with UML 2.0 Sequence Diagrams

Spezifikation von VerhaltensmusternSpezifikation von Verhaltensmustern

• Übliche Spezifikationssprachen für Muster:Prolog, Perl-Skripte, reguläre Ausdrücke,Java-Programme

• In statischer Analyse graphische Sprache basierend auf UML-Objektdiagrammen

• In dynamischer Analyse ebenfalls graphische Sprache• Möglichst intuitiv

Verhalten spezifizieren wie im Forward Engineering:UML 2.0 Sequenzdiagramme

Page 9: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 9Specifying Patterns with UML 2.0 Sequence Diagrams

Verhaltensmuster Verhaltensmuster -- StrategyStrategy

• “A context forwards requests from its clients to its strategy.Clients usually create and pass a ConcreteStrategy objectto the context...”*

* Gamma, E.; Helm, R.; Johnson, R.; Vlissides J.:Design Patterns – Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995

request()

request()

setStrategy(b)

setStrategy(a)

loop (1,n)

loop (1,m)

algorithm()

algorithm()

sd Strategy :Client :Context

opt

a:Strategy b:Strategy

Page 10: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 10Specifying Patterns with UML 2.0 Sequence Diagrams

Verhaltensmuster Verhaltensmuster -- StateState

• “... Clients can configure a context with State objects. Once a context is configured, its clients don’t have to deal with the State objects directly. Either Context or the ConcreteState subclasses can decide which state succeeds another and under what circumstances.”*

* Gamma, E.; Helm, R.; Johnson, R.; Vlissides J.:Design Patterns – Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995

handle()request()

setState(b)

setState(b)

alt

request()

loop (1,n)

handle()loop (1,m)

:Client :Context a:State b:Statesd State

Page 11: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 11Specifying Patterns with UML 2.0 Sequence Diagrams

Semantik der VerhaltensmusterSemantik der Verhaltensmuster

• Implizite consider-Semantik:Nur explizit verwendete Methoden werden berücksichtigt

• Verhaltensmuster nur ein „Slice“ aus Aufrufgraphen• Verhaltensmuster beschreibt Menge von Sequenzen

mit gemeinsamer Subsequenz• Weitere Syntaxelemente:

• negative: Sequenz von Nachrichten darf nicht auftreten• critical region: Sequenz darf nicht durch andere Nachrichten

unterbrochen werden• reference: Referenziert andere Sequenzen

Page 12: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 12Specifying Patterns with UML 2.0 Sequence Diagrams

Aktuelle Arbeiten und AusblickAktuelle Arbeiten und Ausblick

• Komposition von Verhaltensmustern• Unscharfe Bewertung der Verhaltensmuster-Instanzen• Verrechnung der Ergebnisse aus statischer und

dynamischer Analyse• Einbindung in die Fujaba Tool Suite

Page 13: Specifying Patterns for Dynamic Pattern Instance ...ist/wsr2004/slides/wendehals.pdfUniversität Paderborn AG Softwaretechnik Prof. Dr. Wilhelm Schäfer Specifying Patterns with UML

Universität PaderbornAG SoftwaretechnikProf. Dr. Wilhelm Schäfer

Lothar Wendehals - 13Specifying Patterns with UML 2.0 Sequence Diagrams

Vielen Dank für Ihre Aufmerksamkeit!

www. .de