skip to main content
10.1145/1806799.1806813acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

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

Authors Info & Claims
Published:01 May 2010Publication History

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.

References

  1. Aldrich, J. 2004. Open Modules: Reconciling Extensibility and Information Hiding. In: SPLAT AOSD'04 Workshop.Google ScholarGoogle Scholar
  2. Alexander, R. T., et al. 2004. Towards the Systematic Testing of Aspect-Oriented Programs. Report CS-04-105, Colorado State University, Fort Collins-USA.Google ScholarGoogle Scholar
  3. Anbalagan, P., and Xie, T. 2008. Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs. In: ISSRE'08. 239--248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bækken, J. S., and Alexander, R. T. 2006. A Candidate Fault Model for AspectJ Pointcuts. In: ISSRE'06. 169--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cacho, N., Filho, F. C., Garcia, A., and Figueiredo, E. 2008. EJFlow: Taming Exceptional Control Flows in Aspect-Oriented Programming. In: AOSD'08. 72--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Camilleri, A., Coulson, G., Blair, L. 2009. CIF: A Framework for Managing Integrity in Aspect-Oriented Composition. In: TOOLS'09. 16--26.Google ScholarGoogle Scholar
  7. Ceccato, M., and Tonella, P. 2004 Measuring the Effects of Software Aspectization. In: 1st Workshop on Aspect Reverse Engineering (ARE).Google ScholarGoogle Scholar
  8. Chidamber, S. R., and Kemerer, C. F. 1994. A Metrics Suite for Object-Oriented Design. IEEE Transactions on Software Engineering 20 (6). 476--493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Coelho, R., et al. 2008. Assessing the Impact of Aspects on Exception Flows: An Exploratory Study. In: ECOOP'08. (LNCS, vol. 5142). 207--234. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Delamare, R., Baudry, B., Ghosh, S., Le Traon, Y. 2009. A Test-Driven Approach to Developing Pointcut Descriptors in AspectJ. In: ICST'09. 376--385. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Eaddy, M., et al. 2008. Do Crosscutting Concerns Cause Defects? IEEE Transactions on Software Engineering 34 (4). 497--515. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Ferrari, F., Maldonado, J., and Rashid, A. 2008. Mutation Testing for Aspect-Oriented Programs. In: ICST'08. 52--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Figueiredo, E., et al. 2008. Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability. In: ICSE'08. 261--270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Filho, F. C., et al. 2006. Exceptions and Aspects: The Devil is in the Details. In: FSE'06. 152--162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Filman, R. E., and Friedman, D. 2004. Aspect-Oriented Programming is Quantification and Obliviousness. In: Aspect-Oriented Software Development. Addison-Wesley.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Greenwood, P., et al. 2007. On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study. In: ECOOP'07 (LNCS, vol. 4609). 176--200. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Griswold, W. G., et al. 2006. Modular Software Design with Crosscutting Interfaces. In: IEEE Software 23(1). 51--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gybels, K., and Brichau, J. 2003. Arranging Language Features for More Robust Pattern-Based Crosscuts. In: AOSD'03. 60--69. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Gyimóthy, T., Ferenc, R., and Siket, I. 2005. Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction. IEEE Transactions on Software Engineering 31 (10). 897--910. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Hoffman, K., and Eugster, P. 2007. Bridging Java and AspectJ through Explicit Join Points. In: PPPJ'07. 63--72. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Hopkins, W. G. 2003. A New View of Statistics. Sport Science, http://www.sportsci.org/resource/stats (01/09/2009)Google ScholarGoogle Scholar
  22. iBATIS Data Mapper - http://ibatis.apache.org/ (01/09/2009).Google ScholarGoogle Scholar
  23. Johnson, R., et al. 2007. Spring - Java/J2EE application framework. Ref, Manual Version 2.0.6, Interface21 Ltd.Google ScholarGoogle Scholar
  24. Kastner, C., Apel, S., and Batory, D. 2007. A Case Study Implementing Features Using AspectJ. In: SPLC'07. 223--232. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Kiczales, G., et al. 1997. Aspect-Oriented Programming. In: ECOOP'97 (LNCS, vol. 1241). 220--242.Google ScholarGoogle ScholarCross RefCross Ref
  26. Kiczales, G., and Mezini, M. 2005. Aspect-Oriented Programming and Modular Reasoning. In: ICSE'05. 49--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Soares, S., Laureano, E., and Borba, P. 2002. Implementing Distribution and Persistence Aspects with AspectJ. In: OOPSLA'02. 174--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Steimann, F. 2006. The Paradoxical Success of Aspect-Oriented Programming. In: OOPSLA'06. 481--497. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Stoerzer, M., and Graf, J. 2005. Using Pointcut Delta Analysis to Support Evolution of Aspect-Oriented Software. In: ICSM'05. 653--656. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Subramanyam, R., and Krishnan, M. S. 2003. Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects. IEEE Transactions on Software Engineering. 29 (4). 297--310. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Sullivan, K., et al. 2005. Information Hiding Interfaces for Aspect-Oriented Design. In: ESEC/FSE'05. 166--175. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. The AspectJ Project. http://www.eclipse.org/aspectj/Google ScholarGoogle Scholar
  33. Wohlin, C., et al. 2000. Experimentation in Software Engineering - An Introduction. Kluwer Academic Publishers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Xie, T., and Zhao, J. 2006. A Framework and Tool Supports for Generating Test Inputs of AspectJ Programs. In: AOSD'06. 190--201 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Huang, S. S., Smaragdakis, Y. 2006. Easy Language Extension with Meta-AspectJ. In: ICSE'06. 865--868 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Zhang, S., and Zhao, J. 2007. On Identifying Bug Patterns in Aspect-Oriented Programs. In: COMPSAC'07. 431--438. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Csallner, C., and Smaragdakis, Y. 2005. Check 'n' crash: combining static checking and testing. In: ICSE'05, 422--431. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Harman, M., et. al. 2009. Automated test data generation for aspect-oriented programs. In: AOSD'09. 185--196. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    ICSE '10: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
    May 2010
    627 pages
    ISBN:9781605587196
    DOI:10.1145/1806799

    Copyright © 2010 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 1 May 2010

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate276of1,856submissions,15%

    Upcoming Conference

    ICSE 2025

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader