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.
- Aldrich, J. 2004. Open Modules: Reconciling Extensibility and Information Hiding. In: SPLAT AOSD'04 Workshop.Google Scholar
- 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 Scholar
- Anbalagan, P., and Xie, T. 2008. Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs. In: ISSRE'08. 239--248. Google ScholarDigital Library
- Bækken, J. S., and Alexander, R. T. 2006. A Candidate Fault Model for AspectJ Pointcuts. In: ISSRE'06. 169--178. Google ScholarDigital Library
- 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 ScholarDigital Library
- Camilleri, A., Coulson, G., Blair, L. 2009. CIF: A Framework for Managing Integrity in Aspect-Oriented Composition. In: TOOLS'09. 16--26.Google Scholar
- Ceccato, M., and Tonella, P. 2004 Measuring the Effects of Software Aspectization. In: 1st Workshop on Aspect Reverse Engineering (ARE).Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Eaddy, M., et al. 2008. Do Crosscutting Concerns Cause Defects? IEEE Transactions on Software Engineering 34 (4). 497--515. Google ScholarDigital Library
- Ferrari, F., Maldonado, J., and Rashid, A. 2008. Mutation Testing for Aspect-Oriented Programs. In: ICST'08. 52--61. Google ScholarDigital Library
- Figueiredo, E., et al. 2008. Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability. In: ICSE'08. 261--270. Google ScholarDigital Library
- Filho, F. C., et al. 2006. Exceptions and Aspects: The Devil is in the Details. In: FSE'06. 152--162. Google ScholarDigital Library
- Filman, R. E., and Friedman, D. 2004. Aspect-Oriented Programming is Quantification and Obliviousness. In: Aspect-Oriented Software Development. Addison-Wesley.Google ScholarDigital Library
- 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 ScholarDigital Library
- Griswold, W. G., et al. 2006. Modular Software Design with Crosscutting Interfaces. In: IEEE Software 23(1). 51--60. Google ScholarDigital Library
- Gybels, K., and Brichau, J. 2003. Arranging Language Features for More Robust Pattern-Based Crosscuts. In: AOSD'03. 60--69. Google ScholarDigital Library
- 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 ScholarDigital Library
- Hoffman, K., and Eugster, P. 2007. Bridging Java and AspectJ through Explicit Join Points. In: PPPJ'07. 63--72. Google ScholarDigital Library
- Hopkins, W. G. 2003. A New View of Statistics. Sport Science, http://www.sportsci.org/resource/stats (01/09/2009)Google Scholar
- iBATIS Data Mapper - http://ibatis.apache.org/ (01/09/2009).Google Scholar
- Johnson, R., et al. 2007. Spring - Java/J2EE application framework. Ref, Manual Version 2.0.6, Interface21 Ltd.Google Scholar
- Kastner, C., Apel, S., and Batory, D. 2007. A Case Study Implementing Features Using AspectJ. In: SPLC'07. 223--232. Google ScholarDigital Library
- Kiczales, G., et al. 1997. Aspect-Oriented Programming. In: ECOOP'97 (LNCS, vol. 1241). 220--242.Google ScholarCross Ref
- Kiczales, G., and Mezini, M. 2005. Aspect-Oriented Programming and Modular Reasoning. In: ICSE'05. 49--58. Google ScholarDigital Library
- Soares, S., Laureano, E., and Borba, P. 2002. Implementing Distribution and Persistence Aspects with AspectJ. In: OOPSLA'02. 174--190. Google ScholarDigital Library
- Steimann, F. 2006. The Paradoxical Success of Aspect-Oriented Programming. In: OOPSLA'06. 481--497. Google ScholarDigital Library
- Stoerzer, M., and Graf, J. 2005. Using Pointcut Delta Analysis to Support Evolution of Aspect-Oriented Software. In: ICSM'05. 653--656. Google ScholarDigital Library
- 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 ScholarDigital Library
- Sullivan, K., et al. 2005. Information Hiding Interfaces for Aspect-Oriented Design. In: ESEC/FSE'05. 166--175. Google ScholarDigital Library
- The AspectJ Project. http://www.eclipse.org/aspectj/Google Scholar
- Wohlin, C., et al. 2000. Experimentation in Software Engineering - An Introduction. Kluwer Academic Publishers. Google ScholarDigital Library
- Xie, T., and Zhao, J. 2006. A Framework and Tool Supports for Generating Test Inputs of AspectJ Programs. In: AOSD'06. 190--201 Google ScholarDigital Library
- Huang, S. S., Smaragdakis, Y. 2006. Easy Language Extension with Meta-AspectJ. In: ICSE'06. 865--868 Google ScholarDigital Library
- Zhang, S., and Zhao, J. 2007. On Identifying Bug Patterns in Aspect-Oriented Programs. In: COMPSAC'07. 431--438. Google ScholarDigital Library
- Csallner, C., and Smaragdakis, Y. 2005. Check 'n' crash: combining static checking and testing. In: ICSE'05, 422--431. Google ScholarDigital Library
- Harman, M., et. al. 2009. Automated test data generation for aspect-oriented programs. In: AOSD'09. 185--196. Google ScholarDigital Library
Recommendations
A discriminative model approach for accurate duplicate bug report retrieval
Bug repositories are usually maintained in software projects. Testers or users submit bug reports to identify various issues with systems. Sometimes two or more bug reports correspond to the same defect. To address the problem with duplicate bug reports,...
Comments