Bridging the Usability Gap in Aspect-Oriented Software Development

Project Abstract

In the last 10 years, Aspect-Oriented Software Development (AOSD) has gradually become a cornerstone in software engineering. It serves as an engine to reduce complexity and increase reuse by providing an explicit mechanism for modularization of concerns that crosscut software systems. In spite of the modularization benefits supported by the Aspect-Oriented Programming (AOP) paradigm, different usability issues have hindered its adoption. The tight coupling between aspect definitions and base code definitions as well as the compile-time weaving mechanism adopted by different AOP languages require developers to manage the consistency between base code and aspect code themselves during the course of software maintenance and evolution.

These mechanisms create opportunities for errors related to the invisibility of aspect weaving and the non-local control characteristics of AOP languages. In short, AOP developers lack adequate support for: (1) visualizing and identifying the exact points in the code where aspects are woven; (2) detecting aspect-base code inconsistencies; and (3) evolving aspect-oriented code in a coherent way. This paper describes XE (Extreme Editor), an IDE that supports developers in managing these issues in the functional AOP domain. XE is designed to aid in the understanding and evolution of aspect-oriented programs. It supports the ability to: (1) edit woven code and have the edits back-propagated to either the base or aspect code and (2) view the join point actually quantified by a given pointcut descriptor. We validate our approach through a case study showing how XE reduces the cognitive effort of developers in evolving AOP programs.

eXtreme Editor (XE) IDE

XE 1

XE Main Screen

XE 2

XE Change Manager

Publications

Technical Reports

Poster, Flyers, etc.

Researchers and Collaborators