CCE Theses and Dissertations
Campus Access Only
All rights reserved. This publication is intended for use solely by faculty, students, and staff of Nova Southeastern University. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, now known or later developed, including but not limited to photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the author or the publisher.
Date of Award
2023
Document Type
Dissertation - NSU Access Only
Degree Name
Doctor of Philosophy (PhD)
Department
College of Computing and Engineering
Advisor
Francisco J. Mitropoulos
Committee Member
Sumitra Mukherjee
Committee Member
Junping Sun
Keywords
advice interference, aspect composition, aspect interference, aspectj, data interference, semantic conflict
Abstract
The term “aspect interference” describes research into the problem of negative interactions between aspects and an object-oriented base program. It inappropriately conflates the distinctive mechanisms through which aspects and advice each cause diverse types of interference in aspect-oriented programs. Aspect-Advice Interference is a new term introduced in this work. It describes the interference problem more accurately by encompassing all interference mechanisms and types. One type of Aspect-Advice Interference generated only by advice is Data Interference (DI), which occurs when advice modifies the value of a variable in a way that breaks a base program invariant. The consequences of DI range from minor errors to abnormal program termination. Therefore, locating and remediating Data Interference is important to both researchers and practitioners. Prior to this work, locating DI was a manual process prone to human error, particularly in large or complex programs. Developers were forced to search all code in the call hierarchy to find DI after new advice was added to an existing program. To overcome this burden, a solution was needed for locating Data Interference. This work establishes the theoretical basis of the Data Interference problem, describes the mechanisms that cause it, and introduces its first known solution – the AspectJ Data Interference Finder (AJDIF). Founded on techniques from dataflow analysis and software coverage testing, AJDIF locates and presents instances of DI to programmers as an integrated step in the software development workflow of modern IDEs. AJDIF successfully found all DI in test programs that generated instances of Data Interference through three different mechanisms. A secondary result of this research addressed the lack of standard terminology in the literature describing types and mechanisms of Aspect-Advice Interference. A straightforward, coherent taxonomy of orthogonal categories was created based upon each mechanism (an AspectJ language construct) that can generate interference. To make the taxonomy universally accessible, a cross-reference from other interference taxonomies to the Aspect-Advice Interference taxonomy was produced.
El término "interferencia de aspecto" describe la investigación sobre el problema de las interacciones negativas entre los aspectos y un programa base orientado a objetos. Esto confunde de manera inapropiada los mecanismos distintivos a través de los cuales los aspectos y los consejos causan distintos tipos de interferencia en los programas orientados a aspectos. Interferencia de Aspecto-Consejo es un nuevo término introducido en esta investigación. Tambien describe el problema de la interferencia con mayor precisión al abarcar todos los mecanismos y tipos de interferencia. Un tipo de Interferencia de Aspecto-Consejo generado solo por el consejo es la Interferencia de Datos (DI), que ocurre cuando el consejo modifica el valor de una variable de una manera que rompe un programa base invariante. Las consecuencias de DI van desde errores menores hasta la terminación anormal del programa. Por lo tanto, localizar y corregir la interferencia de datos es importante tanto para los investigadores como para los profesionales. Antes de esta investigación, localizar DI era un proceso manual propenso a errores humanos, particularmente en programas grandes o complejos. Los desarrolladores se vieron obligados a buscar todo el código en la jerarquía de llamadas para encontrar DI después de que se agregaron nuevos consejos a un programa existente. Para superar esta carga, se necesitaba una solución para localizar la interferencia de datos. Esta investigación establece la base teórica del problema de la interferencia de datos, describe los mecanismos que lo provocan y presenta su primera solución conocida -- el Buscador de Interferencias de Datos de AspectJ (AJDIF). Basado en técnicas de análisis de flujo de datos y pruebas de cobertura de software, AJDIF localiza y presenta instancias de DI a los programadores como un paso integrado en el flujo de trabajo de desarrollo de software de los IDE modernos. AJDIF encontró con éxito todos los DI en los programas de prueba que generaron instancias de Interferencia de Datos a través de tres mecanismos diferentes. Un resultado secundario de esta investigación abordó la falta de terminología estándar en la literatura que describa los tipos y mecanismos de Interferencia de Aspecto-Consejo. Se creó una taxonomía sencilla y coherente de categorías ortogonales basada en cada mecanismo (una construcción del lenguaje AspectJ) que puede generar interferencia. Para que la taxonomía sea universalmente accesible, se produjo una referencia cruzada de otras taxonomías de interferencia a la taxonomía de Interferencia de Aspecto-Consejo.
NSUWorks Citation
Conrad Bell IV. 2023. Aspect-Advice Interference: Data Interactions in AspectJ. Doctoral dissertation. Nova Southeastern University. Retrieved from NSUWorks, College of Computing and Engineering. (1184)
https://nsuworks.nova.edu/gscis_etd/1184.
- Usage
- Abstract Views: 97