skip to main content
10.1145/1138912.1138916acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Program partitioning: a framework for combining static and dynamic analysis

Authors Info & Claims
Published:23 May 2006Publication History

ABSTRACT

For higher quality software, static analysis and dynamic analysis should be used in a complementary manner. In this work, we explore the concept of partitioning a program such that the partitions can be analyzed separately. With such partitioning, potentially different analysis techniques can be applied to different program partitions, with each analysis having to deal with reduced code which can increase its effectiveness. Our experiments show that partitioning can indeed increase the effectiveness of static analysis. Our initial experience in using testing data for partitioning and applying static analysis only on the complementary partition, indicates that it results in detection of more errors which might have gone unnoticed otherwise.

References

  1. W. R. Bush, J. D. Pincus, and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Software Practice and Experience, 30(7):775--802, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Puasuareanu, Robby, and H. Zheng. Bandera: Extracting finite-state models from java source code. In International Conference on Software Engineering, pages 439--448, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cyrelli Artho. Jlint homepage: http://artho.com/jlint.Google ScholarGoogle Scholar
  4. D. Cok and J. Kiniry. Esc java homepage: http://www.cs.kun.nl/sos/research/escjava/index.html.Google ScholarGoogle Scholar
  5. H. C. Drew and D. Wagner. Model checking one million lines of c code. In Network and Distributed System Security, NDSS 2004.Google ScholarGoogle Scholar
  6. M. Ernst. Static and dynamic analysis: Synergy and duality. In In ICSE Workshop on Dynamic Analysis WODA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Evans. Static detection of dynamic memory errors. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI '96), 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Hamlet and R. Taylor. Partition testing does not inspire confidence (program testing). IEEE Trans. Softw. Eng., 16(12):1402--1411, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. Havelund. Using runtime analysis to guide model checking of java programs. In SPIN, pages 245--264, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Hovemeyer. Findbugs homepage: http://findbugs.sourceforge.net/.Google ScholarGoogle Scholar
  11. D. Hovemeyer and W. Pugh. Finding bugs is easy. In OOPSLA 2004, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Sourceforge. Pmd homepage: http://pmd.sourceforge.net/.Google ScholarGoogle Scholar
  13. V. Vipindeep and P. Jalote. Transforming programs to allow static analysis to do better, MTech Thesis, IIT Kanpur.Google ScholarGoogle Scholar
  14. V. Vipindeep and P. Jalote. Efficient static analysis with path pruning using coverage data. In ICSE-Workshop on Dynamic Analysis, WODA, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Y. Xie and D. Engler. Using redundancies to find errors. SIGSOFT Softw. Eng. Notes, 27(6):51--60, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Program partitioning: a framework for combining static and dynamic analysis

            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
              WODA '06: Proceedings of the 2006 international workshop on Dynamic systems analysis
              May 2006
              90 pages
              ISBN:1595934006
              DOI:10.1145/1138912

              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: 23 May 2006

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Upcoming Conference

              ICSE 2025

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader