case tools unterstützung für design pattern von vladislav krasnyanskiy
TRANSCRIPT
![Page 1: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/1.jpg)
Case Tools Unterstützung für Design Pattern
von Vladislav Krasnyanskiy
![Page 2: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/2.jpg)
Übersicht
• Einleitung• Design Pattern • Programmiersprachen für Design Pattern• Automatische Codegenerierung für Design
Pattern• Fujaba
![Page 3: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/3.jpg)
Einleitung
Verbesserung der Softwarequalität durch:
• Entwicklungsmodelle (Wasserfallmodell)
• Design Pattern
![Page 4: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/4.jpg)
Wasserfallmodell
Anforderungsanalyse/Validation
Entwurf/Validation/Verifikation
Implementierung/Verifikation
Test undIntegration
InstallationWartung
Pflichtenheft
Systemarchitektur
Programme Beweise
Testpläne
Testergebnisse
technische Handbücher
Benutzerhandbuch
![Page 5: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/5.jpg)
Design Patternhistorischer Überblick
• 1977 Christopher Alexander • 1987 W. Cunningham, K. Beck
“Constracting Abstractions for Object-Oriented Applications”
• 1994 E. Gamma, R. Helm, R. Johnson and J. Vlissides, “Design Pattern: Elements of Reusable Object-Oriented Sofware”
![Page 6: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/6.jpg)
Purpose
Creational Structural Behavioral
Scope
Class Factory Method Adapter InterpreterTemplate Method
Object Abstract FactoryBuilderPrototypeSingleton
AdapterBridgeCompositeDecoratorFacadeProxy
Chain of ResponsibilityCommandIteratorMediatorMementoFlyweight ObserverStateStrategyVisitor
Design Pattern nach Gamma
![Page 7: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/7.jpg)
Design Pattern
• Was ist das ?
• Aufbau
• Entwicklung
![Page 8: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/8.jpg)
Aufbau eines Design PatternsBestandteil Beschreibung
Name Ein eindeutiger NameIntent Was macht das Pattern ? Wozu ist es da ?
Motivation Erläuterung der DesignideeApplicability typische Anwendungssituationen
Structure UML-TeildiagrammParticipants Kurzbeschreibung der beteiligten Bausteine
Collaborations Kurzbeschreibung der dynamischen AbläufeConsequences Diskussion von Vor- und Nachteilen
Implementation Diskussion der Implementierung(svarianten)Sample Code Implementierungs- und AnwendungsbeispielKnown Uses bekannten Verwendungen
Related Patterns Querverweise zu anderen Pattern
![Page 9: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/9.jpg)
Entwicklung eines Design Patterns
1. Reflektion des Problems2. Welche Struktur ist die Richtige ?3. Motivation mit konkretem Beispiel 4. Was unterscheidet das neue Pattern von anderen
und wie ergänzt es sich ?5. Publikation des Patterns6. Verbesserungen7. Sammeln und Einbauen von Kommentaren
![Page 10: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/10.jpg)
Design Pattern im Quellcode
• Syntaktische Variationen • Variationen in der Implementierung • Delokalisierung • Nicht verwertbare Bauteile • Variation in der Organisation der
Komponenten • Redundanz
![Page 11: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/11.jpg)
Programmiersprachen für Design Pattern
• textorientierte Programming Language for Design Patterns
(PaL)• visuelle Visual Language for Design Pattern
(DPML )
![Page 12: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/12.jpg)
Beispiel für PaL 1(Abstract Factory)
GUIFactory
make
GUIFactory+createScrollBar():ScrollBar+createMenu():Menu+createButton():Button
MetalFactory SpaceFactory
+createScrollBar():MetalScrollBar+createMenu():MetalMenu+createButton():MetalButton
+createScrollBar():SpaceScrollBar+createMenu():SpaceMenu+createButton():SpaceButton
structure GUIFactory class SpaceFactory inherit GUIFactory
creation make creation make
class GUIFactory feature createScrollBar() is …
creation make feature createMenu() is …
feature createScrollBar() is … feature createButton() is …
feature createMenu() is … end
feature createButton() is … end
end
class MetalFactory inherit
GUIFactory
creation make
feature createScrollBar() is…
feature createMenu() is …
feature createButton() is
end
![Page 13: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/13.jpg)
Beispiel für PaL 2(Abstract Factory)
ScrollBar
make
ScrollBar
SpaceScrollBarMetalSrollBar
structure ScrollBar
creation make
class ScrollBar
creation make
...
end
class Metal ScrollBar inherit ScrollBar
creation make
...
end
class Space ScrollBar inherit ScrollBar
creation make
…
end
end
![Page 14: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/14.jpg)
Beispiel für PaL 3(Abstract Factory)
Menu
make
Menu
MetalMenu SpaceMenu
structure Menu
creation make
class Menu
creation make
...
end
class MetalMenu inherit Menu
creation make
...
end
class SpaceMenu inherit Menu
creation make
…
end
end
![Page 15: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/15.jpg)
Beispiel für PaL 4(Abstract Factory)
Button
make
Button
SpaceButtonMetalButton
structure Button
creation make
class Button
creation make
...
end
class MetalButton inherit Button
creation make
...
end
class SpaceButton inherit Button
creation make
…
end
end
![Page 16: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/16.jpg)
Beispiel für DPML 1 (Abstract Factory)
AbsractFactory
createOps
concreteCreateOps
concreteFactories
concreteProductsProducts
Declared_In Implements
Realises Defined_In
Return Type Creates
Implements
![Page 17: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/17.jpg)
Beispiel für DPML 2 (Abstract Factory)
AbsractFactory
GUIFactory
CreateOpsCreateMenu
createScrollBarcreateButton
ConcreteCreateOps6 bound elements
ConcreteFactoriesMetallFactorySpaceFactory
ConcreteProducts6 bound elements Products
MenuScrollBarButton
Declared_In Implements
Realises Defined_In
Return Type
Creates
Implements
![Page 18: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/18.jpg)
PaL vs DPMLUnterschiede
PaL DPMLIntegration in Eiffel in UMLBeziehungen keine Bedingungen, BeziehungenKombination von Pattern visuell und textuell visuellRepräsentation von Pattern konkrete abstrakt und konkret
![Page 19: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/19.jpg)
PaL vs DPMLGemeinsamkeiten
• benutzen Design Pattern zum Modellieren.
• haben Patterninstanzeierung
• haben visuelle Elemente
• unterstützen Vererbung
![Page 20: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/20.jpg)
Automatische Codegenerierung für Design Pattern 1
Entwicklerziele1. schnelle Modifikation von Komponenten2. hohe Flexibilität3 einfache Spezifikation
Benutzerziele 1. das Tool soll als Entwicklerhilfe dienen 2. integrierte Design Pattern Eigenschaften3. Benutzerrückkopplung
![Page 21: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/21.jpg)
Automatische Codegenerierung für Design Pattern 2
Architektur
• Presenter implementiert Benutzeroberfläche (Browser)
• Code Generator implementiert die Pattern
• Mapper spezifiziert wie der Presenter und der Code Generator miteinander kooperieren
![Page 22: Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy](https://reader035.vdocuments.pub/reader035/viewer/2022062521/570491c51a28ab14218dabc0/html5/thumbnails/22.jpg)
Fujaba
• Java-Codegenerierung aus UML -Diagrammen
• Generierung der Designdiagrammen aus bestehendem Java-Quellcode
• Forward-(4 Pattern) und Reengineering (7 Pattern)