Tool-supported Refactoring of Aspect-oriented Programs

dc.contributor.advisorJähnichen, Stefanen
dc.contributor.authorWloka, Janen
dc.contributor.grantorTechnische Universität Berlin, Fakultät IV - Elektrotechnik und Informatiken
dc.date.accepted2007-05-23
dc.date.accessioned2015-11-20T17:42:42Z
dc.date.available2007-11-20T12:00:00Z
dc.date.issued2007-11-20
dc.date.submitted2007-11-20
dc.description.abstractAspektorientierte 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.de
dc.description.abstractAspect-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.en
dc.identifier.uriurn:nbn:de:kobv:83-opus-16790
dc.identifier.urihttps://depositonce.tu-berlin.de/handle/11303/2005
dc.identifier.urihttp://dx.doi.org/10.14279/depositonce-1708
dc.languageEnglishen
dc.language.isoenen
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subject.ddc004 Datenverarbeitung; Informatiken
dc.subject.otherAspektorientierte Programmierungde
dc.subject.otherChange Impact Analysede
dc.subject.otherCodegenerierungde
dc.subject.otherRefactoringde
dc.subject.otherSoftware Evolutionde
dc.subject.otherAspect-oriented Programmingen
dc.subject.otherChange Impact Analysisen
dc.subject.otherCode Generationen
dc.subject.otherRefactoringen
dc.subject.otherSoftware Evolutionen
dc.titleTool-supported Refactoring of Aspect-oriented Programsen
dc.title.translatedWerkzeuggestütztes Refactoring von Aspektorientierten Programmende
dc.typeDoctoral Thesisen
dc.type.versionpublishedVersionen
tub.accessrights.dnbfree*
tub.affiliationFak. 4 Elektrotechnik und Informatik::Inst. Softwaretechnik und Theoretische Informatikde
tub.affiliation.facultyFak. 4 Elektrotechnik und Informatikde
tub.affiliation.instituteInst. Softwaretechnik und Theoretische Informatikde
tub.identifier.opus31679
tub.identifier.opus41615
tub.publisher.universityorinstitutionTechnische Universität Berlinen

Files

Original bundle
Now showing 1 - 1 of 1
Loading…
Thumbnail Image
Name:
Dokument_15.pdf
Size:
3.2 MB
Format:
Adobe Portable Document Format

Collections