An exploratory study of fault-proneness in evolving aspect-oriented programs

  • Authors:
  • Fabiano Ferrari;Rachel Burrows;Otávio Lemos;Alessandro Garcia;Eduardo Figueiredo;Nelio Cacho;Frederico Lopes;Nathalia Temudo;Liana Silva;Sergio Soares;Awais Rashid;Paulo Masiero;Thais Batista;José Maldonado

  • Affiliations:
  • University of São Paulo - USP, São Carlos, Brazil;Pontifical Catholic University of Rio de Janeiro - PUC-Rio, Rio de Janeiro, Brazil and Lancaster University, Lancaster, United Kingdom;Federal University of São Paulo - UNIFESP, S.J. Campos, Brazil;Pontifical Catholic University of Rio de Janeiro - PUC-Rio, Rio de Janeiro, Brazil;Lancaster University, Lancaster, United Kingdom;Federal University of Rio Grande do Norte - UFRN, Natal, Brazil;Federal University of Rio Grande do Norte - UFRN, Natal, Brazil;University of Pernambuco - UPE, Recife, Brazil;University of Pernambuco - UPE, Recife, Brazil;Federal University of Pernambuco - UFPE, Recife, Brazil;Lancaster University, Lancaster, United Kingdom;University of São Paulo - USP, São Carlos, Brazil;Federal University of Rio Grande do Norte - UFRN, Natal, Brazil;University of São Paulo - USP, São Carlos, Brazil

  • Venue:
  • Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents the results of an exploratory study on the fault-proneness of aspect-oriented programs. We analysed the faults collected from three evolving aspect-oriented systems, all from different application domains. The analysis develops from two different angles. Firstly, we measured the impact of 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. The second analysis regarded 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.