Please use this identifier to cite or link to this item: http://dx.doi.org/10.14279/depositonce-1708
Main Title: Tool-supported Refactoring of Aspect-oriented Programs
Translated Title: Werkzeuggestütztes Refactoring von Aspektorientierten Programmen
Author(s): Wloka, Jan
Advisor(s): Jähnichen, Stefan
Granting Institution: Technische Universität Berlin, Fakultät IV - Elektrotechnik und Informatik
Type: Doctoral Thesis
Language: English
Language Code: en
Abstract: Aspektorientierte Programmierung (AOP) wurde entwickelt, um insbesondere die Modularität von sogenannten Crosscutting Concerns zu verbessern. AOP stellt einen erweiterten Kompositionsmechanismus zur Verfügung, genannt Pointcut und Advice, mit dem das Verhalten eines Programms zur Laufzeit angepasst werden kann. Ein Entwickler kann mit Hilfe von Pointcuts Eigenschaften von Programmrepräsentationen spezifizieren, um ein bestimmtes Programmverhalten zu selektieren, an dem ein Advice ausgeführt wird. Dieser Kompositionsmechanismus verursacht ernsthafte Probleme in der Weiterentwicklung von aspektorientierten Programmen. Jede Änderung im Quellcode eines aspektorientierten Programms kann unvorhersehbare Auswirkungen auf das Programmverhalten haben. Diese Unbestimmbarkeit von Auswirkungen einfachster Quellcodeänderungen erschwert nicht nur die Anwendung von AOP in großen Softwaresystemen, sondern verhindert praktisch den Einsatz bewährter Software Refactoring Werkzeuge zur Verbesserung der Evolutionsfähigkeit einer Software. Zur Lösung dieses Problems wurde in dieser Dissertation eine statische Änderungsauswirkungsanalyse (Change Impact Analysis) für Pointcuts entwickelt und in ein Refactoringwerkzeug integriert, um damit den Entwicklern aspektorientierter Programme das Refactoring zu ermöglichen. Diese Dissertation untersucht systematisch allgemeine Eigenschaften von existierenden Ansätzen zur Verhaltenskomposition in AOP, präsentiert eine Klassifikation dieser Eigenschaften und identifiziert die individuellen Auswirkungen auf bekannte Evolutionsprobleme im Kontext von Software Refactoring. Als ein Ergebnis wird die fehlende Verbindung zwischen der Spezifikation der Eigenschaften von Programmrepräsentationen und des selektierten Verhaltens als Hauptgrund für die Evolutionsprobleme herausgestellt. In dem entwickelten Refactoringansatz werden Verfahren zum automatisierten Refactoring, zur statischen Änderungsauswirkungsanalyse und zur qualitativen Programmanalyse integriert. Der werkzeug-unterstützte Refactoringansatz ermöglicht eine automatisierte Überprüfung der Gültigkeit von Pointcuts in aspektorientierten Programmen und im Falle ihrer Invalidierung auch ihre Aktualisierung. Zu diesem Zweck wird ein Pointcut Modell vorgeschlagen, das eine Spezifikation jeder Eigenschaft einer Programmrepräsentation durch ein explizites Modellelement darstellt. Basierend auf diesem Modell kann die entwickelte Analyse für Pointcuts jede einzelne Spezifikation eines referenzierten Elements einer Programmrepräsentation “vermessen” und durch Quellcodeänderungen invalidierte Spezifikationen identifizieren. Die eigentliche Aktualisierungsentscheidung wird durch qualitative Heuristiken automatisiert ermittelt. Der zusätzlich entwickelte Ansatz zur Generierung von Pointcuts ermöglicht in vielen Fällen ein direktes Ersetzten des invalidierten Teils eines Pointcuts und ermöglicht damit die Wiedererkennbarkeit aktualisierter Pointcuts, sogar nach mehrfacher Aktualisierung. Der Ansatz wurde mit Hilfe des im Rahmen der Arbeit entwickelten Refactoringwerkzeugs Soothsayer an unterschiedlichen Programmen evaluiert. Dabei hat sich gezeigt, dass die richtigen Aktualisierungsentscheidungen für ganz unterschiedliche Pointcuts automatisiert getroffen werden können und in vielen Fällen der invalidierte Teil eines Pointcuts direkt ersetzt werden konnte. Bei der Evaluierung wurde festgestellt, dass folgende Eigenschaften von Pointcutsprachen aktueller AOP Ansätze die automatisierte Aktualisierung negativ beeinflussen: - nicht approximierbare Eigenschaften dynamischer Programmrepräsentationen, - unvollständig spezifizierte Eigenschaften einer Programmrepräsentation und - die Spezifikation von Eigenschaften ohne Beziehung zum selektierten Programmverhalten. Diese Fälle können generell durch Programmanalysetechniken nicht gelöst werden, weil wichtige Informationen für die Änderungsauswirkunganalyse nicht im Quellcode vorhanden sind.
Aspect-oriented programming offers a new modularization concept for improving the modularity of crosscutting concerns. This concept is mainly realized by an advanced mechanism for composing program behavior, called pointcut and advice. Software evolution of aspect-oriented systems, and particularly software refactoring, has been considered as problematic, because even local changes in the source code can result in unpredictable effects on the behavior of an aspect-oriented program. In a first part of this thesis, we classify general attributes of existing approaches for composing program behavior in AOP and illustrate how each attribute is responsible for the evolution-related problems in the context of refactoring. We conclude that pointcuts specify properties of program representations to capture a certain program behavior, and identify the missing connection between a specification of such a property and the targeted behavior as primary reason for the evolution problems. To overcome these problems, we integrate ideas drawn from the study of automated software refactoring, static change impact analysis, and qualitative program analysis into an impact analysis approach for verifying the validity of pointcuts in aspect-oriented programs. We propose a model for pointcuts that represents every specification of a property of a program representation explicitly by an individual element. Based on this pointcut model a change impact analysis for pointcuts can detect change effects on every specified property, assess how precise a matching element of a program representation is specified, and derive invalidated specifications. The change impact analysis is integrated into a refactoring approach that makes applied changes explicit and uses the impact assessment for an automated computation of pointcut updates. We also present a prototype refactoring tool, called Soothsayer, that implements our refactoring approach. The tool assists the developer in estimating effects on existing aspects, in detecting invalidated pointcuts, and in defining pointcut adjustments. An experimental evaluation of our approach using the tool has validated our expectations.
URI: urn:nbn:de:kobv:83-opus-16790
http://depositonce.tu-berlin.de/handle/11303/2005
http://dx.doi.org/10.14279/depositonce-1708
Exam Date: 23-May-2007
Issue Date: 20-Nov-2007
Date Available: 20-Nov-2007
DDC Class: 004 Datenverarbeitung; Informatik
Subject(s): Aspektorientierte Programmierung
Change Impact Analyse
Codegenerierung
Refactoring
Software Evolution
Aspect-oriented Programming
Change Impact Analysis
Code Generation
Refactoring
Software Evolution
Usage rights: Terms of German Copyright Law
Appears in Collections:Institut für Softwaretechnik und Theoretische Informatik » Publications

Files in This Item:
File Description SizeFormat 
Dokument_15.pdf3.28 MBAdobe PDFThumbnail
View/Open


Items in DepositOnce are protected by copyright, with all rights reserved, unless otherwise indicated.