skip to main content
10.1145/1111542.1111567acmconferencesArticle/Chapter ViewAbstractPublication PagespepmConference Proceedingsconference-collections
Article

Continuous code-quality assurance with SAFE

Published:09 January 2006Publication History

ABSTRACT

This paper presents the design of SAFE (Scalable and Flexible Error Detection), a static analysis tool targeting lightweight program verification and bug finding for Java. The tool utilizes two types of analysis: a simple "structural" checker based on pattern-matching, and an interprocedural flow-sensitive dataflow solver which integrates typestate checking and alias analysis. We describe how the tool integrates into a team development platform for analysis of batch builds, and user interface support built on the Eclipse platform.

References

  1. Apache Ant. http://ant.apache.org/.Google ScholarGoogle Scholar
  2. T. Ball and S. K. Rajamani. The slam project: debugging system software via static analysis. In POPL '02: Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 1--3, New York, NY, USA, 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Chase, M. Wegman, and F. Zadeck. Analysis of pointers and structures. In Proc. Conf. on Prog. Lang. Design and Impl., pages 296--310, New York, NY, 1990. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. H. Chen and D. Wagner. Mops: an infrastructure for examining security properties of software. In CCS '02: Proceedings of the 9th ACM conference on Computer and communications security, pages 235--244, New York, NY, USA, 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. CodeReview. http://www128.ibm.com/developerworks/rational/library/05/higgins.Google ScholarGoogle Scholar
  6. CruiseControl. http://cruisecontrol.sourceforge.net.Google ScholarGoogle Scholar
  7. M. Das, S. Lerner, and M. Seigle. ESP: Path-sensitive program verification in polynomial time. In Proc. Conf. on Prog. Lang. Design and Impl., pages 57--68, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Field, D. Goyal, G. Ramalingam, and E. Yahav. Typestate verification: Abstraction techniques and complexity results. In Proc. of SAS'03, volume 2694 of LNCS, pages 439--462. Springer, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Typestate checking in the presence of aliasing. in preparation, 2005.Google ScholarGoogle Scholar
  10. M. Fowler. Continuous Integration. http://www.martinfowler.com/articles/continousIntegration.html.Google ScholarGoogle Scholar
  11. S. Hallem, B. Chelf, Y. Xie, and D. Engler. A system and language for building system-specific, static analyses. In PLDI '02: Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, pages 69--82, New York, NY, USA, 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. N. Heintze and O. Tardieu. Ultra-fast aliasing analysis using CLA: A million lines of C code in a second. 36(5):254--263, May 2001. In Conference on Programming Language Design and Implementation (PLDI). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. Hovemeyer and W. Pugh. Finding bugs is easy. In OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 132--136, New York, NY, USA, 2004. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. JLint. http://www.sureshotsoftware.com/javalint.Google ScholarGoogle Scholar
  15. O. Lhoták and L. Hendren. Scaling Java points-to analysis using SPARK. In 12th International Conference on Compiler Construction (CC), volume 2622 of LNCS, pages 153--169, Apr. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Parasoft JTest. http://www.parasoft.com/jsp/products/home.jsp?product=Jtest.Google ScholarGoogle Scholar
  17. PMD. http://pmd.sourceforge.net/.Google ScholarGoogle Scholar
  18. G. Ramalingam, A. Warshavsky, J. Field, D. Goyal, and M. Sagiv. Deriving specialized program analyses for certifying component-client conformance. In Proc. Conf. on Prog. Lang. Design and Impl., volume 37, 5, pages 83--94, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. RCP. http://www.eclipse.org/rep.Google ScholarGoogle Scholar
  20. N. Rutar, C. B. Almazan, and J. S. Foster. A comparison of bug finding tools for java. In ISSRE '04: Proceedings of the 15th IEEE International Symposium on Software Reliability Engineering, November 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. E. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Software Eng., 12(1):157--171, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. W. Weimer and G. C. Necula. Finding and preventing run-time error handling mistakes. In OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications, pages 419--431, New York, NY, USA, 2004. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Continuous code-quality assurance with SAFE

                    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
                      PEPM '06: Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
                      January 2006
                      176 pages
                      ISBN:1595931961
                      DOI:10.1145/1111542

                      Copyright © 2006 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: 9 January 2006

                      Permissions

                      Request permissions about this article.

                      Request Permissions

                      Check for updates

                      Qualifiers

                      • Article

                      Acceptance Rates

                      Overall Acceptance Rate66of120submissions,55%

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader