specifying patterns for dynamic pattern instance ...ist/wsr2004/slides/wendehals.pdfuniversität...
TRANSCRIPT
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
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
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)
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
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
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
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?
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
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
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
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
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
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