Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1512475.1512490acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
research-article

XFindBugs: eXtended FindBugs for AspectJ

Published: 09 November 2008 Publication History

Abstract

Aspect-oriented software development (AOSD) is gaining popularity with the wider adoption of languages such as AspectJ. However, though the state-of-the-art aspect-oriented programming environment (such as AJDT in the Eclipse IDE) provides powerful capabilities to check the syntactic or grammar errors in AspectJ programs, it fails to detect potential semantic defects in aspect-oriented software systems. In this paper, we present XFindBugs, an eXtended FindBugs for AspectJ, to help programmers find potential bugs in AspectJ applications through static analysis. XFindBugs supports 17 bug patterns to cover common error-prone features in an aspect-oriented system, and integrates the corresponding bug detectors into the FindBugs framework. We evaluate XFindBugs on a number of large-scale open source AspectJ projects (306,800 LOC in total). In our evaluation, XFindBugs confirms 7 reported bugs and finds 257 previously unknown defects. Our experiment also indicates that the bug patterns supported in XFindBugs exist in real-world software systems, even for mature applications by experienced programmers.

References

[1]
AJHotDraw. http: //sourceforge.net/projects/ajhotdraw.
[2]
AJHSQLDB. http://sourceforge.net/projects/ajhsqldb.
[3]
AspectJ. http://eclipse.org/aspectj/.
[4]
AspectJ Bugzilla. http://www.eclipse.org/aspectj/bugs.php.
[5]
Aspectj development tools (ajdt). http://www.eclipse.org/ajdt/.
[6]
AspectJ Programming Guide. http://www.eclipse.org/aspectj/doc/released/progguide.
[7]
Eclipse. http://www.eclipse.org/.
[8]
FindBugs. http://findbugs.sourceforge.net/.
[9]
Glassbox. http://www.glassbox.com/.
[10]
JLint. http://jlint.sourceforge.net/.
[11]
PMD. http://pmd.sourceforge.net/.
[12]
C. Allan, J. Tibble, P. Avgustinov, A. Christensen, L. Hendren, S. Kuzins, O. Lhoták, O. de Moor, D. Sereni, and G. Sittampalam. Adding trace matching with free variables to AspectJ. Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications, pages 345--364, 2005.
[13]
E. Allen. Bug patterns in Java. Apress, 2002.
[14]
N. Ayewah, W. Pugh, J. Morgenthaler, J. Penix, and Y. Zhou. Evaluating static analysis defect warnings on production software. Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, pages 1--8, 2007.
[15]
N. Ayewah, W. Pugh, J. Morgenthaler, J. Penix, and Y. Zhou. Using FindBugs on production software. OOPSLA 07: Companion to the 22nd ACM SIGPLAN conference on Object oriented programming systems and applications companion, 2007.
[16]
B. Cook, A. Podelski, and A. Rybalchenko. Termination proofs for systems code. In PLDI '06: Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pages 415--426, New York, NY, USA, 2006. ACM.
[17]
E. Farchi, Y. Nir, and S. Ur. Concurrent bug patterns and how to test them. Parallel and Distributed Processing Symposium, 2003. Proceedings. International, page 7, 2003.
[18]
R. Filman et al. Aspect-oriented software development. Addison-Wesley, Boston Toronto, 2005.
[19]
C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for Java. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI'2002), volume 37, pages 234--245, June 2002.
[20]
J. Hannemann and G. Kiczales. Design pattern implementation in Java and aspectJ. Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 161--173, 2002.
[21]
W. Havinga, I. Nagy, L. Bergmans, and M. Aksit. A graph-based approach to modeling and detecting composition conflicts related to introductions. Proceedings of the 6th international conference on Aspect-oriented software development, pages 85--95, 2007.
[22]
T. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Software verification with blast. In In Tenth International Workshop on Model Checking of Software (SPIN), volume 2648 of Lecture Notes in Computer Science, pages 235--239. Springer-Verlag, 2003., 2003.
[23]
T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. SIGPLAN Not., 37(1):58--70, 2002.
[24]
D. Hovemeyer and W. Pugh. Finding concurrency bugs in java. 2004 PODC Workshop on Concurrency and Synchronization in Java Programs.
[25]
D. Hovemeyer and W. Pugh. Finding bugs is easy. ACM SIGPLAN Notices, 39(12):92--106, 2004.
[26]
D. Hovemeyer and W. Pugh. Finding more null pointer bugs, but not too many. Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, pages 9--14, 2007.
[27]
G. Kiczales et al. Aspect-oriented programming. ACM SIGSOFT Software Engineering Notes, 26(5):313, 2001.
[28]
S. Krishnamurthi, K. Fisler, and M. Greenberg. Verifying aspect advice modularly. SIGSOFT Softw. Eng. Notes, 29(6):137--146, 2004.
[29]
N. Rutar, C. Almazan, and J. Foster. A Comparison of Bug Finding Tools for Java. Proceedings of the 15th International Symposium on Software Reliability Engineering (ISSRE'04), pages 245--256.
[30]
J. R. Ruthruff, J. Penix, J. D. Morgenthaler, S. Elbaum, and G. Rothermel. Predicting accurate and actionable static analysis warnings: an experimental approach. In ICSE '08: Proceedings of the 30th international conference on Software engineering, pages 341--350, New York, NY, USA, 2008. ACM.
[31]
H. Shen, S. Zhang, and J. Zhao. An empirical study of maintainability in aspect-oriented system evolution using coupling metrics. In Proc. 2nd IEEE Theoretical Aspects of Software Engineering Conference (TASE 2008), June 2008.
[32]
H. Shen, S. Zhang, J. Zhao, J. Fang, and S. Yao. XFindBugs: eXtended FindBugs for AspectJ. Technical Report TR-SJTU-CSE-08-06, Center for Software Engineering, Shanghai Jiao Tong University. Download: http://cse.sjtu.edu.cn/XFindBugs, July 2008.
[33]
T. Xie and J. Zhao. A framework and tool supports for generating test inputs of AspectJ programs. Proceedings of the 5th international conference on Aspect-oriented software development, pages 190--201, 2006.
[34]
G. Xu and A. Rountev. Regression Test Selection for AspectJ Software. Proceedings of the 29th International Conference on Software Engineering, 20(26):65--74, 2007.
[35]
M. Young and R. Taylor. Rethinking the taxonomy of fault detection techniques. Proceedings of the 11th international conference on Software engineering, pages 53--62, 1989.
[36]
S. Zhang, Z. Gu, Y. Lin, and J. Zhao. Change impact analysis for AspectJ programs. In Proc. 24th IEEE International Conference on Software Maintenance, Sep 2008.
[37]
S. Zhang and J. Zhao. On Identifying Bug Patterns in Aspect-Oriented Programs. Computer Software and Applications Conference, 2007. COMPSAC 2007-Vol. 1. 31st Annual International, 1, 2007.
[38]
X. Zhang, R. Gupta, and Y. Zhang. Precise dynamic slicing algorithms. In ICSE '03: Proceedings of the 25th International Conference on Software Engineering, pages 319--329, Washington, DC, USA, 2003. IEEE Computer Society.

Cited By

View all
  • (2023)QChecker: Detecting Bugs in Quantum Programs via Static Analysis2023 IEEE/ACM 4th International Workshop on Quantum Software Engineering (Q-SE)10.1109/Q-SE59154.2023.00014(50-57)Online publication date: May-2023
  • (2021)Identifying Bug Patterns in Quantum Programs2021 IEEE/ACM 2nd International Workshop on Quantum Software Engineering (Q-SE)10.1109/Q-SE52541.2021.00011(16-21)Online publication date: Jun-2021
  • (2013)Aspectual source code analysis with GASR2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM.2013.6648184(53-62)Online publication date: Sep-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PASTE '08: Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
November 2008
92 pages
ISBN:9781605583822
DOI:10.1145/1512475
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 November 2008

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

PASTE08

Acceptance Rates

Overall Acceptance Rate 57 of 159 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 02 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)QChecker: Detecting Bugs in Quantum Programs via Static Analysis2023 IEEE/ACM 4th International Workshop on Quantum Software Engineering (Q-SE)10.1109/Q-SE59154.2023.00014(50-57)Online publication date: May-2023
  • (2021)Identifying Bug Patterns in Quantum Programs2021 IEEE/ACM 2nd International Workshop on Quantum Software Engineering (Q-SE)10.1109/Q-SE52541.2021.00011(16-21)Online publication date: Jun-2021
  • (2013)Aspectual source code analysis with GASR2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM.2013.6648184(53-62)Online publication date: Sep-2013
  • (2012)Measuring the Occurrence of Security-Related Bugs through Software EvolutionProceedings of the 2012 16th Panhellenic Conference on Informatics10.1109/PCi.2012.15(117-122)Online publication date: 5-Oct-2012
  • (2011)EFindBugsProceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation10.1109/ICST.2011.51(299-308)Online publication date: 21-Mar-2011
  • (2009)Incremental call graph reanalysis for AspectJ software2009 IEEE International Conference on Software Maintenance10.1109/ICSM.2009.5306311(306-315)Online publication date: Sep-2009
  • (2009)Automatic Detection of Infinite Recursion in AspectJ ProgramsProceedings of the 1st International Conference on Future Generation Information Technology10.1007/978-3-642-10509-8_22(190-197)Online publication date: 15-Nov-2009

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media