Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Forschungszentrum Informatik, Karlsruhe Werkzeugunterstützte Softwareadaption mit Inject/J Volker Kuttruff Thomas Genßler.

Ähnliche Präsentationen


Präsentation zum Thema: "Forschungszentrum Informatik, Karlsruhe Werkzeugunterstützte Softwareadaption mit Inject/J Volker Kuttruff Thomas Genßler."—  Präsentation transkript:

1

2 Forschungszentrum Informatik, Karlsruhe Werkzeugunterstützte Softwareadaption mit Inject/J Volker Kuttruff Thomas Genßler

3 Forschungszentrum Informatik, Karlsruhe 2 Werkzeugunterstützte Softwareadaption mit Inject/J Übersicht Einführung Softwareadaption mit Inject/J – Anforderungen – Überblick Inject/J – Konzepte – Korrektheit – Beispiele Zusammenfassung und Ausblick

4 Forschungszentrum Informatik, Karlsruhe 3 Werkzeugunterstützte Softwareadaption mit Inject/J Einführung Kontext Anforderungen an ein System ändern sich in den verschiedenen Entwicklungsstufen System Flexibilität Performance Struktur Persistenz und Datenmodell Kompositions- und Protokollanforderungen Änderung der Anforderungen erfordert Adaption

5 Forschungszentrum Informatik, Karlsruhe 4 Werkzeugunterstützte Softwareadaption mit Inject/J Einführung Adaptionsprobleme Adaptionen oftmals querschneidend Implementierung der Anforderungen im System verteilt – Konsistente Adaptionen aufwendig – Oftmals interne Implementierungsstrukturen betroffen Manuelle Adaption erfordert Verständnis des Quellcodes Werkzeugunterstützte Softwareadaption

6 Forschungszentrum Informatik, Karlsruhe 5 Werkzeugunterstützte Softwareadaption mit Inject/J Softwareadaption mit Inject/J Anforderungen Invasive Softwareadaption (Greybox-Adaption) Einfache Spezifizierung häufiger Trans- formationen auf geeignetem Abstraktionsniveau Verarbeitung bereits vorhandenen Quellcodes, insbesondere kein Paradigmenwechsel Wiederverwendbarkeit der Adaptionen Korrektheitsbegriff

7 Forschungszentrum Informatik, Karlsruhe 6 Werkzeugunterstützte Softwareadaption mit Inject/J Überblick Inject/J Werkzeug für automatisierte Codetransformation – Einfaches Metamodell – Einfache Skriptsprache inkl. Skriptprozessor – Arbeitet direkt auf Java-Quellcode Einsatzmöglichkeiten – Ad-hoc Transformationen – Querschneidende Adaptionen – Entwurfsmusteroperatoren – Gluecodegenerierung (Konnektoren) – Allgemeine Codegenerierung

8 Forschungszentrum Informatik, Karlsruhe 7 Werkzeugunterstützte Softwareadaption mit Inject/J Zentrale Konzepte Namensraum Enthält alle für die Adaption benötigten Java-Klassen Webepunkte Bilden Metamodell von Inject/J Navigation Auffinden der gesuchten Webepunkte Transformation sog. Webeoperationen ändern den Quelltext invasiv

9 Forschungszentrum Informatik, Karlsruhe 8 Werkzeugunterstützte Softwareadaption mit Inject/J Webepunkte Mögliche Transformationsstellen im System Identifizierung durch Name bzw. Signatur Implizite Webepunkte – Klasse – Methode – Attribut – Methoden-/Attributzugriff – Zuweisungen Explizite Webepunkte – Explizite Markierung potentieller Adaptionsstellen

10 Forschungszentrum Informatik, Karlsruhe 9 Werkzeugunterstützte Softwareadaption mit Inject/J Navigation Hierarchische Navigation Direkte Navigation Spezifikation der Navigationsziele mit Hilfe regulärer Ausdrücke und Quantoren Beispiele: in class ´fzi.injectj.Main´ do... foreach method ´put(java.lang.Object,*) do...

11 Forschungszentrum Informatik, Karlsruhe 10 Werkzeugunterstützte Softwareadaption mit Inject/J Webeoperationen before / after – Einfügen von Code vor bzw. nach dem Webepunkt add – Einfügen von Code in listenartige Strukturen change modifier – Ändert die Modifizierer eines Webepunktes replace – Ersetzt den momentanen Quelltext durch ein neues Codefragment delete

12 Forschungszentrum Informatik, Karlsruhe 11 Werkzeugunterstützte Softwareadaption mit Inject/J Korrektheit Ist das System vor der Operation übersetzbar, so ist es auch nach der Operation übersetzbar. Sichergestellt durch umfangreiche Überprüfungen – Prüfung auf Existenz von statischen Referenzen auf zu löschende Elemente – Prüfung von Namenskonflikten – Inkrementeller Parser Zusätzlich: Skriptbasierte Überprüfungen durch Webepunkt-Attribute

13 Forschungszentrum Informatik, Karlsruhe 12 Werkzeugunterstützte Softwareadaption mit Inject/J Beispiel (I) foreach class ´*´ do { foreach method ´*´ do { foreach access ´pop()´ to subclass ´java.util.Stack´ do { before ${ if (.empty()) System.err.println(Empty stack...); }$ } } }

14 Forschungszentrum Informatik, Karlsruhe 13 Werkzeugunterstützte Softwareadaption mit Inject/J Beispiel (II) if (staticStack.empty()) System.out.println(Empty stack...); privateStack.push(staticStack.pop()); if (privateStack.empty()) System.out.println(Empty stack...); Object top = privateStack.pop(); this.pop();

15 Forschungszentrum Informatik, Karlsruhe 14 Werkzeugunterstützte Softwareadaption mit Inject/J Weitere Beispiele Observifier – Transformiert direkte Methodenaufrufe in nachrichtenbasierte Notifikation (Observer / Observable) – ca. 170 Zeilen Skriptcode inkl. graphischer Benutzerinteraktion Beanifier – Ersetzt Attributzugriffe durch Get/Set-Methoden Automatische Visitorgenerierung

16 Forschungszentrum Informatik, Karlsruhe 15 Werkzeugunterstützte Softwareadaption mit Inject/J Zusammenfassung Problem: – Aufwendige Adaptionen in großen Systemen aufgrund sich ändernder Anforderungen Neues Werkzeug: Inject/J – Invasiv, nicht auf Blackbox-Adaption beschränkt – Einfache Skriptsprache – Kein Paradigmenwechsel, arbeitet mit vorhandenem Quelltext

17 Forschungszentrum Informatik, Karlsruhe 16 Werkzeugunterstützte Softwareadaption mit Inject/J Ausblick Unterstützung weiterer Webepunkte Verfeinerung des Transaktionsbegriffs Sprachmittel zur Spezifikation von Vorbedingungen Umgang mit unvollständigem Code Bibliotheken mit vorgefertigten Operationen Bessere Integration in Entwicklungsumgebungen

18 Forschungszentrum Informatik, Karlsruhe 17 Werkzeugunterstützte Softwareadaption mit Inject/J Inject/J Webseite Kontakte Thomas Genßler Volker Kuttruff


Herunterladen ppt "Forschungszentrum Informatik, Karlsruhe Werkzeugunterstützte Softwareadaption mit Inject/J Volker Kuttruff Thomas Genßler."

Ähnliche Präsentationen


Google-Anzeigen