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.

Available for download on Friday, June 20, 2025

To access this thesis/dissertation you must have a valid nova.edu OR mynsu.nova.edu email address and create an account for NSUWorks.

Free My Thesis

If you are the author of this work and would like to grant permission to make it openly accessible to all, please click the Free My Thesis button.

  Contact Author

Share

COinS