Evaluating the Fault-Proneness of Aspect-Oriented Programming Languages

Methods and tools: Pearson correlation; R statistics software; dependency analysis using coupling metrics.


This project is concerning the fault-proneness of aspect-oriented programs. We analysed the faults collected from three evolving aspect-oriented systems, all from different application domains.

This project investigated:

  1. The obliviousness property on the fault-proneness of the evaluated systems. The results show that 40% of reported faults were due to the lack of awareness among base code and aspects.
  2. The fault-proneness of the main aspect-oriented programming (AOP) mechanisms, namely pointcuts, advices and intertype declarations. The results indicate that these mechanisms present similar fault-proneness when we consider both the overall system and concern-specific implementations. Our findings are reinforced by means of statistical tests. In general, this result contradicts the common intuition stating that the use of pointcut languages is the main source of faults in AOP.
  3. The effectiveness of coupling metrics as indicators of fault-proneness in aspect-oriented (AO) systems. We collected faults from several releases of a real-world AO system. We applied and compared existing metrics for coupling and other internal attributes. We have also considered a novel metric that quantifies specific dependencies in AO software not captured by existing metrics. The results show that coupling metrics, which are not directives of object-oriented metrics, tended to be superior indicators of fault-proneness.


An empirical evaluation of coupling metrics on aspect-oriented programs (2010)
In Proceedings of ICSE Workshop on Emerging Trends in Software Metrics, 2010 
Burrows, Rachel and Ferrari, Fabiano Cutigi and Garcia, Alessandro and Taiani, Francois

 An exploratory study of fault-proneness in evolving aspect-oriented programs (2010)
In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1, 2010. Ferrari, Fabiano and Burrows, Rachel and Lemos, Otávio and Garcia, Alessandro and Figueiredo, Eduardo and Cacho, Nelio and Lopes, Frederico and Temudo, Nathalia and Silva, Liana and Soares, Sergio and others

The impact of coupling on the fault-proneness of aspect-oriented programs: an empirical study (2010)
In Software Reliability Engineering (ISSRE) IEEE 21st International Symposium. 2010 
Burrows, Rachel and Ferrari, Fabiano C and Lemos, Otavio AL and Garcia, Alessandro and Taiani, Francois

Fault-Proneness in Aspect-Oriented Programs: A Metrics-based Approach (PhD Thesis, 2012))


Reasoning about faults in aspect-oriented programs: a metrics-based evaluation (2011)

In Program Comprehension (ICPC), IEEE 19th International Conference on, 2011 
Burrows, Rachel and Taiani, Francois and Garcia, Alessandro and Ferrari, Fabiano Cutigi

Characterising faults in aspect-oriented programs: Towards filling the gap between theory and practice

In Brazilian Symposium on Software Engineering (SBES), 2010 
Ferrari, Fabiano C and Burrows, Rachel and Lemos, Otavio AL and Garcia, Alessandro and Maldonado, Jose C

Coupling Metrics for Aspect-Oriented Programming: A Systematic Review of Maintainability Studies (Extended Version: 2010))

In Proceedings of ENASE. Evaluation of Novel Approaches to Software Engineering 
Burrows, Rachel and Garcia, Alessandro and Taiani, Francois