Aspect-Advice Interference: Data Interactions in AspectJ

  • Conrad Bell

    Student thesis: Doctoral ThesisDoctor of Philosophy

    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.
    Date of AwardJan 1 2023
    Original languageEnglish
    SupervisorFrank J. Mitropoulos (Supervisor), Sumitra Mukherjee (Advisor) & Junping Sun (Advisor)

    Cite this

    '